Имя: Пароль:
1C
1С v8
Помогите поправить запрос по перемещениям товаров
0 BBDragon
 
17.12.20
16:03
УТ 11.4.13.71, пишу отчет по перемещениям товаров на складах. Необходимо по каждому документу вытащить все позиции номенклатуры, цену на момент поступления товара на базу (используется родитель, документ ПриобретениеТоваровУслуг), количество, сумму. Вроде бы более-менее всё получается, но почему-то по некоторым позициям идет задвой и одна и та же номенклатура сначала отражается в отчетах с единицей изменерения "метр", а потом то же самое, но уже с "шт". Единиц измерения у этих позиций только одна, откуда берутся метры - вообще непонятно!
Текст запроса:

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

Результаты отчета: https://i.postimg.cc/6pcDHMX2/image.png

Настройки вывода данных в форму: https://i.postimg.cc/1z4YvPB2/image.png
1 Ёпрст
 
17.12.20
16:05
(0)
Номенклатура.ЕдиницаИзмерения

нужно единицу измерения брать из табличной части, а не у элемента справочника
2 Ёпрст
 
17.12.20
16:06
ну и вот это


ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары

        ПО ПеремещениеТоваров.Ссылка = ПеремещениеТоваровТовары.Ссылка

тоже не верно
3 BBDragon
 
17.12.20
16:18
(1) поправлю, но причина же явно не в этом
(2) в первоначальной версии запроса 1C ругалась на обращение к табличным частям посему использовал совет отсюда: https://forum.infostart.ru/forum9/topic148866/, там был  показан пример из документа РеализацияТоваровУслуг, сделал по аналогии
4 Ёпрст
 
17.12.20
16:20
(3) короче, сделай запрос только к Документ.ПеремещениеТоваров.Товары, выкинь из кода вот это

ПеремещениеТоваров.Товары.(
        Номенклатура КАК Номенклатура,
        Номенклатура.ЕдиницаИзмерения КАК ЕдИзм,
        КоличествоУпаковок КАК КоличествоУпаковок,
        Количество КАК Количество
    ) КАК Товары,


и будет тебе  счастье
5 BBDragon
 
17.12.20
16:36
(4) низкий вам поклон, всё заработало!! И как это я сразу не допетрил.. Да уж, длительный перерыв в работе с отчетами сказывается
6 Малыш Джон
 
17.12.20
17:12
(0) вот за такое в приличных местах морду бьют:

ЦеныНоменклатурыСрезПервых.Регистратор.Дата КАК РегистраторДата
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан