Подписки на событие в 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"
В серии "1С:Академия ERP" вышла новая книга "Управленческий учет". Цель книги – ознакомить неподготовленного читателя с современными подходами к обеспечению ...
Предоплата в 2018 году и доплата НДС в 1С:Бухгалтерии  8
В этом видеоуроке эксперты 1С демонстрируют, как в «1С:Бухгалтерии 8» редакции 3.0 отразить операции по НДС 20 % в переходный ...
Куда пропал помощник по учету НДС?
http://1c-bezzabot.ru/nds/ Курс "НДС: от понятия до декларации" Подписаться на рассылку "Учет без забот" и получить подарок https://учетбеззабот.рф/pervye-shagi-v-novoj-programme/main/pervye-shagi-v-novoj-programme/besplatnye-knigi-iz-serii-uchet-bez-zabot ...
Настройка начальной страницы программы 1С:ЗУП ред.3
В программу «1С:Зарплата и управление персоналом 8» начиная с версии 3.1.8 на начальную страницу добавлены новые разделы: «Текущие дела» и ...
1С:Договоры
Обзорная экскурсия по программе "1С:Договоры" ...
23 января приглашаем на вебинар "Повторные продажи в 1С:УНФ"
23 января в 11-00 МСК приглашаем руководителей малого и среднего бизнеса на бесплатный вебинар «Повторные продажи в 1С:УНФ, или Как ...
Выплата командировочных вместе с авансом в 1С:ЗУП ред.3
Работнику, находящемуся в командировке, положен аванс наравне с другими сотрудниками. Рассчитать аванс можно с учетом командировочных. Как это сделать в ...
ФСБ использует искусственный интеллект для анализа настроений в социальных сетях
Группировка Digital Revolution раскрыла информацию о новой разработке НИИ «Квант». Сотрудники института создавали для ФСБ интеллектуальную систему мониторинга общественного мнения ...
Разработчики заменили непристойные выражения в коде Linux на «обнимашки»
Разработчики ядра Linux заменили все непристойные и оскорбительные выражения в комментариях к коду на слово «hugs», что переводится как «объятия» ...
В 2019 году «1С» поддержит малый бизнес вместе со «Сбербанком»
Фирма «1С» продолжает развивать свои решения для малого бизнеса и запускает совместную со «Сбербанком» акцию, где начинающие предприниматели могут бесплатно ...
Для тех, кто устал от монитора – свежий номер Infostart Journal
Подводить итоги года нужно не перед рабочим компьютером, а под домашним торшером в уютном кресле у камина и... с журналом ...
Рекомендуемая форма и формат налоговой декларации по налогу на ДДДУС
ФНС направила рекомендуемые форму и формат налоговой декларации по налогу на ДДДУС Письмо ФНС от 29.12.2018 № СД-4-3/24833@ ...
Утверждена форма реестра счетов-фактур по средним дистиллятам
Утверждена форма реестра счетов-фактур, выставленных налогоплательщику поставщиками средних дистиллятов лицу, имеющему свидетельство о регистрации лица, совершающего операции по переработке средних ...
Утверждена форма реестра счетов-фактур по нефтяному сырью
Утверждена форма реестра счетов-фактур, выставленных налогоплательщику поставщиками нефтяного сырья лицу, имеющему свидетельство о регистрации лица, совершающего операции по переработке нефтяного ...
Рекомендуемая форма и формат налоговой декларации по НДПИ
ФНС направила рекомендуемые форму и формат налоговой декларации по НДПИ Письмо ФНС от 29.12.2018 № СД-4-3/24833@ ...