В стандартном функционале 1С:Документооборот процесс согласования запускается для документа целиком, со всеми приложенными к нему файлами. Однако часто возникает бизнес-задача, требующая более сложной логики: сначала согласовать и подписать один файл из комплекта, и только после успешного завершения этого этапа передавать на согласование остальные. Проанализируем ситуацию, когда к документу "Акт списания материалов" приложены три файла: "Отчет о списании", "Акт" и "Лист согласования", и их нужно обработать последовательно.
Рассмотрим несколько подходов к решению этой задачи, от методологически правильных до более сложных технических реализаций.
Наиболее прозрачный и рекомендуемый системой 1С подход — это работа не с файлами, а с документами. Если файлы по своей сути представляют разные сущности с разным жизненным циклом, логично отразить это в системе, создав отдельные, но связанные между собой документы. Этот метод не требует сложного программирования и легко поддерживается.
Этот способ предполагает создание двух разных видов внутренних документов, например, "Отчет о списании" и "Акт списания".
Преимущества:
Механизм Комплекты документов позволяет сгруппировать несколько независимых документов в единый пакет. Это полезно, когда документы нужно обрабатывать по отдельности, но в итоге рассматривать как единое целое.
Комплект документов.Важный момент: Этот способ подходит, если вам нужно запустить отдельные процессы для каждого документа. Стандартный процесс, запущенный для самого комплекта, отправит на согласование весь комплект целиком, что не решает исходную задачу поэтапного согласования.
Если разделение на несколько документов по какой-то причине невозможно (например, из-за жестких правил интеграции с другой системой), можно реализовать требуемую логику в рамках одного документа с помощью комплексного процесса. Этот способ требует навыков настройки или программирования, но позволяет гибко управлять маршрутом.
Проанализируем шаги настройки в графической схеме процесса:
Обработка документа. В нем с помощью встроенного языка 1С нужно написать скрипт, который:
Условие. Он ожидает завершения дочернего процесса и проверяет его результат. Например, условие может выглядеть так: "Результат согласования по первому файлу — 'Согласовано'".Обработка документа. Скрипт в этом блоке:
Недостатки:
Это элегантный и современный способ, который также позволяет избежать "дробления" исходного документа. Он основан на том, что система сама отслеживает определенные события и запускает нужные процессы.
Детектор бизнес-события, который будет постоянно отслеживать состояние файлов. Условием срабатывания детектора будет: "В документе вида 'Акт списания' файл с наименованием 'Отчет о списании' подписан ЭП".Правило автозапуска процессов, которое связано с этим бизнес-событием. Как только детектор зафиксирует подписание первого файла, это правило автоматически запустит второй процесс согласования для этого же документа. В задаче второго процесса будет указание согласовать оставшиеся файлы.Преимущества:
Вывод: Выбор решения зависит от ваших требований и ресурсов. Если есть возможность изменить бизнес-процесс, разделение на связанные документы — самый надежный путь. Если же нужно работать в рамках одного документа, автоматизация через бизнес-события является более современным и предпочтительным вариантом по сравнению с ручной настройкой сложного комплексного процесса.