Имя: Пароль:
1C
 
Добавить колонку со штрихкодами к отчету
0 Max57
 
20.12.23
17:35
Всем привет, уважаемые форумчане. Мне к внешнему отчету нужно добавить поле со штрихкодами. Я сделал левое соединение к последнему запросу из пакета таблицу регистра сведений штрихкоды и в СКД использовал СоединитьСтроки для вывода всех ШК, но у меня задваиваются штрихкоды. Подскажите, пожалуйста, как это можно поправить?

Вот сам запрос из СКД:
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Характеристика КАК Характеристика,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход
ПОМЕСТИТЬ ВТ_ПриходыРасходы
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ПриходыРасходы.Склад КАК Склад,
    ВТ_ПриходыРасходы.Номенклатура КАК Номенклатура,
    ВТ_ПриходыРасходы.Характеристика КАК Характеристика,
    ВТ_ПриходыРасходы.Регистратор КАК Регистратор,
    ВТ_ПриходыРасходы.КоличествоПриход КАК КоличествоПриход,
    ВТ_ПриходыРасходы.КоличествоРасход КАК КоличествоРасход,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоНачалоПериода,
    ТоварыНаСкладахОстатки1.КоличествоОстаток КАК КоличествоКонецПериода,
    ТоварыНаСкладахОстатки.КоличествоОстаток * ВТ_ПриходыРасходы.Номенклатура.ор_ВесВГраммах КАК ВесНачальныйОстаток,
    ТоварыНаСкладахОстатки1.КоличествоОстаток * ВТ_ПриходыРасходы.Номенклатура.ор_ВесВГраммах КАК ВесКонечныйОстаток,
    ВТ_ПриходыРасходы.КоличествоПриход * ВТ_ПриходыРасходы.Номенклатура.ор_ВесВГраммах КАК ВесПриход,
    ВТ_ПриходыРасходы.КоличествоРасход * ВТ_ПриходыРасходы.Номенклатура.ор_ВесВГраммах КАК ВесРасход,
    ВТ_ПриходыРасходы.Склад.Магазин КАК Магазин
ПОМЕСТИТЬ ВТ_Движения
ИЗ
    ВТ_ПриходыРасходы КАК ВТ_ПриходыРасходы
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&НачалоПериода, ) КАК ТоварыНаСкладахОстатки
        ПО ВТ_ПриходыРасходы.Склад = ТоварыНаСкладахОстатки.Склад
            И ВТ_ПриходыРасходы.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ВТ_ПриходыРасходы.Характеристика = ТоварыНаСкладахОстатки.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыНаСкладахОстатки1
        ПО ВТ_ПриходыРасходы.Склад = ТоварыНаСкладахОстатки1.Склад
            И ВТ_ПриходыРасходы.Номенклатура = ТоварыНаСкладахОстатки1.Номенклатура
            И ВТ_ПриходыРасходы.Характеристика = ТоварыНаСкладахОстатки1.Характеристика

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Характеристика,
    "Без Документа",
    0,
    0,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    0,
    ТоварыНаСкладахОстатки.КоличествоОстаток * ТоварыНаСкладахОстатки.Номенклатура.ор_ВесВГраммах,
    0,
    0,
    0,
    ТоварыНаСкладахОстатки.Склад.Магазин
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            &НачалоПериода,
            НЕ Номенклатура В
                    (ВЫБРАТЬ
                        ВТ_ПриходыРасходы.Номенклатура КАК Номенклатура
                    ИЗ
                        ВТ_ПриходыРасходы КАК ВТ_ПриходыРасходы)) КАК ТоварыНаСкладахОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Характеристика,
    "Без Документа",
    0,
    0,
    0,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    0,
    ТоварыНаСкладахОстатки.КоличествоОстаток * ТоварыНаСкладахОстатки.Номенклатура.ор_ВесВГраммах,
    0,
    0,
    ТоварыНаСкладахОстатки.Склад.Магазин
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            &КонецПериода,
            НЕ Номенклатура В
                    (ВЫБРАТЬ
                        ВТ_ПриходыРасходы.Номенклатура КАК Номенклатура
                    ИЗ
                        ВТ_ПриходыРасходы КАК ВТ_ПриходыРасходы)) КАК ТоварыНаСкладахОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Движения.Склад КАК Склад,
    ВТ_Движения.Номенклатура КАК Номенклатура,
    ВТ_Движения.Характеристика КАК Характеристика,
    ВТ_Движения.Регистратор КАК Регистратор,
    ВТ_Движения.КоличествоПриход КАК КоличествоПриход,
    ВТ_Движения.КоличествоРасход КАК КоличествоРасход,
    ВТ_Движения.КоличествоНачалоПериода КАК КоличествоНачалоПериода,
    ВТ_Движения.КоличествоКонецПериода КАК КоличествоКонецПериода,
    ВТ_Движения.ВесНачальныйОстаток КАК ВесНачальныйОстаток,
    ВТ_Движения.ВесКонечныйОстаток КАК ВесКонечныйОстаток,
    ВТ_Движения.ВесПриход КАК ВесПриход,
    ВТ_Движения.ВесРасход КАК ВесРасход,
    ВТ_Движения.Магазин КАК Магазин,
    ЕСТЬNULL(ВТ_Движения.КоличествоКонецПериода, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ОценкаКонечныйОстаток,
    ЕСТЬNULL(ВТ_Движения.КоличествоПриход, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ОценкаПриход,
    ЕСТЬNULL(ВТ_Движения.КоличествоРасход, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ОценкаРасход,
    ЕСТЬNULL(ВТ_Движения.КоличествоНачалоПериода, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ОценкаНачальныйОстаток,
    ЕСТЬNULL(ВЫБОР
            КОГДА ВТ_Движения.Номенклатура.ор_ВесВГраммах <> 0
                ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) / ВТ_Движения.Номенклатура.ор_ВесВГраммах
            ИНАЧЕ 0
        КОНЕЦ, 0) КАК ЦенаЗаГрамм,
    Штрихкоды.Штрихкод КАК Штрихкод
ИЗ
    ВТ_Движения КАК ВТ_Движения
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&ДатаКон)}, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО (ВТ_Движения.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура)
            И (ВТ_Движения.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика)
            И (ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
        ПО (ВТ_Движения.Номенклатура = Штрихкоды.Владелец)
ГДЕ
    ВТ_Движения.Номенклатура = &Номенклатура
1 НафНаф
 
20.12.23
17:52
Так у вас товар имеет несколько записей. Зачем вам понадобилось отдельно получать остатки, если они есть в таблице остаткииобороты?
2 Доминошник
 
20.12.23
18:09
3 Max57
 
20.12.23
18:11
(1) отчет не я делал
4 Волшебник
 
20.12.23
18:14
(3) Не надо оправдываться. Вы взялись за переделку отчёта, значит теперь он полностью Ваш.
5 Max57
 
20.12.23
18:45
(2) Спасибо, попробую так сделать