Как полностью удалить вторую конфигурацию поставщика из базы 1С:Предприятие

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

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

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

Обязательный подготовительный этап: создание резервной копии

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

Если вы работаете в файловом варианте, скопируйте файл 1Cv8.1CD. Если используется клиент-серверный вариант — выполните резервное копирование средствами СУБД (MS SQL Server, PostgreSQL) или выгрузите информационную базу в файл резервной копии .dt через Конфигуратор («Администрирование» — «Выгрузить информационную базу»).

Шаг 1. Снятие ненужной конфигурации с поддержки

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

Рассмотрим пошагово этот процесс:

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

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

Шаг 2. Полное удаление объектов метаданных и программного кода

Для того чтобы физически очистить конфигурацию от оставшегося неиспользуемого кода, рассмотрим три основных и наиболее эффективных метода.

Метод А. Физическое удаление объектов по подсистемам

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

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

Важное примечание: Этот способ сработает идеально только в том случае, если разработчики стороннего решения корректно и полностью включили абсолютно все свои объекты в соответствующую подсистему. Если часть объектов осталась вне подсистемы, их придется искать и удалять вручную.

Метод Б. Сравнение и объединение с пустой конфигурацией

Если объектов очень много и они разбросаны по разным веткам метаданных, можно воспользоваться механизмом выборочного объединения. Разберем по шагам, как это сделать:

  1. Создадим на диске чистую, абсолютно пустую базу данных в режиме «Конфигуратор».
  2. Выгрузим ее конфигурацию в файл (Конфигурация — Сохранить конфигурацию в файл...), назовем его, например, empty.cf.
  3. Вернемся в нашу рабочую конфигурацию.
  4. Выберем меню Конфигурация — Сравнить, объединить с конфигурацией из файла... и укажем наш созданный файл empty.cf.
  5. В открывшемся окне сравнения и объединения по умолчанию будут стоять галочки на удаление всех объектов, так как в файле сравнения ничего нет. Нам нужно действовать от обратного.
  6. Снимем галочки со всех объектов верхнего уровня (кликнув по корневому узлу).
  7. Перейдем в меню Действия — Отметить по подсистемам.
  8. В открывшемся списке выберем только подсистему удаляемой конфигурации.
  9. Установим режим «Установить флажки». После этого система отметит галочками только те объекты, которые принадлежат удаляемому решению.
  10. Выполним объединение. Отмеченные объекты будут удалены из метаданных.

Метод В. Использование чистого файла поставщика основной конфигурации

Этот способ является самым чистым и надежным, если в основную типовую конфигурацию ранее не вносились собственные уникальные доработки (или их объем минимален).

  1. Скачаем с портала обновлений 1С чистый дистрибутив той же самой версии типовой конфигурации, которая установлена у вас в качестве основной.
  2. Распакуем его и найдем файл шаблона 1cv8.cf.
  3. В нашей рабочей базе выберем пункт меню Конфигурация — Сравнить, объединить с конфигурацией из файла... и выберем этот чистый .cf-файл.
  4. В окне сравнения и объединения снимем галочки со всех объектов.
  5. Через меню Действия — Отметить по подсистемам поставщика отметим только те подсистемы и объекты, которые относятся к основному типовому решению.
  6. Объекты сторонней конфигурации (NiraxamoCRM и др.) останутся неотмеченными и, соответственно, не будут перенесены или заменены, а после обновления базы данных — исчезнут, так как их не будет в целевой структуре.

Шаг 3. Борьба с «фантомными» объектами и очистка ссылок

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

Перед тем как нажать кнопку «Обновить конфигурацию базы данных» (F7), обязательно проверим наличие связей:

Шаг 4. Очистка физической структуры базы данных

Даже после того как мы успешно удалили метаданные в Конфигураторе и выполнили обновление конфигурации базы данных, физические таблицы в СУБД (на уровне SQL или в файле базы данных) могут содержать остаточные пустые структуры или «хвосты».

Для гарантированной очистки физической структуры базы выполним завершающие регламентные процедуры:

  1. Запустим механизм Тестирование и исправление... (вкладка «Администрирование»).
  2. Установим галочки напротив пунктов «Проверка логической целостности» и «Проверка ссылочной целостности».
  3. В случае обнаружения «битых» ссылок (несуществующих объектов) настроим правила: «Создавать объекты» или «Очищать ссылки» (рекомендуется выбирать очистку, если данные больше не нужны).
  4. Для файловых баз обязательно запустим утилиту chdbfl.exe (находится в папке bin установленной платформы 1С) для проверки целостности физического файла.
  5. Для окончательного сжатия таблиц и удаления неиспользуемого пространства выполним выгрузку информационной базы в файл .dt, после чего загрузим этот файл обратно в созданную чистую пустую базу данных. Этот процесс полностью пересобирает индексы, оптимизирует размер файлов базы данных и гарантирует отсутствие системного мусора на уровне СУБД.

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

← На главную