Имя: Пароль:
1C
1С v8
При выборе из поля Формы вывести соответствующие данные в табличной части Формы
0 Lalsy
 
06.05.20
18:32
На Форме имеется поле Официант с типом СправочникСсылка.Официанты
В табличной части необходимо вывести список заказов, выбранного официанта

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


&НаКлиенте
Процедура ОфициантПриИзменении(Элемент)
    ЗапроситьСтроки();
    Элементы.Заказы.Обновить();
КонецПроцедуры
1 Momus
 
06.05.20
18:33
ОФ или УФ?
2 Lalsy
 
06.05.20
18:38
Управляемая форма
3 Momus
 
06.05.20
18:40
(0) в документе Заказы есть реквизит типа СправочникСсылка.Официанты или только строковое "ИмяОфицианта"?
4 Lalsy
 
06.05.20
18:41
Конечно
5 Momus
 
06.05.20
18:43
(4) тогда
...
|ГДЕ
    |    Заказы.Официант = &Официант";
Запрос.УстановитьПараметр("Официант", Официант);
6 Momus
 
06.05.20
18:44
где Заказы.Официант - реквизит в заказах со ссылкой на официанта
7 Lalsy
 
06.05.20
18:45
Спасибо большое, я в шоке, что это оказалось настолько просто
я так близка была
8 Momus
 
06.05.20
18:46
Если данные по заказ нужны только для вывода информации (не планируется какие-либо сложные расчеты со строками таблицы), то лучше сделать через динамический список. Добавить текст запроса из процедуры в текст запроса динамического списка, а при изменение реквизита Официант устанавливать параметр этого списка.
9 Momus
 
06.05.20
18:50
(8) в модуле формы тогда будет только такой код:
&НаКлиенте
Процедура ОфициантПриИзменении(Элемент)
    ИмяДинамическогоСписка.Параметры.УстановитьЗначениеПараметра("Официант", Официант);
КонецПроцедуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс