К статье
Практический материал

Администрирование · 11 мин

Как удалить бизнес-процесс в 1С

Как удалить бизнес-процесс в 1С: пометка на удаление, удаление помеченных объектов, работа с задачами и картой маршрута, типичные ошибки и проверка результата.

Бизнес-процесс в 1С — это объект, который хранит маршрут, состояние прохождения точек и связанные задачи. Просто так стереть его нельзя: платформа защищает ссылочную целостность, поэтому удаление всегда идёт в два этапа — сначала пометка на удаление, затем физическое удаление через специальную обработку. Если у процесса есть активные задачи или на него ссылаются другие объекты, удаление будет заблокировано до устранения этих связей.

Типичные ситуации, когда требуется удалить бизнес-процесс: процесс запущен по ошибке, тестовый экземпляр остался после отладки маршрута, процесс завис в промежуточной точке и мешает закрытию периода, либо накопились тысячи завершённых процессов, раздувающих базу. Во всех случаях порядок действий одинаков, отличается только подготовка.

Ниже разобраны оба сценария — удаление через интерфейс пользователя и программное удаление, а также способы обойти типичные блокировки: незавершённые задачи, ссылки из других объектов и недостаток прав.

Что проверить перед удалением бизнес-процесса

Прежде чем помечать процесс на удаление, определите его состояние. Активный процесс, по которому пользователи выполняют задачи, удалять нельзя — это нарушит работу сотрудников и оставит «висячие» задачи в их списках. Завершённый или прерванный процесс удаляется безопасно, если на него нет ссылок.

Проверьте три вещи: статус процесса (завершён/не завершён), наличие невыполненных задач по этому процессу и наличие ссылок из других объектов — например, процесс может быть указан в документе, другом бизнес-процессе или храниться в регистре сведений. Ссылки ищутся стандартной функцией «Поиск ссылок на объект» (в тонком клиенте: «Ещё → Поиск ссылок» в форме объекта или через «Все функции»).

Процесс завершён, задач нетУдаление безопасно

Можно помечать на удаление и удалять через стандартную обработку

Есть невыполненные задачиУдаление заблокировано

Сначала выполнить, прервать или пометить задачи на удаление

На процесс есть ссылкиУдаление заблокировано

Найти ссылки через «Поиск ссылок на объект» и устранить их

Нет права «Удаление»Кнопка недоступна

Обратиться к администратору или работать под полными правами

Удаление бизнес-процесса через интерфейс

Стандартный способ подходит для удаления одного или нескольких процессов вручную. Откройте список бизнес-процессов нужного вида: обычно это раздел «Предприятие», «Управление процессами» или «НСИ и администрирование» — расположение зависит от конфигурации. Универсальный путь: «Все функции → Бизнес-процессы → нужный вид процесса».

Порядок действий
  1. 1
    Откройте список бизнес-процессов нужного вида
  2. 2
    Выделите процесс и нажмите «Пометить на удаление» (или клавишу Delete), подтвердите действие
  3. 3
    При необходимости так же пометьте связанные задачи этого процесса
  4. 4
    Перейдите в «Администрирование → Обслуживание → Удаление помеченных объектов»
  5. 5
    Выберите режим «Выборочное удаление» или «Автоматическое удаление» и нажмите «Удалить»
  6. 6
    Если платформа покажет список препятствующих ссылок — устраните их и повторите удаление

Пометка на удаление — это не удаление, а установка признака. Объект остаётся в базе, но исключается из большинства операций. Физически данные стираются только обработкой «Удаление помеченных объектов», которая проверяет ссылочную целостность по всей базе.

В монопольном режиме удаление проходит быстрее и надёжнее: обработка не конкурирует с транзакциями других пользователей. В клиент-серверной базе с активными пользователями массовое удаление лучше выполнять в нерабочее время.

Что делать с задачами бизнес-процесса

Задачи — главный источник блокировок при удалении процесса. Каждая точка маршрута, на которой процесс остановился, порождает задачу, а задача хранит ссылку на бизнес-процесс. Пока существует хотя бы одна непомеченная задача, удалить процесс не получится.

Есть три варианта работы с задачами. Первый — выполнить задачи штатно, если процесс нужно довести до конца. Второй — прервать процесс: в типовых конфигурациях предусмотрена команда «Прервать» в форме процесса, после прерывания задачи становятся неактуальными. Третий — пометить задачи на удаление вручную: откройте список задач, отберите по полю «Бизнес-процесс» и пометьте найденные.

Маршрут решения

Как выбрать действие

Процесс должен быть доведён до результатаВыполните задачи штатно, дождитесь завершения процесса, затем удаляйте
Процесс запущен ошибочно и не нуженПрервите процесс командой в форме, пометьте на удаление процесс и его задачи
Процесс завис и кнопка «Прервать» недоступнаПометьте на удаление задачи вручную через отбор по бизнес-процессу, затем сам процесс
Удаляете массово старые завершённые процессыИспользуйте групповую пометку через обработку или запрос, затем «Удаление помеченных объектов»

Программное удаление через встроенный язык

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

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Согласование.Ссылка

|ИЗ

| БизнесПроцесс.Согласование КАК Согласование

|ГДЕ

| Согласование.Завершен

| И Согласование.Дата < &ДатаОтсечки";

Запрос.УстановитьПараметр("ДатаОтсечки", ДобавитьМесяц(ТекущаяДата(), -6));

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

ПроцессОбъект = Выборка.Ссылка.ПолучитьОбъект();

ПроцессОбъект.УстановитьПометкуУдаления(Истина);

КонецЦикла;

Код помечает на удаление завершённые процессы старше полугода. Учтите: метод УстановитьПометкуУдаления у объекта бизнес-процесса обычно помечает и подчинённые задачи, но поведение зависит от конфигурации — проверьте результат на одном экземпляре перед массовым запуском.

Типичные ошибки и блокировки при удалении

Самая частая ситуация — обработка «Удаление помеченных объектов» показывает процесс в списке «не удалённых» и выдаёт перечень мест использования. Это нормальное поведение: платформа нашла ссылки. Откройте каждый объект из списка и либо очистите ссылку, либо пометьте сам объект на удаление, затем повторите операцию.

Вторая ошибка — попытка удалить процесс, по которому идёт обмен данными. Если база участвует в распределённой системе или синхронизации, удалённый объект может «вернуться» из другого узла или вызвать конфликт. Перед удалением убедитесь, что процесс не зарегистрирован в планах обмена, либо удаляйте согласованно во всех узлах.

Типичные ошибки
01
Удаление без пометки задач — обработка блокирует удаление из-за ссылок задач на процесс
02
Запуск «Удаления помеченных объектов» без прав администратора — обработка недоступна или завершается с ошибкой
03
Удаление активных процессов — у пользователей остаются задачи, ведущие в никуда, и сбои в отчётах по процессам
04
Массовое удаление без резервной копии — восстановить ошибочно удалённые процессы можно только из бэкапа
05
Прямое удаление в СУБД — повреждение базы и ошибки «Объект не найден» в журнале регистрации

Как проверить результат удаления

После завершения обработки убедитесь, что процесс действительно удалён, а база осталась в консистентном состоянии. Откройте список бизнес-процессов — удалённого объекта там быть не должно, включая отображение помеченных. Проверьте список задач: отбор по удалённому процессу должен давать пустой результат.

Дополнительно полезно выполнить тестирование и исправление информационной базы с включённой проверкой ссылочной целостности — особенно после массового удаления. Проверка выполняется в конфигураторе: «Администрирование → Тестирование и исправление», пункты «Ссылочная целостность» и «Поиск некорректных ссылок».

Контрольные точки

Как проверить результат

Список бизнес-процессов
Норма

Удалённого процесса нет в списке даже с показом помеченных

Тревожный признак

Процесс виден с пометкой — значит, обработка его не удалила

Задачи по процессу
Норма

Отбор по процессу даёт пустой список

Тревожный признак

Остаются задачи со ссылкой на удалённый объект

Журнал регистрации
Норма

Нет ошибок «Объект не найден» после удаления

Тревожный признак

Появляются ошибки обращения к удалённым объектам

Тестирование и исправление
Норма

Проверка ссылочной целостности проходит без замечаний

Тревожный признак

Найдены битые ссылки — требуется исправление

Альтернативы удалению

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

Для борьбы с разрастанием базы вместо удаления можно использовать свёртку старых данных или перенос актуальных данных в новую базу. В клиент-серверных вариантах также применяют регламентную очистку по расписанию через заранее настроенную процедуру пометки и удаления — это снижает риск накопления мусора без ручных операций.

Сравнение вариантов

Пометка и штатное удаление

Подходит для единичных процессов; безопасно, но требует ручной устранения ссылок

Программная пометка + обработка

Подходит для массовой чистки старых процессов; требует прав, копии базы и проверки на одном объекте

Прерывание без удаления

Подходит, когда историю нужно сохранить; база растёт, но данные доступны для аудита

Оставить завершённым

Нулевой риск; подходит для процессов с юридически значимой историей согласований

Итог

Что важно запомнить

Бизнес-процесс удаляется в два этапа: пометка на удаление и обработка «Удаление помеченных объектов». Главные препятствия — активные задачи и ссылки из других объектов; их нужно устранить заранее. Перед массовым удалением сделайте резервную копию и проверьте результат тестированием ссылочной целостности.

Частые вопросы

Почему кнопка «Пометить на удаление» недоступна?

Чаще всего не хватает прав: у роли пользователя нет права «Удаление» или «Интерактивное удаление» на этот вид бизнес-процессов. Реже объект заблокирован другим сеансом или открыт для редактирования. Проверьте права в конфигураторе или попросите администратора выполнить операцию под полными правами.

Что произойдёт с задачами при удалении бизнес-процесса?

При установке пометки удаления на объект бизнес-процесса платформа обычно помечает и связанные задачи, но это зависит от настроек конфигурации. Если задачи остались непомеченными, обработка удаления заблокирует процесс — тогда пометьте задачи вручную через отбор по полю «Бизнес-процесс».

Можно ли восстановить удалённый бизнес-процесс?

После физического удаления обработкой «Удаление помеченных объектов» — нет, объект стирается из таблиц базы. Восстановление возможно только из резервной копии. Пока установлена лишь пометка, её можно снять в любой момент той же кнопкой.

Обработка пишет, что объект используется в других местах. Что делать?

Откройте список мест использования, который показывает обработка, и пройдите по каждому объекту: очистите ссылку на процесс в реквизите или пометьте сам объект на удаление. После устранения всех ссылок повторите удаление — процесс будет стёрт.

Можно ли удалить процесс, по которому идёт синхронизация с другой базой?

Технически можно, но нежелательно: удалённый объект может вернуться из другого узла обмена или вызвать коллизию. Согласуйте удаление в обоих узлах, либо убедитесь, что объект не зарегистрирован в планах обмена, прежде чем помечать его.

Как удалить сразу все тестовые процессы?

Используйте программную пометку запросом с отбором по нужному условию (вид процесса, дата, комментарий, признак завершённости), затем запустите «Удаление помеченных объектов». Обязательно проверьте выборку на одном объекте и сделайте резервную копию перед массовой операцией.