1С:Документооборот. Уведомление параллельных исполнителей. Дополнительный обработчик Бизнес-события
Разработка - Практика программирования
Случается ситуация, когда нужно в бизнес-процессе сделать параллельный порядок исполнения(кто первый встал, того и тапки), но при этом дополнительно уведомлять смежных исполнителей путем рассылки вопросов(можете заменить на свой вариант).
Писалось на конфе: Документооборот 8 КОРП, редакция 2.1 (2.1.14.4), платформа 8.3.13.1690
При закрытии основной задачи все порождённые вопросы закрываются автоматически.
Автору процесса вопросы не приходят.
//УведомлениеПараллельныхИсполнителей
//Подписка: Задача выполнена
Задача = Событие.Источник;
БПроцесс = Задача.БизнесПроцесс;
ТекШаг = 0;
врИсполнителиСтрокой= "";
Если ЗначениеЗаполнено(Задача) И ТипЗнч(БПроцесс) = Тип("БизнесПроцессСсылка.Исполнение") Тогда
//При выполнении задачи закрыть все вопросы
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ЗадачаИсполнителя.Ссылка КАК Ссылка
|ИЗ
| БизнесПроцесс.РешениеВопросовВыполненияЗадач КАК РешениеВопросовВыполненияЗадач
| ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
| ПО (ЗадачаИсполнителя.БизнесПроцесс = РешениеВопросовВыполненияЗадач.Ссылка)
|ГДЕ
| РешениеВопросовВыполненияЗадач.ПредметРассмотрения = &ПредметРассмотрения
| И РешениеВопросовВыполненияЗадач.Наименование ПОДОБНО ""Рассмотрение вопроса: Выполнена смежная задача:%""
| И ЗадачаИсполнителя.Выполнена = ЛОЖЬ");
Запрос.УстановитьПараметр("ПредметРассмотрения", Задача);
НайтиВопросы = Запрос.Выполнить().Выбрать();
Пока НайтиВопросы.Следующий() Цикл
ТекЗадача = НайтиВопросы.Ссылка.ПолучитьОбъект();
ТекЗадача.РезультатВыполнения = "#АВТО: Выполнение задачи: "+СокрЛП(Задача);
ТекЗадача.ВыполнитьЗадачу();
КонецЦикла;
// Расчитать шаги выполнения
ИсполнителиДляУведомления = БПроцесс.Исполнители.Выгрузить();
ИсполнителиДляУведомления.Колонки.Добавить("Шаг");
РаботаСБизнесПроцессамиКлиентСервер.ЗаполнитьШаг(ИсполнителиДляУведомления);
// Определить текущий шаг по задаче
НайтиТекШаг = ИсполнителиДляУведомления.Найти(Задача,"ЗадачаИсполнителя");
Если НайтиТекШаг <> Неопределено Тогда
ТекШаг = НайтиТекШаг.Шаг;
КонецЕсли;
//Удалить строки лишних шагов, у кого задача выполнена и текущего исполнителя
//Если в шаге больше одной строки то это параллельное исполнение
Сч = 0;
Пока Сч < ИсполнителиДляУведомления.Количество() Цикл
Если ИсполнителиДляУведомления[Сч].Шаг <> ТекШаг Тогда
ИсполнителиДляУведомления.Удалить(Сч);
ИначеЕсли ИсполнителиДляУведомления[Сч].Исполнитель = Задача.Исполнитель
ИЛИ ИсполнителиДляУведомления[Сч].Исполнитель = БПроцесс.Автор Тогда
ИсполнителиДляУведомления.Удалить(Сч);
ИначеЕсли НЕ ЗначениеЗаполнено(ИсполнителиДляУведомления[Сч].ЗадачаИсполнителя) Тогда
ИсполнителиДляУведомления.Удалить(Сч);
ИначеЕсли ИсполнителиДляУведомления[Сч].ЗадачаИсполнителя.Выполнена Тогда
ИсполнителиДляУведомления.Удалить(Сч);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
//Создаем вопросы(уведомления)
Для каждого ТекИсполн из ИсполнителиДляУведомления Цикл
//Соберём список оставшихся исполнителей
трИсполнителиСтрокой = "";
Для каждого врТекИсполн из ИсполнителиДляУведомления Цикл
Если НЕ врТекИсполн.Исполнитель = ТекИсполн.Исполнитель Тогда
трИсполнителиСтрокой = трИсполнителиСтрокой+Символы.ПС+врТекИсполн.Исполнитель;
КонецЕсли;
КонецЦикла;
НовыйВопрос = БизнесПроцессы.РешениеВопросовВыполненияЗадач.СоздатьБизнесПроцесс();
НовыйВопрос.ВидВопроса = Перечисления.ВидыВопросовВыполненияЗадач.Иное;
НовыйВопрос.Описание = "Выполнена смежная задача: "+СокрЛП(Задача)+
?(СтрДлина(трИсполнителиСтрокой)>0, Символы.ПС+"Исполнители кроме Вас: "+трИсполнителиСтрокой, "");
НовыйВопрос.ПредметРассмотрения = ТекИсполн.ЗадачаИсполнителя;
НовыйВопрос.ГлавнаяЗадача = ТекИсполн.ЗадачаИсполнителя;
НовыйВопрос.Дата = ТекущаяДатаСеанса();
НовыйВопрос.СрокИсполнения = ТекущаяДатаСеанса();
НовыйВопрос.Автор = БПроцесс.Автор; //От кого
НовыйВопрос.ИнициаторПроцесса= ТекИсполн.Исполнитель;//Кому
НовыйВопрос.Записать();
НовыйВопрос.Старт();
//Создать связь с основным процессом
ЗаписьДБПроцессы = РегистрыСведений.ДочерниеБизнесПроцессы.СоздатьМенеджерЗаписи();
ЗаписьДБПроцессы.РодительскийПроцесс= БПроцесс;
ЗаписьДБПроцессы.СвязующаяЗадача = ТекИсполн.ЗадачаИсполнителя;
ЗаписьДБПроцессы.ДочернийПроцесс = НовыйВопрос.Ссылка;
ЗаписьДБПроцессы.Записать();
врИсполнителиСтрокой = врИсполнителиСтрокой +Символы.ПС+ ТекИсполн.Исполнитель;
КонецЦикла;
КонецЕсли;
//Записываем результат в ЖР
Если СтрДлина(врИсполнителиСтрокой)>0 Тогда
ЗаписьЖурналаРегистрации("ТМ.Уведомление параллельных исполнителей",
УровеньЖурналаРегистрации.Информация,Задача.Метаданные(),Задача.Ссылка,
"Автор процесса: " +СокрЛП(БПроцесс.Автор)+Символы.ПС+
"Выполнил(а) задачу: " +СокрЛП(Задача.Исполнитель)+Символы.ПС+
"Задача: " +СокрЛП(Задача)+Символы.ПС+
"Отправлен(ы) вопрос(ы): " +врИсполнителиСтрокой);
КонецЕсли;
//АвтоЗакрытиеОзнакомленияСОтветомНаВопросВыполненаСмежнаяЗадача
//Подписка: Создание задачи
Задача = Событие.Источник;
Если ВРег(Лев(Задача.Наименование, 59)) = "ОЗНАКОМИТЬСЯ С ОТВЕТОМ НА ВОПРОС: ВЫПОЛНЕНА СМЕЖНАЯ ЗАДАЧА:" Тогда
ТекущаяЗадача = Задача.ПолучитьОбъект();
ТекущаяЗадача.ВыполнитьЗадачу();
КонецЕсли;
Статья про настройку обработчиков Бизнес-событий:
UPD 2019/11/14 Добавил связь с основным процессом
Специальные предложения
См. также
Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.127.х, КА 2.4.10.х и ERP 2.4.10.х! Промо
Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.
29700 руб.
Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо
Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.
4500/9500 рублей
Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо
Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!
29700 руб.
Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо
Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.
24700 руб.
Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо
Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.
7500 рублей
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 266
08.08.2019 19675 ids79 31
Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо
Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!
29700 руб.
СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 144
26.07.2019 17604 ids79 8
Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо
Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.
29700 руб.
Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо
Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.
29700 руб.
Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 179
11.06.2019 13935 dmurk 134
Программы для исполнения 54-ФЗ Промо
С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.
Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо
Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.
9000 рублей
Как настроить правильную техподдержку (helpdesk, service desk на коленке) 39
24.04.2019 9328 siddy 0
Новогодние скидки на авторское ПО Промо
В преддверии праздника в Маркетплейсе на Инфостарт действует скидка на все платные авторские программы. Размер скидок начинается от 10%. Советуем не откладывать покупки, многие наши партнеры повышают цены на свои продукты именно в начале нового года.
Новый раздел на Инфостарте - Electronic Software Distribution Промо
Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.
- Низкие цены, без скрытых платежей и наценок
- Оперативная отгрузка
- Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
- Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)
Git-репозитории для 1С-кода (опыт использования при небольших проектах) 202
28.03.2019 15790 ellavs 83