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