В процессе сопровождения и обновления конфигураций «1С:Предприятие 8.3» разработчики часто сталкиваются с ситуацией, когда при сравнении основной конфигурации с типовым файлом обновления .cf система показывает различия в объектах, которые фактически не правились. Например, перечисление или справочник выглядят идентично по составу реквизитов и свойств, но всё равно отображаются в дереве сравнения как измененные. Проанализируем причины этой проблемы и разберем пошаговые методы её решения.
Основная причина, по которой визуально идентичные объекты считаются разными — это различие их внутренних идентификаторов (GUID). Для платформы «1С:Предприятие» имя объекта (например, Перечисление.СтатусыЗаказов) является лишь строковым представлением, в то время как уникальность объекта в структуре метаданных определяется скрытым уникальным ключом. Если объект был удален и создан заново с тем же именем или если он был добавлен в двух разных базах вручную, их GUID не совпадут. В окне сравнения и объединения такие объекты будут восприниматься как разные, что мешает корректному обновлению и «мозолит глаза» специалисту.
Самый простой и эффективный способ, предусмотренный современными версиями платформы 8.3, — это механизм ручного сопоставления. Рассмотрим подробнее, как им воспользоваться:
Важно: При таком подходе нужно быть осторожным, если у объекта есть данные (например, значения перечисления или элементы справочника), так как изменение GUID самого объекта-метаданных может повлиять на ссылки.
Если объект «висит» в измененных из-за некорректных правил поддержки, проанализируем ситуацию через специализированное окно. Посмотрим на алгоритм действий:
.cf файлом. При объединении необходимо поставить галочку напротив этого объекта, и платформа заново поставит его на поддержку, привязав к идентификатору поставщика.Часто разработчики сравнивают основную конфигурацию с внешним файлом, забывая, что внутри базы данных хранится еще и «Конфигурация поставщика». Выясним, как использовать её для синхронизации:
Выполним сравнение не с внешним файлом, а через меню Конфигурация — Поддержка — Сравнить конфигурацию с конфигурацией поставщика. В открывшемся окне мы увидим реальную разницу между тем, что пришло от фирмы «1С», и тем, что накоплено в вашей базе. Если мы нажмем кнопку «Выполнить» (предварительно убедившись, что настройки стоят на приведение к виду поставщика), платформа обновит внутренние ссылки метаданных, ссылаясь на эталонные данные из поставки.
Если проблема заключается в перечислении, и мы боимся потерять данные в существующих документах, разберем более сложный, но надежный метод:
_Удалить_СтатусыЗаказов.СтатусыЗаказов, и предложит его добавить._Удалить_СтатусыЗаказов больше нигде не используется, удалим его из метаданных.Для опытных специалистов рассмотрим вариант исправления GUID напрямую. Это исключает необходимость переименований и поиска ссылок в данных. Проанализируем шаги работы с файлами:
Современный инструмент 1C:Enterprise Development Tools (EDT) позволяет работать с конфигурацией как с набором XML-файлов. Схема действий такова:
Enum.ТипОплаты.xml).Uuid. Это и есть тот самый идентификатор, который «не нравится» системе сравнения.Uuid из типового файла в свой рабочий проект.Этот метод считается «хирургическим», так как он напрямую меняет идентификатор. Будьте предельно осторожны: если вы измените Uuid объекта, на который уже есть ссылки в базе данных (в таблицах SQL), вы получите битые ссылки (объект не найден). Этот метод идеален для объектов без данных (некоторые перечисления, общие модули, картинки) или в тех случаях, когда база еще не содержит пользовательских данных.
Иногда «фантомные» различия — это не проблема GUID, а следствие «замусоривания» локального кэша или служебных таблиц базы данных. Перед тем как приступать к радикальным мерам, рекомендуется выполнить следующие действия:
%AppData%\1C\1Cv8\..cf, создание чистой базы и загрузка этого .cf обратно. Это пересобирает внутренние индексы метаданных.Мы рассмотрели несколько способов приведения объектов к типовому виду. Подведем итог: если ваша задача просто «убрать объект из списка сравнения», начните с ручного сопоставления или манипуляций с правилами поддержки. Если же вы столкнулись с реальным дублированием объектов из-за разных идентификаторов, используйте метод с переименованием и заменой ссылок, чтобы гарантировать сохранность данных в учетных документах. Всегда делайте резервную копию базы данных перед любыми операциями, затрагивающими структуру метаданных и идентификаторы объектов.