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

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

Работа с расширениями в системе 1С:Предприятие 8.3 — это стандарт де-факто для доработки типовых конфигураций. Однако часто возникает ситуация, когда спустя время необходимо понять: что именно было изменено в конкретной форме? Какие элементы добавлены, какие свойства подправлены, и как это соотносится с оригинальной формой из основной конфигурации? Разберем подробно все инструменты и методы, которые позволяют провести такой аудит.

Использование визуальной индикации в дереве элементов формы

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

Рассмотрим ситуацию, когда нам нужно быстро отфильтровать только то, что мы изменили. Для этого в редакторе формы предусмотрена кнопка «Показывать только измененные». Она фильтрует дерево, оставляя только синие и зеленые элементы.

Что делать, если кнопка «Показывать только измененные» недоступна

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

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

  1. Найдем нужную форму в дереве объектов расширения (не в редакторе, а в списке объектов конфигурации).
  2. Нажмем на ней правой кнопкой мыши.
  3. Выберем команду «Обновить расширение формы».

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

Сравнение конфигурации с расширением (Стандартный отчет)

Если нам недостаточно просто видеть список элементов, а нужно детальное сравнение «было — стало» (как при обновлении конфигурации), воспользуемся встроенным механизмом сравнения. Разберем по шагам, как это сделать:

  1. В дереве объектов расширения выделим нужную форму или корень всего расширения.
  2. Нажмем правую кнопку мыши и выберем пункт «Сравнить конфигурацию с расширением».
  3. В открывшемся окне мы увидим древовидную структуру. Те элементы, которые различаются, будут отмечены флажками.
  4. Двойной клик по элементу (например, по конкретному полю или по строке «Форма») откроет детальное окно сравнения свойств.

Этот метод наиболее точен, так как он показывает разницу вплоть до конкретных значений свойств: например, Ширина была 10, стала 20, или ТолькоПросмотр сменился с Ложь на Истина.

Анализ программных изменений в модуле формы

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

Во-первых, воспользуемся глобальным поиском по тексту расширения. Нажмем Ctrl + Shift + F, выберем область поиска «Текущая конфигурация» (имеется в виду расширение) и введем названия основных аннотаций. Это позволит быстро составить список всех перехваченных процедур и функций.

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


&Вместо("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Собственная логика до выполнения основного кода
    ПродолжитьВызов(Отказ, СтандартнаяОбработка);
    // Собственная логика после выполнения основного кода
КонецПроцедуры

Важно помнить: если в основной конфигурации разработчик (поставщик) изменил количество параметров в процедуре ПриСозданииНаСервере, то ваше расширение с аннотацией &Вместо вызовет критическую ошибку. Именно поэтому перед нажатием кнопки «Обновить расширение формы» критически важно провести сравнение текстов модулей.

Продвинутый анализ через 1C:Enterprise Development Tool (EDT)

Для тех, кто использует современные инструменты разработки, такие как EDT, возможности анализа расширяются в разы. Рассмотрим, какие преимущества это дает:

  1. Git-интеграция: Все изменения формы в расширении сохраняются в формате XML. Мы можем построчно сравнить XML-структуру и увидеть даже самые мелкие «призрачные» изменения, которые конфигуратор скрывает.
  2. Инспектор свойств: В EDT измененные свойства в расширении подсвечиваются специальными маркерами, что делает визуальный аудит более наглядным.
  3. Проверка ссылочной целостности: EDT лучше справляется с поиском «битых» ссылок в расширении, если в основной конфигурации элемент был удален или переименован.

Проблема «призрачных» изменений

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

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

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

← На главную