Автоматизация · 11 мин
Как откатить бизнес-процесс в 1С
Как откатить бизнес-процесс в 1С: возврат на предыдущую точку, отмена задач, работа с картой маршрута, типичные ошибки и способы восстановления данных.
Откатить бизнес-процесс в 1С требуется, когда задача ушла не тому исполнителю, согласование пройдено с ошибкой или документ проведён по неверной ветке маршрута. Единой кнопки «отменить» в платформе нет: сначала проверьте, на какой точке маршрута находится процесс и есть ли по нему выполненные задачи и проведённые документы — от этого зависит, достаточно ли вернуть задачу на доработку, потребуется ли остановить и перезапустить процесс или придётся программно изменить текущую точку маршрута.
Важно понимать: 1С не хранит «снимков» бизнес-процесса, как это делают системы контроля версий. Откат — это всегда осознанное действие: либо штатное переадресование задачи, либо прерывание процесса с повторным запуском, либо ручная корректировка данных. Выбор способа зависит от того, на каком этапе находится процесс, есть ли связанные проведённые документы и насколько доработана конфигурация.
Ниже разобраны рабочие сценарии для типовых конфигураций (1С:Документооборот, 1С:ERP, Управление торговлей, ЗУП с механизмом задач) и для самописных процессов на встроенном языке. Перед любыми действиями в рабочей базе сделайте резервную копию — это единственный гарантированный «откат» в случае неудачи.
Определяем, что именно нужно откатить
Прежде чем действовать, ответьте на три вопроса. Первый: процесс ещё активен или уже завершён? Активный процесс можно скорректировать, завершённый — только компенсировать (отменить документы, запустить обратный процесс). Второй: выполнялись ли в рамках процесса необратимые действия — проведение документов, отправка писем, обмен с ЭДО? Третий: процесс типовой или доработанный — от этого зависит, какие инструменты доступны.
Откройте карточку бизнес-процесса и посмотрите его состояние и карту маршрута. В типовых конфигурациях карта маршрута показывает текущую точку, пройденные точки и исполнителей по каждой задаче. Это главный диагностический инструмент: по нему видно, где процесс «свернул не туда» и какие задачи уже выполнены.
Доступны возврат на доработку и перенаправление
Нужен возврат на предыдущую точку или прерывание
Только компенсирующие действия: отмена документов, новый процесс
Сначала распроведите или отмените связанные документы
Возврат задачи на доработку — штатный способ
В конфигурациях с полноценным механизмом согласования (1С:Документооборот, процессы согласования в ERP и КА) предусмотрен штатный возврат на предыдущий этап. Текущий исполнитель при выполнении задачи выбирает результат «На доработку», «Вернуть на доработку» или аналогичный вариант — процесс автоматически возвращается на предыдущую точку маршрута, и инициатор или предыдущий согласующий получает новую задачу.
Это самый безопасный способ отката: система сама корректно закрывает текущую задачу, фиксирует историю и создаёт новую итерацию. Вся цепочка действий сохраняется в истории процесса, что важно для аудита. Если в карточке задачи есть кнопка с вариантами результата выполнения — используйте именно её, а не ручные манипуляции.
Ограничение: вернуть можно только на точки, предусмотренные маршрутом. Если схема процесса не содержит обратной связи (например, линейное согласование без ветки отказа), штатный возврат может быть недоступен — тогда переходите к следующим способам.
Перенаправление задачи другому исполнителю
Если проблема не в маршруте, а в том, что задача попала не к тому человеку, используйте перенаправление. В типовых конфигурациях в форме задачи есть команда «Перенаправить» (или «Переадресовать»): укажите нового исполнителя и, при необходимости, комментарий. Задача снимается с текущего исполнителя и появляется у нового, процесс продолжается без прерывания.
Массовое перенаправление доступно администратору: в 1С:Документообороте есть обработка перенаправления задач, позволяющая выбрать несколько задач и назначить нового исполнителя. Это полезно, когда сотрудник уволился или ушёл в отпуск, а его задачи «висят» и блокируют процессы.
Учтите: перенаправление не откатывает процесс назад, а корректирует текущую точку. Если ошибка произошла раньше — например, на этапе согласования выбран неверный вариант — одного перенаправления недостаточно.
Прерывание процесса и повторный запуск
Когда процесс ушёл по неправильной ветке и вернуть его штатными средствами нельзя, практичное решение — прервать процесс и запустить новый с корректными параметрами. В типовых конфигурациях в карточке бизнес-процесса есть команда «Прервать» (или установка состояния «Прерван»). Все активные задачи по процессу при этом закрываются.
Последовательность действий: зафиксируйте, на каком этапе процесс остановлен и какие документы успели создаться или провестись. Затем прервите процесс, при необходимости отмените связанные документы и запустите новый процесс по тому же объекту с правильными настройками маршрута и исполнителями.
- 1Откройте карточку бизнес-процесса и изучите карту маршрута: текущая точка, выполненные задачи, связанные документы
- 2Сделайте резервную копию базы или как минимум зафиксируйте состояние ключевых документов
- 3Отмените или распроведите документы, созданные ошибочными шагами процесса
- 4Выполните команду «Прервать» в карточке процесса
- 5Запустите новый процесс с корректными параметрами
- 6Проверьте, что задачи появились у правильных исполнителей, а у старого процесса активных задач не осталось
Минус способа очевиден: история дробится на два процесса, и при большом числе пройденных этапов согласование фактически начинается заново. Поэтому прерывание оправдано, когда ошибка обнаружена на ранних этапах или маршрут был принципиально неверным.
Программный откат: изменение точки маршрута
В конфигурациях на обычных механизмах БСП (без доработанного согласования) возврат на предыдущую точку часто делается программно. У объекта «Бизнес-процесс» есть табличная часть или реквизиты с точками маршрута; технически можно создать новую задачу по нужной точке и закрыть ошибочную. Это работа для разработчика, выполняемая через консоль кода или специальную обработку.
Упрощённый пример логики: находим активную задачу процесса, устанавливаем ей признак выполнения с нужным результатом либо создаём объект задачи с привязкой к бизнес-процессу и нужной точке маршрута, затем записываем. После этого вызываем обработчики, которые конфигурация использует при выполнении задач, чтобы маршрут пересчитался корректно.
// Пример: программное выполнение задачи с возвратом
ЗадачаОбъект = ЗадачаСсылка.ПолучитьОбъект();
ЗадачаОбъект.Выполнена = Истина;
ЗадачаОбъект.РезультатВыполнения = "Возвращено на доработку";
ЗадачаОбъект.Записать();
// Далее механизм конфигурации создаст задачу по предыдущей точке маршрутаЕсли конфигурация самописная, универсального рецепта нет: изучите, как в ней реализовано выполнение задач и переход между точками, и воспроизведите эту логику. Часто безопаснее не «чинить» текущий процесс, а программно прервать его и создать новый с переносом важных данных.
Откат через восстановление резервной копии
Единственный способ вернуть базу в состояние «как было до ошибки» — восстановление из резервной копии. Это крайняя мера, оправданная, когда ошибочный процесс успел наделать массовых изменений: провёл десятки документов, разослал задачи сотням пользователей, запустил обмены.
Последствия восстановления нужно оценить заранее: все данные, введённые после создания копии, будут потеряны — не только по проблемному процессу, но и по всей базе. Поэтому полный откат базы применяют, когда ошибка обнаружена быстро и объём потерянных данных меньше объёма исправлений вручную. Альтернатива в клиент-серверном варианте — восстановить копию в отдельную базу, выгрузить оттуда нужные данные и перенести в рабочую.
Проверка результата после отката
После любого способа отката убедитесь, что система в согласованном состоянии. Откройте карту маршрута процесса: текущая точка должна соответствовать ожидаемой, активные задачи — числиться за правильными исполнителями. Проверьте список задач у пользователей, участвовавших в процессе: не должно остаться «висящих» задач от старой итерации.
Отдельно проверьте связанные документы и регистры: если процесс создаёт или проводит документы, убедитесь, что ошибочные движения отменены. В конфигурациях с обменами (ЭДО, интеграции) проверьте очередь исходящих сообщений — ошибочный процесс мог поставить в очередь отправку, которую нужно отменить вручную.
Как проверить результат
Текущая точка соответствует нужному этапу, история читается
Процесс активен, но текущей точки нет или она неожиданная
Активные задачи только у нужных пользователей
Задачи-дубли или задачи у сотрудников из старой итерации
Ошибочные документы распроведены или помечены на удаление
Документы проведены и дают движения по регистрам
Нет исходящих сообщений по отменённым шагам
Сообщения стоят в очереди или уже отправлены контрагенту
Часто задаваемые вопросы
Можно ли откатить уже завершённый бизнес-процесс?
Нет, завершённый процесс нельзя «развернуть» обратно — его маршрут закрыт. Доступны только компенсирующие действия: отмена или сторнирование созданных документов, запуск нового процесса с корректными параметрами, при необходимости — уведомление участников об аннулировании результатов прежнего согласования.
Почему в карточке задачи нет кнопки «Вернуть на доработку»?
Вариант возврата появляется, только если он предусмотрен схемой маршрута и настройками процесса. В линейных маршрутах без ветки отказа штатного возврата нет. Также проверьте права: часть вариантов выполнения задачи может быть скрыта настройками прав доступа или ролями.
Что будет с задачами пользователей, если прервать процесс?
При штатном прерывании все активные задачи по процессу закрываются и исчезают из списков исполнителей. Если задачи удалить вручную вместо прерывания, процесс останется активным и будет «ждать» результата — так делать нельзя.
Как откатить процесс, если согласующий уже уволен?
Задачи уволенного сотрудника перенаправляются другому исполнителю — штатно через команду «Перенаправить» в форме задачи или массовой обработкой перенаправления. Откатывать сам процесс при этом не требуется: маршрут продолжится с новым исполнителем.
Можно ли откатить только один шаг, не трогая остальные?
Да, если маршрут поддерживает возврат на предыдущую точку — выполните текущую задачу с результатом «на доработку». Если такой ветки нет, потребуется программное создание задачи по нужной точке маршрута, что относится к зоне ответственности разработчика и требует проверки на тестовой базе.
Поможет ли откат конфигурации на прошлый релиз?
Нет. Обновление конфигурации меняет структуру метаданных, а не данные конкретного бизнес-процесса. Откат релиза не вернёт задачи и точки маршрута в прежнее состояние, а вот нарушить работу базы может. Проблему конкретного процесса решайте на уровне данных, а не конфигурации.
Что важно запомнить
Откат бизнес-процесса в 1С — это не одна кнопка, а выбор способа под ситуацию: возврат на доработку, перенаправление, прерывание с повторным запуском, программная корректировка или восстановление из копии. Всегда начинайте с анализа карты маршрута, делайте резервную копию и после отката проверяйте задачи, документы и очереди обменов.