Использование справочника "Условия маршрутизации" для бизнес-событий в 1С Документооборот.

28.10.19

Функциональные - Документооборот и делопроизводство (СЭД)

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

1. Условие задачи.

Допустим нужно решить такую задачу:

Есть вид документа "Заявление на отпуск". У данного вида документа есть два дополнительных реквизита:

 

При изменении внутреннего документа необходимо проверять выполнение условия: Дополнительный реквизит = "Отправить уведомление на почту И Дополнительный реквизит 2 = "1" И Подразделение = "_Тестовое подразделение" И Подготовил = "Администратор". Если данное условие выполняется, тогда необходимо отправить уведомление по email. Для решения данной задачи отлично подойдет типовой вид бизнес-события "Изменение внутреннего документа". Его и будем использовать для данного примера.

2. Решение.

Задачу будем решать через дополнительный обработчик типового вида события "Изменение внутреннего документа", но для начала создадим условие маршрутизации, которое будет проверять значения реквизитов. 

Условия маршрутизации находятся в подсистеме  "Управление процессами":

Создадим новое условие в конструкторе:

Теперь создадим дополнительный обработчик бизнес-события. Создать дополнительный обработчик события можно из видов событий. Виды событий находятся в подсистеме "Настройка и администрирование":

Найдем вид события "Изменение внутреннего документа" и создадим новый дополнительный обработчик:

 
 Код дополнительного обработчика

 

//Событие.Источник - источник возникновения события, в нашей ситуации внутренний документ.

//Проверка значения дополнительного реквизита.

УсловиеМаршрутизации = Справочники.УсловияМаршрутизации.НайтиПоНаименованию("Условие маршрутизации",
Истина);

ОтправитьУведомление = РаботаСУсловиямиМаршрутизации.ПроверитьПрименимостьУсловияМаршрутизацииКОбъекту(Событие.Источник,
УсловиеМаршрутизации);

Если ОтправитьУведомление Тогда
		
	Кому = "for1ctests2@yandex.ru";
	Тема = "Обработчик бизнес-события" + " " + ТекущаяДата();
	Тело = "Текст письма.";
		
	ПараметрыОтправки = Новый Структура("Кому,Тема,Тело",
	Кому,Тема,Тело);
		
	РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты,
	ПараметрыОтправки);
		
КонецЕсли;

 

В системе есть типовая функция "ПроверитьПрименимостьУсловияМаршрутизацииКОбъекту", которая проверяет условие маршрутизации (если условие выполняется, функция возвращает значение "Истина", иначе "Ложь"). В нашей ситуации типовыми средствами в 1 строчку кода можно выполнить проверку данного условия. Таким образом задача решена.

Данный пример выполнялся в конфигурации 1С Документооборот 8 КОРП, редакция 2.1 (2.1.14.4).

документооборот бизнес события условия маршрутизации

См. также

Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    109871    135    5    

105

Бизнес-аналитик Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

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

83000 руб.

19.02.2016    83296    113    0    

112

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

110400 руб.

11.06.2015    58390    36    20    

45

SALE! 30%

Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    31968    40    49    

73

ЭДО и ОФД Учет документов Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам.

14880 руб.

17.12.2018    46569    69    63    

80

Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Расширение для печати договоров с приложением из шаблонов. Быстрая подготовка заполненных договоров без ручного заполнения. Возможность использования дополнительных реквизитов контрагентов и номенклатуры Быстрое сохранение файлов договоров и отправка по электронной почте. Решение в Реестре отечественного ПО.

15000 руб.

20.04.2016    63726    189    107    

103
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vashkostya 39 28.10.19 15:46 Сейчас в теме
Блин, это законно вообще.)
Автору спасибо за решение.
ivangrant; +1 Ответить
2. Vasvas05 27 04.03.20 19:17 Сейчас в теме
3. Kologriv 19.03.20 09:23 Сейчас в теме
Добрый день. А как программно выцепить почту из внутреннего документа?
Кому = (e-mail контактного лица контрагента, который заведен во внутреннем документе)
4. pro96inf 600 19.03.20 11:30 Сейчас в теме
(3) Если один контрагент, то можно попробовать вот так:
АдресПочты = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформацииОбъекта(Документ.КонтактноеЛицо,
Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица,,
ТекущаяДата());
Если контрагентов несколько, тогда все можно выбрать 1 запросом.
5. ImHunter 333 19.03.20 14:59 Сейчас в теме
Ага, тоже используем такое решение.
Еще бы как-то красиво уйти от хардкода:
УсловиеМаршрутизации = Справочники.УсловияМаршрутизации.НайтиПоНаименованию("Условие маршрутизации",
Истина);

Мы у себя такое сделали через дополнительные объекты метаданных (справочник и РС). Но мне это не очень нравится.
6. pro96inf 600 19.03.20 15:15 Сейчас в теме
(5)У меня тоже сделано через доп. объекты метаданных. Это нормальное решение, по моему мнению. В расширении http://infostart.msk.ru/public/1182517/ даже отдельное видео этой теме посвящено. Функция "Локальные константы" называется. Вот у меня очень похоже реализовано.
Оставьте свое сообщение