Как узнать, какие доработки и изменения сделаны в расширении 1С

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

Работа с чужим кодом — это всегда вызов для разработчика, особенно когда речь идет о расширениях в 1С. В отличие от основной конфигурации, расширение может изменять поведение системы точечно, и не всегда очевидно, где именно «спрятаны» правки. Разберем подробно несколько эффективных способов, которые помогут нам быстро провести аудит любого расширения и понять, какие объекты были добавлены, а какие — заимствованы и изменены — для этого подойдёт инструмент архитектурного анализа расширений и конфигураций. Для комплексной проверки проектов также можно использовать статический анализатор кода, который работает непосредственно на платформе 1С.

Метод 1: Сравнение расширения с пустой конфигурацией

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

Для реализации этого метода выполним следующие шаги:

  1. Откроем список расширений через меню Конфигурация — Расширения конфигурации.
  2. Выберем интересующее нас расширение и сохраним его в файл конфигурации (.cf). Для этого в окне конфигурации расширения выберем Конфигурация — Сохранить конфигурацию в файл.
  3. Создадим в этом же списке новое, абсолютно пустое расширение.
  4. Выделим наше пустое расширение и выберем пункт Конфигурация — Сравнить, объединить с конфигурацией из файла, указав сохраненный ранее файл .cf.

После этого система откроет стандартное окно сравнения. Рассмотрим подробнее, что мы там увидим. В дереве объектов будут отмечены галочками все элементы, которые отличаются от «пустого» состояния. Это позволит нам увидеть:

Метод 2: Глобальный поиск по аннотациям кода

Программные доработки в расширениях всегда помечаются специальными аннотациями. Выясним причину изменения логики, выполнив глобальный поиск по всей конфигурации расширения (Ctrl+Shift+F). В поле поиска последовательно проверим следующие ключевые слова:

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


&ИзменениеИКонтроль("СформироватьПечатнуюФорму")
Процедура Расш1_СформироватьПечатнуюФорму()
    // #Вставка
    НовыйПараметр = Истина;
    // #КонецВставки
    
    // Стандартный код...
    
    // #Удаление
    // СтарыйКод();
    // #КонецУдаления
КонецПроцедуры

Использование глобального поиска по строкам #Вставка и #Удаление позволит мгновенно найти все локальные изменения в модулях расширения — вникнуть в суть правок поможет инструмент пошаговой отладки и анализа кода в 1С.

Метод 3: Анализ форм и визуальных элементов

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

Посмотрим на алгоритм проверки формы:

  1. Откроем форму в редакторе расширения.
  2. Обратим внимание на дерево элементов (слева вверху). Те элементы, которые заимствованы из основной конфигурации, отображаются обычным шрифтом. Элементы, созданные в расширении — жирным.
  3. Если разработчик придерживался стандартов разработки, он должен был добавить префиксы к именам новых элементов (например, Расш1_ДатаОтгрузки).

Важно помнить, что доработки могут быть сделаны программно в процедуре ПриСозданииНаСервере. В этом случае в дереве элементов мы ничего не увидим, поэтому обязательно проверяем модуль формы на наличие кода, создающего элементы через ЭтаФорма.Элементы.Добавить().

Метод 4: Использование отчета о сравнении конфигураций

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

В настройках отчета установим детализацию до свойств. Система сформирует текстовый или HTML-документ, который можно сохранить и проанализировать. В нем будет четкий список:

Метод 5: Визуальные маркеры в дереве метаданных

Разберем, как быстро ориентироваться в самом дереве метаданных расширения. Обратим внимание на иконки объектов:

Метод 6: Проверка через 1C:EDT

Для наиболее глубокого анализа, особенно если ведется коллективная разработка, рекомендуется использовать среду 1C:EDT (Enterprise Development Tools). Импортировав расширение в EDT, мы получаем доступ к мощным инструментам сравнения версий через Git. EDT позволяет сравнивать не только текст модулей, но и визуальные схемы форм «плечом к плечу» (side-by-side). Для тех, кто предпочитает классический Конфигуратор, существует возможность объединения модулей в разрезе методов с помощью внешних инструментов вроде KDiff3.

Заключение

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

← На главную