Как сохранить результаты глобального поиска в формат MXL и сравнить их при обновлении 1С?

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

При обновлении сильно кастомизированных баз 1С программисты часто сталкиваются с проблемой потери доработок. Один из проверенных временем способов контроля — маркировка своих изменений специальными комментариями (например, // Доработка_Иванов) и последующий глобальный поиск по ним. Однако, когда список изменений велик, проверять его «глазками» в окне поиска становится неэффективно. Рассмотрим подробно, как автоматизировать этот процесс, сохранив результаты поиска в формат .mxl и сравнив их между двумя базами (до обновления и после).

Метод 1. Экспорт результатов поиска в табличный документ (MXL)

Разберем по шагам, как получить редактируемый список из окна глобального поиска. Многие начинающие разработчики пытаются найти кнопку «Сохранить» непосредственно в окне поиска, но механизм в 1С реализован иначе. Проанализируем правильный алгоритм действий:

  1. Запустим глобальный поиск по вашему комментарию (Правка — Глобальный поиск или Ctrl+Shift+F).
  2. После того как поиск завершится и окно «Результаты поиска» заполнится строками, нажмем кнопку Действия, расположенную в верхней панели этого окна.
  3. В выпадающем меню выберем пункт Вывести список.
  4. В появившемся диалоговом окне «Вывод списка» убедимся, что выбран вариант Табличный документ. Здесь же мы можем отметить колонки, которые нам нужны. Рекомендуем выводить не только текст строки, но и путь к объекту, чтобы сравнение было максимально информативным.
  5. Нажмем «ОК». Программа сформирует новый табличный документ.

Важный нюанс: часто пользователи жалуются, что в главном меню пункт «Файл — Сохранить» остается неактивным. Выясним причину: для активации команд сохранения необходимо установить фокус (кликнуть мышкой) внутрь созданного табличного документа. Только после этого станет доступна команда Файл — Сохранить как..., где нужно выбрать тип файла Табличный документ (*.mxl).

Метод 2. Сравнение двух MXL-файлов в пользовательском режиме

Теперь, когда у нас есть два файла (один из старой базы с полным набором доработок, другой из новой, где часть изменений могла пропасть), мы можем воспользоваться встроенным механизмом сравнения 1С. Рассмотрим, как это сделать:

Перейдем в пользовательский режим 1С (1С:Предприятие) или останемся в Конфигураторе. Воспользуемся пунктом меню Файл — Сравнить файлы.... В открывшемся окне выберем первый файл (эталонный) и второй (результат обновления). Программа откроет специализированное окно сравнения, где различия будут подсвечены цветом:

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

Метод 3. Использование профессиональных инструментов сравнения (P4Merge)

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

Для подключения внешнего инструмента перейдем в Сервис — Параметры — Тексты — Сравнение и объединение. Укажем путь к программе и зададим параметры командной строки. Посмотрим на пример настройки параметров для P4Merge, который позволяет выполнять трехстороннее сравнение:


-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle %baseCfg %secondCfg
-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle %baseCfg %secondCfg -merge %merged
-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle -nb %oldVendorCfgTitle %oldVendorCfg %baseCfg %secondCfg %merged

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

Метод 4. Сравнение через отчет о конфигурации

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

  1. Выполним Конфигурация — Сравнить конфигурации.
  2. В окне сравнения нажмем кнопку Отчет.
  3. В настройках отчета выберем формат Табличный документ и установим фильтр «Выводить только различия».

Этот отчет также можно сохранить в .mxl и сравнивать аналогично методам, описанным выше. Это даст 100% гарантию, что вы увидите изменения не только в коде модулей, но и в свойствах реквизитов, формах и правах доступа.

Рекомендации по упрощению процесса обновления

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

Таким образом, использование формата .mxl для сравнения результатов поиска — это отличный «быстрый» метод контроля, но для долгосрочной перспективы рекомендуем осваивать внешние инструменты дифференциации кода и механизм расширений.

← На главную