Детектор завершения согласования для 1С: Документооборот КОРП

04.02.20

Задачи пользователя - Адаптация типовых решений

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

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

Чтобы не дорабатывать конфигурацию, просто добавил новый детектор бизнес-события (Настройка и администрирование - Детекторы)

Детектор обнаруживает завершения процесса согласования в пределах последних 10 минут, по которому есть основной предмет, еще не обработанного этим детектором. Генерирует бизнес-событие с указанным видом в стандартном регистре 1С: Документооборот.

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

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

Внешний вид детектора:

 

Текст детектора:

Результат = Ложь;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ПроизошедшиеБизнесСобытия.Источник КАК Источник,
               |    СогласованиеПредметы.Предмет КАК ОсновнойПредмет
               |ПОМЕСТИТЬ ВТ_ЗавершенныеСогласования
               |ИЗ
               |    РегистрСведений.ПроизошедшиеБизнесСобытия КАК ПроизошедшиеБизнесСобытия
               |        ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.Согласование.Предметы КАК СогласованиеПредметы
               |        ПО ПроизошедшиеБизнесСобытия.Источник = СогласованиеПредметы.Ссылка
               |ГДЕ
               |    ПроизошедшиеБизнесСобытия.ВидСобытия = ЗНАЧЕНИЕ(Справочник.ВидыБизнесСобытий.ЗавершениеБизнесПроцесса)
               |    И ПроизошедшиеБизнесСобытия.Источник ССЫЛКА БизнесПроцесс.Согласование
               |    И ПроизошедшиеБизнесСобытия.ВидСобытия = ЗНАЧЕНИЕ(Справочник.ВидыБизнесСобытий.ЗавершениеБизнесПроцесса)
               |    И ПроизошедшиеБизнесСобытия.Период >= &Период
               |    И СогласованиеПредметы.РольПредмета = ЗНАЧЕНИЕ(Перечисление.РолиПредметов.Основной)
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ
               |    ПроизошедшиеБизнесСобытия.Источник КАК Источник
               |ПОМЕСТИТЬ ВТ_УжеДетектированные
               |ИЗ
               |    РегистрСведений.ПроизошедшиеБизнесСобытия КАК ПроизошедшиеБизнесСобытия
               |ГДЕ
               |    ПроизошедшиеБизнесСобытия.ВидСобытия = &ВидСобытияЗавершениеСогласования
//               |    И ПроизошедшиеБизнесСобытия.Источник ССЫЛКА Справочник.ВнутренниеДокументы //тут можно раскомментить, чтобы выбирались только внутренние документы, во избежание ошибок адресации (см попытку ниже)
               |    И ПроизошедшиеБизнесСобытия.Период >= &Период
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ
               |    ВТ_ЗавершенныеСогласования.Источник КАК Источник,
               |    ВТ_ЗавершенныеСогласования.ОсновнойПредмет КАК ОсновнойПредмет
               |ИЗ
               |    ВТ_ЗавершенныеСогласования КАК ВТ_ЗавершенныеСогласования
               |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_УжеДетектированные КАК ВТ_УжеДетектированные
               |        ПО ВТ_ЗавершенныеСогласования.ОсновнойПредмет = ВТ_УжеДетектированные.Источник
               |ГДЕ
               |    ВТ_УжеДетектированные.Источник ЕСТЬ NULL";

Запрос.УстановитьПараметр("Период", ТекущаяДата() - 600);
Запрос.УстановитьПараметр("ВидСобытияЗавершениеСогласования", Справочники.ВидыБизнесСобытий.ПолучитьСсылку(новый УникальныйИдентификатор("4dec49cd-2226-11ea-bbd5-00265552556a"))); //Вид события, которое будет создавать детектор, нужно указать ссылку на элемент справочника, я сделал поиск по ГУИД во избежание проблем при переименовании
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
        Попытка
            ПараметрыВозврата = Новый Структура;
            ПараметрыВозврата.Вставить("Источник", Выборка.ОсновнойПредмет);
            ПараметрыВозврата.Вставить("Автор", Выборка.ОсновнойПредмет.Ответственный);
            Результат = Истина;
        Исключение
        //здесь нужен код для обработки ошибок адресации, но в целом пока и так работает
        КонецПопытки;
КонецЕсли;

 

1С: Документооборот подписка на событие бизнес-события детектор

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

29400 руб.

29.06.2023    4653    9    5    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3059    4    0    

20

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

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

01.03.2024    1691    dimanich70    8    

14

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    2109    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2244    25    progmaster    8    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Vasvas05 22 04.02.20 14:02 Сейчас в теме
А добавить процесс ознакомления после согласования или у вас пользователи сами создают простые процессы?
2. akim2040 41 04.02.20 14:43 Сейчас в теме
Присоединяюсь к предыдущему комментарию.
Мне кажется это всё решается комплексными процессами?
3. shiaju 25 05.02.20 05:23 Сейчас в теме
(1), (2) Да, это вполне возможно. Детектор просто позволяет отлавливать все согласования независимо от того, участвуют ли они в шаблоне (у меня стояла цель, если кто-то запустил согласование документа не по шаблону, по завершении согласования можно уведомить ответственного за документ).
4. paphiopedilum 20.04.22 10:28 Сейчас в теме
Создала детектор, настроила автозапуск процесса по нему.

По какой-то причине детектор исправно срабатывает каждую минуту и запускает 10 процессов по одному документу.
Прикрепленные файлы:
5. shiaju 25 20.04.22 10:55 Сейчас в теме
(4) Возможно, вы не указали свой элемент справочника в строчке ниже? Тут указан гуид конкретного элемента из моей конкретной базы, у вас в базе он другой:

Запрос.УстановитьПараметр("ВидСобытияЗавершениеСогласования", Справочники.ВидыБизнесСобытий.ПолучитьСсылку(новый УникальныйИдентификатор("4dec49cd-2226-11ea-bbd5-00265552556a"))); //Вид события, которое будет создавать детектор, нужно указать ссылку на элемент справочника, я сделал поиск по ГУИД во избежание проблем при переименовании
ivangrant; +1 Ответить
6. paphiopedilum 21.04.22 09:03 Сейчас в теме
(5) Да, именно в этом и была проблема

Спасибо вам! Работает отлично, на быстродействие не влияет.
ivangrant; shiaju; +2 Ответить
Оставьте свое сообщение