Блокировка повторного запуска комплексного процесса по документу в 1С: Документооборот

02.11.20

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

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

В 1С: Документообороте из коробки нет возможности ограничить повторный запуск комплексного процесса по определенному шаблону если таковой уже запущен у данного документа. в итоге можно запускать один и тот же процесс сколько угодно раз.

Чтобы этого избежать, нужно создать подписку на событие 

Далее добавить код для процедуры обработчика:

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


Проверено на релизе 1С:Предприятие 8.3 (8.3.16.1659)

Версия: редакция 2.1 (2.1.12.2)

См. также

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

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

48500 руб.

19.02.2016    109892    134    5    

105

Бизнес-аналитик Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Прикладное решение «1С:Комплексная автоматизация 2» позволяет построить современную систему учета с высокой степенью детализации затрат, определить показатели управления и ответственности пользователей в рамках единого информационного пространства.

83000 руб.

19.02.2016    83321    113    0    

112

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

110400 руб.

11.06.2015    58416    36    20    

45

SALE! 30%

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

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

14900 руб.

15.11.2018    32129    40    49    

73

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

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам.

14880 руб.

17.12.2018    46592    69    63    

80

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

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

15000 руб.

20.04.2016    63743    189    107    

103
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sulig 66 02.11.20 14:51 Сейчас в теме
А типовыми средствами обойтись не пытались?
2. vlad356987 8 02.11.20 14:58 Сейчас в теме
(1)Какие типовые средства есть в Документообороте для реализации данной задачи?
3. sulig 66 02.11.20 17:50 Сейчас в теме
Комплексный процесс
В условии маршрутизации вставляете ваш код и все
4. vlad356987 8 03.11.20 08:12 Сейчас в теме
(3)На мой взгляд через условия маршрутизации прерывать процесс не совсем правильно, потому что во первых сам объект бизнес процесс запишется, во вторых как вы в этом случае оперативно сообщите пользователю что он неправильно делает
5. sulig 66 03.11.20 09:26 Сейчас в теме
Зачем прерывать, завершите дублирующий процесс. В чем страхи записи бизнес процесса? Как сообщить? - оповестите его в задаче.
"Не совсем правильно" изменять конфигурацию под каждую задачу, если есть возможность воспользоваться типовым функционалом
6. vlad356987 8 03.11.20 09:57 Сейчас в теме
(5)
1)Изменение конфигурации минимальное и минимально затрагивает систему, только одна подписка на событие
2)в этом типовом функционале нужно писать почти тот же код, при этом этот код нужно дублировать в каждый шаблон бизнес процесса, это не совсем удобно
3)В задаче оповещать пользователя на мой взгляд не совсем правильный подход, потому что он нажал кнопку запустить процесс и ушел, закрыл программу, в этом случае он никак не узнает этого, а здесь сразу он узнает что его процесс не записался и сразу до него можно довести информацию что он делает не так
4) На мой взгляд если есть возможность не плодить явно лишние объекты в системе, лучше эту возможность реализовать
vashkostya; +1 Ответить
7. sulig 66 03.11.20 10:45 Сейчас в теме
1) Все же это изменение конфигурации для довольно тривиальной задачи,
у меня подобных задач 10-ки если при каждой я лез бы в конфигуратор на выходе бы получился франкенштейн, со всеми вытекающими
2) да код нужен. Зачем дублировать? Добавляем готовое условие.
3) Это документооборот, БП, задачи это основа данной конфигурации
4) Лишний объект конфигурации или лишний элемент бд по моему выбор очевиден
8. xKEEPERx 3 05.11.20 23:21 Сейчас в теме
(7)Некоторые пользователи были бы очень благодарны, если бы вы написали решение данной задачи стандартными средствами=) Может быть напишите?
9. sulig 66 06.11.20 07:30 Сейчас в теме
(8)Ок, подписывайтесь. Постараюсь выложить на следующей неделе
10. xKEEPERx 3 06.11.20 10:54 Сейчас в теме
(9)На комменты здесь? Уже подписался.
Заранее благодарю!
11. zhuntovda 1 03.12.20 07:58 Сейчас в теме
(7) Смотря, как архитектурно решать такие задачи. Я согласен с автором. Фундаментальный подход лучше миллиона заплаток, не понятных на выходе)
12. Kovekh 07.12.20 09:41 Сейчас в теме
Кстати, всё упадёт, если запустят стандартный комплексный процесс)) В нём нет шаблона, и на части
ЗначениеЗаполнено(Источник.Шаблон)
всё упадёт в ошибку
13. Kovekh 07.12.20 10:24 Сейчас в теме
(12)Не прав, вопрос снят( Тут же только комплексный рассматривается
14. Savshik 19.08.21 10:07 Сейчас в теме
Большое спасибо! Очень помогло, у меня 800 пользователей, просто спасение!!!
15. dap 14 25.11.21 18:45 Сейчас в теме
Источник.Ссылка же не заполнено, чего его пихать в запрос?
перестраховался?
16. belyakooov 24 10.04.23 16:15 Сейчас в теме
Спасибо, пригодилось.

Можно еще добавить дополнительный реквизит для шаблона с типом булево, например: "КонтролироватьПовторныйЗапуск" и если он = истина, то выполнять код.
Так отсечем шаблоны где контроль не нужен.
17. angabanga5 26.10.23 14:42 Сейчас в теме
спасибо, отличное решение. просто влупил на все процессы и хорошо
18. NNNenenko 17.09.24 14:55 Сейчас в теме
Спасибо, очень помогла ваша статья, к сожалению анализ типовых моделей не дал результата)
Оставьте свое сообщение