Использование справочника "Условия маршрутизации" для бизнес-событий в 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    108566    121    5    

96

SALE! 30%

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

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    107047    313    173    

326

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

Продукт "Апрель Софт: Бухгалтерия позаказного производства, ред. 3.0" предназначен для удобного и оперативного управления процессами производства, отгрузок и снабжения в производственных компаниях. Программный продукт открывает новые функциональные возможности для ведения документооборота.

11400 руб.

18.02.2016    22962    1    1    

5

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

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

14900 руб.

15.11.2018    30287    35    49    

71

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    45669    65    59    

79

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

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

3000 руб.

23.10.2015    63615    113    25    

127

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

Приложение для быстрого создания макетов печатных документов, заполняемых из 1С:Предприятие, без привлечения программистов и запуска конфигуратора. Шаблон готовится в редакторе MS Word, отлично освоенном офисными служащими. Так, на подготовку нового шаблона договора купли продажи со спецификацией потребуется 25 минут. Приложение будет полезно, если Вы работаете со множеством Word-шаблонов или если Вам надо часто создавать новые шаблоны. Есть сертификат "1С: Совместимо!". Версия ПРОФ доступна в виде расширения.

2000 руб.

05.09.2017    92560    66    98    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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. pavelpribytkin96 592 19.03.20 11:30 Сейчас в теме
(3) Если один контрагент, то можно попробовать вот так:
АдресПочты = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформацииОбъекта(Документ.КонтактноеЛицо,
Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица,,
ТекущаяДата());
Если контрагентов несколько, тогда все можно выбрать 1 запросом.
5. ImHunter 327 19.03.20 14:59 Сейчас в теме
Ага, тоже используем такое решение.
Еще бы как-то красиво уйти от хардкода:
УсловиеМаршрутизации = Справочники.УсловияМаршрутизации.НайтиПоНаименованию("Условие маршрутизации",
Истина);

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