В практике работы с 1С:Документооборот часто возникает ситуация, когда документ (например, счет от поставщика) поступает в систему заблаговременно. Бухгалтеру или делопроизводителю необходимо зарегистрировать его сразу, однако фактическая обработка или оплата должна произойти лишь через несколько недель. Если запустить бизнес-процесс немедленно, задача будет «висеть» в списке исполнителя, отвлекая внимание и создавая информационный шум. Рассмотрим детально, как реализовать механизм отложенного появления задач, используя типовые возможности системы и небольшие доработки.
Многие пользователи ошибочно полагают, что отложенный старт настраивается только в шаблоне процесса для всех документов сразу. На самом деле, в версии КОРП этот механизм можно использовать гибко для каждого конкретного случая. Разберем этот алгоритм по шагам:
Когда делопроизводитель заносит внутренний документ и готов запустить процесс (например, «Обработка счета»), он не просто нажимает кнопку «Стартовать», а переходит в форму настройки старта. В этой форме присутствует поле «Стартовать» (или «Дата старта»), где можно указать конкретную дату и время в будущем.
Как это работает в системе:
ВыполнениеОтложенныхСтартовБизнесПроцессов периодически проверяет такие процессы.Этот способ является максимально «чистым», так как не требует изменения программного кода и полностью соответствует логике типовой конфигурации.
Если процесс уже запущен, но на определенном этапе (например, перед оплатой) нужно сделать паузу, проанализируем вариант с использованием эскалации задач. Этот метод подходит, если вы хотите видеть, что процесс идет, но исполнитель не должен приступать к работе раньше срока.
Разберем реализацию этого метода:
Таким образом, процесс «замирает» на технической задаче. Финансовый менеджер увидит основную задачу по оплате только тогда, когда система автоматически закроет этап ожидания по правилу эскалации.
Иногда требуется более радикальный подход: задача должна быть создана, но скрыта из общего списка «Задачи мне». Для этого мы можем применить механизм расширений, чтобы не снимать конфигурацию с поддержки. Проанализируем, какие изменения нужно внести.
Во-первых, создадим дополнительный реквизит для документа (или самой задачи) — ОтложитьДо (тип Дата). Во-вторых, нам потребуется вмешаться в работу динамического списка задач.
Посмотрим на пример кода, который может быть размещен в расширении для формы списка задач:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Устанавливаем фильтр, чтобы видеть только те задачи,
// у которых дата откладывания пустая или уже наступила
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Предмет.ОтложитьДо");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = ТекущаяДата();
ЭлементОтбора.Использование = Истина;
// Также нужно добавить условие для пустых дат
// (Группа ИЛИ для гибкости настройки)
КонецПроцедуры
Преимущества этого способа: пользователь сам в любой момент может изменить дату появления задачи, просто отредактировав поле в документе. Недостаток: требуется участие программиста и контроль за тем, чтобы фильтр не мешал поиску важных задач в исключительных случаях.
Если вы планируете переход или уже работаете в 1С:Документооборот 3.0, ситуация упрощается. Разберем новые инструменты системы:
Этап «Ожидание» в схеме обработки:
В конструкторе схем теперь существует отдельный блок Ожидание. Мы можем настроить его так, чтобы обработка приостанавливалась до выполнения условия (например, наступления даты). Процесс физически не создает следующую задачу, пока условие не выполнено. Это идеальное решение для нашего кейса со счетами.
Режим «Фокусировка»:
В интерфейсе списка задач появился встроенный механизм «Фокусировки». Система сама анализирует сроки задач и скрывает те, которые еще «не созрели». Пользователю не нужно видеть счета, срок оплаты которых наступит только в следующем месяце. Достаточно включить режим фокусировки, и список станет компактным и актуальным.
Выясним, какой из методов лучше выбрать в зависимости от ваших условий:
ДатаОплаты.Важно помнить, что при использовании любых методов откладывания (особенно программных фильтров), необходимо обеспечить возможность администратору или руководителю видеть «скрытые» задачи для контроля общей нагрузки на подразделение. Используйте отчеты по задачам, чтобы анализировать объем предстоящих платежей, даже если они еще не появились в оперативных списках исполнителей.