Имя: Пароль:
1C
1С v8
УФ. Форма констант... как обновить реквизит формы после записи?
0 dave2000
 
18.11.16
12:08
Есть общая форма констант с основным реквизитом "НаборКонстант". В наборе есть константа "ОсновнаяОрганизация", которая выведена в одноименный реквизит на форму. При нажатии кнопки "Записать", необходимо проверить на заполненность этого реквизита, и заполнить его организацией из справочника. Делаю так:

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    Если НЕ ЗначениеЗаполнено(НаборКонстант.ОснованяОрганизация) Тогда
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Организации.Ссылка
        |ИЗ
        |    Справочник.Организации КАК Организации
        |ГДЕ
        |    НЕ Организации.ПометкаУдаления";
        
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
            НашОбъект = ДанныеФормыВЗначение(НаборКонстант, Тип("КонстантыНабор"));
            НашОбъект.ОснованяОрганизация = Выборка.Ссылка;
            ЗначениеВДанныеФормы(НашОбъект, НаборКонстант);
            //НаборКонстант.ОснованяОрганизация = Выборка.Ссылка;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Обработчик отрабатывает правильно, реквизит в самом наборе заполняется, но на самой форме реквизит не меняется, остается пустым. Что я тут упустил, как правильно сделать?
1 dave2000
 
18.11.16
12:18
М-да.. пока писал пост, дошло)) Оказалось, нужно использовать ТекущийОбъект из параметра:

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
                                   ^^^^^^^^^^^^^^
    Если НЕ ЗначениеЗаполнено(НаборКонстант.ОснованяОрганизация) Тогда
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Организации.Ссылка
        |ИЗ
        |    Справочник.Организации КАК Организации
        |ГДЕ
        |    НЕ Организации.ПометкаУдаления";
        
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
            ТекущийОбъект.ОснованяОрганизация = Выборка.Ссылка;
                        ^^^^^^^^^^^^^
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры