Блокировка повторного запуска комплексного процесса по документу в 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С:ДО!

55300 руб.

19.02.2016    110759    139    5    

110

Типовые Комплексное управление ресурсами (ERP) Бюджетирование и планирование Управление взаимоотношениями с клиентами (CRM) Документооборот и делопроизводство (СЭД) Управление персоналом (HRM) Управление услугами и сервисом Управление производством (МES) Управление бизнес-процессами (BPMS) Управление продажами (SFM) Бизнес-аналитика (BI) Бизнес-аналитик Бухгалтер Пользователь 1С v8.3 Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Комплексная автоматизация 1С — универсальное решение для управления предприятием и автоматизации учета, производства, продаж и финансов. Подходит для малого и среднего бизнеса. Купить программу 1С:Комплексная автоматизация 8 (редакция 2.5) можно по выгодной цене с электронной поставкой. Внедрение системы позволит объединить все ключевые процессы в одной платформе и повысить эффективность компании. Узнайте стоимость, сравните версии и закажите автоматизацию для вашего бизнеса с бонусом 15% в Инфостарт!

94700 руб.

19.02.2016    84905    119    0    

115

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

"1С:Архив" – это универсальная система, обеспечивающая надежное долговременное хранение документов с гарантией юридической значимости на неограниченный срок. "1С:Архив" разработан на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов – от попадания в архив до уничтожения – и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. Продукт подходит для малых, средних, крупных предприятий и учреждений любых отраслей.

117000 руб.

24.10.2022    6055    8    1    

8

Документооборот и делопроизводство (СЭД) Пользователь 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    59478    37    20    

48

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

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

14900 руб.

15.11.2018    37898    40    49    

75

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

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

19800 руб.

17.12.2018    47853    74    63    

82

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

1С:Договоры 8 - удобный и эффективный инструмент для работы с договорами, особенно в организациях с развитой договорной деятельностью. Решение обладает широкими функциональными возможностями для простой подготовки, отслеживания и контроля исполнения договоров. Сокращайте время на договорную работу, держите под контролем процессы согласования, оплаты счета и находите нужный договор за считанные секунды. Приобретайте с бонусом 15% в Инфостарт!

5700 руб.

26.02.2016    32458    8    2    

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