Блокировка повторного запуска комплексного процесса по документу в 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    108556    121    5    

96

SALE! 30%

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

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    107009    313    173    

326

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

Продукт "Апрель Софт: Бухгалтерия позаказного производства, ред. 3.0" предназначен для удобного и оперативного управления процессами производства, отгрузок и снабжения в производственных компаниях. Программный продукт открывает новые функциональные возможности для ведения документооборота.

11400 руб.

18.02.2016    22959    1    1    

5

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

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

14900 руб.

15.11.2018    30281    35    49    

71

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    45664    65    59    

79

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

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

3000 руб.

23.10.2015    63612    113    25    

127

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

Приложение для быстрого создания макетов печатных документов, заполняемых из 1С:Предприятие, без привлечения программистов и запуска конфигуратора. Шаблон готовится в редакторе MS Word, отлично освоенном офисными служащими. Так, на подготовку нового шаблона договора купли продажи со спецификацией потребуется 25 минут. Приложение будет полезно, если Вы работаете со множеством Word-шаблонов или если Вам надо часто создавать новые шаблоны. Есть сертификат "1С: Совместимо!". Версия ПРОФ доступна в виде расширения.

2000 руб.

05.09.2017    92544    66    98    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Сейчас в теме
Спасибо, очень помогла ваша статья, к сожалению анализ типовых моделей не дал результата)
Оставьте свое сообщение