Как устранить различия в справочной информации объектов при обновлении нетиповой конфигурации 1С

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

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

Разберем подробно причинно-следственную связь этой проблемы и проанализируем практические способы её устранения.

Выясним причину: почему возникают фантомные различия

Проанализируем техническую составляющую платформы «1С:Предприятие». Данное поведение не является ошибкой самой платформы или повреждением метаданных. Различие формируется системным компонентом MSHTML — движком Internet Explorer, который платформа использует для работы со встроенным HTML-редактором справки.

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

<META name="GENERATOR" content="MSHTML 11.00.10570.1001">

Если доработку или обновление конфигурации выполняли на компьютерах с разными версиями Windows или обновлений Internet Explorer, значения тега GENERATOR будут различаться. При сравнении конфигураций платформа честно считывает текст HTML-файла справки и фиксирует разницу в коде, хотя визуально текст справки остается абсолютно идентичным.

Способ 1. Выгрузка конфигурации в файлы и очистка HTML-тегов

Рассмотрим наиболее эффективный метод массового устранения различий без необходимости подгонять версии операционных систем на рабочих станциях разработчиков. Метод заключается в обработке исходных XML и HTML-файлов конфигурации.

  1. Выполним выгрузку основной конфигурации в файлы через меню Конфигурация — Выгрузить конфигурацию в файлы... в специальный каталог.
  2. Аналогичным образом выгрузим в отдельный каталог конфигурацию поставщика (или конфигурацию БД).
  3. Справочная информация объектов хранится внутри структуры каталогов в виде отдельного HTML-контента. Найдем файлы справки и с помощью текстового редактора или скрипта удалим строки, содержащие тег META GENERATOR. Также можно полностью скопировать файлы справочной информации из каталога поставщика в каталог основной конфигурации.
  4. Загрузим исправленные файлы обратно через меню Конфигурация — Загрузить конфигурацию из файлов....

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

Способ 2. Настройка правил при сравнении и объединении

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

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

Способ 3. Стандартизация окружения разработки

Проанализируем организационную причину проблемы. Чтобы различия не появлялись в будущем при коллективной разработке, рекомендуется привести рабочие места к единому стандарту:

  1. Выполнять доработку и сборку релизов на выделенном сервере разработки или с использованием одинаковых образцов виртуальных машин.
  2. Следить за тем, чтобы на серверах и ПК разработчиков были установлены одинаковые версии операционной системы и системных компонентов MSHTML.

Способ 4. Полное удаление справки у некритичных объектов

Если в вашей конфигурации справочная информация объектов не используется конечными пользователями и не несет бизнес-ценности, логичным решением будет её очистка.

  1. Откроем справку объекта в Конфигураторе.
  2. Снимем флажок Включать в содержание и полностью удалим текст.

У объектов с пустой справочной информацией служебные HTML-теги не генерируются, что навсегда исключает их из списка различий при последующих обновлениях.

← На главную