Имя: Пароль:
1C
1С v8
Отчет СКД. "Срез последних" регистра накопления
0 Wefast
 
10.10.17
16:19
Есть отчет. Клиенту понадобилось вывести колонку с данными по номенклатуре за последние месяц проводок по этой номенклатуре

Например если я делаю отчет за 31.10

По номенклатуре1 было в 10 месяце 2 документа. Вот они и должны вывестись

По номенклатуре2 были документы только в 5 месяце. Вот они и должны вывестись.

ДАнные беру из оборотного регистра накопления
1 Numerus Mikhail
 
10.10.17
16:22
Выбираешь Максимум(Период) Где Период <= ДатаФормирования.

Потом левое соединение с получившейся таблицей по НачалоМесяца(период) = НачалоМесяца(втПериоды.Период)

если очень коротко
2 Wefast
 
10.10.17
16:38
(1) то что ты написал у меня так и есть. Но ошибка видимо где то еще

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВыпускПродукцииОбороты.Организация КАК ОрганизацияПродукции,
    ВыпускПродукцииОбороты.СтруктурнаяЕдиница КАК ПодразделениеПродукции,
    ВыпускПродукцииОбороты.Номенклатура КАК Продукция,
    ВыпускПродукцииОбороты.Характеристика КАК ХарактеристикаПродукции,
    ВыпускПродукцииОбороты.Партия КАК ПартияПродукции,
    ВыпускПродукцииОбороты.ЗаказПокупателя КАК ЗаказПокупателяПродукции,
    ВыпускПродукцииОбороты.Спецификация КАК СпецификацияПродукции,
    СУММА(ВыпускПродукцииОбороты.КоличествоОборот) КАК КоличествоПродукции,
    ВыпускПродукцииОбороты.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмПродукции,
    ВыпускПродукцииОбороты.Регистратор КАК Регистратор,
    ВыпускПродукцииОбороты.ПериодМесяц КАК ПериодМесяц,
    ВложенныйЗапрос.Период КАК Период
ИЗ
    (ВЫБРАТЬ
        ВыпускПродукции.Организация КАК Организация,
        ВыпускПродукции.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
        ВыпускПродукции.Номенклатура КАК Номенклатура,
        ВыпускПродукции.Характеристика КАК Характеристика,
        ВыпускПродукции.Партия КАК Партия,
        ВыпускПродукции.ЗаказПокупателя КАК ЗаказПокупателя,
        ВыпускПродукции.Спецификация КАК Спецификация,
        МАКСИМУМ(ВыпускПродукции.Период) КАК Период
    ИЗ
        РегистрНакопления.ВыпускПродукции КАК ВыпускПродукции
    ГДЕ
        ВыпускПродукции.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
        И ВыпускПродукции.Период <= &КонецПериода
    
    СГРУППИРОВАТЬ ПО
        ВыпускПродукции.Характеристика,
        ВыпускПродукции.Спецификация,
        ВыпускПродукции.ЗаказПокупателя,
        ВыпускПродукции.Партия,
        ВыпускПродукции.Номенклатура,
        ВыпускПродукции.Организация,
        ВыпускПродукции.СтруктурнаяЕдиница) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыпускПродукции.Обороты(&НачалоПериода {(ДАТАВРЕМЯ(1, 1, 1)) КАК Поле2}, &КонецПериода {(&КонецПериода)}, Авто, Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)) КАК ВыпускПродукцииОбороты
        ПО (ВыпускПродукцииОбороты.Организация = ВложенныйЗапрос.Организация)
            И (ВыпускПродукцииОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура)
            И (ВыпускПродукцииОбороты.СтруктурнаяЕдиница = ВложенныйЗапрос.СтруктурнаяЕдиница)
            И (ВыпускПродукцииОбороты.Характеристика = ВложенныйЗапрос.Характеристика)
            И (ВыпускПродукцииОбороты.Партия = ВложенныйЗапрос.Партия)
            И (ВыпускПродукцииОбороты.ЗаказПокупателя = ВложенныйЗапрос.ЗаказПокупателя)
            И (ВыпускПродукцииОбороты.Спецификация = ВложенныйЗапрос.Спецификация)
            И (ВыпускПродукцииОбороты.ПериодМесяц <= КОНЕЦПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ))
            И (ВыпускПродукцииОбороты.ПериодМесяц >= НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ))
ГДЕ
    ВыпускПродукцииОбороты.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
    ВыпускПродукцииОбороты.Партия,
    ВыпускПродукцииОбороты.Номенклатура,
    ВыпускПродукцииОбороты.Организация,
    ВыпускПродукцииОбороты.СтруктурнаяЕдиница,
    ВыпускПродукцииОбороты.Спецификация,
    ВыпускПродукцииОбороты.Характеристика,
    ВыпускПродукцииОбороты.ЗаказПокупателя,
    ВыпускПродукцииОбороты.Номенклатура.ЕдиницаИзмерения,
    ВыпускПродукцииОбороты.Регистратор,
    ВыпускПродукцииОбороты.ПериодМесяц,
    ВложенныйЗапрос.Период
3 Wefast
 
10.10.17
16:38
кажется перепутал соединение. Буду смотреть
4 Wefast
 
10.10.17
16:48
не, чтото не то

Делаю
ВЫБРАТЬ
    ВыпускПродукции.Организация КАК Организация,
    ВыпускПродукции.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ВыпускПродукции.Номенклатура КАК Номенклатура,
    ВыпускПродукции.Характеристика КАК Характеристика,
    ВыпускПродукции.Партия КАК Партия,
    ВыпускПродукции.ЗаказПокупателя КАК ЗаказПокупателя,
    ВыпускПродукции.Спецификация КАК Спецификация,
    МАКСИМУМ(ВыпускПродукции.Период) КАК Период
ИЗ
    РегистрНакопления.ВыпускПродукции КАК ВыпускПродукции
ГДЕ
    ВыпускПродукции.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
    И ВыпускПродукции.Период <= &КонецПериода
    И ВыпускПродукции.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
    ВыпускПродукции.Характеристика,
    ВыпускПродукции.Спецификация,
    ВыпускПродукции.ЗаказПокупателя,
    ВыпускПродукции.Партия,
    ВыпускПродукции.Номенклатура,
    ВыпускПродукции.Организация,
    ВыпускПродукции.СтруктурнаяЕдиница


Выводится 2 строки. от 06.17 и от 10.17. Надо только с последнего месяца
5 Numerus Mikhail
 
10.10.17
17:07
(4) Не так

Делаешь отдельный запрос к регистру, где вытаскиваешь только номенклатуру и максимальную дату.

Потом вторым запросом вытаскиваешь всё что тебе нужно в пределах максимальной даты.
6 Numerus Mikhail
 
10.10.17
17:08
(4) Потому что у тебя тут всё в разрезе характеристики, спецификации заказа, партии, организации. Вытащить надо только номенклатуру и дату.