0
dave2000
18.11.16
✎
12:08
|
Есть общая форма констант с основным реквизитом "НаборКонстант". В наборе есть константа "ОсновнаяОрганизация", которая выведена в одноименный реквизит на форму. При нажатии кнопки "Записать", необходимо проверить на заполненность этого реквизита, и заполнить его организацией из справочника. Делаю так:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если НЕ ЗначениеЗаполнено(НаборКонстант.ОснованяОрганизация) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Ссылка
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| НЕ Организации.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
НашОбъект = ДанныеФормыВЗначение(НаборКонстант, Тип("КонстантыНабор"));
НашОбъект.ОснованяОрганизация = Выборка.Ссылка;
ЗначениеВДанныеФормы(НашОбъект, НаборКонстант);
//НаборКонстант.ОснованяОрганизация = Выборка.Ссылка;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Обработчик отрабатывает правильно, реквизит в самом наборе заполняется, но на самой форме реквизит не меняется, остается пустым. Что я тут упустил, как правильно сделать?
|
|
1
dave2000
18.11.16
✎
12:18
|
М-да.. пока писал пост, дошло)) Оказалось, нужно использовать ТекущийОбъект из параметра:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
^^^^^^^^^^^^^^
Если НЕ ЗначениеЗаполнено(НаборКонстант.ОснованяОрганизация) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Ссылка
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| НЕ Организации.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
ТекущийОбъект.ОснованяОрганизация = Выборка.Ссылка;
^^^^^^^^^^^^^
КонецЕсли;
КонецЕсли;
КонецПроцедуры
|
|