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

04.02.20

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

См. также

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

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

31800 руб.

29.06.2023    9797    30    15    

38

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

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

9600 руб.

17.06.2025    1757    5    0    

5

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

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

9000 руб.

02.08.2023    6482    23    5    

39

Адаптация типовых решений Бухгалтер 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Разработка для упрощения процедуры передачи данных о выплатах для конфигурации 1С:ЗиКГУ. Данное расширение предоставляет возможность экспортировать данные «Распоряжения» непосредственно из документа "Ведомость в банк" в формате XML.

3840 руб.

13.11.2024    2454    3    4    

4

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

Маленькая заметка (в трех разных масштабах) для тех, кто часто видит окно при входе в ЗУП «Новые сообщения для расшифровки по 1С-Отчетность», которое появляется через 60 секунд после запуска программы, как раз когда вы уже добрались до интересующей вас формы и начали в ней что-то активно делать:

1 стартмани

17.06.2024    7935    82    Znata_PI    12    

22

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

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    7385    dimanich70    17    

22

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

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

01.03.2024    18028    dimanich70    11    

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

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

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

Спасибо вам! Работает отлично, на быстродействие не влияет.
ivangrant; shiaju; +2 Ответить
7. XelOla 19 17.01.25 13:59 Сейчас в теме
Здравствуйте,
а можно ли, получив на документе согласование Самого_Главноого, сразу ставить согласован остальным согласующим?
p_kuzmichev; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация