Имя: Пароль:
1C
1С v8
Вложенный запрос по регистру сведений.
0 nasta_nasta
 
27.06.17
11:34
Всем добрый день.
Не кидайте, пожалуйста тапками, недавно перешла с 7.7 на 8ку, с отчетом беда. Мучаюсь уже 2 недели, перечитала все темы вроде и так пробовала и так, но не получается. (((
Есть РС "ЦеныПоставщиков", периодичность день.
Нужно выбрать обороты по регистру "ПартииТоваровНаСкладах", и по этой номенклатуре на дату документа поступления выбрать данные из РС "ЦеныПоставщиков".

В отчет нужно вывести группировки Документ поступления, Номенклатура - из "ПартииТоваровНаСкладах", и по этой номенклатуре данные из РС. У меня получилось сделать двумя запросами, но только с группировкой по Регистратору по РС, а он не нужен...
Т.е. я не могу соединить эти два запроса по дате и номенклатуре - пробовала и СКД, и запросом.
Подскажите пожалуйста, что я делаю не так. Вот текст запроса:


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

СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОбороты.Склад,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования,
    ПартииТоваровНаСкладахОбороты.Номенклатура,
    ПартииТоваровНаСкладахОбороты.Регистратор,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Контрагент,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Дата
{УПОРЯДОЧИТЬ ПО
    Контрагент,
    Номенклатура.*,
    ДокументЗакупки.*,
    ДопРасходы,
    КоличествоОборот,
    СтоимостьОборот,
    Закупка,
    Склад.*,
    Регистратор.*,
    ДатаПрихода}
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    СУММА(Закупка),
    СУММА(ДопРасходы)
ПО
    Контрагент,
    ДокументЗакупки,
    Номенклатура,
    Склад
{ИТОГИ ПО
    Контрагент,
    Номенклатура.*,
    ДокументЗакупки.*,
    КоличествоОборот,
    СтоимостьОборот,
    Закупка,
    ДопРасходы,
    Склад.*,
    ДопРасходы,
    Регистратор.*,
    ДатаПрихода,
    ВложенныйЗапрос.КонтрольныеЗнаки,
    ВложенныйЗапрос.ПошлинаСумма,
    ВложенныйЗапрос.ТранспортСумма,
    ВложенныйЗапрос.ОптоваяНадбавкаСумма,
    ВложенныйЗапрос.Себестоимость,
    ВложенныйЗапрос.СебестоимостьВал,
    ВложенныйЗапрос.ЦенаПоставщика}
1 HaeMHuK
 
27.06.17
11:49
Неделю назад писал похожий отчет.
Вот подсказка: http://catalog.mista.ru/public/77568/
2 Peltzer
 
27.06.17
11:50
ВЫБРАТЬ * ИЗ(ВЫБРАТЬ
МАКСИМУМ(Цены.Период),
Партии.ДеньОприходования,
Партии.Номенклатура
ИЗ (
ВЫБРАТЬ  НАЧАЛОПЕРИОДА(Партии.ДокументОприходования,ДЕНЬ) КАК ДеньОприходования,
Партии.Номенклатура,
Цены.Период
ИЗ ПартииТоваровНаСкладахОбороты КАК Партии
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВЫБРАТЬ Цены.Период,Цены.Номенклатура ИЗ
ИЗ РС.ЦеныПоставщиков
ПО Цены.Период <= ДеньОприходования
И Цены.Номенклатура = Партии.Номенклатура) как ЦеныДоПрихода
СГРУППИРОВАТЬ ПО
ДеньОприходования, Номенклатура
) КАК СрезПоследнихЦен
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков


Так ты получишь срез последних цен до документа поступления - далее соединяй с партиями
3 nasta_nasta
 
27.06.17
11:52
(1) Спасибо. Да, видела эту статью, сделала как в ней - если соединяю по номенклатуре и по дате - не работает, если только по номенклатуре - то работает, но данные на конец периода соответственно...
4 catena
 
27.06.17
11:54
(3)Значит не правильно сделала, показывай.
5 nasta_nasta
 
27.06.17
12:14
(4) Вот.
ВЫБРАТЬ
    ПартииТоваровНаСкладахОбороты.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахОбороты.Склад КАК Склад,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования КАК ДокументОприходования,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Контрагент КАК Контрагент,
    СУММА(ПартииТоваровНаСкладахОбороты.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ПартииТоваровНаСкладахОбороты.СтоимостьПриход) КАК СтоимостьПриход,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Дата КАК ДатаПрих,
    СУММА(ВЫБОР
            КОГДА ПартииТоваровНаСкладахОбороты.КоличествоПриход = 0
                ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьПриход
        КОНЕЦ) КАК ДопРасходы,
    СУММА(ВЫБОР
            КОГДА ПартииТоваровНаСкладахОбороты.КоличествоПриход > 0
                ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьПриход
        КОНЕЦ) КАК Закупка,
    СРЕДНЕЕ(ВЫБОР
            КОГДА ПартииТоваровНаСкладахОбороты.КоличествоПриход > 0
                ТОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.СтоимостьПриход / ПартииТоваровНаСкладахОбороты.КоличествоПриход КАК ЧИСЛО(10, 2))
        КОНЕЦ) КАК ЦенаПоступления
{ВЫБРАТЬ
    Номенклатура.*,
    Склад.*,
    ДокументОприходования.*,
    Контрагент.*,
    КоличествоПриход,
    СтоимостьПриход,
    ДатаПрих,
    ДопРасходы,
    Закупка,
    ЦенаПоступления}
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ПартииТоваровНаСкладахОбороты
{ГДЕ
    ПартииТоваровНаСкладахОбороты.Номенклатура.*,
    ПартииТоваровНаСкладахОбороты.Склад.*,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.*,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Контрагент.*,
    ПартииТоваровНаСкладахОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Дата,
    (ВЫБОР
            КОГДА ПартииТоваровНаСкладахОбороты.КоличествоПриход = 0
                ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьПриход
        КОНЕЦ) КАК ДопРасходы,
    (ВЫБОР
            КОГДА ПартииТоваровНаСкладахОбороты.КоличествоПриход > 0
                ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьПриход
        КОНЕЦ) КАК Закупка,
    (ВЫБОР
            КОГДА ПартииТоваровНаСкладахОбороты.КоличествоПриход > 0
                ТОГДА ВЫРАЗИТЬ(ПартииТоваровНаСкладахОбороты.СтоимостьПриход / ПартииТоваровНаСкладахОбороты.КоличествоПриход КАК ЧИСЛО(10, 2))
        КОНЕЦ) КАК ЦенаПоступления,
    ПартииТоваровНаСкладахОбороты.Период}

СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Контрагент,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования,
    ПартииТоваровНаСкладахОбороты.Номенклатура,
    ПартииТоваровНаСкладахОбороты.Склад,
    ПартииТоваровНаСкладахОбороты.ДокументОприходования.Дата

УПОРЯДОЧИТЬ ПО
    Контрагент,
    ДокументОприходования,
    Номенклатура
6 catena
 
27.06.17
12:21
(5)Где тут цены из РС?
7 catena
 
27.06.17
12:21
И чисти запрос от построителя, когда кидаешь, невозможно ж читать.
8 nasta_nasta
 
27.06.17
14:18
(6) ой, не сообразила вот запрос по РС

ВЫБРАТЬ
    ЦеныПоставщиковСрезПоследних.Период КАК Период,
    ЦеныПоставщиковСрезПоследних.Контрагент КАК Контрагент,
    ЦеныПоставщиковСрезПоследних.Номенклатура КАК Номенклатура,
    СРЕДНЕЕ(ЦеныПоставщиковСрезПоследних.ЦенаПоставщика) КАК ЦенаПоставщика,
    СУММА(ЦеныПоставщиковСрезПоследних.КонтрольныеЗнаки) КАК КонтрольныеЗнаки,
    СУММА(ЦеныПоставщиковСрезПоследних.ПошлинаСумма) КАК ПошлинаСумма,
    СУММА(ЦеныПоставщиковСрезПоследних.ТранспортСумма) КАК ТранспортСумма,
    СУММА(ЦеныПоставщиковСрезПоследних.ОптоваяНадбавкаСумма) КАК ОптоваяНадбавкаСумма,
    СУММА(ЦеныПоставщиковСрезПоследних.Себестоимость) КАК Себестоимость,
    СУММА(ЦеныПоставщиковСрезПоследних.СебестоимостьВал) КАК СебестоимостьВал,
    ЦеныПоставщиковСрезПоследних.Регистратор
{ВЫБРАТЬ
    Период,
    Контрагент.*,
    Номенклатура.*,
    ЦенаПоставщика,
    КонтрольныеЗнаки,
    ПошлинаСумма,
    ТранспортСумма,
    ОптоваяНадбавкаСумма,
    Себестоимость,
    СебестоимостьВал}
ИЗ
    РегистрСведений.ЦеныПоставщиков.СрезПоследних(&ДатаПрих, ) КАК ЦеныПоставщиковСрезПоследних
{ГДЕ
    ЦеныПоставщиковСрезПоследних.Период,
    ЦеныПоставщиковСрезПоследних.Контрагент.*,
    ЦеныПоставщиковСрезПоследних.Номенклатура.*}

СГРУППИРОВАТЬ ПО
    ЦеныПоставщиковСрезПоследних.Контрагент,
    ЦеныПоставщиковСрезПоследних.Номенклатура,
    ЦеныПоставщиковСрезПоследних.Период,
    ЦеныПоставщиковСрезПоследних.Регистратор

УПОРЯДОЧИТЬ ПО
    Контрагент,
    Номенклатура

Связь по ПартииТоваров - Цены: номенклатура-номенклатура и ДатаПрих - Период
не могу понять как скрин прикрепить
9 nasta_nasta
 
27.06.17
14:22
(7) прошу прощения. форум читаю давно, а вот пишу впервые. не знаю всех нюансов.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.