6. Объектная модель прикладного решения
#49

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

В конфигураторе 1С при создании «Подписки на события», если в источниках событий выбрано несколько разных объектов, по какому правилу формируется список доступных событий в поле «Событие»?

В список попадают только те события, у которых у всех выбранных объектов совпадает количество параметров.
Неправильно: Платформа не сравнивает события по числу параметров при формировании списка - из-за этого событие может быть доступно даже если состав параметров в разных объектах отличается. Проверка «по параметрам» не является критерием появления события в выпадающем списке.
В список попадают только те события, которые имеют одинаковое имя и присутствуют у всех выбранных объектов.
Правильно: Выпадающий список формируется как пересечение событий по названию: показываются только события, которые есть у каждого из выбранных источников. Если общих по имени событий нет, список будет пустым.
Должны выполняться оба условия: совпадает и имя события, и количество его параметров у всех выбранных объектов.
Неправильно: Для появления события в списке достаточно, чтобы событие с таким именем существовало у всех выбранных объектов. Совпадение количества параметров не является обязательным условием, поэтому требование «оба условия» завышено.

Пояснение

В объектной модели 1С «Подписка на события» позволяет назначить один обработчик на событие одного объекта или группы объектов (например, на событие «ПередЗаписью» для нескольких документов). Когда в подписке выбран не один источник, а несколько, платформа должна показать только то, что гарантированно можно выбрать для всех одновременно. Поэтому правило простое: список событий в поле «Событие» строится по совпадению **имени события** и факту его наличия у каждого выбранного объекта. То есть это пересечение по названиям: если у одного объекта событие есть, а у другого нет - в списке его не будет. Если общих событий не нашлось, выпадающий список окажется пустым, и придется либо изменить набор источников, либо выбрать другой тип/группу объектов. Важно про параметры обработчика: - В подписках обработчик обычно описывается процедурой в общем модуле, и первый параметр часто используется как «источник события» (объект, на котором сработало событие). - Дальше могут идти параметры, связанные с конкретным событием. При этом для разных объектов одноименное событие может иметь различающийся набор параметров, поэтому в обработчике часто пишут универсальный код: проверяют тип источника, нужные реквизиты и выполняют общую логику. Мини-пример сценария: - Нужно для нескольких документов контролировать заполнение поля перед записью. В подписке выбирают несколько документов как источники и в событиях выбирают «ПередЗаписью» (если оно есть у всех выбранных документов). В обработчике по типу источника (документ такого-то вида) применяют соответствующие проверки и сообщения пользователю.