Как проверить, что после чистки кода в конфигурации 1С изменились только комментарии?

Программист IT и автоматизация бизнеса
← На главную

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

Способ 1: Сравнение конфигураций средствами платформы

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

Разберем процесс по шагам:

  1. Создаем эталон. Сохраните вашу исходную конфигурацию (с комментариями) в файл. Для этого в Конфигураторе выберите меню Конфигурация → Сохранить конфигурацию в файл... и сохраните ее, например, как original.cf.
  2. Подготавливаем рабочую копию. Выгрузите исходную конфигурацию в набор XML-файлов. Это позволит работать с модулями как с обычными текстовыми файлами. Перейдите в меню Конфигурация → Выгрузить конфигурацию в файлы... и укажите пустой каталог.
  3. Удаляем комментарии. Теперь у вас есть все модули конфигурации в виде текстовых файлов (обычно с расширением `.bsl`). Используйте любой мощный текстовый редактор (например, VS Code, Notepad++, Sublime Text) для массового поиска и удаления комментариев. Удобнее всего это делать с помощью регулярных выражений. Например, для поиска и удаления всех строк, которые являются однострочными комментариями, можно использовать выражение: ^\s*//.*$. Замените найденные строки на пустые. Будьте внимательны и обязательно сделайте резервную копию каталога с файлами перед массовой заменой.
  4. Собираем измененную конфигурацию. Создайте новую, пустую информационную базу. Откройте ее в режиме Конфигуратора и загрузите в нее измененные файлы через меню Конфигурация → Загрузить конфигурацию из файлов....
  5. Сравниваем результат. В этой же новой базе (с уже очищенным кодом) запустите сравнение с эталоном. Перейдите в меню Конфигурация → Сравнить, объединить с конфигурацией из файла... и выберите сохраненный ранее файл original.cf.

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

Способ 2: Проверка через файлы поставки

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

Проанализируем этот подход:

  1. Создаем файл поставки для исходной конфигурации. Откройте конфигурацию с комментариями (Конф1). Запустите создание файла поставки через меню Конфигурация → Создать файл поставки и обновления....
  2. В мастере создания поставки на шаге "Объекты поставки" убедитесь, что выбраны все необходимые объекты. На шаге "Параметры файла поставки" есть ключевая настройка: снимите флажок "Включать в поставку исходные тексты модулей". Сохраните результат, например, как delivery_before.cf.
  3. Создаем файл поставки для измененной конфигурации. Повторите шаги 1 и 2 для вашей конфигурации, из которой вы уже удалили комментарии (Конф2). Сохраните результат как delivery_after.cf, также убедившись, что исходные тексты модулей не включены.
  4. Сравниваем файлы. Теперь у вас есть два файла поставки. Сравните их с помощью любого файлового менеджера, который умеет делать побайтовое сравнение (например, Total Commander, Far Manager) или специализированной утилиты.

Почему это работает? Когда вы создаете файл поставки без исходных текстов, платформа 1С компилирует все модули в байт-код и сохраняет в файл только его, а также метаданные, макеты, формы и т.д. Комментарии в этом процессе не участвуют и отбрасываются. Если файлы delivery_before.cf и delivery_after.cf абсолютно идентичны, это является стопроцентной гарантией того, что единственными изменениями в конфигурации были комментарии. Никакие изменения в исполняемом коде не остались бы незамеченными.

Способ 3: Использование систем контроля версий (Git)

Этот способ идеально подходит для команд, которые уже ведут разработку с использованием Git. Он позволяет не только проверить изменения, но и задокументировать их.

Посмотрим на алгоритм действий:

  1. Выгружаем и фиксируем исходную версию. Выгрузите конфигурацию с комментариями в файлы в отдельный каталог. Инициализируйте в нем Git-репозиторий, добавьте все файлы и сделайте первый коммит с сообщением "Исходная версия перед чисткой".
  2. Удаляем комментарии. Произведите удаление комментариев в файлах, как было описано в первом способе.
  3. Проверяем изменения. Используйте стандартные команды Git для анализа. Команда git status покажет список измененных файлов, а git diff — детальные изменения в каждом из них. Внимательно просмотрите вывод git diff: вы должны видеть только удаленные строки (они будут подсвечены красным и начинаться с минуса), и все они должны быть комментариями.
  4. Фиксируем результат. Если проверка прошла успешно, сделайте второй коммит с сообщением "Удалены избыточные комментарии".

Дополнительное преимущество: можно настроить Git на использование внешних инструментов сравнения (например, Araxis Merge, Beyond Compare), которые поддерживают синтаксис 1С и могут быть настроены на игнорирование комментариев при сравнении. Это позволяет автоматизировать проверку: если такой инструмент, игнорируя комментарии, не находит различий между двумя версиями, значит, все изменения — косметические.

Заключение

Мы рассмотрели три эффективных способа контроля изменений при удалении комментариев из конфигурации 1С. Выбор конкретного метода зависит от ваших предпочтений и принятых в команде процессов:

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

← На главную