Как сравнить нетиповую конфигурацию 1С 7.7 с типовым релизом и выявить изменения?

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

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

Особенности хранения структуры метаданных в 1С 7.7

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

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

Как узнать базовый релиз доработанной конфигурации

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

  1. Свойства конфигурации. Откроем базу в режиме «Конфигуратор», перейдем в главное меню: Конфигурация — Свойства. В открывшемся окне обратим внимание на поля «Название» и «Описание». Разработчики типовых решений (например, «Торговля и склад») вносят туда номер редакции и релиза. Если программисты при доработке не затерли эти сведения, мы сразу получим номер исходного релиза.
  2. Глобальный модуль. Откроем Глобальный модуль базы. В подавляющем большинстве типовых конфигураций 1С 7.7 в самом начале модуля объявлены строковые переменные или константы с номером релиза (например, переменная НомерРелиза или глобальная функция, возвращающая версию для проверки структуры базы при запуске).
  3. Константы конфигурации. В дереве метаданных найдем ветку «Константы». Нередко типовые решения содержат служебную константу, хранящую номер текущей версии, значение которой можно посмотреть в режиме предприятия.
  4. Каталог базы данных. Проверим файлы в каталоге информационной базы. При штатной установке обновлений в папке базы нередко остаются текстовые сопроводительные файлы поставки (например, update.txt или readme.txt), содержащие точный номер установленной версии.

Штатный способ: механизм объединения конфигураций

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

Разберем по шагам процедуру штатного сравнения:

  1. Открываем доработанную базу данных в режиме «Конфигуратор».
  2. В главном меню выбираем пункт Конфигурация — Объединение конфигураций....
  3. В появившемся диалоговом окне указываем путь к файлу 1Cv7.md эталонной типовой конфигурации.
  4. После анализа метаданных система откроет специальное окно сопоставления объектов. В дереве метаданных флажками и значками будут отмечены объекты, имеющие расхождения.
  5. В нижней части диалогового окна нажимаем кнопку Отчет. Настроив параметры формирования подробного отчета, мы получим текстовый документ со списком всех различающихся, добавленных и удаленных реквизитов, форм и модулей.
  6. Внимание: после анализа отчета не нажимайте кнопку выполнения объединения, если вашей целью был исключительно аудит конфигурации. Просто закройте окно сравнения без сохранения изменений.

Проанализируем ограничения штатного режима: окно объединения конфигураций констатирует сам факт изменения модуля или диалога формы, но не предоставляет удобного построчного визуального сопоставления кода (side-by-side). Если объем доработок значителен, штатный отчет будет громоздким и неудобным для чтения.

Глубокое сравнение с помощью внешних утилит (декомпиляция MD-файла)

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

Рассмотрим порядок действий при таком подходе:

  1. Файл 1Cv7.md представляет собой составной бинарный контейнер. Для извлечения его содержимого используем специализированные утилиты декомпиляции (например, консольную утилиту gcomp).
  2. Распаковываем доработанный файл конфигурации в отдельную папку (например, C:\Source\WorkMD\). В результате все модули, экранные формы и описания реквизитов превратятся в набор структурированных текстовых файлов.
  3. Аналогичным образом распаковываем файл типовой конфигурации в соседнюю папку (например, C:\Source\TypMD\).
  4. Запускаем визуальный дифференциатор файлов и каталогов — например, KDiff3, WinMerge или Beyond Compare.
  5. Указываем обе распакованные папки для сравнения. В результате получаем удобное трехпанельное или двухпанельное сравнение всей структуры базы, где цветом подсвечены каждая добавленная, удаленная или измененная строчка исходного кода.

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

← На главную