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

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

При работе с крупными конфигурациями на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с неприятной ситуацией: при попытке сравнить текущую конфигурацию с конфигурацией поставщика (или другой версией) система выдает тысячи измененных объектов. При детальном изучении выясняется, что в 99% случаев изменения касаются только Справочной информации, в то время как программный код, формы и макеты остались прежними. Это создает огромный "информационный шум", в котором легко пропустить действительно важные доработки.

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

Выясним причину появления ложных изменений

Прежде чем приступать к решению, давайте разберем, почему платформа помечает справку как измененную, даже если вы ее не открывали. Основными причинами являются:

  1. Разница в форматах перевода строк: В конфигурации может использоваться формат CRLF (Windows), а в конфигурации поставщика — LF (Unix). Для визуального редактора разницы нет, но для системы сравнения файлов это разные данные.
  2. Пустые контейнеры справки: Часто в объектах метаданных заведены разделы справки для нескольких языков (например, русский и английский). Если в одной конфигурации английская справка отсутствует, а в другой присутствует как "пустая строка", платформа зафиксирует изменение.
  3. Обновление версии платформы: Платформа 1С периодически меняет внутренние алгоритмы хранения HTML-разметки. При первом же сохранении объекта на новой версии платформы структура Справочной информации может незначительно перестроиться, что вызовет срабатывание при сравнении со старой версией.

Метод 1: Использование встроенных фильтров платформы

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

В окне сравнения найдите кнопку Фильтр (иконка в виде воронки). В открывшемся меню настроек мы можем управлять видимостью узлов дерева. Нам необходимо:

Проанализируем ситуацию: если после настройки фильтра количество строк в окне резко сократилось, значит, проблема была именно в справке, и теперь вы можете спокойно анализировать Модули объектов и Формы.

Метод 2: Предварительное "зануление" изменений (Объединение)

Если нам необходимо не просто скрыть изменения, а "успокоить" конфигуратор, чтобы он перестал считать эти объекты измененными, можно попробовать метод предварительного объединения. Рассмотрим этот алгоритм:

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

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

Метод 3: Радикальная очистка через выгрузку в файлы

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

Сначала выгрузим обе конфигурации в текстовые файлы. Для этого используем меню: Конфигурация -> Разработка конфигурации -> Выгрузить конфигурацию в файлы.... Проделаем это для вашей рабочей базы и для чистой базы поставщика.

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

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

Метод 4: Использование 1C:Enterprise Development Tool (EDT)

Если ваша команда перешла на разработку в EDT, проблема решается на уровне системы контроля версий Git. Посмотрим на пример настройки файла .gitignore, который позволяет игнорировать изменения в справке при фиксации коммитов:


# Игнорируем файлы справки во всей конфигурации
**/Help/*.html
**/Help/*.xml

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

Метод 5: Программная модификация настроек объединения

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

Можно написать небольшую обработку, которая прочитает этот XML, найдет все узлы, отвечающие за Справочную информацию, и программно установит им признак "Не объединять" или "Игнорировать". После этого измененный файл настроек загружается обратно в окно сравнения. Этот метод требует навыков работы с DOM или ЧтениеXML, но он незаменим, когда нужно массово управлять тысячами флажков по сложным правилам.

Подведем итоги

Проблема ложных срабатываний справочной информации — это известная особенность платформы, связанная с хранением HTML-данных. Для оперативного решения лучше всего использовать встроенные фильтры платформы 8.3. Если же вы готовите конфигурацию к серьезному аудиту изменений, наиболее надежным методом будет выгрузка в файлы и удаление папок Help перед сравнением. Помните, что начиная с версии 8.3.15, 1С значительно улучшила механизмы сравнения, поэтому иногда простым решением может стать обновление версии платформы, на которой вы выполняете сравнение.

← На главную