← На главную
В процессе сравнения и объединения конфигураций многие разработчики сталкиваются с ситуацией, когда для ряда объектов метаданных постоянно фиксируются различия в свойстве Справочная информация. Даже если мы принимаем изменения из файла поставщика, сохраняем конфигурацию и повторно запускаем сравнение, окно объединения вновь показывает различия в этом свойстве. Разберем детально, почему это происходит и как правильно поступать при обновлении.
Причина возникновения проблемы
Проанализируем внутреннее устройство хранения справочной информации в платформе 1С:Предприятие:
- Формат хранения HTML: Свойство объекта
Справочная информация хранится внутри метаданных в формате обычной HTML-разметки. Для визуального редактирования и сохранения этого текста Конфигуратор использует системный компонент Windows — движок MSHTML (библиотеку Internet Explorer).
- Служебный метатег генератора: При сохранении документа справки движок автоматически генерирует в заголовке HTML служебную строку с указанием точной версии сборки, например:
<META name=GENERATOR content="MSHTML 11.00.9600.17963"> или <META name=GENERATOR content="MSHTML 11.00.9600.18212">.
- Побайтовое сравнение метаданных: Механизм сравнения конфигураций сопоставляет исходный текст HTML-документов целиком. Если типовая конфигурация собиралась на компьютере разработчика фирмы «1С» с одной версией обновления Windows/MSHTML, а на рабочей машине установлена другая подверсия, платформа регистрирует различие в метатеге генератора, несмотря на то, что видимый текст и форматирование справки полностью идентичны.
Если мы интерактивно откроем редактор справки на локальном компьютере и пересохраним объект, редактор снова внедрит локальную версию MSHTML, из-за чего различие с файлом поставщика возникнет повторно.
Способ 1. Игнорирование различий (рекомендуемый практический подход)
Различие в номере сборки генератора никак не влияет на работу пользователей, отображение справки в режиме предприятия и общую стабильность системы. Поэтому оптимальным решением при выборочном обновлении измененных конфигураций является исключение этого свойства из объединения:
- В окне сравнения и объединения конфигураций снимем флажки со свойства
Справочная информация для объектов, где сам текст справки не модифицировался.
- Выполним объединение только по действительно измененным свойствам (модули, формы, реквизиты).
- Не тратим время на выравнивание версий системного компонента операционной системы, так как после первого же сохранения справки в конфигураторе версия генератора снова будет обновлена на локальную.
Способ 2. Корректная настройка фильтрации дерева сравнения
Чтобы ложные различия не отвлекали внимание при трехстороннем обновлении через поддержку, настроим фильтрацию дерева объектов:
- Откроем окно сравнения и объединения конфигураций.
- В панели фильтров выберем режим отображения «Показывать дважды измененные свойства».
- В этом режиме платформа отобразит только те элементы, которые были изменены одновременно и поставщиком в новом релизе, и разработчиком в текущей базе. Если в доработанной конфигурации справка не редактировалась, она автоматически скроется из списка внимания.
Способ 3. Восстановление правила поддержки или полная замена объекта
Если необходимо полностью сбросить статус модифицированности со справочной информации и вернуть объект к исходному виду поставщика, выполним следующие шаги:
- Откроем настройку поддержки через меню: Конфигурация -> Поддержка -> Настройка поддержки.
- Найдем проблемный объект метаданных и установим для него правило «Объект поставщика не редактируется» (на замке) либо выполним полную замену объекта из файла поставщика.
- При обновлении на полную поддержку платформа перезапишет метаданные целиком из файла поставщика без локального пересохранения редактором.
Способ 4. Ручное выравнивание исходного HTML-кода
Если требуется точечно синхронизировать текст справки без снятия с поддержки или перезаписи всего объекта, отредактируем исходный HTML-код вручную:
- Откроем свойство
Справочная информация нужного объекта в Конфигураторе.
- На панели инструментов редактора справки переключимся в режим просмотра исходного текста (кнопка «Исходный текст HTML»).
- Найдем тег
<META name=GENERATOR ...> и скорректируем номер версии в соответствии с эталонным файлом конфигурации либо удалим эту строку.
- Сохраним изменения. Обратите внимание: последующее визуальное редактирование текста справки снова добавит локальную версию генератора.
Альтернативные варианты: Git и выгрузка в файлы
При использовании современных инструментов разработки (1C:EDT или механизм выгрузки конфигурации в файлы XML) версионирование выполняется через систему контроля версий (Git). В этом случае различия в версиях генератора можно нормализовать автоматически:
- Настроить правила слияния в файле
.gitattributes для игнорирования незначительных изменений в метатегах.
- Использовать скрипты предварительной фиксации (pre-commit hooks) для автоматического удаления или стандартизации тега
MSHTML перед коммитом в репозиторий.