Как настроить запуск списания в архив только после завершения всех исполнений по резолюции в 1С:Документооборот?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При проектировании бизнес-процессов в программе 1С:Документооборот (1С:ДО) аналитики и администраторы часто сталкиваются с логической проблемой при использовании стандартного процесса Рассмотрение. Суть проблемы заключается в следующем: в рамках комплексного процесса настраивается последовательная цепочка шагов, где первым идет «Рассмотрение документа», а вторым — «Списание в архив» (или «Списание в дело»).

Процесс рассмотрения по умолчанию состоит из двух задач: «Рассмотреть» (задача для руководителя) и «Обработать резолюцию» (задача для секретаря или автора процесса). Когда пользователь в задаче «Обработать резолюцию» нажимает кнопку «Направить на исполнение», программа автоматически считает, что весь процесс рассмотрения успешно завершен. В этот же момент линейный комплексный процесс сразу же переходит к следующему шагу — «Списание в архив», абсолютно не дожидаясь, пока исполнители по созданным задачам реально выполнят свою работу. Это происходит потому, что созданные задачи исполнения технически являются новыми, отдельными бизнес-процессами, связь с которыми родительский комплексный процесс автоматически не отслеживает.

Проанализируем ситуацию и разберем по шагам несколько эффективных способов решения этой проблемы как для редакции 1С:ДО 2.1, так и для новой редакции 3.0.

Решение 1. Переход на типовой Составной процесс «Обработка входящего документа»

Самый простой и методологически верный способ в редакции 2.1, не требующий программирования — это использование предопределенного составного процесса Обработка входящего документа.

Разберем подробнее, почему это работает:

  1. Методологи фирмы «1С» заложили в составной процесс жесткую, но логически правильную цепочку: Регистрация → Рассмотрение → Исполнение → Списание в дело.
  2. Когда руководитель выносит резолюцию, а помощник обрабатывает её, созданные задачи направляются в специальный этап Исполнение, который является частью единой цепочки составного процесса.
  3. Переход к финальному этапу Списание в дело в такой схеме гарантированно заблокирован до тех пор, пока абсолютно все задачи из этапа Исполнение не перейдут в статус «Выполнено» (включая прохождение проверки, если она была настроена).

Если специфика вашего предприятия позволяет использовать типовой жизненный цикл входящего документа, настоятельно рекомендуется отказаться от самописного комплексного процесса в пользу этого стандартного механизма.

Решение 2. Использование условий маршрутизации и отложенного старта (для 1С:ДО 2.1)

Если вам необходимо сохранить именно структуру комплексного процесса (например, из-за уникальных дополнительных шагов или ветвлений), мы можем настроить автоматическую проверку наличия активных задач по документу перед запуском шага списания.

Рассмотрим подробнее, как реализовать этот алгоритм:

Шаг 1. Создание условия маршрутизации. Нам необходимо написать условие старта для шага «Списание в дело» на встроенном языке 1С. Это условие будет проверять базу данных на наличие незавершенных процессов исполнения, привязанных к текущему документу.

Создайте новое условие маршрутизации с типом «Выражение на встроенном языке» и вставьте следующий код:


Результат = Истина; // По умолчанию разрешаем старт списания

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

Если Не РезультатЗапроса.Пустой() Тогда
    Результат = Ложь; // Если найдены активные (незавершенные) исполнения, старт запрещен
КонецЕсли;

Шаг 2. Настройка отложенного старта. Если мы просто установим это условие в линейном списке комплексного процесса, система при проверке условия вернет значение Ложь и просто пропустит шаг списания, завершив весь комплексный процесс. Чтобы этого не произошло, необходимо использовать механизм отложенного старта.

Для шага «Списание в дело» в настройках комплексного процесса укажите:

Решение 3. Моделирование процесса через задачи «Исполнение» (без действия «Рассмотрение»)

Еще один чисто настроечный вариант в режиме «1С:Предприятие» — отказаться от использования стандартного действия Рассмотрение внутри комплексного процесса, заменив его на последовательность задач типа Исполнение.

Посмотрим на пример реализации такой схемы:

  1. Первым действием в комплексном процессе настраивается задача Исполнение, адресованная руководителю. Назовем её, например, «Рассмотреть и вынести резолюцию».
  2. Руководитель, получив эту задачу, не пишет текстовую резолюцию в специальное поле, а прямо в карточке своей задачи направляет документ подчиненным, создавая новые задачи исполнения (подчиненные процессы).
  3. В настройках комплексного процесса для следующего шага («Списание в архив») мы задаем порядок выполнения: «После завершения всех подчиненных процессов».
  4. Платформа 1С:ДО умеет отслеживать связи между родительскими и подчиненными процессами исполнения. Шаг списания в архив не начнется до тех пор, пока вся цепочка подчиненных задач, созданных руководителем, не будет полностью выполнена.

Решение 4. Реализация в 1С:Документооборот 3.0

Если ваше предприятие использует или планирует переход на современную редакцию 1С:Документооборот 3.0, то данная проблема решается значительно проще на уровне новой архитектуры программного продукта.

В редакции 3.0 концепция жестких комплексных процессов заменена на более гибкие «Схемы обработки документов». Настройка выполняется следующим образом:

  1. В правилах обработки для конкретного вида документа настраивается граф (или таблица) действий.
  2. Действие Исполнение связывается напрямую с результатом рассмотрения документа. То есть, когда в рамках рассмотрения выносится резолюция, система автоматически запускает действие «Исполнение».
  3. Для действия Списание в дело настраивается условие запуска: «После завершения действия "Исполнение"».
  4. Система 3.0 нативно отслеживает статус выполнения всех подчиненных задач, запущенных во исполнение данной резолюции, и не сдвинет документ на этап списания, пока общее состояние действия «Исполнение» не перейдет в статус «Выполнено».

Решение 5. Альтернативный ручной вариант (через роль Контролера)

Если вам требуется быстрое решение «здесь и сейчас», а времени на программирование условий или перенастройку маршрутов нет, можно применить административно-ролевой подход:

  1. В комплексном процессе шаг «Списание в архив» адресуется секретарю, делопроизводителю или администратору (также можно использовать автоподстановку роли «Контролер»).
  2. В регламент (должностную инструкцию) сотрудника добавляется строгое правило: перед тем как нажать кнопку «Выполнено» в задаче «Списать в архив», сотрудник обязан открыть вкладку «Процессы и задачи» в карточке этого документа.
  3. Сотрудник визуально анализирует дерево процессов. Если он видит активные задачи со статусом «В работе», он оставляет задачу списания у себя в списке «Задачи мне» до тех пор, пока исполнители не завершат свои этапы.

Этот способ уступает автоматическим проверкам из-за влияния человеческого фактора, но отлично подходит в качестве временной меры при тестировании или запуске системы в опытную эксплуатацию.

← На главную