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

09.11.20

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

Реализация решения изложенного в статье, исключает ошибочный (повторный) запуск комплексного процесса в 1С: Документооборот.

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

Типовое решение:

1. Создаем новое условие маршрутизации

2. Вставляем в него необходимый нам код

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

	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Если ВыборкаДетальныеЗаписи.Количество()>=2 Тогда
		Результат = Истина;
	Иначе
		Результат = Ложь;
	КонецЕсли;

3. Размешаем наше условие в комплексном процессе

4. Готово

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

См. также

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

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

48500 руб.

19.02.2016    109742    133    5    

103

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

96000 руб.

11.06.2015    58272    36    20    

45

SALE! 30%

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

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

14880 руб.

17.12.2018    46460    69    63    

79

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

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

14900 руб.

15.11.2018    31565    37    49    

72

Печатные формы Бухгалтер Пользователь Платформа 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    63592    189    107    

103

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

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

7800 руб.

12.02.2019    33734    27    24    

26
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. it-dolgovagro 23.11.20 23:52 Сейчас в теме
Если согласование по документу завершено из-за отказа в согласовании, т.е. процесс закончен, то повторно уже отправить не получается! Процесс не запускается!!!
Mortiferus; +1 Ответить
2. sulig 66 24.11.20 08:03 Сейчас в теме
Добавьте в условие проверку на "активность". Код перед вами меняйте его под ваши потребности
5. Mortiferus 363 30.09.21 10:24 Сейчас в теме
(2) тут проблема в том, что в принципе не запускается повторное согласование, ваше условие тут не причем - это где-то зашито в функционал. сейчас как раз бьюсь над этой проблемой.
3. Kovekh 07.12.20 09:38 Сейчас в теме
Ну уж шли бы тогда до конца) Видел ваш спор по подобной теме. Если уж хотели показать класс, то:
1. Надо было делать тогда уж не только для комплексного процесса запрос, можно подпихнуть метаданные текущего процесса. Небольшой экскурс: для этого можно делать условие само на встроенном языке, а не использовать условие маршрутизации. Да, согласен, тогда нельзя его одно использовать для всех шаблонов, но, зато, можно один код использовать везде.
2. Если решаете идти всё-таки как вы предложили через условия маршрутизации, то процесс всё равно, по сути, исполняется, просто сразу в ознакомление летит. Как по мне, лучше было бы добавить в условие назначения шаблона ваше условие маршрутизации пихнуть и тогда бы у человека вообще не показывался ваш шаблон. Но тут, согласен, можно наткнуться на то, что стартанут не тот процесс вообще. Но для общего развития, если вдруг не знали)
Anchoret; rpgshnik; +2 Ответить
4. sulig 66 07.12.20 11:31 Сейчас в теме
(3)
1. Показывать "класс" - целью не являлось. Цель - правильное выстраивание архитектуры. Для примера сейчас столкнулся с конфигурацией ДО там есть все: и немного ЗУПа и немного Бухгалтерии, замочки? а зачем они нужны - за их сохранность деньги не платят
2. Очень рад в ваших глубоких познаниях, обязательно приму к сведению
user1647001; +1 2 Ответить
6. Goody 130 10.02.22 13:40 Сейчас в теме
Все ничего, но есть одно "НО"...

Если есть активный комплексный процесс содержащий этап "Исполнение" и пользователь попытается запустить второй раз - получим статус документа "На исполнении, Исполнен"
Прикрепленные файлы:
7. sulig 66 10.02.22 17:45 Сейчас в теме
(6)У вас оба статуса в регистр в один момент времени записались. Посмотрите запрос который возвращает статус документа. По идее, срез последних должен вернуть один статус. И не совсем понятно как это все относиться к публикации))
8. Goody 130 11.02.22 11:34 Сейчас в теме
(7) "И не совсем понятно как это все относиться к публикации))" - напрямую.
Именно по материалу статьи создан процесс "запрещающий" повторный запуск. На самом деле никакого запрета, просто разветвление срабатывает и если уже есть активный процесс, то запускается задача "Ознакомление". Вот именно эта задача и меняет статус документа на "Исполнено".
Прикрепленные файлы:
10. sulig 66 11.02.22 15:22 Сейчас в теме
(8) Измените роль предмета у подпроцесса который не должен менять статус. Установите вспомогательный
9. sulig 66 11.02.22 15:21 Сейчас в теме
Измените роль предмета у подпроцесса который не должен менять статус. Установите вспомогательный
11. user1793375 02.06.22 19:19 Сейчас в теме
Классный скрипт, спасибо, большое.
А как проверить документ исполнен или нет?
Если Предмет.Состояние.Исполнен <> Истина Тогда
Результат = Ложь;
Иначе
Результат = Истина ;
КонецЕсли;

Так ? :)
Оставьте свое сообщение