Как отслеживать и документировать изменения в расширениях конфигурации 1С

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

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

1. Контроль версий с помощью внешних VCS (Git или Mercurial)

Использование распределенных систем контроля версий (Git, Mercurial) — один из самых надежных способов отслеживания модификаций в расширениях. Разберем по шагам порядок организации рабочего процесса:

  1. Выгружаем расширение конфигурации в каталог файлов исходного кода через стандартную команду выгрузки конфигурации в файлы или с помощью командной строки.
  2. Инициализируем репозиторий Git или Mercurial в целевом каталоге.
  3. Фиксируем изменения (коммиты) при каждой смысловой доработке.
  4. Используем любой удобный визуализатор истории (TortoiseGit, TortoiseHg, SourceTree, VS Code), где в древовидном представлении наглядно видны все модифицированные файлы модулей и добавленные строки кода.

Такой подход позволяет мгновенно увидеть diff (разницу) между текущим состоянием расширения и состоянием на момент прошлого релиза типовой конфигурации.

2. Поиск по директивам аннотаций в Конфигураторе

Если требуется быстро получить реестр всех перехваченных методов без выгрузки во внешние системы, используем штатный механизм глобального поиска в Конфигураторе:

  1. Нажимаем комбинацию клавиш Ctrl + Shift + F для вызова диалога «Поиск во всей конфигурации».
  2. В поле «Область поиска» выбираем только наше расширение конфигурации.
  3. Выполняем последовательный поиск по аннотациям методов:
    
    &Перед
    &После
    &Вместо
    &ИзменениеИКонтроль
    
  4. Анализируем результаты в окне поиска. Список найденных строк точно укажет на все модули менеджеров, модули объектов и формы, в логику которых были внесены изменения.

3. Использование директивы &ИзменениеИКонтроль для автоматического контроля

При переопределении типового кода вместо полной подмены процедуры через &Вместо рекомендуется применять аннотацию &ИзменениеИКонтроль. Рассмотрим пример правильного оформления модификации типовой процедуры:


&ИзменениеИКонтроль("РассчитатьСуммуДокумента")
Процедура Расш1_РассчитатьСуммуДокумента(ПараметрыРасчета)
    // Исходный типовой код
    Сумма = ПараметрыРасчета.Количество * ПараметрыРасчета.Цена;
    
    #Вставить
    // Наша доработка
    Сумма = Сумма - ПараметрыРасчета.Скидка;
    #КонецВставить
    
    ПараметрыРасчета.ИтоговаяСумма = Сумма;
КонецПроцедуры

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

4. Использование Хранилища конфигурации для расширений

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

  1. Вести журнал версий расширения штатными средствами платформы.
  2. Просматривать историю изменений по каждому конкретному объекту метаданных через контекстное меню «История объекта».
  3. Сравнивать версии расширения между захватами и версиями хранилища.

5. Сравнение файлов расширений и проверка применимости

Перед каждым обновлением основной конфигурации рекомендуется использовать два встроенных инструмента:

  1. Проверка применимости расширения: в окне «Расширения конфигурации» нажимаем кнопку «Проверить применимость». Платформа сопоставит структуру заимствованных объектов расширения с основной конфигурацией и выведет список всех конфликтов метаданных, типов и параметров процедур.
  2. Сравнение файлов CFE: сохраняем расширение в файл .cfe перед обновлением, после чего через меню «Конфигурация — Сравнить, объединить с конфигурацией из файла...» наглядно анализируем различия в текстах модулей и свойствах объектов.

6. Автоматизированное тестирование

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

← На главную