Home » Уроки по 1С 8.3 » 1Cv8: Урок 14 — Подписка на события
google




1Cv8: Урок 14 — Подписка на события

Подписка на события позволяет избежать дублирования кода в случае необходимости изменить поведение большого количества объектов.

Платформа 1С 8 позволяет осуществить подписку на большое количество событий. В этом уроке рассмотрим некоторые из них.

В предыдущих уроках был добавлен общий реквизит Автор, доступный в ряде объектов метаданных. Заполнение реквизита делалось правкой модуля объекта, обработка события ПередЗаписью. В этом уроке реализуем заполнение Автора при помощи подписки на событие, при этом добавим Автора для всех Справочников и Документов. Устанавливать признак использования общего реквизита для всех справочников и документов придется вручную, в текущей версии нет возможности быстро установить значение для какого-либо вида метаданных (версия платформы 8.3.7.1776).

les-com-atrr-all-ref-doc

Удалим из Модулей объектов заполнение автора (Справочники: Номенклатура, Физические лица, Юридические лица; Документы: ПоступлениеТМЦ, ВыбытиеТМЦ)

Создадим подписку на событие «ПередЗаписью»: Метаданные\Общие\Подписки — добавить. Поставим галку на СправочникОбъект (иначе говоря обрабатывать все справочники). Зададим имя подписки: СправочникиПередЗаписью, выберем событие: ПередЗаписью.

Обработчик — Метод в общем модуле выполняемый при наступлении события. Общий модуль это объект позволяющий хранить процедуры и функции доступ к которым возможен из одного или нескольких мест, различных объектов метаданных, например функция пересчета из одной валюты в другую.

Создадим общий модуль: Метаданные\Общие\Общие модули\Добавить — Имя: ПодпискаПередЗаписью. Оставляем галочку только на «Сервер». Общие модули, возможные варианты опций отдельная тема.

Возвращаемся в редактор Подписки. Нажимаем Обработчик, выбираем предложенный вариант, жмем Ок.

les-subscrib-before-post-2

Корректируем процедуру следующим образом:

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

les-subscrib-res

Таким же образом создадим подписку для документов:

  • Общие\Подписки\Добавить
  • Имя: ДокументыПередЗаписью;
  • Источник: ДокументОбъект;
  • Событие: ПередЗаписью;

В итоге общий модуль «ПодпискаПередЗаписью» принимает вид

Подписка на открытие форм

  • Создадим подписку на перехват открытия формы объекта.
  • Создадим новый общий модуль: ПодпискаРаботаСФормами (чтобы логически разделить от событий ПередЗаписью). Оставим галку только на «Сервер».
  • Создадим Общую форму: Метаданные\Общие\Общие формы — Добавить
    • Тип: Произвольная форма
    • Имя: ФормаЭлементаВалюты
  • На форме добавим реквизит «Объект», Тип: СправочникОбъект.Валюты, Установим галку Основной реквизит.
  • Вынесем на форму реквизиты: Код, Наименование.
  • Создадим подписку «ПолучениеФормы»
    • Источник: СправочникМенеджер;
    • Событие: ОбработкаПолученияФормы;
    • Обработчик: ПодпискаРаботаСФормами;

Корректируем модуль перехвата:

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

Сохраняем конфигурацию, входим в режим 1С Предприятие, открываем элемент справочника валюты, меняем название, «Сохранить и закрыть», получаем:

les-subcrib-open-form

Видео по текущему уроку:

Скачать урок


Posted on by Ушаков Сергей
Categories: Уроки по 1С 8.3 Метки: ,,



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

Войти с помощью: 

Социальные сети


Я в Twitter
Яндекс.Поиск
Поиск обычный
Счетчики
Рейтинг@Mail.ru Яндекс.Метрика