Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
01 дек 2021, 00:06

Деление в запросе

Автор Ann_, 18 мар 2021, 09:02

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

Ann_

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

LexaK

а на что вам надо поделить?
Упаковка это ссылка, на ссылку делить нельзя, необходимо через точку указать нужный Реквизит (тип Число)
примерно так

ВариантыКомплектацииНоменклатурыТовары.Упаковка.Числитель
* ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
/ ВариантыКомплектацииНоменклатуры.Упаковка.ЗНАМЕНАТЕЛЬ //или что там у вас
                   
ответ Понравился? (в смысле пригодился?)

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск