При совместной разработке и обновлении конфигураций 1С часто возникает необходимость точно определить, какие свойства объектов и элементов форм были изменены. Нередко разработчики сталкиваются с ситуацией, когда визуальные индикаторы отчета сравнения читаются двояко: кажется, что свойство переключили из одного состояния в другое, но на практике оказывается, что изменение произошло в строго противоположном направлении. Рассмотрим подробнее, почему возникает эта путаница, как устроен механизм сравнения и объединения и как безошибочно читать реальные изменения.
Разберем по шагам, почему ориентация исключительно на пиктограммы и стрелки в отчете сравнения может ввести в заблуждение:
Истина или Ложь, но и системное значение Авто. Если в исходной конфигурации параметр был установлен по умолчанию платформой, а разработчик жестко задал конкретное булево значение, отчет зафиксирует изменение формулировки свойства, хотя в пользовательском интерфейсе поведение элемента может остаться прежним.Чтобы избежать ошибок при анализе изменений и точно понимать, какое значение было изначально, а какое стало в новой версии, применим надежные практические приемы.
1. Детальное окно сравнения форм
Не стоит полагаться на свернутые узлы общего дерева или краткий текстовый отчет. Выполним двойной клик по строке измененной формы в дереве сравнения. Платформа откроет специализированное окно сравнения форм. В этом окне левая и правая панели четко озаглавлены названиями конкретных сравниваемых конфигураций, а значения свойств элементов отображаются в явном виде в соответствующих столбцах без двусмысленных значков.
2. Ручное сопоставление через палитру свойств
Если требуется предельная точность, откроем параллельно две конфигурации (например, основную рабочую и эталонную конфигурацию поставщика из файла в отдельном окне конфигуратора). Выделим нужный элемент формы и сопоставим значение реквизита в палитре свойств напрямую.
3. Строгое соблюдение порядка конфигураций при сравнении
При настройке сравнения всегда выбираем в качестве первой конфигурации старую (исходную), а в качестве второй — новую (измененную). В таком случае запись вида Значение1 -> Значение2 будет строго соответствовать направлению от исходного состояния к новому.
Выясним причину, почему даже при правильной установке свойства в конфигураторе элемент формы на практике может вести себя иначе. Свойство ТолькоПросмотр элемента формы зависит от нескольких уровней платформы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Значение из свойств конфигуратора может быть переопределено:
Элементы.Ответственный.ТолькоПросмотр = Ложь;
КонецПроцедуры
ПриОткрытии, ПриЧтенииНаСервере или в типовых процедурах подсистем БСП.ТолькоПросмотр для всей формы в целом или для группы элементов, в которую входит поле.Рассмотрим альтернативный способ, который полностью исключает неоднозначность интерфейса конфигуратора. Выгрузим конфигурации в файлы через стандартное меню выгрузки. Описания управляемых форм сохраняются в структурированном текстовом формате XML. С помощью любой внешней программы сравнения файлов сопоставим файлы форм. В структуре XML явным образом видно добавление или модификацию параметров элемента, например строк с тегами ReadOnly, что дает стопроцентную гарантию точности проведенного аудита изменений.