Переход между редакциями конфигураций (например, при переходе с редакции 1.2 на 2.0 или с обычных форм на управляемые) принципиально отличается от рутинного обновления на очередной промежуточный релиз. В таких релизах разработчики типовых решений часто выводят устаревшие метаданные из эксплуатации, переименовывая их с префиксом Удалить..., а вместо них создают совершенно новые объекты с прежними именами, но другими внутренними идентификаторами (UUID) и новой структурой реквизитов.
Рассмотрим, почему при попытке накатить доработанный файл конфигурации (.cf) через механизм сравнения и объединения возникают критические ошибки реструктуризации базы данных, слетают роли пользователей и теряется поддержка, а также разберем правильные стратегии выполнения такого перехода.
Проанализируем механику работы платформы «1С:Предприятие» при разных сценариях обновления:
Конфигурация – Поддержка – Обновить конфигурацию). Этот штатный механизм использует файлы обновления поставки (.cfu или .cf) и специальные таблицы соответствий. Платформа сопоставляет метаданные по их внутренним идентификаторам (UUID). Благодаря этому старый справочник ЗначенияСвойствОбъектов корректно сопоставляется с объектом УдалитьЗначенияСвойствОбъектов, а новый справочник создается с нуля без повреждения существующих ссылок.Конфигурация – Сравнить, объединить с конфигурацией из файла). Этот инструмент предназначен для переноса конкретных изменений между одинаковыми структурами и всегда сопоставляет объекты первого уровня исключительно по строковым именам. В результате старый справочник со всеми историческими ссылками и типами владельцев сопоставляется с новым одноименным справочником. При попытке применить такие изменения реструктуризация завершается ошибкой (например, из-за невозможности сменить тип владельца или родителя у существующих данных).Кроме того, прямое объединение с файлом конфигурации не обновляет конфигурацию поставщика, сбрасывает статус поддержки для измененных объектов и приводит к очистке назначенных ролей у пользователей информационной базы.
Если для передачи клиентам или в отдел сопровождения требуется единый файл с минимальным числом ручных действий, разберем по шагам правильную подготовку эталонного файла конфигурации:
Конфигурация – Сохранить конфигурацию в файл...). В полученном файле .cf будет сохранена правильная цепочка UUID и актуальная конфигурация поставщика.Конфигурация – Загрузить конфигурацию из файла.... Данная операция полностью заменяет основную конфигурацию и конфигурацию поставщика, предотвращая коллизии сопоставления по именам./ЗапуститьОбновлениеИнформационнойБазы для выполнения регламентных процедур БСП.Если конфигурацию базы данных нельзя полностью перезаписать операцией загрузки, рассмотрим пошаговый алгоритм постепенного обновления:
Конфигурация – Поддержка – Обновить конфигурацию файлом поставки новой редакции. В окне сравнения объединения принимаем типовые правила сопоставления объектов.Удалить... в новые структуры.Сравнить, объединить с конфигурацией из файла накатываем подготовленный файл с доработками (где исходной базой служила та же самая новая редакция). На этом этапе все типовые объекты уже сопоставлены корректно, а переносятся только пользовательские модули, реквизиты и новые объекты.Если объединение доработанного файла .cf выполняется напрямую с исходной версией базы, необходимо вручную исправить сопоставление переименованных объектов.
Рассмотрим, как выявить и переназначить сопоставление:
Удалить....Сравнить, объединить с конфигурацией из файла находим каждый такой объект (например, справочники, планы видов характеристик, регистры сведений).Удалить... из загружаемого файла, а новый объект из файла оставляем для создания как новый объект метаданных.Для регулярного тиражирования обновлений клиентам лучшим подходом является оформление собственной поставки:
.cfu)..cfu и обновляют базу через стандартный механизм поддержки без ручного выбора галочек в сравнении/объединении.