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

09.11.20

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

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

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

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

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

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

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

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

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

4. Готово

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

См. также

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

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

55300 руб.

19.02.2016    110042    135    5    

106

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

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

94700 руб.

19.02.2016    83534    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    58543    36    20    

45

SALE! 30%

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

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

14880 руб.

17.12.2018    46745    73    63    

80

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

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

14900 руб.

15.11.2018    32889    40    49    

73

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

103
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. it-dolgovagro 23.11.20 23:52 Сейчас в теме
Если согласование по документу завершено из-за отказа в согласовании, т.е. процесс закончен, то повторно уже отправить не получается! Процесс не запускается!!!
Mortiferus; +1 Ответить
2. sulig 66 24.11.20 08:03 Сейчас в теме
Добавьте в условие проверку на "активность". Код перед вами меняйте его под ваши потребности
5. Mortiferus 365 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 Сейчас в теме
Классный скрипт, спасибо, большое.
А как проверить документ исполнен или нет?
Если Предмет.Состояние.Исполнен <> Истина Тогда
Результат = Ложь;
Иначе
Результат = Истина ;
КонецЕсли;

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