← На главную
В процессе эксплуатации и доработки информационных баз 1С:Предприятие часто возникают ситуации, когда к основной конфигурации (например, «1С:Бухгалтерия» или «1С:Управление торговлей») подключаются дополнительные отраслевые или специализированные модули от сторонних поставщиков. Со временем необходимость в таких модулях (например, сторонних CRM-системах или блоках доставки) может отпасть. Однако простое отключение не всегда приводит к полной очистке базы.
В данной статье мы подробно разберем, как правильно, а главное — безопасно удалить ставшую ненужной вторую конфигурацию поставщика, полностью очистить базу данных от ее программного кода, объектов метаданных и избежать появления «фантомных» связей и ошибок в работе системы.
Обязательный подготовительный этап: создание резервной копии
Прежде чем приступать к любым манипуляциям с метаданными и правилами поддержки, категорически рекомендуется создать полную резервную копию базы данных. Процесс удаления конфигурации затрагивает глубокие слои метаданных и структуру таблиц СУБД. В случае совершения ошибки восстановить работоспособность базы без бэкапа будет крайне сложно.
Если вы работаете в файловом варианте, скопируйте файл 1Cv8.1CD. Если используется клиент-серверный вариант — выполните резервное копирование средствами СУБД (MS SQL Server, PostgreSQL) или выгрузите информационную базу в файл резервной копии .dt через Конфигуратор («Администрирование» — «Выгрузить информационную базу»).
Шаг 1. Снятие ненужной конфигурации с поддержки
Выясним, как убрать визуальное отображение второй конфигурации в окне настройки поддержки. Если конфигурация находится на поддержке у нескольких поставщиков, нам нужно отключить именно того, чьи объекты подлежат удалению.
Рассмотрим пошагово этот процесс:
- Откроем базу данных в режиме «Конфигуратор».
- В главном меню перейдем в раздел Конфигурация — Поддержка — Настройка поддержки.
- В открывшемся окне мы увидим дерево конфигураций и их поставщиков. Найдем ту конфигурацию, которую необходимо удалить (например, сторонний модуль).
- Выделим ее в списке и обратим внимание на правую часть окна. Там находится кнопка «Снять с поддержки». Нажмем ее.
- Система выдаст предупреждение о том, что изменения будут необратимы. Подтверждаем свое действие.
После выполнения этих действий лишняя конфигурация исчезнет из списка обслуживаемых поставщиков. Однако на этом этапе удаляется лишь связь с обновлением от поставщика. Весь программный код, формы, справочники, документы и регистры удаляемой системы все еще остаются физически в вашей конфигурации.
Шаг 2. Полное удаление объектов метаданных и программного кода
Для того чтобы физически очистить конфигурацию от оставшегося неиспользуемого кода, рассмотрим три основных и наиболее эффективных метода.
Метод А. Физическое удаление объектов по подсистемам
Если разработчики удаляемого решения спроектировали его аккуратно, все объекты этого решения должны быть включены в одну или несколько специализированных подсистем. Проанализируем эту ситуацию и выполним следующие действия:
- Откроем дерево метаданных конфигурации.
- Найдем ветку «Общие» — «Подсистемы».
- Найдем подсистему, принадлежащую удаляемому решению.
- Нажмем на нее правой кнопкой мыши и выберем пункт «Удалить».
- Платформа 1С предложит несколько вариантов удаления. Если мы выберем опцию «Удалить вместе с объектами», система автоматически найдет и удалит все объекты метаданных, которые входят в данную подсистему.
Важное примечание: Этот способ сработает идеально только в том случае, если разработчики стороннего решения корректно и полностью включили абсолютно все свои объекты в соответствующую подсистему. Если часть объектов осталась вне подсистемы, их придется искать и удалять вручную.
Метод Б. Сравнение и объединение с пустой конфигурацией
Если объектов очень много и они разбросаны по разным веткам метаданных, можно воспользоваться механизмом выборочного объединения. Разберем по шагам, как это сделать:
- Создадим на диске чистую, абсолютно пустую базу данных в режиме «Конфигуратор».
- Выгрузим ее конфигурацию в файл (Конфигурация — Сохранить конфигурацию в файл...), назовем его, например,
empty.cf.
- Вернемся в нашу рабочую конфигурацию.
- Выберем меню Конфигурация — Сравнить, объединить с конфигурацией из файла... и укажем наш созданный файл
empty.cf.
- В открывшемся окне сравнения и объединения по умолчанию будут стоять галочки на удаление всех объектов, так как в файле сравнения ничего нет. Нам нужно действовать от обратного.
- Снимем галочки со всех объектов верхнего уровня (кликнув по корневому узлу).
- Перейдем в меню Действия — Отметить по подсистемам.
- В открывшемся списке выберем только подсистему удаляемой конфигурации.
- Установим режим «Установить флажки». После этого система отметит галочками только те объекты, которые принадлежат удаляемому решению.
- Выполним объединение. Отмеченные объекты будут удалены из метаданных.
Метод В. Использование чистого файла поставщика основной конфигурации
Этот способ является самым чистым и надежным, если в основную типовую конфигурацию ранее не вносились собственные уникальные доработки (или их объем минимален).
- Скачаем с портала обновлений 1С чистый дистрибутив той же самой версии типовой конфигурации, которая установлена у вас в качестве основной.
- Распакуем его и найдем файл шаблона
1cv8.cf.
- В нашей рабочей базе выберем пункт меню Конфигурация — Сравнить, объединить с конфигурацией из файла... и выберем этот чистый
.cf-файл.
- В окне сравнения и объединения снимем галочки со всех объектов.
- Через меню Действия — Отметить по подсистемам поставщика отметим только те подсистемы и объекты, которые относятся к основному типовому решению.
- Объекты сторонней конфигурации (NiraxamoCRM и др.) останутся неотмеченными и, соответственно, не будут перенесены или заменены, а после обновления базы данных — исчезнут, так как их не будет в целевой структуре.
Шаг 3. Борьба с «фантомными» объектами и очистка ссылок
Простое удаление объектов из дерева метаданных может нарушить логическую целостность конфигурации. Выясним, на какие подводные камни можно наступить, и как их обойти.
Перед тем как нажать кнопку «Обновить конфигурацию базы данных» (F7), обязательно проверим наличие связей:
- Поиск ссылок на удаляемые объекты: Выделим удаляемый объект (например, справочник сторонней CRM) в дереве метаданных, нажмем правую кнопку мыши и выберем «Поиск ссылок на объект». Если этот справочник используется в типовых общих модулях, подписках на события или определяемых типах основной конфигурации, система покажет эти места. Нам необходимо вручную вычистить этот код, иначе конфигурация выдаст ошибку компиляции.
- Общие объекты и подписки на события: Сторонние разработчики часто внедряют свои обработчики в стандартные процессы. Проверим ветку «Общие» — «Подписки на события». Если там остались подписки, реагирующие, например, на запись типовых документов (Проведение, ПриЗаписи) и вызывающие процедуры из удаляемых общих модулей сторонней CRM, их необходимо удалить. В противном случае пользователи не смогут провести ни один документ в режиме «1С:Предприятие».
- Определяемые типы и общие реквизиты: Проанализируем состав определяемых типов. Если удаляемые объекты входили в состав какого-либо определяемого типа (например,
ДокументОбъект или ВладелецФайлов), удалим их из списка типов этого объекта.
- Планы обмена: Если удаляемая конфигурация интегрировалась в типовые планы обмена, проверим состав этих планов обмена. Убедимся, что из состава отправляемых и получаемых данных исключены удаленные метаданные.
Шаг 4. Очистка физической структуры базы данных
Даже после того как мы успешно удалили метаданные в Конфигураторе и выполнили обновление конфигурации базы данных, физические таблицы в СУБД (на уровне SQL или в файле базы данных) могут содержать остаточные пустые структуры или «хвосты».
Для гарантированной очистки физической структуры базы выполним завершающие регламентные процедуры:
- Запустим механизм Тестирование и исправление... (вкладка «Администрирование»).
- Установим галочки напротив пунктов «Проверка логической целостности» и «Проверка ссылочной целостности».
- В случае обнаружения «битых» ссылок (несуществующих объектов) настроим правила: «Создавать объекты» или «Очищать ссылки» (рекомендуется выбирать очистку, если данные больше не нужны).
- Для файловых баз обязательно запустим утилиту chdbfl.exe (находится в папке
bin установленной платформы 1С) для проверки целостности физического файла.
- Для окончательного сжатия таблиц и удаления неиспользуемого пространства выполним выгрузку информационной базы в файл
.dt, после чего загрузим этот файл обратно в созданную чистую пустую базу данных. Этот процесс полностью пересобирает индексы, оптимизирует размер файлов базы данных и гарантирует отсутствие системного мусора на уровне СУБД.
После выполнения всех шагов мы получим абсолютно чистую рабочую конфигурацию, полностью избавленную от следов присутствия второй ненужной системы.