Работа с расширениями в системе 1С:Предприятие 8.3 — это стандарт де-факто для доработки типовых конфигураций. Однако часто возникает ситуация, когда спустя время необходимо понять: что именно было изменено в конкретной форме? Какие элементы добавлены, какие свойства подправлены, и как это соотносится с оригинальной формой из основной конфигурации? Разберем подробно все инструменты и методы, которые позволяют провести такой аудит.
Первое, на что мы должны обратить внимание при открытии формы в расширении, — это цветовая индикация элементов в дереве. Платформа 1С визуально подсказывает нам статус каждого объекта. Проанализируем, что означают эти цвета:
Рассмотрим ситуацию, когда нам нужно быстро отфильтровать только то, что мы изменили. Для этого в редакторе формы предусмотрена кнопка «Показывать только измененные». Она фильтрует дерево, оставляя только синие и зеленые элементы.
Выясним причину, почему эта кнопка (или фильтр) может быть серой и неактивной. Чаще всего это происходит из-за рассинхронизации метаданных. Платформа блокирует фильтр, если структура формы в основной конфигурации изменилась (например, после обновления поставщика), а расширение еще не «проанализировало» эти изменения.
Для исправления ситуации выполним следующие шаги:
После этого платформа сопоставит текущее состояние формы в расширении с формой в основной конфигурации. В большинстве случаев кнопка фильтрации сразу станет доступной. Однако помните: это действие синхронизирует структуру, и если в основной конфигурации элементы были удалены или переименованы, вам придется вручную проверять работоспособность формы.
Если нам недостаточно просто видеть список элементов, а нужно детальное сравнение «было — стало» (как при обновлении конфигурации), воспользуемся встроенным механизмом сравнения. Разберем по шагам, как это сделать:
Этот метод наиболее точен, так как он показывает разницу вплоть до конкретных значений свойств: например, Ширина была 10, стала 20, или ТолькоПросмотр сменился с Ложь на Истина.
Помимо интерфейса, изменения часто касаются программного кода. Проанализируем ситуацию с модулями. В расширениях используются аннотации &Перед, &После и &Вместо. Чтобы увидеть все правки в коде, можно использовать несколько подходов:
Во-первых, воспользуемся глобальным поиском по тексту расширения. Нажмем Ctrl + Shift + F, выберем область поиска «Текущая конфигурация» (имеется в виду расширение) и введем названия основных аннотаций. Это позволит быстро составить список всех перехваченных процедур и функций.
Во-вторых, в самом модуле расширения мы можем использовать встроенное сравнение текстов. Рассмотрим пример кода, который часто встречается при замене логики:
&Вместо("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Собственная логика до выполнения основного кода
ПродолжитьВызов(Отказ, СтандартнаяОбработка);
// Собственная логика после выполнения основного кода
КонецПроцедуры
Важно помнить: если в основной конфигурации разработчик (поставщик) изменил количество параметров в процедуре ПриСозданииНаСервере, то ваше расширение с аннотацией &Вместо вызовет критическую ошибку. Именно поэтому перед нажатием кнопки «Обновить расширение формы» критически важно провести сравнение текстов модулей.
Для тех, кто использует современные инструменты разработки, такие как EDT, возможности анализа расширяются в разы. Рассмотрим, какие преимущества это дает:
Иногда мы замечаем, что элементы формы помечены синим цветом (как измененные), хотя мы точно знаем, что ничего не трогали. Выясним причину этого явления. Платформа 1С при заимствовании формы может автоматически пересчитать некоторые динамические свойства, такие как координаты элементов или привязки, основываясь на разрешении экрана разработчика или версии платформы.
Чтобы избавиться от таких ложных срабатываний, попробуем нажать правую кнопку мыши на «синем» элементе и выбрать «Установить стандартные значения». Если после этого элемент стал черным — значит, реальных изменений не было. Будьте осторожны: если вы действительно меняли какие-то свойства, они будут сброшены к значениям основной конфигурации.
Подводя итог, можно сказать, что наиболее эффективная стратегия анализа изменений — это сочетание визуальной проверки дерева формы (после предварительного обновления через контекстное меню) и регулярного использования инструмента «Сравнить конфигурацию с расширением».