Почему при обновлении конфигурации 1С постоянно отображаются различия в свойстве «Справочная информация»?

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

В процессе сравнения и объединения конфигураций многие разработчики сталкиваются с ситуацией, когда для ряда объектов метаданных постоянно фиксируются различия в свойстве Справочная информация. Даже если мы принимаем изменения из файла поставщика, сохраняем конфигурацию и повторно запускаем сравнение, окно объединения вновь показывает различия в этом свойстве. Разберем детально, почему это происходит и как правильно поступать при обновлении.

Причина возникновения проблемы

Проанализируем внутреннее устройство хранения справочной информации в платформе 1С:Предприятие:

  1. Формат хранения HTML: Свойство объекта Справочная информация хранится внутри метаданных в формате обычной HTML-разметки. Для визуального редактирования и сохранения этого текста Конфигуратор использует системный компонент Windows — движок MSHTML (библиотеку Internet Explorer).
  2. Служебный метатег генератора: При сохранении документа справки движок автоматически генерирует в заголовке HTML служебную строку с указанием точной версии сборки, например: <META name=GENERATOR content="MSHTML 11.00.9600.17963"> или <META name=GENERATOR content="MSHTML 11.00.9600.18212">.
  3. Побайтовое сравнение метаданных: Механизм сравнения конфигураций сопоставляет исходный текст HTML-документов целиком. Если типовая конфигурация собиралась на компьютере разработчика фирмы «1С» с одной версией обновления Windows/MSHTML, а на рабочей машине установлена другая подверсия, платформа регистрирует различие в метатеге генератора, несмотря на то, что видимый текст и форматирование справки полностью идентичны.

Если мы интерактивно откроем редактор справки на локальном компьютере и пересохраним объект, редактор снова внедрит локальную версию MSHTML, из-за чего различие с файлом поставщика возникнет повторно.

Способ 1. Игнорирование различий (рекомендуемый практический подход)

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

  1. В окне сравнения и объединения конфигураций снимем флажки со свойства Справочная информация для объектов, где сам текст справки не модифицировался.
  2. Выполним объединение только по действительно измененным свойствам (модули, формы, реквизиты).
  3. Не тратим время на выравнивание версий системного компонента операционной системы, так как после первого же сохранения справки в конфигураторе версия генератора снова будет обновлена на локальную.

Способ 2. Корректная настройка фильтрации дерева сравнения

Чтобы ложные различия не отвлекали внимание при трехстороннем обновлении через поддержку, настроим фильтрацию дерева объектов:

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

Способ 3. Восстановление правила поддержки или полная замена объекта

Если необходимо полностью сбросить статус модифицированности со справочной информации и вернуть объект к исходному виду поставщика, выполним следующие шаги:

  1. Откроем настройку поддержки через меню: Конфигурация -> Поддержка -> Настройка поддержки.
  2. Найдем проблемный объект метаданных и установим для него правило «Объект поставщика не редактируется» (на замке) либо выполним полную замену объекта из файла поставщика.
  3. При обновлении на полную поддержку платформа перезапишет метаданные целиком из файла поставщика без локального пересохранения редактором.

Способ 4. Ручное выравнивание исходного HTML-кода

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

  1. Откроем свойство Справочная информация нужного объекта в Конфигураторе.
  2. На панели инструментов редактора справки переключимся в режим просмотра исходного текста (кнопка «Исходный текст HTML»).
  3. Найдем тег <META name=GENERATOR ...> и скорректируем номер версии в соответствии с эталонным файлом конфигурации либо удалим эту строку.
  4. Сохраним изменения. Обратите внимание: последующее визуальное редактирование текста справки снова добавит локальную версию генератора.

Альтернативные варианты: Git и выгрузка в файлы

При использовании современных инструментов разработки (1C:EDT или механизм выгрузки конфигурации в файлы XML) версионирование выполняется через систему контроля версий (Git). В этом случае различия в версиях генератора можно нормализовать автоматически:

  1. Настроить правила слияния в файле .gitattributes для игнорирования незначительных изменений в метатегах.
  2. Использовать скрипты предварительной фиксации (pre-commit hooks) для автоматического удаления или стандартизации тега MSHTML перед коммитом в репозиторий.
← На главную