Обновление доработанных конфигураций в среде 1С всегда требует повышенного внимания, особенно когда стоит задача минимизировать время простоя системы. Стандартный механизм «Сравнения и объединения» может занимать часы на «тяжелых» базах, поэтому многие специалисты рассматривают метод «Загрузить конфигурацию из файла». Разберем подробно, насколько этот метод безопасен, какие риски он несет и как правильно организовать процесс обновления, чтобы не потерять данные.
Прежде всего, проанализируем, как 1С идентифицирует объекты. Каждый объект метаданных (справочник, документ, реквизит) имеет свой уникальный идентификатор — GUID. Важно понимать различие между идентификатором данных (ссылкой на конкретный элемент в базе) и идентификатором объекта метаданных в структуре конфигурации.
Рассмотрим ситуацию: если вы загружаете конфигурацию методом Загрузить конфигурацию из файла, платформа полностью заменяет текущую структуру метаданных. Если файл .cf был получен из базы, которая не является прямым «родственником» (копией) вашей рабочей базы, GUID объектов могут не совпасть. В этом случае при выполнении команды Обновить конфигурацию базы данных (клавиша F7) платформа воспримет старый объект как удаленный, а новый — как только что созданный. Это приведет к безвозвратной очистке таблиц с данными этого объекта в SQL-базе.
Важное правило: Идентификатор в пределах одной конфигурации никогда не изменяется при выгрузке/загрузке .cf или .dt. Он меняется только при копировании объекта внутри дерева метаданных или при некорректном объединении конфигураций из разных источников.
Выясним причину, почему метод загрузки считается «экстремальным» в широких кругах. Проанализируем два подхода:
Рассмотрим пошагово, как подготовить идеальный файл обновления, чтобы избежать проблем в «боевой» базе:
Конфигурация — Поддержка — Обновить конфигурацию. Проходим все промежуточные релизы, если это требуется..cf.Многие забывают, что при обновлении измененной базы существует три конфигурации: конфигурация поставщика (эталонная от 1С), основная конфигурация (ваша с доработками) и конфигурация базы данных (та, в которой работают пользователи). Если вы просто используете Сравнение и объединение, конфигурация поставщика в рабочей базе может остаться старой. Это создаст проблемы при следующем обновлении.
Проанализируем решение из практики: наиболее профессиональным методом считается создание файла поставки. Это позволяет поставить рабочую базу на поддержку вашей собственной модифицированной конфигурации. Для этого в копии используйте меню Конфигурация — Расширения конфигурации — Создать файлы поставки и обновления.
Если ваша система использует РИБ, процедура усложняется. Посмотрим на стандартную логику:
Использование метода «Загрузить конфигурацию» в главном узле РИБ может привести к тому, что платформа пометит всю конфигурацию как измененную. Это повлечет за собой передачу огромного файла обмена во все узлы. В условиях слабых каналов связи это может парализовать работу филиалов. Поэтому в РИБ крайне рекомендуется использовать штатные средства обновления или механизм файлов обновления .cfu.
Загрузка .cf — это только половина дела. Любое обновление типовой конфигурации (например, БП 3.0) требует запуска программных методов обновления. Выясним, как это работает:
При запуске «1С:Предприятие» система сравнивает номер версии в метаданных с номером версии, записанным в информационной базе (обычно в константах или регистре сведений ВерсииПодсистем). Если номера различаются, запускается процедура обновления.
Пример кода, который можно использовать для мониторинга состояния обновления (в консоли кода или обработке):
// Проверим, все ли обработчики обновления завершены
Если ОбновлениеИнформационнойБазы.НеобходимоОбновление() Тогда
Сообщить("Требуется запуск обработчиков обновления данных!");
Иначе
Сообщить("Версия данных соответствует версии конфигурации.");
КонецЕсли;
Подведем итог: можно ли использовать метод Загрузить конфигурацию из файла? Да, но при строгом соблюдении условий:
.cf подготовлен на актуальной копии той же самой базы..cf файле соответствует целевому релизу.Если есть малейшие сомнения в идентичности структур, используйте Сравнение и объединение. Это займет больше времени, но гарантирует сохранность ваших GUID и, соответственно, ваших данных. Рассмотрим этот процесс как инвестицию в стабильность системы.