Передача в параметр уровня иерархии справочника СКД.
Добрый день! Возникла сложность с запросом. Запрос выбирает данные из двух регистров: регистра накопления "ВыручкаИСебестоимостьПродажОбороты" и самописного регистра сведений "Себестоимость продукции". Ниже приведу текст запроса:
В данный момент запрос собирает данные только по номенклатуре, которая лежит в элементе иерархии "Продукция".
Проблема заключается в следующем: не могу понять, как во второй временной таблице в части запроса после "ОБЪЕДИНИТЬ ВСЕ" отобрать номенклатуру только по элементу иерархии "Товары". Подскажите, пожалуйста, как решить эту проблему?
ВЫБРАТЬ
ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК Количество,
ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот КАК СуммаВыручки,
ВыручкаИСебестоимостьПродажОбороты.Регистратор КАК Регистратор,
ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер
ПОМЕСТИТЬ ПолучениеДанныхРеализаций
ИЗ
РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ВыручкаИСебестоимостьПродажОбороты
ГДЕ
ВыручкаИСебестоимостьПродажОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
аг_КалькуляцияСебестоимостиСрезПоследних.Себестоимость КАК СебестоимостьДеталиИлиТрубы,
аг_КалькуляцияСебестоимостиСрезПоследних.Номенклатура КАК Номенклатура,
аг_КалькуляцияСебестоимостиСрезПоследних.Регистратор КАК Регистратор
ПОМЕСТИТЬ ДанныеПоСебестоимостям
ИЗ
РегистрСведений.аг_КалькуляцияСебестоимости.СрезПоследних КАК аг_КалькуляцияСебестоимостиСрезПоследних
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот,
ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ВыручкаИСебестоимостьПродажОбороты.Регистратор
ИЗ
РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(, , Регистратор, ) КАК ВыручкаИСебестоимостьПродажОбороты
ГДЕ
ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Ссылка В ИЕРАРХИИ(&Товары)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПолучениеДанныхРеализаций.Номенклатура КАК Номенклатура,
ПолучениеДанныхРеализаций.Количество КАК Количество,
ПолучениеДанныхРеализаций.СуммаВыручки КАК СуммаВыручки,
ДанныеПоСебестоимостям.СебестоимостьДеталиИлиТрубы * ПолучениеДанныхРеализаций.Количество КАК СебестоимостьТрубы,
ПолучениеДанныхРеализаций.СуммаВыручки - ДанныеПоСебестоимостям.СебестоимостьДеталиИлиТрубы * ПолучениеДанныхРеализаций.Количество КАК Прибыль,
ПолучениеДанныхРеализаций.Регистратор КАК ДокументыРеализаций,
ПолучениеДанныхРеализаций.ЗаказКлиентаМенеджер КАК Менеджер
ИЗ
ПолучениеДанныхРеализаций КАК ПолучениеДанныхРеализаций
ЛЕВОЕ СОЕДИНЕНИЕ ДанныеПоСебестоимостям КАК ДанныеПоСебестоимостям
ПО ПолучениеДанныхРеализаций.Номенклатура = ДанныеПоСебестоимостям.Номенклатура
ПоказатьВ данный момент запрос собирает данные только по номенклатуре, которая лежит в элементе иерархии "Продукция".
Проблема заключается в следующем: не могу понять, как во второй временной таблице в части запроса после "ОБЪЕДИНИТЬ ВСЕ" отобрать номенклатуру только по элементу иерархии "Товары". Подскажите, пожалуйста, как решить эту проблему?
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
1. В первой части второго запроса установите условие на номенклатуру через ГДЕ.
2. Во второй части второго запроса перенесите условие по номенклатуре в параметры виртуальной таблицы Обороты.
Кстати, не вижу условия на Продукцию. Вижу только на Товары.
2. Во второй части второго запроса перенесите условие по номенклатуре в параметры виртуальной таблицы Обороты.
Кстати, не вижу условия на Продукцию. Вижу только на Товары.
(2) Условия на Продукцию нет. Дело в том, что в регистре сведений лежит только продукция (оно и логично, в регистр сведений пишутся данные о калькуляции себестоимости продукции, перекупных позиций там нет). Соответственно, в поле "СебестоимостьТрубы" ложится именно себестоимость продукции. В это же поле я хочу залить сумму продаж (выручку) перекупных позиций, для этого и делаю объединение (т.е. логика такова, что при объединении у меня для продукции, которая лежит в РС, будет указываться себестоимость из РС; а для товаров - себестоимость (цена закупки) из регистра "ВыручкаИСебестоимостьПродаж").
(6) Так в чем проблема-то? В том, что не знаешь как найти товары, или запрос работает некорректно?
Берешь в справочнике группу "Товары" и отправил её ссылку в запрос в качестве параметра "Товары".
PS. Там в третьем запросе, конечно, мрак творится... Общие суммовые обороты перемножаются на количество и все это называется Себестоимостью...
Берешь в справочнике группу "Товары" и отправил её ссылку в запрос в качестве параметра "Товары".
PS. Там в третьем запросе, конечно, мрак творится... Общие суммовые обороты перемножаются на количество и все это называется Себестоимостью...
(7) Насчет PS. Логика такова, что мы берём сумму по себестоимости. Т.е. если одна позиция стоит 200 рублей по себесу, то 3 будут стоить 600.
"Берешь в справочнике группу "Товары" и отправил её ссылку в запрос в качестве параметра "Товары"." - проблема в том, что я не знаю, как выбрать группу "Товары" из справочника в СКД.
"Берешь в справочнике группу "Товары" и отправил её ссылку в запрос в качестве параметра "Товары"." - проблема в том, что я не знаю, как выбрать группу "Товары" из справочника в СКД.
Могу предложить подобный подход
но при это нужно отключить флажок "Автозаполнение"
ВЫБРАТЬ
ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
ПриходнаяНакладнаяСписокНоменклатуры.Количество КАК Количество
{ВЫБРАТЬ
Номенклатура.*,
Количество}
ИЗ
Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
{ГДЕ
ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура.*,
ПриходнаяНакладнаяСписокНоменклатуры.Количество}
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
РасходнаяНакладнаяСписокНоменклатуры.Количество
ИЗ
Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура = &Товары
{ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.* КАК НоменклатураРН}
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот
ИЗ
РегистрНакопления.Продажи.Обороты(, , , {(Номенклатура) КАК Номенклатура1}) КАК ПродажиОбороты
Показатьно при это нужно отключить флажок "Автозаполнение"
Сори. Не правильно понял задачу.
Вопрос в том как передать в параметр значение из справочника?
ну можно, например, в выражении параметра Товары написать что-то типа Справочник.Номенклатура.НайтиПоНаименованию("Товары")
или тоже самое можно сделать в модуле объекта отчета через
КомпоновщинНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Товары", НужноеЗначение)
Вопрос в том как передать в параметр значение из справочника?
ну можно, например, в выражении параметра Товары написать что-то типа Справочник.Номенклатура.НайтиПоНаименованию("Товары")
или тоже самое можно сделать в модуле объекта отчета через
КомпоновщинНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Товары", НужноеЗначение)
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)