Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 ноя 2024, 03:19

Установка цен в документе 1С

Автор LeexMann, 28 окт 2024, 20:31

0 Пользователей и 1 гость просматривают эту тему.

LeexMann

Есть функция с запросом:

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

И есть процедура:

&НаКлиенте
Процедура УстановитьЦеныНаменклатурыПоставщиков()
     
   
КонецПроцедуры

Подскажите, как обратиться к этому запросу. Я только учусь, поэтому не судите строго.

Optiman

LeexMann, РезультатЗапроса = [Имя_Функции_С_Запросом]();

LeexMann

Optiman, Наверно я не так выразился. Мне нужно передать данные из запроса в процедуру. Как я это понимаю, поскольку у меня там массив значений, нужно это сделать через структуру или массив, но как эту логику прописать я не могу догнать. Чтобы я не пытался сделать программа ругается в отладчике на "Номенклатура В (&МассивНоменклатуры)) КАК ЦеныНоменклатурыПоставщиковСрезПоследних" указывая на неверный параметр.Вот мне нужно что бы кто-то подсказал, как прописать эту логику, чтобы программа заработала. Учиться дело хорошее, но самостоятельно не всегда возможно понять, как оно работает.

LexaK

LeexMann,
Цитироватьругается в отладчике на "Номенклатура В (&МассивНоменклатуры)
так уберите этот текст из запроса, эта ошибка - проадет
(правда возникнут следующие...)

как совет, возьмите книжку по программированию в 1С, проделайте все примеры в ней.
(хотя... кто эти советы читает)
если помогло нажмите: Спасибо!

LeexMann

LexaK, Я так и сделаю. Купил себе книгу по запросам, но это учебный проект и работу нужно сдать. первая проверка прошла не очень, надо довести до ума.

Optiman

Цитата: LeexMann от 29 окт 2024, 08:40программа ругается в отладчике на "Номенклатура В (&МассивНоменклатуры)) КАК ЦеныНоменклатурыПоставщиковСрезПоследних" указывая на неверный параметр
А где у вас формируется МассивНоменклатуры? Это вообще что?
Покажите всю функцию с этим запросом.
А так непонятно, Вы выложили вырезанный запрос и пустую процедуру УстановитьЦеныНаменклатурыПоставщиков()

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск