Как правильно удалить старые объекты метаданных от 1С и не задеть собственные доработки

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

В процессе длительной эксплуатации и регулярного обновления конфигураций 1С (особенно таких динамичных, как Бухгалтерия предприятия 3.0 или ERP), в дереве метаданных неизбежно скапливаются объекты с префиксом Удалить. Это происходит потому, что разработчики 1С при изменении архитектуры решения не удаляют старые справочники, документы или регистры мгновенно, чтобы дать возможность обработчикам обновления корректно перенести данные в новые структуры. Однако со временем такие объекты начинают загромождать конфигурацию, усложнять поиск и увеличивать размер информационной базы.

Рассмотрим подробнее, как эффективно провести «инвентаризацию» в дереве объектов, отличить «мусор» поставщика от важных внутренних доработок и безопасно выполнить очистку.

Метод 1: Идентификация через окно настройки поддержки

Проанализируем самый надежный способ определения принадлежности объекта. Визуально в дереве метаданных не всегда понятно, был ли объект добавлен вашим разработчиком или он пришел из старого релиза типового решения. Для этого воспользуемся механизмом поддержки.

  1. Откроем конфигуратор и перейдем в меню Конфигурация — Поддержка — Настройка поддержки.
  2. В открывшемся окне мы увидим дерево объектов, которые официально входят в состав поставки от 1С.
  3. Разберем логику: если объект присутствует в этом списке, значит, он принадлежит поставщику. Если же объекта в списке конфигурации поставщика нет, но он присутствует в основном дереве метаданных — это либо ваша собственная доработка, либо объект, который был полностью исключен 1С из поддержки в прошлых релизах.
  4. Обратим внимание на пиктограммы: объекты 1С обычно помечены «желтым кубиком». Если кубика нет, и объект не имеет префикса вашей компании — высока вероятность, что это ваша доработка, созданная «с нуля».

Метод 2: Анализ префиксов и правил именования

Выясним причину появления префиксов. Согласно стандартам разработки 1С, при выводе объекта из эксплуатации ему присваивается префикс Удалить. Например, УдалитьЗамерыВремени или УдалитьРезультатыОбменаДанными.

Проанализируем ситуацию с внутренними доработками. Хорошим тоном считается использование уникальных префиксов для собственных объектов (например, ит_СправочникКлиентов или Доп_РегистрСведений). Если ваши разработчики не следовали этому правилу, отличить их объекты от «удаляемых» объектов 1С сложнее. В таком случае нам поможет поиск ссылок в коде.

Метод 3: Сравнение с «пустой» типовой базой

Если возникли сомнения, является ли объект «забытым» наследником старых релизов 1С или чьим-то творчеством, выполним сравнение конфигураций. Разберем по шагам:

  1. Развернем чистую базу того же релиза и версии (например, актуальную БП 3.0.Х.Х).
  2. Сохраним ее конфигурацию в файл .cf.
  3. В нашей рабочей базе выберем Конфигурация — Сравнить, объединить с конфигурацией из файла.
  4. В окне сравнения мы увидим список объектов, которые есть в нашей базе, но отсутствуют в чистой типовой.
  5. Если объект помечен как «отсутствующий в конфигурации из файла» и при этом называется УдалитьИмяОбъекта, значит, 1С его уже окончательно удалила из своих дистрибутивов, и в вашей базе он остался «мертвым грузом» после прошлых обновлений, где галочка «удалять объекты» была снята.

Метод 4: Проверка наличия данных перед удалением

Прежде чем нажать кнопку Delete, крайне важно убедиться, что объект пуст. Если в объекте с префиксом Удалить все еще есть данные, это может означать, что процедуры обновления не отработали до конца или данные не были перенесены.

Посмотрим на пример простого кода, который можно запустить во внешней обработке для проверки заполненности таблицы (на примере регистра сведений):


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |   *
    |ИЗ
    |   РегистрСведений.УдалитьРезультатыОбменаДанными КАК Результаты";

РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
    Сообщить("Внимание! Объект содержит данные. Удалять нельзя.");
Иначе
    Сообщить("Объект пуст, можно рассматривать удаление.");
КонецЕсли;

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

Метод 5: Проверка зависимостей в коде (Глобальный поиск)

Даже если объект пуст и помечен на удаление разработчиками 1С, на него могут существовать ссылки в программном коде. Это критично для «обработчиков завершения обновления». Выясним, как это проверить:

  1. Нажмем Ctrl + Shift + F (Глобальный поиск).
  2. Введем имя объекта (например, РезультатыОбменаДанными).
  3. Важный момент: если ссылки найдены только в процедурах, начинающихся с Удалить... или в модулях обновления (ОбновлениеИнформационнойБазыБП), это допустимо.
  4. Если же ссылки найдены в основных экспортных методах или формах, которые вы используете, удаление объекта метаданных приведет к критической ошибке конфигуратора при сохранении (нарушение целостности).

Риски и рекомендации по безопасному удалению

Рассмотрим стратегию безопасной очистки, чтобы избежать падения системы при следующем обновлении:

  1. Создание резервной копии: Это обязательный этап перед любыми манипуляциями с составом метаданных.
  2. Последовательность: Сначала удаляйте только те объекты, которые точно принадлежат 1С (имеют префикс Удалить) и отсутствуют в текущем окне настройки поддержки.
  3. Тестовое обновление: После удаления объектов обязательно попробуйте обкатать обновление на копии базы до следующего релиза. Иногда 1С обращается к удаленным объектам в коде «переходных» периодов.
  4. Внутренние префиксы: Чтобы в будущем не возникало путаницы, договоритесь внутри команды разработчиков всегда использовать префикс организации для новых объектов.

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

← На главную