Как правильно перенести изменения в рабочую базу: загрузить конфигурацию или выполнить сравнение и объединение?

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

При разработке и внедрении доработок в конфигурациях 1С (особенно тяжелых решениях уровня 1С:ERP, Комплексная автоматизация или Управление торговлей) часто возникает дилемма: каким способом переносить изменения из базы разработки в продуктивную базу данных. Вопрос становится особенно острым, если в процессе доработки из конфигурации были удалены лишние объекты или существенно переработана структура метаданных. Разберем детально, как работают механизмы платформы, в каких случаях могут быть безвозвратно удалены данные и как правильно выполнить перенос изменений.

В чем принципиальная разница между «Загрузить конфигурацию» и «Сравнить и объединить»

Проанализируем поведение платформы при использовании каждого из этих двух режимов:

  1. Режим «Загрузить конфигурацию из файла»:

    Данная операция выполняет полную замену основной конфигурации разработчика содержимым файла .cf. При этом конфигурация поставщика также полностью замещается версией из файла. Сама команда загрузки не затрагивает таблицы базы данных — перестройка структуры СУБД происходит позже, на этапе выполнения команды Обновить конфигурацию базы данных (горячая клавиша F7). На этом шаге платформа сравнивает новую конфигурацию с конфигурацией базы данных исключительно по внутренним уникальным идентификаторам (UUID). Если объект с определенным UUID отсутствует в загруженной конфигурации, платформа считает его удаленным.

  2. Режим «Сравнить, объединить с конфигурацией из файла»:

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

Почему при загрузке конфигурации могут пропасть данные

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

Платформа 1С идентифицирует таблицы базы данных не по их строковым именам, а по внутренним UUID метаданных. Если новый объект был создан вручную в двух разных базах с совершенно одинаковым именем, синонимом и составом реквизитов, их UUID все равно будут разными. Рассмотрим сценарий:

  1. В рабочей базе создан справочник НоменклатураПоставщиков с внутренним UUID_1, и пользователи уже заполнили его данными.
  2. В тестовой базе этот же справочник создали заново вручную (или пересоздали после удаления), получив UUID_2.
  3. При выполнении операции Загрузить конфигурацию из файла основная конфигурация получает метаданные с UUID_2.
  4. При нажатии F7 платформа фиксирует: объект UUID_1 удален (на уровне СУБД выполняется команда DROP TABLE со всеми данными), а объект UUID_2 — вновь создан (создается новая пустая таблица).

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

Особенности и риски удаления объектов в типовых конфигурациях (БСП)

В конфигурациях, построенных на базе Библиотеки стандартных подсистем (включая ERP), физическое удаление объектов метаданных сопряжено со скрытыми системными рисками:

  1. Реестр метаданных БСП: Библиотека ведет учет всех объектов в служебном справочнике ИдентификаторыОбъектовМетаданных. После удаления объектов и обновления конфигурации БД первый запуск предприятия необходимо выполнять от имени администратора с монопольным доступом (или с ключом командной строки /C ЗапуститьОбновлениеИнформационнойБазы) для корректной очистки устаревших записей справочника.
  2. Неявные ссылки в метаданных: Удаляемый объект может использоваться в типах общих реквизитов, определяемых типах (ОпределяемыйТип), подписках на события (Событие), планах обмена или функциональных опциях. Перед обновлением обязательно запустите синтаксический контроль и полную проверку конфигурации на поиск некорректных ссылок.
  3. Альтернатива удалению: В большинстве случаев вместо физического удаления неиспользуемых блоков ERP безопаснее отключить их через Функциональные опции, скорректировать видимость в подсистемах командного интерфейса или ограничить доступ через профили групп доступа и роли.

Пошаговый регламент безопасного обновления

Разберем по шагам, как гарантированно избежать ошибок и потери информации при переносе серьезных изменений:

  1. Создание копии: Вся разработка и удаление лишних объектов должны выполняться исключительно на копии, выгруженной непосредственно из актуальной рабочей базы. Это сохраняет оригинальные UUID всех существующих метаданных.
  2. Резервное копирование: Перед началом любых манипуляций в продуктивной среде создаем полную резервную копию информационной базы (дамп СУБД или выгрузку .dt).
  3. Проверка перед накатыванием: В конфигураторе базы разработки обязательно выполняем пункты меню Конфигурация — Проверка конфигурации и Конфигурация — Проверка модулей.
  4. Применение изменений:

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

  5. Контроль реорганизации: Нажимаем F7 и внимательно анализируем диалоговое окно Реорганизация информации. Если среди удаляемых объектов присутствуют те, данные которых должны сохраниться, немедленно отменяем операцию обновления и проверяем соответствие UUID через сравнение конфигураций.
  6. Служебное обновление: Запускаем 1С:Предприятие в монопольном режиме для отработки процедур обновления параметров работы программы и справочника идентификаторов метаданных БСП.
← На главную