Представляю коллегам для обсуждения и пользования расширение Пользовательские события
Описание
В принципе в 1С есть подписка на события, которой в большинстве случаев бывает достаточно. Тем же кому не достаточно - читайте дальше.
Подключив это расширение вы получите:
-
Возможность быстро подключаться в любое место кода добавлением единственной строки;
-
Изменение кода обработчика "на лету" не выходя из клиентского приложения в удобном редакторе с подсветкой кода;
-
Возможность переноса окончательного варианта кода обработчика без изменений в конфигуратор, т.к. код исполняется в контексте модуля где он подключен;
-
Работа как на клиенте, так и на сервере;
Редактор кода взят из публикации Консоль кода для управляемых форм с небольшими переделками.
Расширение тестировалось на конфигурации Управление торговлей 11.5, но работать может с любыми типовыми или самописными конфигурациями, т.к. не требует наличия БСП или каких-либо конкретных объектов в конфигурации.
Расширение работает в режиме совместимости 8.3.17 и выше.
Инструкция по подключению расширения к конфигурации выходит за рамки данной статьи. Отмечу лишь, что оно может работать в безопасном режиме, однако если вы будете подключать собственные события через расширение кода модулей - галочку "Безопасный режим" нужно будет снять.
Пример подключения
Подключение пользовательского события происходит в любом месте кода добавлением одной строки. Для примера, добавим событие ПередКонтролемПроведения в обработку проведения документа ЗаказКлиента.
Т.к. конфигурация у нас на поддержке и изменения запрещены - добавим процедуру обработки проведения в расширение:
Если у вас подключено несколько расширений будет выведен диалог для выбора расширения. Выбирайте расширение События. А затем выбирайте тип вызова Вызывать вместо (с контролем):
В нужное место добавляем вызов события:
#Вставка
Выполнить(СобытияПодключение.Подключить("ПередКонтролемПроведения"));
#КонецВставки
После подключения необходимо зайти в 1С в клиентском режиме и произвести действия вызывающие выполнение кода события (в данном случае провести заказ клиента). При этом новое событие будет добавлено во внутренний справочник "Типы событий".
После этого можно создавать обработчики событий в справочнике Обработчики событий:
В принципе все интересные бонусы, которые предоставляет подобное подключение события видны в примере на картинке. Приоритет - это порядок вызова обработчиков для одного и того же события. Чем меньше значение в поле приоритет, тем раньше будет вызван обработчик. Обработчики с одинаковым приоритетом могут быть вызваны в любом порядке.
Флаг Отключен можно использовать для временного отключения выбранного обработчика.
Во вкладке условия - можно добавить условие при котором обработчик будет выполняться. Это должно быть логическое выражение, как если бы вы писали его в операторе Если.
Табличное поле во вкладке Типы событий задаёт события, при которых срабатывает этот обработчик:
Все изменения в обработчике принимаются сразу после нажатия кнопки Записать или Записать и закрыть, для всех пользователей. Перезагрузка клиента 1С не требуется.