Переключение на Главную Страницу Страницы: 1 ... 75 76 [77] 78 79  ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения, примеры, вопросы (число прочтений - 348463 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1140 - 16. Сентября 2010 :: 08:05
Печать  
Обнови скриптовую машину, для начала + проверь уровень безопасности в ИЕ.
+
regsvr32.exe vbscript.dll
regsvr32.exe jscript.dll
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1141 - 16. Сентября 2010 :: 12:33
Печать  
при работе с  табличным полем (ПоставщикДанных) иногда вылетает 1С (раза 3-4 за день). В просмотре событий можно увидеть:
"Ошибка приложения 1cv7s.exe, версия 7.70.0.27, модуль blang.dll, версия 7.70.0.27, адрес 0x0000323f."

не так давно в форму элемента справочника Номенклатура добавил табличное поле с подчиненным справочником сертификаты.

Вылет 1С происходит записи нового элемента номенклатуры   (повторюсь не всегда, за день записывают 50-100 новых товаров, а вылетает в среднем 3 раза в день)

Вроде бы ненадолго помогает чистка реетра 1С

привожу фрагмент кода из процедуры ПриЗаписи

Код
Выбрать все
	ФлагЗаписи=1;
	Записать();
	Если Новый=1 Тогда
		СоздатьТаблицуСертификатов();
		ИнициализацияМногострочнойЧасти();
	КонецЕсли;
	ПроверкаСертификата(ТекущийЭлемент());
	Если ПроверкаЗаполненияСертификата(ТекущийЭлемент())=0 Тогда
		Сообщить("Необходимо заполнить данные по сертификату!");
	КонецЕсли;
	ПоставщикДанных.Обновить();
 



где

Код
Выбрать все
Процедура СоздатьТаблицуСертификатов()
	Спр2 = СоздатьОбъект("Справочник.СертификатыТоваров");
		Для й =1 По 4 Цикл
		  Спр2.Новый();
			Спр2.Владелец = ТекущийЭлемент();
		  Спр2.УстановитьНовыйКод();
		  Спр2.ВидСертификата = ЭлементПоКоду("ВидыСертификатов",й);
			Спр2.Наименование = Спр2.ВидСертификата.Наименование;
			Спр2.НеобходимостьНаличия = Перечисление.Булево.Нет;
			Спр2.Записать();
		КонецЦикла;
КонецПроцедуры


Процедура ИнициализацияМногострочнойЧасти()
	ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения");
	ПоставщикДанных.ТипЗначений = "Справочник.СертификатыТоваров";
	ПоставщикДанных.КонтейнерТабличногоПоля = "СертификатыТП";

	ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;

	ТабличноеПоле.ИзменятьНастройкуКолонок = 0;
	ТабличноеПоле.ИзменятьСоставСтрок = 1;
	ТабличноеПоле.ИзменятьПорядокСтрок = 1;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;
	ТабличноеПоле.АвтоКонтекстноеМеню = 0;

	Данные = ПоставщикДанных.Данные;
	Данные.Владелец = ТекущийЭлемент();

	Данные.НоваяКолонка("Код");
	Данные.НоваяКолонка("ВидСертификата");
	Данные.НоваяКолонка("НеобходимостьНаличия");
	Данные.НоваяКолонка("Номер");

  Данные.ДобавитьСоединениеДанных("СоединениеДатаВыдачи","left join Справочник.СертификатыНовые as СертификатыНовые $nolock on $ТекущийОбъект.Номер = $СертификатыНовые.ТекущийЭлемент");

	Данные.ДобавитьКолонкуДанных("ДатаВыдачи","Дата выдачи","$СертификатыНовые.ДатаВыдачи","Дата",1);
	Данные.НоваяКолонка("ДатаВыдачи");

	Данные.ДобавитьКолонкуДанных("СрокДействия","Дата выдачи","$СертификатыНовые.СрокДействия","Дата",1);
	Данные.НоваяКолонка("СрокДействия");

	1);
	Данные.НоваяКолонка("Орган");

	Данные.ДобавитьКолонкуДанных("КодСертификата","Код серт-та","$СертификатыНовые.Код","число",0);
	Данные.НоваяКолонка("КодСертификата");

	Колонки = ТабличноеПоле.Колонки;
	Колонка = Колонки.Код;
	Колонка.Видимость = 0;

	Колонка = Колонки.ВидСертификата;
	Колонка.Ширина = 20;

	Колонка = Колонки.НеобходимостьНаличия;
	Колонка.Ширина = 4;

	Колонка = Колонки.Номер;
	Колонка.Заголовок = "Номер сертификата";
	Колонка.Ширина = 30;

	Колонка = Колонки.ДатаВыдачи;
	Колонка.Ширина = 8;

	Колонка = Колонки.СрокДействия;
	Колонка.Ширина = 8;

	Колонка = Колонки.Орган;
	Колонка.Ширина = 5;

	Колонка = Колонки.КодСертификата;
	Колонка.Ширина = 4;

	Данные.ИзменятьИерархическийПросмотр = 0;
	Данные.ИерархическийПросмотр = 1;
	Данные.СпособРедактирования = 0; //в Списке
	Данные.ИзменятьСпособРедактирования = 0;
	Данные.ПросмотрПоВладельцу = 1;
	Данные.ИзменятьПросмотрПоВладельцу = 0;
	Данные.РеквизитСортировки = "Код";

	ПоставщикДанных.Обновить();

КонецПроцедуры

 



думаю, что грабли в процедуре ИнициализацияМногострочнойЧасти

может, что подправить в ней


Процедуры
ПроверкаСертификата(ТекущийЭлемент())
И    ПроверкаЗаполненияСертификата(ТекущийЭлемент))

я думаю не причем, так как они же используются в ряде других мест и там все нормально

1С++ 3.0.1.25
FormEx 2.0.5.99
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1142 - 16. Сентября 2010 :: 12:56
Печать  
процедура ИнициализацияМногострочнойЧасти() вызывалась после открытия формы

Процедура ПослеСозданияФормы()
     ИнициализацияМногострочнойЧасти();
КонецПроцедуры

не может ли повторная инициализация табличного поля приводить к вылету?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1143 - 17. Сентября 2010 :: 03:20
Печать  
Повторная инициализация, как и попытка переназначить ТипЗначений как правило в периодическим вылетам и приводит. Но повторная имеется в виду, когда в рамках одного модуля на одну переменную вешаются два и более поставщика.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1144 - 17. Сентября 2010 :: 05:10
Печать  
Александр, можно ли реализовать в ПоставщикДанных Операция отборы по контрагенту, как  в стандартном журнале операций?
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1145 - 19. Сентября 2010 :: 08:43
Печать  
Eprst писал(а) 16. Сентября 2010 :: 08:05:
Обнови скриптовую машину, для начала + проверь уровень безопасности в ИЕ.
+
regsvr32.exe vbscript.dll
regsvr32.exe jscript.dll


какой должен бьыть уровень безопасности ИЕ?
  
Наверх
ICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1146 - 23. Сентября 2010 :: 11:09
Печать  
Господа, очень нужна подсказка.
Есть форма, насышенная табличные полями и кнопками(ПоставщикДанных.ИндексированнаяТаблица). При многократном открытии-закрытии формы вылетаем из 1С. С сообщением "Запрашиваемый ресурс недоступен"(это перевод сообщения) и
строке сообщений:
ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : ImageListCtrl: Out of memory
ОлеКар
ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : ImageListCtrl: Out of memory
КартинкиПанелиУправления.ListImages.Add
ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=ИндексированнаяТаблица) : ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Колич
ПДКонтрагентыПодчДоки.ТипЗначений = "ИндексированнаяТаблица";
{Документ.РасчетЗаказа.Форма.Модуль(13817)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=ИндексированнаяТаблица) : ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.Ком

Кто-то сталкивалься с таким? Подскажите куда копать.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1147 - 23. Сентября 2010 :: 11:14
Печать  
привести версию 1С++
а также замониторить объекты user и gdi в диспетчере задач - растут ли они. Очень похоже на утечку памяти при разрушении контрола для панели.
  
Наверх
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1148 - 23. Сентября 2010 :: 11:22
Печать  
1С++ 3.2.2.5
Все остально сейчас посмотрю.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1149 - 23. Сентября 2010 :: 11:28
Печать  
zk96 писал(а) 23. Сентября 2010 :: 11:22:
...
Все остально сейчас посмотрю.

Соврал, не посмотрю, не знаю как. В диспечере задач таких процессов не вижу. Куда смотреть?
Но количество процессов не растет, объем выделенной памяти тоже не растет
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1150 - 23. Сентября 2010 :: 11:40
Печать  
zk96 писал(а) 23. Сентября 2010 :: 11:28:
zk96 писал(а) 23. Сентября 2010 :: 11:22:
...
Все остально сейчас посмотрю.

Соврал, не посмотрю, не знаю как. В диспечере задач таких процессов не вижу. Куда смотреть?
Но количество процессов не растет, объем выделенной памяти тоже не растет

Это не процессы - это столбцы. Вид>Столбцы и там галочки поставь и для процесса 1cv7 посмотри.
А также покажи код инициализации контейнеров для панели и ТП самого. Можешь прямо текстовый файл приложить.
  
Наверх
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1151 - 23. Сентября 2010 :: 12:10
Печать  
Обеекты GDI увеличиваються(не уничтожаються), ОбеектыUser- нет.
Код инициализации приложил.
  

____.txt ( 19 KB | Загрузки )
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1152 - 23. Сентября 2010 :: 12:14
Печать  
Приложи весь код модуля формы пожалуйста.
  
Наверх
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1153 - 23. Сентября 2010 :: 12:27
Печать  
leshik писал(а) 23. Сентября 2010 :: 12:14:
Приложи весь код модуля формы пожалуйста.

Вот он.
  

_____001.txt ( 609 KB | Загрузки )
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения, примеры, вопросы
Ответ #1154 - 23. Сентября 2010 :: 12:33
Печать  
Попробуй в процедуре ПриЗакрытии деинициализировать поставщики данных

Код
Выбрать все
ПДИТОбъем = "";
ПДИТКраски = "";
ПДИТМенеджер = "",ПДИнТбТехнолог = "",ПДИнТбЛаминаторщик = "";
ПДКонтрагентыПодчДоки = "";
ПДИТПродажа = "";
фВидимыеКолонкиВТППродажа = "";
 


И посмотри что будет с GDI и USER
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 75 76 [77] 78 79 
ОтправитьПечать