Каталог решений - Переменная ЭтотОбъект в 8.3

Переменная ЭтотОбъект в 8.3

Переменная ЭтотОбъект в 8.3

В наличии

Мое наблюдение, которое может помочь вам сэкономить время

Категория:

Описание

Недавно я обновлял Бухгалтерию на управляемых формах с 3.0.25.9 на 3.0.30.12 версию. И все мои внешние обработки перестали работать. Ругались они все одинаково:

{Форма.Форма.Форма(14)}: Поле объекта недоступно для записи (ЭтотОбъект)
ЭтотОбъект = РеквизитФормыВЗначение(«Объект»);

Открываю модуль формы. Ошибка происходит в следующей процедуре:

&НаСервере 
Процедура СформироватьНаСервере() ЭтотОбъект = РеквизитФормыВЗначение("Объект"); ЭтотОбъект.Сформировать(); ЗначениеВРеквизитФормы(ЭтотОбъект, "Объект"); КонецПроцедуры

Это стандартный способ вызвать процедуру модуля объекта из модуля формы. Работал везде и всегда. При более подробном рассмотрении в отладчике оказывается, что в переменной «ЭтотОбъект» хранится объект типа УправляемаяФорма. Та же самая управляемая форма, что и в реквизите формы «ЭтаФорма». При выполнении обработок в старой конфигурации все работает корректно. Платформа 8.3.4.389.

В ходе расследования выяснилось, что в новой версии конфигурации убрана совместимость с 8.2. А реквизит управляемой формы «ЭтотОбъект» появился как раз в 8.3. Так что советую все переменные «ЭтотОбъект» в модулях форм своих обработок переименовать, например, в «ДанныйОбъект». И надеяться, что разработчики платформы 1С хотя бы еще несколько лет не будут заводить реквизит формы с таким названием)

has been added to your cart:
Оформление заказа