Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) СтатусВозврата в классе "Перехватчик" (число прочтений - 46317 )
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
СтатусВозврата в классе "Перехватчик"
21. Февраля 2007 :: 08:37
Печать  
Уж не знаю - глюк или нет... мож просто я че не так делаю...
Если в перехваченных процедурах класса - перехватчика установить статус возврата в 0 - то отмена процедуры не происходит
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #1 - 21. Февраля 2007 :: 08:52
Печать  
В классах СтатусВозврата() (имхо этот метод 1С - это извращение) не работает.
Ты сам регулируешь, вызывать нужное тебе событие или нет.
А конкретно для какого события тебе нужен СтатусВозврата?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #2 - 21. Февраля 2007 :: 08:54
Печать  
Хочется обломать перехватываемую форму "ПриОткрытии" или "ВводНового" к примеру
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #3 - 21. Февраля 2007 :: 09:17
Печать  
Ну вроде придумал...и работает))

     СписПарам=СоздатьОбъект("СписокЗначений");
     СписПарам.ДобавитьЗначение(0);
     ;

Задокументировать бы это...
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #4 - 21. Февраля 2007 :: 10:11
Печать  
ИМХО Можно и просто
КонтФормы.СтатусВозврата(0);
Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #5 - 21. Февраля 2007 :: 11:13
Печать  
Если просто "КонтФормы.СтатусВозврата(0);" - вываливает ошибку
"Поле агрегатного объекта не обнаружено (СтатусВозврата)"
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #6 - 21. Февраля 2007 :: 12:34
Печать  
Лады, сделаю спец. метод
Перехватчик.УстановитьСтатусВозвратаГК(КонтФормы, НовыйСтатус)
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #7 - 21. Февраля 2007 :: 13:21
Печать  
artbear писал(а) 21. Февраля 2007 :: 12:34:
Лады, сделаю спец. метод
Перехватчик.УстановитьСтатусВозвратаГК(КонтФормы, НовыйСтатус)


Тогда надо еще добавить что-то типа
Перехватчик.ПолучитьСтатусВозвратаГК(КонтФормы, НовыйСтатус)
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #8 - 21. Февраля 2007 :: 13:24
Печать  
Кстати и вариант
"ВызватьОригинальноеСобытиеГК(КонтФормы,"СтатусВозврата",СписПарам)"
не всегда прокатывает.
В частности, в процедуре "ПриЗаписи", в случае когда она инициализируется путем закрытия окна с подтверждением записи
Пришлось добавить в формы процедуру

Процедура глСтатусВозврата(Статус)
     СтатусВозврата(Статус);
КонецПроцедуры

и использовать

"ВызватьОригинальноеСобытиеГК(КонтФормы,"глСтатусВозврата",СписПарам)"
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #9 - 21. Февраля 2007 :: 13:29
Печать  
Chieftain писал(а) 21. Февраля 2007 :: 13:24:
Пришлось добавить в формы процедуру

Процедура глСтатусВозврата(Статус)
     СтатусВозврата(Статус);
КонецПроцедуры

и использовать

"ВызватьОригинальноеСобытиеГК(КонтФормы,"глСтатусВозврата",СписПарам)"

А вот здесь точно должно работать КонтФормы.глСтатусВозврата(Статус);
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #10 - 21. Февраля 2007 :: 13:50
Печать  
artbear писал(а) 21. Февраля 2007 :: 13:29:
Chieftain писал(а) 21. Февраля 2007 :: 13:24:
Пришлось добавить в формы процедуру

Процедура глСтатусВозврата(Статус)
     СтатусВозврата(Статус);
КонецПроцедуры

и использовать

"ВызватьОригинальноеСобытиеГК(КонтФормы,"глСтатусВозврата",СписПарам)"

А вот здесь точно должно работать КонтФормы.глСтатусВозврата(Статус);


В принципе работает, но ситуация в 8 посте также не срабатывает... да и не тема в каждом модуле добавлять процедуру
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #11 - 21. Февраля 2007 :: 13:52
Печать  
Ну что - можно ждать методы?
   Перехватчик.УстановитьСтатусВозвратаГК(КонтФормы, НовыйСтатус)
   Перехватчик.ПолучитьСтатусВозвратаГК(КонтФормы) 
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #12 - 21. Марта 2007 :: 14:10
Печать  
Проскочило сообщение про реализацию "СтатусВозврата" http://www.1cpp.ru/forum/YaBB.pl?num=1173778761/9#9.
Описалово будет как енто использовать?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #13 - 21. Марта 2007 :: 14:21
Печать  
А официальную доку изучать пробовал?
Все уже там написано Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #14 - 21. Марта 2007 :: 14:29
Печать  
То есть вместо "Процедура" ставить "Функция" и возвращать 0 или 1?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #15 - 21. Марта 2007 :: 14:47
Печать  
да, именно.
Как видишь, все просто.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #16 - 22. Марта 2007 :: 06:42
Печать  
Тогда спасибо за доработку
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #17 - 22. Марта 2007 :: 10:11
Печать  
Еще баги?

Короче на последней ночной сборке начал переделывать класс перехватчика для форм справочников и документов. Со статусом возврата все работает на ура, но есть один момент:

в форме существует процедура "ПриОткрытии"
в классе существует функция "ПриОткрытии", в которой вызывается процедура формы:

  СписПарам                  = СоздатьОбъект("СписокЗначений");
  СписПарам.ДобавитьЗначение(УровеньДоступа);
  Сам(Контекст).ВызватьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии",СписПарам);
  Возврат 1;

Так вот - форма не открывается, если процедура "ПриОткрытии" в форме пустая, но срабатывает при таком коде:

  СписПарам                  = СоздатьОбъект("СписокЗначений");
  СписПарам.ДобавитьЗначение(УровеньДоступа);
  // Любой другой текст
  Сам(Контекст).ВызватьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии",СписПарам);
  Возврат 1;
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #18 - 22. Марта 2007 :: 11:44
Печать  
Не верю Печаль
Тест давай.
Мои тесты как раз работают с событием "ПриОткрытии"
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #19 - 22. Марта 2007 :: 11:46
Печать  
Chieftain писал(а) 22. Марта 2007 :: 10:11:
 СписПарам.ДобавитьЗначение(УровеньДоступа);

Это зачем?
Событие "ПриОткрытии" может принимать всего 0 параметров или один ФлагЧтенияНастройки.
Что такое УровеньДоступа???
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #20 - 22. Марта 2007 :: 12:13
Печать  
В классе производится контроль доступа к объектам.
Если доступ полностью не закрыт в процедуру "ПриОткрытии" передается "Предопределенный" параметр - уровень доступа к объекту.
А там уже анализируется для запрета к реквизитам окна
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #21 - 22. Марта 2007 :: 12:15
Печать  
1) Различные параметры в форму передаются через Конт.Форма.Параметр и никак иначе !

2) Тест давай !
Иначе никак не помогу Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #22 - 22. Марта 2007 :: 12:41
Печать  
В форме элемента или списка справочника:

// При открытии формы
Процедура ПриОткрытии(УровеньДоступа)
КонецПроцедуры      // ПриОткрытии

В модуле реализации класса

Функция ПриОткрытии() Экспорт
   //УровеньДоступа      = "Запрещено";
   УровеньДоступа      = "Разрешено";
   Если Врег(УровеньДоступа)="ЗАПРЕЩЕНО" Тогда
     Возврат 0;
   КонецЕсли;
   // Вызовем оригинальную процедуру
   СписПарам                  = СоздатьОбъект("СписокЗначений");
   СписПарам.ДобавитьЗначение(УровеньДоступа);
   Сам(Контекст).ВызватьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии",СписПарам);
   Возврат 1;
КонецФункции
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #23 - 22. Марта 2007 :: 12:43
Печать  
То есть если в форму уже передается параметр, то туда уже ничего не засунешь.
Причем если делать через "ВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста" то ни разу не вылетало, а при "ВызватьОригинальноеСобытиеГК" вылетает через раз
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #24 - 22. Марта 2007 :: 12:47
Печать  
artbear писал(а) 22. Марта 2007 :: 12:15:
1) Различные параметры в форму передаются через Конт.Форма.Параметр и никак иначе !

Еще раз изучи - это стандартное поведение 1С и его никто не менял !!
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #25 - 22. Марта 2007 :: 12:49
Печать  
А разница между вызовами "ВызватьОригинальноеСобытиеГК" и "ВыполнитьПроцедуруКонтекста" существенная?

Вернее - при вызове "ВызватьОригинальноеСобытиеГК" 1С считает, что это предопределенная процедура?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #26 - 22. Марта 2007 :: 12:50
Печать  
И еще - как ты устанавливаешь перехват на конкретную форму?
В каком месте?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #27 - 22. Марта 2007 :: 12:53
Печать  
Chieftain писал(а) 22. Марта 2007 :: 12:49:
А разница между вызовами "ВызватьОригинальноеСобытиеГК" и "ВыполнитьПроцедуруКонтекста" существенная?

Вернее - при вызове "ВызватьОригинальноеСобытиеГК" 1С считает, что это предопределенная процедура?

1) "ВыполнитьПроцедуруКонтекста" вызовет исключение, если на форме нет обработчика ПриОткрытии, а "ВызватьОригинальноеСобытиеГК" нет.
Т.е для универсальности нужно ставить "ВыполнитьПроцедуруКонтекста" в Попытку-КонецПопытки

2) "ВызватьОригинальноеСобытиеГК" работает только для перехваченных контекстов.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #28 - 22. Марта 2007 :: 12:53
Печать  
Система простая:
В каждом модуле определяется переменная "СервисФормы" и создается объект в теле модуля: "СервисФормы"=СоздатьОбъект("СервисФормы")

Идет полная замена строки действия формы, т.е. на кнопках формулы типа СервисФормы.ВыполнитьСтрокуДействияФормы("Записать Закрыть")
Также производится контроль прав пользователей и записывается лог изменений в объектах
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #29 - 22. Марта 2007 :: 13:15
Печать  
Еще раз Печаль
artbear писал(а) 22. Марта 2007 :: 12:50:
И еще - как ты устанавливаешь перехват на конкретную форму?
В каком месте?

Жду ответ.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #30 - 22. Марта 2007 :: 13:21
Печать  
В конструкторе

КонтФормы=Сам(Контекст).ПолучитьКонтекстОкружения();
ОбъектПерехватчик=СоздатьОбъект("Перехватчик");
ОбъектПерехватчик.ПерехватитьСобытияГК(КонтФормы,Сам(Контекст));
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #31 - 22. Марта 2007 :: 13:27
Печать  
Ну вот что тебе мешает сделать простую конфу, в которой один справочник и один класс. В глобальнике прописано открытие формы списка справочника.
В этом случае все будет просто и ясно.
Я смогу четко увидеть, в чем твоя или моя Печаль ошибка.

Сделай, плиз, клещами ведь код из тебя тянуть не хочется Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #32 - 22. Марта 2007 :: 13:27
Печать  
Ладно, ща нарисую
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #33 - 22. Марта 2007 :: 14:00
Печать  
Сделал пустую конфу - тока хуже стало  Печаль
Вообще не отрабатывает Возврат 1/0


ЗЫ если в теле модуля формы поставить СтатусВозврата(1), тогда нормально отрабатывают дальнейшее изменение статуса из класса...
  

Test_001.rar ( 15 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #34 - 23. Марта 2007 :: 04:31
Печать  
Chieftain писал(а) 22. Марта 2007 :: 10:11:
Так вот - форма не открывается, если процедура "ПриОткрытии" в форме пустая

Не подтверждаю, все работает.
Форма
Код
Выбрать все
Процедура ПриОткрытии(УровеньДоступа)
КонецПроцедуры	// ПриОткрытии
 


Класс
Код
Выбрать все
Функция ПриОткрытии() Экспорт
	Сообщить("ПриОткрытии");

	СписПарам			= СоздатьОбъект("СписокЗначений");
	СписПарам.ДобавитьЗначение("ВсеМожно");
	Сам(Контекст).ВызватьОригинальноеСобытиеГК(КонтФормы,"ПриОткрытии",СписПарам);
	Возврат 1;
КонецФункции
 


Все нормально открывается вне зависимости от наличия/присутствия/заполненности метода ПриОткрытии в модуле формы.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #35 - 23. Марта 2007 :: 05:06
Печать  
Нашел - неверное значение СтатусВозврата() возвращает, если в классе есть обработчик события ПриЗакрытии Печаль
Если же его нет, при первом открытии формы элемента СтатусВозврата неверный, а при последующих все ок = 1.

Буду править.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #36 - 23. Марта 2007 :: 05:27
Печать  
Исправил баг.
Будет завтра в ночной сборке.

ЗЫ (0) Вот видишь, как быстро можно решить проблему при наличии теста Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #37 - 23. Марта 2007 :: 06:41
Печать  
Радует оперативность. Спасибо

ЗЫ Попробовал без перехвата "ПриЗакрытии" - точно работает
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #38 - 23. Марта 2007 :: 08:51
Печать  
Э... рано обрадовался - все равно не каждый раз срабатывает...

При перезапуске 1С то работает, то нет...
Или при открытии элемента справочника несколько раз не отработает, а потом все нормально...

Ладно, буду ждать ночную сборку
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #39 - 23. Марта 2007 :: 11:09
Печать  
Еще одна непонятка:

В файле реализации класса:
   Функция ВводНового(Скопирован) Экспорт
     СписПарам                  = СоздатьОбъект("СписокЗначений");
     СписПарам.ДобавитьЗначение(Скопирован);
     Сам(Контекст).ВызватьОригинальноеСобытиеГК(КонтФормы,"ВводНового",СписПарам);
        Возврат 1;
   КонецФункции      // ВводНового

В форме элемента справочника:
   Процедура ВводНового(Скопирован)
     Сообщить("Вводим новый:"+СтатусВозврата());
   КонецПроцедуры      // ВводНового


В окне сообщений при вводе нового элемента:
   Вводим новый:150994950

Или какие-нибудь другие циферки
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #40 - 23. Марта 2007 :: 12:02
Печать  
Все эти баги исправлены, как я уже сказал.
Жди завтра.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #41 - 26. Марта 2007 :: 06:28
Печать  
artbear писал(а) 23. Марта 2007 :: 12:02:
Все эти баги исправлены, как я уже сказал.
Жди завтра.


Подтверждаю: описанных багов нет.

Появился вопросик - скорее не по перехватчику, а по видмости переменных:
В тестовой конфе в форме определялась переменная "СервисФормы", которая в теле модуля определялась черех "СоздатьОбъект".

Так вот при удалении строки "Перем СервисФормы;" переменая, вроде, не должна быть доступна из других процедур и тем более извне.
Но к ней можно обращаться (хотя и синтаксический контроль не пройдет).
Как относиться к такому поведению - можно использовать, или есть вероятность, что такое поведение будет устранено?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #42 - 26. Марта 2007 :: 06:36
Печать  
Тогда эта переменная будет локальной в методе ПриОткрытии и обращение к ней в форме будет недействительным.
Короче, использовать все равно не получится.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #43 - 26. Марта 2007 :: 07:05
Печать  
Ясно. Уже сделал через "ПолучитьПерехватчикСобытийГК".
Просто хочу вынести назначение перехвата в единое место, чтобы не править модули MD.

Еще вопрос.
Есть ли возможность сделать процедуру типа "ПриИнициализацииФормы", чтобы назначить перехват уже при инициализации.
И в какой момент срабатывает перехват "СобытиеГМ_ПриОткрытии(КонтФормы)" - не пойдет она в такой роли?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #44 - 26. Марта 2007 :: 07:42
Печать  
Chieftain писал(а) 26. Марта 2007 :: 07:05:
И в какой момент срабатывает перехват "СобытиеГМ_ПриОткрытии(КонтФормы)" - не пойдет она в такой роли?

Это событие как раз для этой цели и предназначено.
Фактически это перехват события ПриОткрытии для обычного контекста.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #45 - 26. Марта 2007 :: 08:02
Печать  
А как тогда перехватить "ВводНового" - эта процедура отрабатывает до "ПриОткрытии"
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #46 - 26. Марта 2007 :: 11:07
Печать  
Посмотри в ФормЕксе - там Алексей добавлял какие-то события специально для подобных задач.
А события ФормЕкс перехватчик также ловит Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #47 - 26. Марта 2007 :: 12:53
Печать  
artbear писал(а) 26. Марта 2007 :: 11:07:
Посмотри в ФормЕксе - там Алексей добавлял какие-то события специально для подобных задач.
А события ФормЕкс перехватчик также ловит Улыбка


Ничего похожего не нашел - все существующие события отрабатывают после "ВводНового", поэтому ее перехватить не получится.
Разговоры были по поводу добавления "ПередОткрытием", но дальше походу не пошло
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #48 - 26. Марта 2007 :: 13:14
Печать  
Лады, сделаю перехват типа "СобытиеГМ_ВводНового"
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #49 - 26. Марта 2007 :: 13:19
Печать  
Лучше было бы сделать перехват инициализации модуля...
Чтобы после его компиляции вызывалась предопределенная процедура типа
"ПослеИнициализации(Конт)"
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #50 - 26. Марта 2007 :: 13:22
Печать  
Этого пока не будет, т.к. ни АльФ, ни я пока такой способ не нашли Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #51 - 26. Марта 2007 :: 13:23
Печать  
Ну а в "СобытиеГМ_ВводНового" мне кажется нет особой надобности - придется разбивать код перехвата в разных классах



ЗЫ  а перехватить "AssignAndCompile" нельзя? Там вроде контекст передается...
...хотя далек я от С++
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #52 - 05. Апреля 2007 :: 08:27
Печать  
Еще один баг нашел:
Если из процедуры "ПриНачалеВыбораЗначения" открывать модально форму, на которой есть реквизит для выбора элемента справочника, то перехват не работает.

При проверке обранужил, что объект сразу удаляется, т.е. срабатывает "Конструктор" и сразу "Деструктор"

  

Test_003.rar ( 17 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #53 - 05. Апреля 2007 :: 10:33
Печать  
Хорошо, проверю.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #54 - 06. Апреля 2007 :: 05:48
Печать  
Если в классе перехватывается событие ""ПослеОткрытия"", то она отрабатывает дважды, если вызывается оригинальное событие




ЗЫ.. что-то я разошелся, проверяя как это все работает
  

Test_004.rar ( 17 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #55 - 06. Апреля 2007 :: 07:14
Печать  
Хорошо, и это проверю в выходные.

Тестируешь, молодец, однозначно Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #56 - 06. Апреля 2007 :: 07:18
Печать  
Это в моих интересах - чем проще писать, тем больше времени для отдыха останется  Подмигивание
  
Наверх
ICQ  
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #57 - 06. Апреля 2007 :: 09:51
Печать  
Почему у меня не отрабатывает СобытиеГМ_ПриОткрытии() при двойном щелчке мышью в журнале документов или нажатии клавиши Enter? При открыть из контекстного меню работает. Во всех других местах работает. Версия 1с 25 пропатченая soaron. Другие компоненты отключал. Win XP SP2.
Что делаю не так? Может что включить надо? Помогите.
  
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #58 - 06. Апреля 2007 :: 10:24
Печать  
А где ты пишешь "СобытиеГМ_ПриОткрытии()"
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #59 - 06. Апреля 2007 :: 10:33
Печать  
Приведи код класса-обработчика перехвата
и пример его подключения.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #60 - 06. Апреля 2007 :: 10:57
Печать  
код класса-обработчика перехвата : ОбработчикСобытийГлобальногоМодуля

Функция Этот(Конт) Возврат Конт; КонецФункции

Функция Сам() Возврат Этот(Контекст) КонецФункции



Функция СобытиеГМ_ПриОткрытии(КонтФормы) Экспорт
     Попытка
     Сообщить("СобытиеГМ_ПриОткрытии(КонтФормы) ОбрСобГлМод");
     Сообщить(""+КонтФормы.Вид());
     Исключение
     КонецПопытки;
     
     Возврат 1;
КонецФункции



Было 2 варианта Либо во внешнем отчете Переменные все локальные

     Перехватчик=СоздатьОбъект("Перехватчик");
     дуля");
     ля);

Либо в глобальном модуле Переменная глОбработчикСобытийГлобальногоМодуля глобальная экспортная

     Перехватчик=СоздатьОбъект("Перехватчик");
     Модуля");
     дуля);


Управление настройками включил перехват и все остальное

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


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #61 - 06. Апреля 2007 :: 10:57
Печать  
Chieftain писал(а) 06. Апреля 2007 :: 05:48:
Если в классе перехватывается событие ""ПослеОткрытия"", то она отрабатывает дважды, если вызывается оригинальное событие

Исправил, будет в ночной сборке.

ЗЫ оказывается, при исправлении ВызватьОригинальноеСобытиеГМ забыл сделать то же самое для ВызватьОригинальноеСобытиеГК Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #62 - 06. Апреля 2007 :: 11:02
Печать  
Цитата:

Просьба - оформляй свой код, плиз.
Например, изучи кнопку "Диез" (черная решетка")
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #63 - 06. Апреля 2007 :: 11:10
Печать  
artbear писал(а) 06. Апреля 2007 :: 10:57:
Chieftain писал(а) 06. Апреля 2007 :: 05:48:
Если в классе перехватывается событие ""ПослеОткрытия"", то она отрабатывает дважды, если вызывается оригинальное событие

Исправил, будет в ночной сборке.

ЗЫ оказывается, при исправлении ВызватьОригинальноеСобытиеГМ забыл сделать то же самое для ВызватьОригинальноеСобытиеГК Улыбка


Сэнкс...
А "ПриНачалеВыбораЗначения" посмотришь?
  
Наверх
ICQ  
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #64 - 06. Апреля 2007 :: 11:12
Печать  
Хорошо изучу. Только сегодня страшно некогда
  
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #65 - 06. Апреля 2007 :: 11:17
Печать  
Цитата:
код класса-обработчика перехвата : ОбработчикСобытийГлобальногоМодуля



Специально попробовал - в таком варианте все работает

ЗЫ.. А версия 1С++ какая?
  
Наверх
ICQ  
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #66 - 06. Апреля 2007 :: 11:25
Печать  
Сегодняшняя ночная сборка. Возможно дело в журнале документов. У меня есть Процедура

Процедура ПриВыбореСтроки()
    глПриВыбореСтрокиЖурналаДокументов(Контекст);
КонецПроцедуры


Процедура глПриВыбореСтрокиЖурналаДокументов(Конт) Экспорт
     Если ПустоеЗначение(Конт.ТекущийДокумент) = 1 Тогда
         Возврат;
     КонецЕсли;
     ТД = Конт.ТекущийДокумент;
     Если Конт.Форма.ТекущаяКолонка() = "ИндОтметка" Тогда
           Если ик&ЗамГлБухгалтера", _ННПП) > 0 Тогда
                 глУстановкаОтметкиДокумента(ТД);                  
           Иначе
                 ОткрытьФорму(ТД);
           КонецЕсли;
     ИначеЕсли Конт.Форма.ТекущаяКолонка() = "ИндНеПроверен" Тогда
           Если Найти("Администратор/ГлБухгалтер/ЗамГлБухгалтера/Логистик&ЗамГлБухгалтера", _ННПП) > 0 Тогда
               Д = СоздатьОбъект("Документ");
                 Д.НайтиДокумент(ТД);
                 Если Д.НеПроверен = 1 Тогда
                     Д.НеПроверен = 0;
                 Иначе
                       Если Д.Проведен() = 1 Тогда
                             Сообщить("ВНИМАНИЕ ! Отменено проведение документа.", "!");
                             Д.СделатьНеПроведенным();
                       КонецЕсли;
                     Д.НеПроверен = 1;
                 КонецЕсли;
                 //Закомментировано Инсталлятором МОД:Д.Записать();
//Начало текста, вставленного Инсталлятором МОД
                 ОбъектЗаписать(Д, );
//Конец текста, вставленного Инсталлятором МОД

           Иначе
                 ОткрытьФорму(ТД);
           КонецЕсли;
     Иначе
           ОткрытьФорму(ТД);
     КонецЕсли;
КонецПроцедуры



Короче в глобальнике применяеться ОткрытьФорму(ТД);

Возможно вот изза этого
  
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #67 - 06. Апреля 2007 :: 11:31
Печать  
Цитата:


Просто в журнале сделай так:
Код
Выбрать все
Процедура ПриВыбореСтроки()
     СтатусВозврата(0);
     глПриВыбореСтрокиЖурналаДокументов(Контекст);
КонецПроцедуры
 



...однако...
без "СтатусВозврата(0)" документ открывается, но перехват "ПриОткрытии" не отрабатывает ни для перехватчика глобального модуля, ни для перехватчика группового контекста
  
Наверх
ICQ  
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #68 - 06. Апреля 2007 :: 11:39
Печать  
Хм. Попробую вечерком. Спасибо. А разве так как у меня не должно работать. Ведь фактически документ то открываеться?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #69 - 06. Апреля 2007 :: 11:43
Печать  
Chieftain писал(а) 06. Апреля 2007 :: 11:10:
artbear писал(а) 06. Апреля 2007 :: 10:57:
Chieftain писал(а) 06. Апреля 2007 :: 05:48:
Если в классе перехватывается событие ""ПослеОткрытия"", то она отрабатывает дважды, если вызывается оригинальное событие



А "ПриНачалеВыбораЗначения" посмотришь?

Мое исправление и этот баг поправило Улыбка
Просто забыл упомянуть!
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #70 - 06. Апреля 2007 :: 11:45
Печать  
Скачайте завтра ночную сборку и проверьте на своем коде.
Потом сообщите в ветку, ок?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #71 - 06. Апреля 2007 :: 11:46
Печать  
artbear писал(а) 06. Апреля 2007 :: 11:45:
Скачайте завтра ночную сборку и проверьте на своем коде.
Потом сообщите в ветку, ок?


Будем тестить... Очень довольный
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #72 - 06. Апреля 2007 :: 11:49
Печать  
Цитата:
Хм. Попробую вечерком. Спасибо. А разве так как у меня не должно работать. Ведь фактически документ то открываеться?


Я просто принимаю как факт:
Если ты заменяешь действие предопределенной процедуры, то ты должен указать одинесине, что ты сам обработаешь. А для этого существует "СтатусВозврата" и "ФлагСтандартнойОбработки"
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #73 - 07. Апреля 2007 :: 07:42
Печать  
artbear писал(а) 06. Апреля 2007 :: 11:45:
Скачайте завтра ночную сборку и проверьте на своем коде.
Потом сообщите в ветку, ок?


В ночной сборке вопрос по вдойному вызову перехватываемой процедуры решен.

По поводу "ПриНачалеВыбораЗначения" и "ПриВыбореСтроки" - ничего не изменилось:

  

Test_005.rar ( 17 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #74 - 09. Апреля 2007 :: 05:25
Печать  
Нашлась одна неявная фича/баг при использовании перехватчика.
При вызове из класса-перехватчика оригинальных обработчиков глобальника или группового контекста через "ВызватьОригинальноеСобытие..." для обработки значений, передаемых по ссылке, нужно после вызова "ВызватьОригинальноеСобытие..." восстанавливать нужное значение из переданного списка.
Например, я на днях обнаружил, что при перехвате события ГМ "ОбработкаЯчейкиТаблицы" у меня не всегда работала расшифровка.
Т.е. нужно использовать следующий код
Код
Выбрать все
Функция СобытиеГМ_ОбработкаЯчейкиТаблицы(Значение, ФлагСтандОбраб, Таблица, Адрес) Экспорт

	// если поставить ФлагСтандОбраб = 1, тогда в большинстве случаев на экран при расшифровке будет выдаваться ненужное предупреждение типа "СписокЗначений"

	Результат = , "{Значение, ФлагСтандОбраб, Таблица, Адрес}", Значение, ФлагСтандОбраб, Таблица, Адрес);
	Если Результат = 1 Тогда
		СписокАргументов = СоздатьОбъект("СписокЗначений");
		СписокАргументов.ДобавитьЗначение(Значение);
		СписокАргументов.ДобавитьЗначение(ФлагСтандОбраб);
		СписокАргументов.ДобавитьЗначение(Таблица);
		СписокАргументов.ДобавитьЗначение(Адрес);
		Результат = ", СписокАргументов);

// !!!!!! вот оно
		ФлагСтандОбраб = СписокАргументов.ПолучитьЗначение(2);
// !!!!!! вот оно

	КонецЕсли;

	Возврат Результат;
КонецФункции
 



Без использования подобной установки ( ФлагСтандОбраб =  СписокАргументов.ПолучитьЗначение(2) ) не будет работать стандартная обработка, например, справочников и документов
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #75 - 09. Апреля 2007 :: 05:34
Печать  
В дальнейшем я планирую исправить данный недочет.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #76 - 09. Апреля 2007 :: 05:56
Печать  
artbear писал(а) 09. Апреля 2007 :: 05:25:
Нашлась одна неявная фича/баг при использовании перехватчика.


Это я уже давно заметил, но считал что так и было задумано  Улыбка
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #77 - 09. Апреля 2007 :: 06:10
Печать  
artbear писал(а) 09. Апреля 2007 :: 05:34:
В дальнейшем я планирую исправить данный недочет.

Планирую, что "ВызватьОригинальноеСобытие..." будет работать не со списком значений, а использовать те параметры, которые соответствуют событию.
Т.е. типа
Код
Выбрать все
, Значение, ФлагСтандОбраб, Таблица, Адрес);  


ИМХО так и правильнее, и проблема с передачей по ссылке исчезнет.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #78 - 09. Апреля 2007 :: 06:56
Печать  
Да, так будет значительно наглядней
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #79 - 11. Апреля 2007 :: 03:59
Печать  
Изменения в Перехватчике
http://www.1cpp.ru/forum/YaBB.pl?num=1173766505/4#4
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #80 - 11. Апреля 2007 :: 06:17
Печать  
Обнаружился еще один баг при использовании Перехватчике.
Но это системный баг, т.к. он связан с примененным механизмом перехвата методов 1С, т.е. я пока даже не представляю как его обойти Печаль

Например, если при двойном щелчке на печатной форме в ячейке с расшифровкой работает код по открытию какой-то новой формы (ОткрытьФорму), в этом случае не будет вызван перехват событий 1С.
Это относится ко всем типовым отчетам, в которых есть кнопка Настройка - для формы, открытой путем ее нажатия, перехват не вызываетс я.

Связано это с тем, что при обработке нажатия на ячейку таблицы управление передается перехватчику, который возвращает управление 1С, восстанавливая код перехваченной функции CBLModule7::ExecProc. Эта исходная функция 1С вызывает код 1С по обработке расшифровки, который в свою очередь и вызывает ОткрытьФорму. При открытии формы 1С вызывает указанную функцию CBLModule7::ExecProc, перехват на которую не установлен Печаль и получается труба Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #81 - 11. Апреля 2007 :: 15:08
Печать  
Все-таки удалось найти нормальный выход из положения Улыбка
Цитата:
Выход из ситуации найден такой - из кода 1С видно, что 1С всегда при вызове CBLModule7::ExecProc
вызывает метод CBLModule::IsCompiled
Поэтому перед вызовом исходной CBLModule7::ExecProc (в этот момент перехват этой функции уже снят, без этого никак)
я перехватываю CBLModule::IsCompiled и вызываю исходную CBLModule7::ExecProc
Далее попадаю в свой перехват CBLModule::IsCompiled и восстанавливаю свой же перехват CBLModule7::ExecProc
После этого перехват CBLModule::IsCompiled снимается и все работает как обычно
и вуаля, проблема решена !! УРА Улыбка


C чем нас всех и поздравляю.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #82 - 11. Апреля 2007 :: 15:41
Печать  
Жду когда можно будет попробовать...

ЗЫ.. кстати - про "ПриНачалеВыбораЗначения" не смотрел?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #83 - 12. Апреля 2007 :: 03:07
Печать  
Chieftain писал(а) 11. Апреля 2007 :: 15:41:
ЗЫ.. кстати - про "ПриНачалеВыбораЗначения" не смотрел?

В новой сборке все нормально работает, т.к. указанные тобой баги также относились к указанному мной багу.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #84 - 12. Апреля 2007 :: 06:06
Печать  
artbear писал(а) 12. Апреля 2007 :: 03:07:
Chieftain писал(а) 11. Апреля 2007 :: 15:41:
ЗЫ.. кстати - про "ПриНачалеВыбораЗначения" не смотрел?

В новой сборке все нормально работает, т.к. указанные тобой баги также относились к указанному мной багу.


Ладно, с этим понятно - попробовал последнюю сборку и все вроде заработало!


А в связи с новыми исследованиями не нашлось места для вызова какого-либо метода после компиляции модуля?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #85 - 12. Апреля 2007 :: 06:28
Печать  
Нет, в этом плане нового не нашлось.
Просто в указанной ситуации смог выкрутиться на базе существующего функционала
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #86 - 12. Апреля 2007 :: 06:53
Печать  
Еще один небольшой баг нарисовался
Цитата:
Исправлен баг - при вызове методов "Перехватчик::ВыполнитьОригинальноеСобытие..."
в случае отсутствия обработчика этого события в модуле формы или глобальнике выдавался СтатусВозврата(0)


и был исправлен.

Брать завтра в ночной сборке.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
gavlexx
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 06. Мая 2007
Re: СтатусВозврата в классе "Перехватчик"
Ответ #87 - 06. Мая 2007 :: 21:21
Печать  
Цитата:
Лады, сделаю перехват типа "СобытиеГМ_ВводНового"

А когда можно ждать перехвата события "ВводНового"?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #88 - 07. Мая 2007 :: 04:03
Печать  
Думаю, в ближайшие дни.
Самому его не хватает Улыбка.

ЗЫ и такое впечатление, что данное событие вызывается перед ПриОткрытии почти для любых форм, а не только справочников и документов - например, для отчетов и обработок вызывается точно !!
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #89 - 08. Мая 2007 :: 08:02
Печать  
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #90 - 08. Мая 2007 :: 10:32
Печать  
Круто. А как насчет ВводНаОсновании ведь когда вводишь на основании ВводНового не выполняется вроде?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #91 - 08. Мая 2007 :: 10:39
Печать  
Про ВводНаОсновании просто забыл.
Добавлю.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #92 - 08. Мая 2007 :: 15:45
Печать  
Артур, проверь плиз у себя, что-то у меня лыжи не едут...
В классе перехватчика логакльного контекста делаю метод Поиск(), который вешаю на кнопку на форме документа.
В методе делаю:
Код
Выбрать все
Перем Парам;
ОткрытьФормуМодально("Отчет", Параметр, КаталогИБ() + "Служебное\Справочник.Номенклатура.Поиск.ert");
 


В обработке  Справочник.Номенклатура.Поиск.ert пытаюсь менять Форма.Параметр, а никак...
Код
Выбрать все
Форма.Параметр = "Йо, мегакласс перехватчик";
Сообщить(Форма.Параметр);
 


Выдает пусто.
Но! как только вместо Перем Парам; сделаю Парам = "", то все работает.
Где косяк порылся? Полдня потерял  Смех
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #93 - 10. Мая 2007 :: 13:52
Печать  
Все равно не понял, как и что ты делаешь?
при чем здесь перехватчик Улыбка
Выложи, пожалуйста, тестовый пример.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #94 - 10. Мая 2007 :: 14:47
Печать  
Arta писал(а) 08. Мая 2007 :: 15:45:
В методе делаю:
Код
Выбрать все
Перем Парам;
ОткрытьФормуМодально("Отчет", Параметр, КаталогИБ() + "Служебное\Справочник.Номенклатура.Поиск.ert");
 


Но! как только вместо Перем Парам; сделаю Парам = "", то все работает.
Где косяк порылся? Полдня потерял  Смех

Проанализировал и выяснил, что это баг не 1С++, а баг 1С !

Попробуй на чистой базе без 1С++ сделать подобный вызов, выйдет тоже самое Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #95 - 11. Мая 2007 :: 05:55
Печать  
В ГМ:
Код
Выбрать все
Процедура ПослеСозданияФормы(Конт)
	Попытка
		Док=Конт.ТекущийДокумент();
		Если СокрЛП(Док)<>"""" Тогда //т.е. это не новый документ
			Перехват=СоздатьОбъект("МойПерехватчик");
			Перехват.Инит(Конт);
		КонецЕсли;
	Исключение
	КонецПопытки;
КонецПроцедуры
 



В КОП:
Код
Выбрать все
Процедура Конструктор()
	УН=СоздатьОбъект("УправлениеНастройками");
	УН.Установить("ПерехватитьСобытияГК",1);
	//*
	Инфо=СоздатьОбъект("Информатор");
	Сервис=СоздатьОбъект("Сервис");
	Перехват=СоздатьОбъект("Перехватчик");
КонецПроцедуры

Процедура Инит(Конт) Экспорт
	Перехват.ПерехватитьСобытияГК(Конт,Сам());
КонецПроцедуры                              

Процедура Событие_ПриОткрытии() Экспорт
	Сообщить(1);
КонецПроцедуры

Процедура Событие_ПослеОткрытия() Экспорт
	Сообщить(2);
КонецПроцедуры

Процедура Событие_ПриЗаписи() Экспорт
	Сообщить(3);
КонецПроцедуры

Процедура ПриИзмененииПорядкаСтрок(Действие) Экспорт
	Сообщить("4");
КонецПроцедуры
 



процедуры 1, 2 не отрабатывают, с остальными всё нормально ((((

Конфа с описываемой конфигой прилагается

1спп: Nightly build 2007-05-11
  

6.rar ( 15 KB | Загрузки )
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #96 - 11. Мая 2007 :: 06:14
Печать  
Баг не подтверждаю, у меня все ок.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: СтатусВозврата в классе "Перехватчик"
Ответ #97 - 11. Мая 2007 :: 06:18
Печать  
DionX писал(а) 11. Мая 2007 :: 05:55:
В ГМ:
Код
Выбрать все
Процедура ПослеСозданияФормы(Конт)
	Попытка
		Док=Конт.ТекущийДокумент();
		Если СокрЛП(Док)<>"""" Тогда //т.е. это не новый документ
			Перехват=СоздатьОбъект("МойПерехватчик");
			Перехват.Инит(Конт);
		КонецЕсли;
	Исключение
	КонецПопытки;
КонецПроцедуры
 



В КОП:
Код
Выбрать все
Процедура Конструктор()
	УН=СоздатьОбъект("УправлениеНастройками");
	УН.Установить("ПерехватитьСобытияГК",1);
	//*
	Инфо=СоздатьОбъект("Информатор");
	Сервис=СоздатьОбъект("Сервис");
	Перехват=СоздатьОбъект("Перехватчик");
КонецПроцедуры

Процедура Инит(Конт) Экспорт
	Перехват.ПерехватитьСобытияГК(Конт,Сам());
КонецПроцедуры                              

Процедура Событие_ПриОткрытии() Экспорт
	Сообщить(1);
КонецПроцедуры

Процедура Событие_ПослеОткрытия() Экспорт
	Сообщить(2);
КонецПроцедуры

Процедура Событие_ПриЗаписи() Экспорт
	Сообщить(3);
КонецПроцедуры

Процедура ПриИзмененииПорядкаСтрок(Действие) Экспорт
	Сообщить("4");
КонецПроцедуры
 



процедуры 1, 2 не отрабатывают, с остальными всё нормально ((((

Конфа с описываемой конфигой прилагается

1спп: Nightly build 2007-05-11


Процедура 2 работает нормально
Процедура 1 и не должна работать, т.к. сначала срабатывает "ПриОткрытии" а уж потом "ПослеСозданияФормы"

если я ничего не путаю конечно...
  
Наверх
wwwICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #98 - 11. Мая 2007 :: 06:26
Печать  
я не виноват Смущённый
это всё пятница!

сам вижу, что на тестовой конфиге всё нормально работает! Смех
и что самое страшное, дык это то, что я и на своей рабочей не могу теперь сделать так, чтоб НЕ работало! ))))

спасибо артуру за оказанное содействие в изгнании беса... тьфу-ты... негативного воздействия пятницы.
Хотя, думаю, что изначально всё-таки дело было в более старой длл, а не только в пятнице.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #99 - 11. Мая 2007 :: 06:38
Печать  
Да, ведь у тебя была мартовская сборка середины месяца, а с тех пор я кое-что поправил, особенно перехват событий при работе вместе с ФормЕкс.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #100 - 16. Мая 2007 :: 08:46
Печать  
И всё-таки ещё раз про СтатусВозврата().
Есть КОП в который посредством Перехватчика перенаправляются события документа.
Есть предопределённая процедура ПриИзмененииПорядкаСтрок(Действие).
Нужно при определённых условиях запретить пользователю изменение порядка строк. Можно, наверное, установив СтатусВозврата(0), но что-то не могу допетрить как...
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #101 - 16. Мая 2007 :: 08:57
Печать  
Сделай его функцией и возвращай 0
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #102 - 16. Мая 2007 :: 10:27
Печать  
И еще хорошо бы все-таки доку почитать, там все довольно просто и ИМХО понятно написано Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #103 - 16. Мая 2007 :: 14:49
Печать  
artbear писал(а) 16. Мая 2007 :: 10:27:
И еще хорошо бы все-таки доку почитать, там все довольно просто и ИМХО понятно написано Печаль



Артур, я сам методом научного тыка разобрался.
Ну всегда у нас так, если ничего не помогает, то прочти в конце концов инструкцию Улыбка
Неисправимы мы Улыбка
  
Наверх
 
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #104 - 17. Мая 2007 :: 00:28
Печать  
Arta писал(а) 16. Мая 2007 :: 08:57:
Сделай его функцией и возвращай 0


artbear писал(а) 16. Мая 2007 :: 08:57:
И еще хорошо бы все-таки доку почитать, там все довольно просто и ИМХО понятно написано

Это всё, конечно, замечательно, но разве кто-то отменял правило исконно русского  человека: сделал, подрихтовал молоточком, прочитал инструкцию как нужно было сделать  Смех

спасибо, все замечательно работает Класс
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #105 - 24. Мая 2007 :: 03:15
Печать  
в КОП есть объект Перехватчик, который перехватывает события док-та и перенаправляет их в этот же КОП.
В модуле КОП есть процедура Событие_ПриОкончанииРедактированияСтроки(НовСтр), в модуле формы документа пред. процедуры ПриОкончанииРедактированияСтроки() нету.
Метод Информатора, созданного в другом КОП, МетодСуществует(Конт,"ПриОкончанииРедактированияСтроки") возвращает 0.
Попытка Конт.ПриОкончанииРедактированияСтроки(1); заканчивается ошибкой. Конт - это контекст документа.
Как быть? Как выполнить пред. процедуру, если она не существует в модуле формы документа, но существует в КОП, перехватывающим события этого документа? При этом в заранее не известно, существует ли процедура в модуле формы док-та или нет.

Несколько сумбурно написал, ечли что не понятно - уточняйте ))))
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #106 - 24. Мая 2007 :: 04:43
Печать  
Пока вышел из положения вот так:
Код
Выбрать все
Если Инф.МетодСуществует(Перехват, "Событие_ПриОкончанииРедактированияСтроки")=1 Тогда
	Перехват.Событие_ПриОкончанииРедактированияСтроки(0);
КонецЕсли;
 


Где Перехват - это контекст КОП, в котором осуществляется перехват событий.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #107 - 24. Мая 2007 :: 05:48
Печать  
Для этого нужно прочитать доку и найти там методы Перехватчик::ВыполнитьОригинальноеСобытиеГК
Перехватчик::ВыполнитьОригинальноеСобытиеГМ
которые вызывают метод, если он существует в соответствующем модуле, и ничего не делают, если его нет, и не выдают ошибку при этом!

ЗЫ специально же сделал для обхода ситуации, подобной твоей Улыбка
Информатор здесь не нужен Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #108 - 24. Мая 2007 :: 06:27
Печать  
блин, Артур, нафига ты меня постоянно заставляешь читать доку, я не похож на настоящего камикадзе?  Смех

Спасибо
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #109 - 24. Мая 2007 :: 06:31
Печать  
хотя, это, наверное, немного не то...
мне нужно выполнить, если есть, событие описанное в КОП перехватчика и только если его там нет, то выполнить собитие описанное в форме док-та... опять же если оно там есть. И всё это из модуля другого, стороннего КОП (не того, в котором осуществляется перехват событий).
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #110 - 24. Мая 2007 :: 06:36
Печать  
DionX писал(а) 24. Мая 2007 :: 06:31:
хотя, это, наверное, немного не то...
мне нужно выполнить, если есть, событие описанное в КОП перехватчика и только если его там нет, то выполнить собитие описанное в форме док-та... опять же если оно там есть. И всё это из модуля другого, стороннего КОП (не того, в котором осуществляется перехват событий).

Не понял, давай как-то подробнее, ИМХО странного хочешь Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #111 - 24. Мая 2007 :: 06:37
Печать  
Если все-таки хочешь именно этого, тогда только информатор с проверкой по соответствующим методам модуля формы и модуля КОП
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #112 - 30. Мая 2007 :: 06:28
Печать  
To artbear

Есть вопрос: можешь сделать, чтобы перехватчик для форм работал не только с предопределенными процедурами, но и с теми, которые определил программист?
Хотелось бы видеть следующее:

На форме есть реквизит "Фирма" у которого прописана формула "ПриВыбореФирмы"
В модуле формы и перехватчике есть процедура "ПриВыбореФирмы"
При выборе значения вызывается процедура ТОЛЬКО из класса
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #113 - 30. Мая 2007 :: 07:29
Печать  
Не понял - в классе-перехватчике вызывается не предопределенная "ПриВыбореЗначения", а пользовательская "ПриВыбореФирмы" ?
Неужели и такой перехват возможен? Удивил ты меня Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #114 - 30. Мая 2007 :: 07:30
Печать  
artbear писал(а) 30. Мая 2007 :: 07:29:
Не понял - в классе-перехватчике вызывается не предопределенная "ПриВыбореЗначения", а пользовательская "ПриВыбореФирмы" ?
Неужели и такой перехват возможен? Удивил ты меня Улыбка


Хочется перехват процедуры, вызываемой из реквизита
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #115 - 30. Мая 2007 :: 07:33
Печать  
artbear писал(а) 30. Мая 2007 :: 07:29:
Неужели и такой перехват возможен? Удивил ты меня Улыбка


Я вообще-то считал, что "CBLModule7::ExecProc" вызывается при вызове любой процедуры/функции
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #116 - 30. Мая 2007 :: 10:27
Печать  
Chieftain писал(а) 30. Мая 2007 :: 07:33:
artbear писал(а) 30. Мая 2007 :: 07:29:
Неужели и такой перехват возможен? Удивил ты меня Улыбка


Я вообще-то считал, что "CBLModule7::ExecProc" вызывается при вызове любой процедуры/функции

нет, только при вызове обработчиков предопределенных процедур.

Кстати, я пока не знаю, каким образом происходит вызов функции из атрибута Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #117 - 30. Мая 2007 :: 10:29
Печать  
Это плохо Печаль
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #118 - 30. Мая 2007 :: 11:19
Печать  
Точнее так - я знаю, какой внутренний метод вызывается для исполнения формулы атрибута - это CBLModule7::TryEvalExpr.
Но данному методу передается вся строка формулы/выражения.
Поэтому, если в формуле стоит не простое "ПриВыбореФирмы", а что-то более сложное типа "А =0; ПриВыбореФирмы()", то уже нельзя без разбора выражения определить, какую функцию-обработчик нужно вызывать.

Хотя простой вариант обработать не сложно Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #119 - 30. Мая 2007 :: 11:21
Печать  
artbear писал(а) 30. Мая 2007 :: 11:19:
Точнее так - я знаю, какой внутренний метод вызывается для исполнения формулы атрибута - это CBLModule7::TryEvalExpr.
Но данному методу передается вся строка формулы/выражения.
Поэтому, если в формуле стоит не простое "ПриВыбореФирмы", а что-то более сложное типа "А =0; ПриВыбореФирмы()", то уже нельзя без разбора выражения определить, какую функцию-обработчик нужно вызывать.

Хотя простой вариант обработать не сложно Улыбка


Сделаешь хотя бы такой перехват?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #120 - 30. Мая 2007 :: 12:06
Печать  
Сделать-то можно.
Но будет работать перехват только для формул атрибутов типа "ПриВыбореФирмы",
а если внутри модуля в коде вручную будет вызываться метод "ПриВыбореФирмы", перехвата НЕ будет Печаль
Т..е. налицо неоднозначность, и соответственно возможна путаница.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #121 - 30. Мая 2007 :: 12:13
Печать  
artbear писал(а) 30. Мая 2007 :: 12:06:
Сделать-то можно.
Но будет работать перехват только для формул атрибутов типа "ПриВыбореФирмы",
а если внутри модуля в коде вручную будет вызываться метод "ПриВыбореФирмы", перехвата НЕ будет Печаль
Т..е. налицо неоднозначность, и соответственно возможна путаница.


Это да...
Я вот поковырялся малость - может и не стоит с этим заморачиваться.
Сейчас в перехватчике обрабатываю "ПриНачалеВыбораЗначения", а там разбираю тип элемента диалога и подменяю выбор...
Остается только вопрос с вызовом формулы реквизита...

А мысль с перехватом пользовательских функций (не из формулы элементов диалога) по ходу нереальная
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #122 - 12. Июня 2007 :: 11:13
Печать  
artbear писал(а) 30. Мая 2007 :: 11:19:
Точнее так - я знаю, какой внутренний метод вызывается для исполнения формулы атрибута - это CBLModule7::TryEvalExpr.
Но данному методу передается вся строка формулы/выражения.
Поэтому, если в формуле стоит не простое "ПриВыбореФирмы", а что-то более сложное типа "А =0; ПриВыбореФирмы()", то уже нельзя без разбора выражения определить, какую функцию-обработчик нужно вызывать.

Хотя простой вариант обработать не сложно Улыбка



Занимался два дня полным рефакторингом своей базы на основании Перехватчика. От результата получил множественные продолжительные оргазмы  Смех

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



Может есть и проще варианты?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #123 - 17. Июня 2007 :: 02:24
Печать  
artbear писал(а) 07. Мая 2007 :: 04:03:
ЗЫ и такое впечатление, что данное событие вызывается перед ПриОткрытии почти для любых форм, а не только справочников и документов - например, для отчетов и обработок вызывается точно !!


Кхмм.. Артур, о том, что у обработок есть ВводНового в синтакс-помощнике написано Улыбка




P.S. ПриВыбореЗакладки перехватчик должен ловить? У меня не работает  Печаль вопрос снят, запутался в модулях и пытался поймать в перехваченном глобальнике.
« Последняя редакция: 17. Июня 2007 :: 16:08 - Arta »  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #124 - 13. Июля 2012 :: 15:40
Печать  
Подскажите, пожалуйста, как при перехвате события FormEx-а "ПриЗагрузкеВнешнегоОтчета" управлять статусом возврата?

Функцией не работает
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: СтатусВозврата в классе "Перехватчик"
Ответ #125 - 13. Июля 2012 :: 15:53
Печать  
Разве что в ПриОткрытии проверить на ТипОбъекта и там "зарубить" открытие отчета
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: СтатусВозврата в классе "Перехватчик"
Ответ #126 - 13. Июля 2012 :: 16:01
Печать  
тогда уж проще не перехватывать вообще.
В самом собитии, расположенном в глобальном модуле, статус возврата работает
Хоть бери и от перехвата формекса отказывайся
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать