Почему при обновлении нетиповой конфигурации на разных версиях платформы отображается разное количество измененных объектов?

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

При обновлении нетиповых конфигураций 1С:Предприятие специалисты часто сталкиваются с необъяснимым на первый взгляд поведением: при использовании одинаковых файлов поставки и одинаковой конфигурации на разных серверах или разных версиях платформы окно сравнения и объединения показывает разное количество измененных объектов. Особенно это заметно при использовании фильтра «Показывать только дважды измененные». Рассмотрим подробнее, почему возникают такие расхождения и как версия платформы влияет на процесс обновления.

Разберем суть проблемы

Представим ситуацию: у нас есть две идентичные копии информационной базы с одним и тем же релизом конфигурации. Мы запускаем процесс обновления, используя один и тот же файл .cfu или .cf. Однако в одной базе (например, на платформе 8.3.9) система находит 4 измененных справочника, а в другой (на платформе 8.3.13) — уже 10. Проанализируем ситуацию: если мы заглянем внутрь этих «лишних» объектов, мы действительно обнаружим изменения, которые платформа старой версии просто игнорировала.

Выясним причину: Эволюция механизмов сравнения метаданных

Основная причина кроется в том, что разработчики платформы 1С постоянно совершенствуют механизмы сравнения и объединения. Начиная с версий 8.3.12 и выше, алгоритмы стали более чувствительными к деталям. Выделим ключевые факторы, влияющие на результат:

  1. Чувствительность к системным свойствам. Новые версии платформы анализируют свойства объектов, которые ранее могли считаться несущественными или вовсе игнорировались при сравнении. Это касается параметров, скрытых в XML-структуре метаданных.
  2. Изменение значений по умолчанию. В современных конфигурациях (особенно тех, что используют Библиотеку стандартных подсистем — БСП) многие свойства перешли на использование значения Авто вместо жестко заданных Да или Нет.
  3. Различия в десериализации. Платформа каждой версии использует свои алгоритмы для преобразования объектов из внутреннего формата в дерево метаданных, которое мы видим в окне сравнения.

Проанализируем влияние свойства Использование текущей строки

Одним из наглядных примеров является свойство ИспользованиеТекущейСтроки у команд или элементов управления. Разберем по шагам, что происходит в процессе обновления:

В старых версиях платформы это свойство часто имело булево значение. В новых релизах платформы и конфигураций поставщика это свойство было заменено на системное перечисление, где появилось значение Авто. Когда вы сравниваете конфигурации на платформе 8.3.13, она видит различие между «старым» значением в вашей базе и «новым» системным значением в поставке. Старая же платформа (например, 8.3.9) может не видеть разницы, считая эти значения идентичными по смыслу, и не выводит объект в список «дважды измененных».

Разберем проблему справочной информации и HTML-тегов

Еще один важный момент — это справочная информация (Help) объектов. Посмотрим на ситуацию, когда визуально текст справки не изменился, но платформа помечает объект как модифицированный. Это происходит из-за «прыжка на грабли», знакомого еще со времен версии 7.7:

Рассмотрим новые свойства: История данных и Управление поиском

С выходом новых версий платформы у объектов метаданных (справочников, документов) появляются новые свойства. Например, ИсторияДанных (Data History) или настройки полнотекстового поиска. Проанализируем, как это влияет на сравнение:

Если база была создана или долгое время работала на платформе 8.3.9, в её структуре метаданных могут отсутствовать поля, отвечающие за ИсторияДанных. При сравнении на платформе 8.3.13, система видит, что в конфигурации поставщика эти свойства инициализированы, а в вашей базе — нет или имеют другие значения по умолчанию. Для платформы это является модификацией состава свойств объекта, и она включает его в отчет о сравнении.

Выясним роль режима совместимости

Многие полагают, что установка режима совместимости решает все проблемы с различиями версий. Однако это не совсем так. Даже если в свойствах конфигурации установлен Режим совместимости с версией 8.3.9, само исполняемое приложение 1cv8.exe версии 8.3.13 будет использовать свои обновленные алгоритмы сравнения XML-структур. Платформа 8.3.13 проводит более глубокую проверку целостности, чем её предшественницы.

Как правильно действовать при обновлении?

Для минимизации ошибок и корректного переноса всех изменений, мы рекомендуем придерживаться следующих правил:

  1. Используйте целевую платформу. Всегда выполняйте сравнение и объединение конфигураций на той версии платформы, которая указана в требованиях к релизу конфигурации (обычно это указано в файле ReadMe.txt или на сайте поддержки).
  2. Доверяйте более новой версии. Если версия 8.3.13 показывает больше изменений, чем 8.3.9, скорее всего, эти изменения действительно существуют на уровне системных свойств. Игнорирование их может привести к тому, что после обновления свойства объектов сбросятся в значения «по умолчанию», что может нарушить логику работы форм.
  3. Проверяйте свойства Авто. Если вы видите массовые изменения в командах, проверьте свойства типа ИспользованиеТекущейСтроки или ИзменяетСохраняемыеДанные. Если они изменились на Авто, это нормально для современных конфигураций.

Подводя итог, можно сказать, что разница в количестве объектов при обновлении — это не ошибка, а следствие повышения точности инструментов сравнения в новых версиях платформы 1С. Совместная работа с актуальными инструментами позволит вам избежать «потерянных» настроек метаданных и обеспечит стабильную работу системы после обновления.

← На главную