Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вывод цены в ПодбореНоменклатуры

Вывод цены в ПодбореНоменклатуры
Я
   lam_anna
 
12.11.20 - 18:32
Необходимо чтобы в Обработке ПодборНоменклатуры выводились цены независимо от Типа Цены в документы. Сделала кнопку Заполнить Цены. Но почему то цену заполняет только для 1 строки номенклатуры в списке подбора

Код вот такой. Не могу сообразить как и где сделать Цикл, чтобы заполнялось для всех строк.

&НаКлиенте
Процедура ЗаполнитьЦены(Команда)
    ТД = Элементы.СписокНоменклатуры.ТекущиеДанные;
    ТД.Цена = ЗаполнитьЦеныНаСервере(ТД.Номенклатура);
    
КонецПроцедуры

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

    Цена = 0;
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
        
    //это работает только для 1 строки
    Если Выборка.Следующий() Тогда
Возврат Выборка.Цена;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
   VladZ
 
1 - 12.11.20 - 18:38
Читай букварь.
   lam_anna
 
2 - 12.11.20 - 19:07
(1) учусь я еще) вот и прошу помочь знающим
   hhhh
 
3 - 12.11.20 - 19:28
(2) это всё, что написали, выбросьте, это не пригодится. в правом верхнем углу формы реквизиты. Там найдите списокНоменклатуры. Щелкните по нему мышкой 2 раза, справа появится Свойства. Там должна стоять у вас галка Произвольный запрос, и ниже там должно быть редактирование запроса. Поменяйте его. как вам надо, чтобы и номенклатура была и цены.
   hhhh
 
4 - 12.11.20 - 19:34
(2) и тут традиция вообще-то на форуме, у женщин обязательно должна быть фотография, можно и не в минибикини, но хотя бы топлес. Тогда охотнее помогать будут.
   lam_anna
 
5 - 12.11.20 - 19:36
(3) Это стандартная обработка 1С. ПодборНоменклатуры https://prnt.sc/vi48t1 в ней нет СпискаНоменклатуры который можно поправить)

В самой ФормеСписка я все что могла уже добавила)

А вот насчет фото, я на форуме новичОк. Не знала о таком правиле)
   hhhh
 
6 - 12.11.20 - 19:56
как же? Вы же пишете

Элементы.СписокНоменклатуры.ТекущиеДанные

значит, СписокНоменклатуры у вас там на форме есть.
   lam_anna
 
7 - 12.11.20 - 20:09
Не к тому элементу обращение.
Из табличных форм только ПодобраннаяНоменклатура https://prnt.sc/vi4ven
   NeiTRoN4ik
 
8 - 12.11.20 - 20:55
(0) Вообще уважаемый в (3) вам правильно написал. Но для понимания, что вы делаете не так именно в своем коде: вы вызываете функцию один раз, возвращаете значение и на этом все заканчивается. Правда меня  сейчас шапками закидают за то, что подсказываю, как сделать запрос в цикле)))
   hhhh
 
9 - 13.11.20 - 00:23
(7) это слева вы смотрите. сюда не нужно смотреть. я же вам в (3) написал "справа"
   lam_anna
 
10 - 13.11.20 - 06:47
(8) а что тут плохого, подсказывать? Но спасибо, навели на нужную мысль..
(9) Нету у меня справа списка. нету https://prnt.sc/vid6ig
   NeiTRoN4ik
 
11 - 13.11.20 - 08:35
(10) В подсказывании нет ничего плохо. Плохое в том, что я подсказываю вам в решении того, как делать не надо. Вы идете по пути того, что у вас будет цикл, внутри которого запрос, а так делать не хорошо. Нужно переписать обработку так, чтобы цены подтягивались у вас в том же запросе, в котором формируется сам список номенклатуры
   Chameleon1980
 
12 - 13.11.20 - 16:23
приполучении данных на сервере

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.