Клиент обратился с просьбой исправить ошибку в расширении, которая появилась после обновления.
Нашел проблемную строку кода:
Если Не Отказ И ДополнительныеСвойства.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Выяснил, что изменилась структура ДополнительныеСвойства, и к РежимуЗаписи теперь можно обратиться так:
Если Не Отказ И ДополнительныеСвойства.ПроведениеДокументов.СвойстваДокумента.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
ПроведениеДокументов и СвойстваДокумента это структуры.
Решил, что нужно написать функцию по поиску значения в древовидной структуре ДополнительныеСвойства по ключу "РежимЗаписи", чтобы при последующих обновлениях и возможном изменении структуры ДополнительныеСвойства не возникала ошибка.
Функция ПолучитьЗначениеСтруктурыПоКлючу(Структура, Ключ)
Если Структура.Свойство(Ключ) Тогда
Возврат Структура[Ключ];
Иначе
Для Каждого Элемент Из Структура Цикл
Если ТипЗнч(Элемент.Значение) = Тип("Структура") Или ТипЗнч(Элемент.Значение) = Тип("ФиксированнаяСтруктура") Тогда
Возврат ПолучитьЗначениеСтруктурыПоКлючу(Элемент.Значение, Ключ);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецФункции
Теперь проблемная строка кода выглядит так:
Если Не Отказ И ПолучитьЗначениеСтруктурыПоКлючу(ДополнительныеСвойства, "РежимЗаписи") = РежимЗаписиДокумента.Проведение Тогда