Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ВыполняемыйМодуль при открытии (число прочтений - 1561 )
squid
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 18. Марта 2014
ВыполняемыйМодуль при открытии
18. Марта 2014 :: 05:37
Печать  
Нужна помощь! Только начал изучать возможности 1CPP. Для некоторых документов хочу применить динамический код в модуле формы, но никак не могу привязать простейший код, 1С вылетает при открытии документа

Код
Выбрать все
Функция  Событие_ПриОткрытии(ФлагЧтенияНастройки) Экспорт

	Если (ТипОбъекта="Отчет")или (ТипОбъекта="Обработка")Или(ТипОбъекта = "ВнешнийОтчет") Тогда
		Возврат тройки);
	Иначе
		Если (ТипОбъекта = "Документ") Тогда
			Модуль				= СоздатьОбъект("ВыполняемыйМодуль");
			Информатор			= СоздатьОбъект("Информатор");
			ТекстМодуля	= Информатор.ПолучитьТекстМодуля(КонтФормы);
			ТекстМодуля	= ТекстМодуля + "Форма.МестоХранения.Доступность(0);";
			Модуль.НазначитьКонтекст(КонтФормы);
			Модуль.УстановитьМодуль(текстМодуля);
			Модуль.КомпилироватьМодуль();
			Модуль.ВыполнитьМодуль();

				Возврат Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии");

		иначе
			Возврат Перехватчик.ВыполнитьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии");
		конецЕсли;
	КонецЕсли;

КонецФункции 

  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ВыполняемыйМодуль при открытии
Ответ #1 - 18. Марта 2014 :: 06:10
Печать  
У документа в ПриОткрытии() нет параметра  (ФлагЧтенияНастройки). Для документов и отчетов надо делать разные перехватчики.
  
Наверх
 
IP записан
 
squid
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 18. Марта 2014
Re: ВыполняемыйМодуль при открытии
Ответ #2 - 18. Марта 2014 :: 08:30
Печать  
Никак не пойму, почему при выполнении НазначитьКонтекст(Контекст), 1С вылетает? Версия 3.2.4.1. Пишу в модуле формы
Код
Выбрать все
Модуль = СоздатьОбъект("ВыполняемыйМодуль");  
Модуль.НазначитьКонтекст(Контекст);
//Модуль.НазначитьКонтекст(глВзятьКонтекст(Контекст));
 


при добавлении 2-й строчки виснет и вылетает. Пробовал на 2-х клиентах. Насколько понял по документации можно передавать любой контекст, в любом случае будет ошибка, а не вылет


UPD: Выяснилось, что проблема была из старой версии FormEx.dll, обновил на 2.0.5.0. Проблема ушла
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать