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

14.11.19

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

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

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

Писалось на конфе: Документооборот 8 КОРП, редакция 2.1 (2.1.14.4), платформа 8.3.13.1690

При закрытии основной задачи все порождённые вопросы закрываются автоматически.

Автору процесса вопросы не приходят.

 
Текст обработчика:
//УведомлениеПараллельныхИсполнителей
//Подписка: Задача выполнена

Задача			= Событие.Источник;
БПроцесс		= Задача.БизнесПроцесс;
ТекШаг			= 0;
врИсполнителиСтрокой= "";
	
Если ЗначениеЗаполнено(Задача) И ТипЗнч(БПроцесс) = Тип("БизнесПроцессСсылка.Исполнение") Тогда
	//При выполнении задачи закрыть все вопросы
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	ЗадачаИсполнителя.Ссылка КАК Ссылка
	|ИЗ
	|	БизнесПроцесс.РешениеВопросовВыполненияЗадач КАК РешениеВопросовВыполненияЗадач
	|		ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
	|		ПО (ЗадачаИсполнителя.БизнесПроцесс = РешениеВопросовВыполненияЗадач.Ссылка)
	|ГДЕ
	|	РешениеВопросовВыполненияЗадач.ПредметРассмотрения = &ПредметРассмотрения
	|	И РешениеВопросовВыполненияЗадач.Наименование ПОДОБНО ""Рассмотрение вопроса: Выполнена смежная задача:%""
	|	И ЗадачаИсполнителя.Выполнена = ЛОЖЬ");
	Запрос.УстановитьПараметр("ПредметРассмотрения", Задача);
	НайтиВопросы = Запрос.Выполнить().Выбрать();
	Пока НайтиВопросы.Следующий() Цикл
		ТекЗадача = НайтиВопросы.Ссылка.ПолучитьОбъект();
		ТекЗадача.РезультатВыполнения = "#АВТО: Выполнение задачи: "+СокрЛП(Задача);
		ТекЗадача.ВыполнитьЗадачу();
	КонецЦикла;
	
	// Расчитать шаги выполнения
	ИсполнителиДляУведомления =	БПроцесс.Исполнители.Выгрузить();
	ИсполнителиДляУведомления.Колонки.Добавить("Шаг");
	РаботаСБизнесПроцессамиКлиентСервер.ЗаполнитьШаг(ИсполнителиДляУведомления);
	
	// Определить текущий шаг по задаче
	НайтиТекШаг = ИсполнителиДляУведомления.Найти(Задача,"ЗадачаИсполнителя");
	Если НайтиТекШаг <> Неопределено Тогда
		ТекШаг = НайтиТекШаг.Шаг; 
	КонецЕсли;
	
	//Удалить строки лишних шагов, у кого задача выполнена и текущего исполнителя
	//Если в шаге больше одной строки то это параллельное исполнение
	Сч = 0;
	Пока Сч < ИсполнителиДляУведомления.Количество() Цикл
		Если ИсполнителиДляУведомления[Сч].Шаг <> ТекШаг Тогда
			ИсполнителиДляУведомления.Удалить(Сч);
		ИначеЕсли ИсполнителиДляУведомления[Сч].Исполнитель = Задача.Исполнитель
			ИЛИ   ИсполнителиДляУведомления[Сч].Исполнитель = БПроцесс.Автор Тогда
			ИсполнителиДляУведомления.Удалить(Сч);
		ИначеЕсли НЕ ЗначениеЗаполнено(ИсполнителиДляУведомления[Сч].ЗадачаИсполнителя) Тогда
			ИсполнителиДляУведомления.Удалить(Сч);
		ИначеЕсли ИсполнителиДляУведомления[Сч].ЗадачаИсполнителя.Выполнена Тогда
			ИсполнителиДляУведомления.Удалить(Сч);
		Иначе
			Сч = Сч + 1;		
		КонецЕсли;
	КонецЦикла;

	//Создаем вопросы(уведомления)
	Для каждого ТекИсполн из ИсполнителиДляУведомления Цикл
		//Соберём список оставшихся исполнителей
		трИсполнителиСтрокой = "";
		Для каждого врТекИсполн из ИсполнителиДляУведомления Цикл
			Если НЕ врТекИсполн.Исполнитель = ТекИсполн.Исполнитель Тогда
				трИсполнителиСтрокой = трИсполнителиСтрокой+Символы.ПС+врТекИсполн.Исполнитель;
			КонецЕсли;
		КонецЦикла;
		НовыйВопрос = БизнесПроцессы.РешениеВопросовВыполненияЗадач.СоздатьБизнесПроцесс();
		НовыйВопрос.ВидВопроса		= Перечисления.ВидыВопросовВыполненияЗадач.Иное;
		НовыйВопрос.Описание		= "Выполнена смежная задача: "+СокрЛП(Задача)+
				?(СтрДлина(трИсполнителиСтрокой)>0, Символы.ПС+"Исполнители кроме Вас: "+трИсполнителиСтрокой, "");
		НовыйВопрос.ПредметРассмотрения	= ТекИсполн.ЗадачаИсполнителя;
		НовыйВопрос.ГлавнаяЗадача	= ТекИсполн.ЗадачаИсполнителя;
		НовыйВопрос.Дата			= ТекущаяДатаСеанса();
		НовыйВопрос.СрокИсполнения	= ТекущаяДатаСеанса();
		НовыйВопрос.Автор			= БПроцесс.Автор;		//От кого
		НовыйВопрос.ИнициаторПроцесса= ТекИсполн.Исполнитель;//Кому
		НовыйВопрос.Записать();
		НовыйВопрос.Старт();
		//Создать связь с основным процессом
		ЗаписьДБПроцессы = РегистрыСведений.ДочерниеБизнесПроцессы.СоздатьМенеджерЗаписи();
		ЗаписьДБПроцессы.РодительскийПроцесс= БПроцесс;
		ЗаписьДБПроцессы.СвязующаяЗадача	= ТекИсполн.ЗадачаИсполнителя;
		ЗаписьДБПроцессы.ДочернийПроцесс	= НовыйВопрос.Ссылка;
		ЗаписьДБПроцессы.Записать();
		врИсполнителиСтрокой = врИсполнителиСтрокой +Символы.ПС+ ТекИсполн.Исполнитель;
	КонецЦикла;
КонецЕсли;

//Записываем результат в ЖР
Если СтрДлина(врИсполнителиСтрокой)>0 Тогда		
	ЗаписьЖурналаРегистрации("ТМ.Уведомление параллельных исполнителей",
		УровеньЖурналаРегистрации.Информация,Задача.Метаданные(),Задача.Ссылка,
		"Автор процесса: "			+СокрЛП(БПроцесс.Автор)+Символы.ПС+
		"Выполнил(а) задачу: "		+СокрЛП(Задача.Исполнитель)+Символы.ПС+
		"Задача: "					+СокрЛП(Задача)+Символы.ПС+
		"Отправлен(ы) вопрос(ы): "	+врИсполнителиСтрокой);
КонецЕсли;

 

 

 
И ещё один обработчик, для автоматического закрытия ознакомлений:
//АвтоЗакрытиеОзнакомленияСОтветомНаВопросВыполненаСмежнаяЗадача
//Подписка: Создание задачи

Задача	= Событие.Источник;
Если ВРег(Лев(Задача.Наименование, 59)) = "ОЗНАКОМИТЬСЯ С ОТВЕТОМ НА ВОПРОС: ВЫПОЛНЕНА СМЕЖНАЯ ЗАДАЧА:" Тогда
	ТекущаяЗадача = Задача.ПолучитьОбъект();
	ТекущаяЗадача.ВыполнитьЗадачу();
КонецЕсли;

 

 

Статья про настройку обработчиков Бизнес-событий:

//infostart.ru/public/618153/

UPD 2019/11/14 Добавил связь с основным процессом

Вступайте в нашу телеграмм-группу Инфостарт

Документооборот Бизнес-события бизнес-процесс ВместеСПредыдущим Уведомление Исполнение

См. также

Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 Управленческий учет Платные (руб)

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

55300 руб.

19.02.2016    113703    149    5    

117

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 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С-Совместимо

135530 руб.

11.06.2015    62073    38    20    

48

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    11507    34    15    

41

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

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

15000 руб.

20.04.2016    67574    193    107    

107

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

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

14900 руб.

15.11.2018    41186    48    60    

82

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

5500 руб.

07.02.2023    12359    115    20    

71

Email рассылки Взаиморасчеты Акт сверки Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

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

7930 руб.

12.02.2019    36959    38    24    

31
Для отправки сообщения требуется регистрация/авторизация