Подписки на событие в 1С

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

Проанализировав отзывы пользователей, разработчики в восьмерке реализовали новый объект, получивший название «Подписка на событие». В этой статье мы постараемся раскрыть :

  • Настройку подписок;
  • Создание;
  • Особенности функционирования.

Создание новой подписки

Как и любой другой объект метаданных, подписка на событие в 1С добавляется из конфигуратора.

Находится эти элементы в ветке дерева «Общие» (Рис.1).  

Рис.1

Для добавления нового обработчика необходимо:

  1. Активировав левой кнопкой мыши строку «Подписки на события», нажать Insert, либо, кликнув там же правой кнопкой, добавить новый объект;
  2. В появившемся окне (Рис.2) необходимо задать Имя, которое бы максимально точно отражало назначение обработки; ис.2
  3. На этом этапе необходимо выбрать источник, то есть то место, возникновение действия в котором будет служить толчком к началу обработки (следует учитывать, что если установить в этом поле составной тип данных, то в поле «Событие» будут отображаться только события, общие для всех объектов);
  4. В зависимости от выбора источника будет составлен выпадающий список поля «Событие» (понятно, что для элемента справочника не может быть процедуры ПриПроведении, а для менеджера перечислений обработчика ПриЗаписи);
  5. Последним полем для заполнения является поле «Обработчик», где необходимо указать процедуру или функцию в общем модуле, которая будет содержать код, описывающий заданный алгоритм (при этом общий модуль (Рис.3) должен иметь признак «Серверный» ).

Рис.3

Во избежание проблем с обновлением, для собственных разработок лучше всего завести собственный общий модуль,  который будет содержать только Ваши процедуры и функции.

Особенности функционирования подписок

Одним из главных вопросов, возникающих у пользователей начинающих работать с объектом «Подписка на события», является вопрос о порядке вызова процедур. Зачастую именно здесь кроются ошибки, связанные с тем, что процедура не срабатывает или срабатывает через раз.

На примере процедуры ПриЗаписи()  для любого документа можно увидеть порядок вызова обработчиков.

Так, если в модуле объекта документ, существует эта процедура и параллельно с ней существует обработка, вызываемая из подписки и обрабатывающая то же самое событие, в первую очередь будет отработан модуль документа. Если в ходе выполнения ПриЗаписи() в модуле документа, параметр Отказ по каким-либо причинам примет значение Истина, подписка гарантировано не сработает.

В случае, когда существует несколько объектов-подписок, одинаковых для одного источника и одного события, отследить порядок выполнения очень сложно. И, если в ходе выполнения, хотя бы одного обработчика, будет вызвана исключительная ситуация, часть процедур останется не выполненной.

Таким образом, последовательность обработок можно задать следующей схемой:

  1. Обрабатываются события модуля объекта;
  2. Обрабатываются подписки, связанные непосредственно с текущим типом данных;
  3. Отрабатывается код, привязанный к общему типу.

Очень важно запомнить, что ни в коем случае в процедуры, исполняемые при записи, при проведении нельзя вставлять код, меняющий данные объекта-источника, это может привести к ненужному зацикливанию. Лучше подобный код использовать в процедурах ПередЗаписью.

Обработчик события открытия формы

Возрастающая популярность управляемых форм, используемых в 8 версии программы, а так же проблемы связанные с обновлением этих объектов с сохранением собственных изменений, привели к тому, что, начиная с платформы 8.2.15, в программе появилось событие ОбработкаПолученияФормы. Именно сюда можно вставлять код, изменяющий и заменяющий типовые формы.

Некоторые особенности данного обработчика:

  • Событие не сработает в случае, если в конфигурации открываемая типовая форма прописана строго;
  • Событие может быть реализовано только для управляемых форм;
  • Общий модуль, содержащий этот обработчик должен не только иметь признак «Сервер», но и содержать установленный флажок в поле «Вызов сервера».

Важно учитывать, что эта подписка вызывается не для конкретного объекта, а для его менеджера, то есть поле источник должно содержать это слово (Рис.4)

Рис.4

Подводя итог вышесказанному, хочется сказать, что «Подписка на событие» крайне полезный и нужный для разработчика инструмент, позволяющий без серьезных вмешательств в конфигурацию реализовывать собственные цели и задачи.


Добавить комментарий

Ваш e-mail не будет опубликован.

*

code


1С:ERP Урок 7. Номенклатура
Седьмой видеоурок вводного курса по прикладному решению «1С:ERP Управление предприятием». Это завершающий урок по нормативно-справочной информации. Сегодня рассмотрим справочники «Номенклатура» ...
VII семинар по 1С:ERP. Репортаж с места события.
9-12 апреля состоялся очередной ежегодный семинар по 1С:ERP. В мероприятии приняли участие специалисты организаций - пользователей "1С:ERP", ведущие аналитики партнеров ...
Новые возможности 1С:Бухгалтерии 8. Обзор апрель 2019
Раз в месяц эксперты «1С» рассказывают слушателям 1С:Лектория о всех нововведениях в программе «1С:Бухгалтерия 8» редакции 3.0. Из видеоролика вы ...
Отражение в бухотчетности процентов по долгосрочному займу в 1СБухгалтерии 8
В этом видеоуроке эксперты 1С рассказывают, почему при автоматическом заполнении бухгалтерского баланса в «1С:Бухгалтерии 8» (ред. 3.0) проценты по долгосрочному ...
Регистрация личного вычета сотрудника по НДФЛ в 1С:ЗУП ред.3
Налоговым кодексом предусмотрены вычеты по НДФЛ для налогоплательщиков. В этом видеоуроке эксперты 1С демонстрируют, как в программе «1С:Зарплата и управление ...
Урок 29. Нормативная методология. Требования к структуре и содержанию
Видеоурок №29 «Нормативная методология. Требования к структуре и содержанию регламентирующих документов. Сопровождение регламентирующих документов». Руководитель направления консалтинга в управлении документами ...
Урок 14. Регистрация документов. Подписание и утверждение документов.
Видеоурок №14 «Общие принципы обработки документов. Подписание, утверждение и регистрация документов». Эксперт по управлению документацией фирмы «1С» Елена Скрипко расскажет, ...
Урок 30. Регламентация документооборота.
Видеоурок №30 «Нормативная методология. Обязательный пакет документов, регламентирующих документооборот». Руководитель направления консалтинга в управлении документами фирмы «1С» Софья Ульянцева расскажет, ...
Урок 29. Нормативная методология. Требования к структуре и содержанию
Видеоурок №29 «Нормативная методология. Требования к структуре и содержанию регламентирующих документов. Сопровождение регламентирующих документов». Руководитель направления консалтинга в управлении документами ...
Урок 28. Нормативная методология. Правила формирования регламентной базы.
Видеоурок №28 «Нормативная методология. Правила формирования регламентной базы. Методология регламентирующих документов и их сопровождение». Руководитель направления консалтинга в управлении документами ...
Платежный календарь. Новые возможности управления денежными средствами в 1С:УНФ. Вебинар
10 апреля состоялся вебинар «Платежный календарь. Новые возможности управления денежными средствами в 1С:УНФ». Вебинар будет полезен всем, кто хочет организовать ...
Изменение инвентарного номера ОС в 1С:Бухгалтерии 8
При принятии к учету основного средства (ОС)в программе «1С:Бухгалтерия 8» редакции 3.0 инвентарный номер присваивается ОС автоматически и сохраняется на ...
Информационная система 1С:ИТС - выпуск апрель 2019
-Как учесть денежную премию (бонус) от поставщика за объем закупок в "1С:Бухгалтерии 8" (ред. 3.0)? -Как налоговые агенты должны исчислять ...
1С:ERP Урок 6. Виды номенклатуры
Шестой видеоурок вводного курса по прикладному решению «1С:ERP Управление предприятием». Продолжаем рассматривать нормативно-справочную информацию. Работа с номенклатурой будет освещена в ...