При работе с крупными конфигурациями на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с неприятной ситуацией: при попытке сравнить текущую конфигурацию с конфигурацией поставщика (или другой версией) система выдает тысячи измененных объектов. При детальном изучении выясняется, что в 99% случаев изменения касаются только Справочной информации, в то время как программный код, формы и макеты остались прежними. Это создает огромный "информационный шум", в котором легко пропустить действительно важные доработки.
В этой статье мы подробно разберем, почему возникают такие "глюки", и проанализируем все доступные методы борьбы с ними — от стандартных фильтров платформы до радикальной очистки через выгрузку в файлы.
Прежде чем приступать к решению, давайте разберем, почему платформа помечает справку как измененную, даже если вы ее не открывали. Основными причинами являются:
CRLF (Windows), а в конфигурации поставщика — LF (Unix). Для визуального редактора разницы нет, но для системы сравнения файлов это разные данные.Справочной информации может незначительно перестроиться, что вызовет срабатывание при сравнении со старой версией.Рассмотрим самый простой и правильный путь, который доступен в современных версиях платформы (начиная с 8.3.15 и выше). В окне сравнения и объединения предусмотрен мощный механизм фильтрации. Разберем по шагам, как его настроить:
В окне сравнения найдите кнопку Фильтр (иконка в виде воронки). В открывшемся меню настроек мы можем управлять видимостью узлов дерева. Нам необходимо:
Проанализируем ситуацию: если после настройки фильтра количество строк в окне резко сократилось, значит, проблема была именно в справке, и теперь вы можете спокойно анализировать Модули объектов и Формы.
Если нам необходимо не просто скрыть изменения, а "успокоить" конфигуратор, чтобы он перестал считать эти объекты измененными, можно попробовать метод предварительного объединения. Рассмотрим этот алгоритм:
Справочной информации, и убедитесь, что флажки стоят только на них.После этой процедуры справочная информация в вашей базе станет идентичной базе поставщика. При следующем сравнении эти тысячи строк исчезнут, и вы увидите только реальные изменения в программном коде Модулей.
Бывают случаи, когда штатное сравнение 1С не справляется или работает слишком медленно из-за огромного объема данных. В такой ситуации мы можем прибегнуть к внешним инструментам сравнения. Разберем этот профессиональный метод:
Сначала выгрузим обе конфигурации в текстовые файлы. Для этого используем меню: Конфигурация -> Разработка конфигурации -> Выгрузить конфигурацию в файлы.... Проделаем это для вашей рабочей базы и для чистой базы поставщика.
После выгрузки мы получим каталоги с XML-файлами. Справочная информация в этих каталогах всегда хранится в подпапках с именем Help. Чтобы полностью игнорировать ее, выполним следующие действия:
Help во всех вложенных каталогах обеих выгрузок.Этот метод гарантирует, что вы увидите только изменения в логике 1С, так как физических файлов со справкой просто не останется в анализируемых данных. Это особенно эффективно для поиска мелких правок в огромных конфигурациях типа ERP или УПП.
Если ваша команда перешла на разработку в EDT, проблема решается на уровне системы контроля версий Git. Посмотрим на пример настройки файла .gitignore, который позволяет игнорировать изменения в справке при фиксации коммитов:
# Игнорируем файлы справки во всей конфигурации
**/Help/*.html
**/Help/*.xml
При использовании EDT среда разработки сама анализирует структуру проекта, и вы можете просто не включать файлы справки в процесс сравнения веток, что делает работу программиста гораздо комфортнее.
Рассмотрим еще один "хакерский" способ, упомянутый опытными разработчиками. Настройки сравнения и объединения можно сохранить в файл XML. В этом файле содержатся флаги для каждого объекта метаданных.
Можно написать небольшую обработку, которая прочитает этот XML, найдет все узлы, отвечающие за Справочную информацию, и программно установит им признак "Не объединять" или "Игнорировать". После этого измененный файл настроек загружается обратно в окно сравнения. Этот метод требует навыков работы с DOM или ЧтениеXML, но он незаменим, когда нужно массово управлять тысячами флажков по сложным правилам.
Проблема ложных срабатываний справочной информации — это известная особенность платформы, связанная с хранением HTML-данных. Для оперативного решения лучше всего использовать встроенные фильтры платформы 8.3. Если же вы готовите конфигурацию к серьезному аудиту изменений, наиболее надежным методом будет выгрузка в файлы и удаление папок Help перед сравнением. Помните, что начиная с версии 8.3.15, 1С значительно улучшила механизмы сравнения, поэтому иногда простым решением может стать обновление версии платформы, на которой вы выполняете сравнение.