Подписки на события - это общие объекты конфигурации, которые позволяют запускать в общих модулях обработчики событий, возникающих в модулях объектов или модулях менеджеров прикладных объектов конфигурации. То есть, через механизм подписок можно запрограммировать некое действие, не трогая самого модуля объекта и не снимая его с поддержки.
Подписки на событие располагаются в ветке Общие дерева конфигурации. В свойствах подписки, указывается объект, на события которого подписывается, и собственно событие:
Подписки на событие располагаются в ветке Общие дерева конфигурации. В свойствах подписки, указывается объект, на события которого подписывается, и собственно событие:
и указывается обработчик этого события из общего модуля:
Как источники событий для подписки, доступны модули объектов и модули менеджеров объектов. На события формы подписаться нельзя.
Алгоритм отрабатывания подписок на событие следующий:
- Исполняется процедура из обработчика в модуле объекта / модуле менеджера; если значение параметра Отказ становится истинным, то обработка прерывается
- Исполняется процедура обработчика событий из общего модуля; если значение параметра Отказ становится истинным, то обработка прерывается
***
Вопрос 06.39 экзамена 1С:Профессионал по платформе. При определении подписки на событие процедура - обработчик должна располагаться:
- в глобальном общем модуле
- в не глобальном общем модуле
- в модуле приложения
- в модуле объекта
Правильный ответ второй. Глобальные общие модули компилируются в момент старта системы; это не нужно в случае подписок.
***
Вопрос 06.45 экзамена 1С:Профессионал по платформе. При определении подписки на событие количество таких подписок:
- Только одна
- Любое количество, процедуры обработчики должны обязательно располагаться в разных общих неглобальных модулях
- Любое количество, процедуры обработчики могут располагаться как в одном, так и в разных общих неглобальных модулях
Правильный ответ третий. Можно вообще один неглобальный модуль выделить под все подписки.
***
Вопрос 06.46 экзамена 1С:Профессионал по платформе. При определении на одно событие объекта 1С:Предприятие нескольких подписок на событие, порядок вызова обработчиков следующий:
- вызывается процедура подписки на событие, определенная последней, остальные не вызываются
- вызывается процедура подписки на событие, определенная первой, остальные не вызываются
- процедуры вызываются в соответствии с порядком создания подписок на событие
- процедуры вызываются в произвольном порядке
Правильный ответ четвертый - исполняются все подписки, причем порядок их создания точно неважен.
***
Вопрос 06.47 экзамена 1С:Профессионал по платформе. При определении подписки на событие, в случае если в модуле объекта определен соответствующий обработчик этого же события:
- процедура подписки на событие вызываться не будет (событие отрабатывается в модуле объекта)
- процедура модуля объекта вызываться не будет (событие отрабатывается по подписке)
- в начале отработает процедура, расположенная в модуле объекта, затем процедура, определенная по подписке
- в начале отработает процедура, определенная по подписке, затем процедура, расположенная в модуле объекта
Правильный ответ третий, разбор в тексте.
***
Вопрос 06.48 экзамена 1С:Профессионал по платформе. Подписка на событие может быть определена:
- только для одного объекта
- для разных объектов, но только одного вида (например, для нескольких справочников или для нескольких документов)
- для разных объектов
Правильный ответ третий, источники могут быть различными.
***
Вопрос 06.49 экзамена 1С:Профессионал по платформе. При определении подписки на событие для разных объектов перечень показываемых событий формируется по принципу:
- должно совпадать количество параметров события
- должно совпадать имя события
- должны выполняться оба вышеприведенных требования
Правильный ответ третий. Соответствие числа параметров события и обработчика проверяется в принципе; если же одним обработчиком обрабатываются сращу несколько событий, то и наименование должно совпадать.
***
Вопрос 06.50 экзамена 1С:Профессионал по платформе. Процедура, используемая подпиской на событие, должна располагаться в модуле с установленными (взведенными) флажками:
- Клиент
- Сервер
- Внешнее соединение
- обязательно Клиент и Сервер
- обязательно Клиент, Сервер и Внешнее соединение
- определяется разработчиком исходя из практической задачи
Правильный ответ пятый. Модуль должен быть доступен отовсюду.
В 6.50 правильный ответ должен быть "Сервер", по крайней мере, только так это работает (8.3.8.1933).
ОтветитьУдалитьПодтверждаю. 1С:Предприятие 8.3 (8.3.12.1616). Обязателен только флаг Сервер, другие без разницы, хоть сняты, хоть установлены.
УдалитьЭто неверно, что обязателен только флаг Сервер. Без галки "Внешнее соединение" COM-подключение к базе будет глючить "...Обработчик события не найден." Поэтому галка "Внешнее соединение" нужна.
ОтветитьУдалитьСкопировано из справки 1с 8.3.4.389:
Удалитьу общего модуля, в котором расположена процедура, должны быть заданы следующие свойства:
флаг Глобальный - сброшен;
флаг Сервер - установлен;
остальные флажки Клиент (управляемое приложение), Клиент (обычное приложение), Внешнее соединение - не влияют на подписку (наличие нужного модуля в нужном соединении/клиенте системой не проверяется!);
С точки зрения "чтобы система дала сохранить конфигурацию и обновить БД" - действительно, достаточно лишь "Сервер". Однако при работе с базой через внешнее соединение (например, обмен из другой базы по com-соединению) - будет ошибка, как указал Master. А еще есть толстый клиент, в котором подписки тоже выполняются.
УдалитьВ общем, все три флага есть в статье https://its.1c.ru/db/v8std/content/469/hdoc "Правила создания общих модулей"
опечатка в комментарии к 6.49
ОтветитьУдалить"Правильный ответ третий. Соответствие числа параметров события и обработчика проверяется в принципе; если же одним обработчиком обрабатываются сращу несколько событий, то и наименование должно совпадать."
правильный ответ второй! https://its.1c.ru/db/v8318doc#bookmark:dev:TI000000212
УдалитьТам нет ничего про правильность 2-го варианта...
УдалитьА вот в комменте непонятка - причём тут обработчик? Речь идёт о списке событий, доступных для разных объектов. Например, для спр-ка и док-та в этом списке будет событие ПриЗаписи. А для спр-ка и отчёта список вообще будет пустой..
УдалитьПри определении подписки на событие для разных объектов перечень показываемых событий формируется по принципу:
Удалитьдолжно совпадать количество параметров события
должно совпадать имя события
должны выполняться оба вышеприведенных требования
Ответ - 2.Проверено на 1с тренажере.
6.46
ОтветитьУдалитьСоздал 5 подписок на событие при записи документа.
Жал несколько раз.
Всегда вызывались в порядке создания.
Трудно поверить, что в произвольном порядке.
Наверное на экзамене так.
06.49 правильный вариант номер 2 - должно совпадать имя события
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьПравильный 3. Именно этот пункт говорит о максимальном соответствии между одинаковыми событиями (попавшими в список) у разных объектов, выбранных в поле "Источник".
УдалитьДля отображения дополнительных данных в динамическом списке (например остатки взаиморасчетов в списке партнеров) необходимо использовать обработчик события:
ОтветитьУдалитьПри создании на сервере
При открытии
При получении данных на сервере
Вариант 1 и 3
Вариант 1 или 3
Вариант 1 или 2 или 3
Ответ - 3. Проверено 1с тренажер
Обработчик события, вызываемый системой (в случае его определения) для формирования представления объекта располагается в
ОтветитьУдалитьмодуле приложения
модуле менеджера
модуле объекта
модуле основной формы объекта
на усмотрение разработчика
Ответ - 2. Проверено 1с тренажер