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