Как понимать странные изменения в отчете о сравнении объектов при обновлении 1С?

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

При обновлении доработанных конфигураций 1С (например, УТ 11.4) на современных версиях платформы (8.3.14 и выше) программисты часто сталкиваются с ситуацией, когда отчет о сравнении и объединении объектов выдает странные, неинформативные строки. Вместо привычного изменения кода модуля или состава реквизитов мы видим иерархические списки вроде Элементы — Форма — Положение в командной панели или массовые изменения в разделе Справка. При этом визуально форма кажется идентичной той, что была в старой версии.

В этой статье мы подробно разберем природу возникновения таких «фантомных» различий, выясним, почему отчет выдает скудную информацию, и определим алгоритм действий для специалиста.

Причина 1: Изменение внутреннего формата хранения метаданных (XML)

Рассмотрим ситуацию с точки зрения архитектуры платформы. Начиная с версии 8.3.14, компания «1С» провела глубокую модернизацию механизмов хранения управляемых форм. Платформа перешла на новый способ сериализации объектов в XML-файлы конфигурации.

Разберем по шагам, что происходит в этот момент:

  1. При первом открытии или обновлении конфигурации на новой платформе происходит автоматическая нормализация XML-структуры.
  2. В файле формы атрибуты могут поменяться местами, даже если их значения не изменились.
  3. Платформа может начать явно записывать значения свойств «по умолчанию», которые раньше просто отсутствовали в файле.
  4. Механизм сравнения видит различие на уровне байтов в файле и помечает объект как измененный, но в текстовом отчете выводит лишь общую категорию свойства, например, Положение в командной панели.

Проанализируем пример из практики: если в старой версии платформы индекс кнопки в командной панели определялся автоматически (значение «0» или «Авто»), то новая платформа может жестко прописать этот индекс. Отчет зафиксирует различие, хотя кнопка осталась на том же месте.

Причина 2: Специфика свойства «Положение в командной панели»

Часто в отчетах фигурирует строка Положение в командной панели для различных команд (например, ФормаСправка, ЗачетОплаты). Выясним причину этого явления. Платформа 8.3 группирует под этим заголовком сразу несколько изменений:

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

Причина 3: Проблемы с разделом «Справка» и тегами IE

Многие разработчики замечают, что при обновлении массово «подсвечиваются» изменения в справке объектов. Это так называемые «отголоски IE». Разберем ситуацию подробнее:

Исторически справочная информация в 1С отображалась с использованием движка Internet Explorer. В последних версиях платформы осуществляется переход на WebKit. В связи с этим в типовых конфигурациях (УТ, ERP, КА) происходит переформатирование текстов справок:

  1. Меняются мета-теги совместимости (например, X-UA-Compatible).
  2. Меняются кодировки и невидимые символы форматирования.
  3. Удаляются или добавляются специфические CSS-стили, необходимые для корректного отображения в новом движке.

Поскольку Справка является частью метаданных объекта (например, документа), весь объект помечается как измененный. Понять суть таких изменений через стандартный отчет практически невозможно, так как он не предназначен для визуального сравнения HTML-верстки.

Как эффективно работать с такими отчетами?

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

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

2. Проверка через сторонние инструменты. Если критически важно понять, что именно изменилось в форме, а стандартный отчет не помогает, используйте выгрузку файлов в XML. Рассмотрим алгоритм:

  1. Выгрузите объект из основной конфигурации и конфигурации поставщика в файлы.
  2. Используйте внешнюю утилиту сравнения текстов (например, WinMerge или KDiff3).
  3. В текстовом виде вы сразу увидите, изменился ли реальный код или это просто перестановка атрибутов в XML-теге.

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

Примеры технических сообщений и их интерпретация

Рассмотрим типичные строки из отчета и их реальное значение:

Важный момент: на платформе версии 8.3.15 и выше механизм сравнения стал более чувствителен к GUID внутренних элементов. Если когда-то в прошлом форма редактировалась вручную, идентификаторы элементов могут не совпадать с поставщиком, что будет порождать вечные «различия» в отчетах.

Подводя итог, можно сказать: большинство непонятных строк в отчете о сравнении в УТ 11.4 — это следствие эволюции платформы 1С. Основная задача программиста в данном случае — научиться отделять реальные изменения логики (модули, реквизиты) от технической «нормализации» XML и справочной информации.

← На главную