Имя: Пароль:
1C
1С v8
Розница 1.0: Печать ценников - убрать дубли
0 KUBIK
 
30.11.13
17:29
Всем доборго дня. Может кто уже делал?
Проблема: у одного штучныого товара в БД есть несколько штрихкодов. При вызове обработки печати ценников этого товара таблица товаров заполняется по всем его штрихкодам. Как ограничить заполнение только одной строкой товара ( где подправить в запросе)?
Пробовал в запрос вставлять вложенный запрос к РС Штрихкоды по первым значениям - ничего не выходит...

Запрос, отвечающий за заполнение таблицы товаров:
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Номенклатура,
    |    Номенклатура.Родитель,
    |    Номенклатура.Код,
    |    Номенклатура.Наименование,
    |    Номенклатура.Артикул,
    |    Номенклатура.НаименованиеПолное,
    |    Номенклатура.НоменклатурнаяГруппа,
    |    Номенклатура.ВидНоменклатуры,
    |    Номенклатура.БазоваяЕдиницаИзмерения,
    |    Номенклатура.СтавкаНДС,
    |    Номенклатура.СтранаПроисхождения,
    |    Номенклатура.ДополнительноеОписание,
    |    ХарактеристикиНоменклатуры.Ссылка КАК ХарактеристикаНоменклатуры,
    |    Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения
    |ПОМЕСТИТЬ Товары
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            NULL КАК Владелец,
    |            ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Ссылка
    |        
    |        ОБЪЕДИНИТЬ
    |        
    |        ВЫБРАТЬ
    |            ХарактеристикиНоменклатуры.Владелец,
    |            ХарактеристикиНоменклатуры.Ссылка
    |        ИЗ
    |            Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры) КАК ХарактеристикиНоменклатуры
    |        ПО (ХарактеристикиНоменклатуры.Ссылка = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
    |                ИЛИ (Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ИспользоватьИндивидуальныеДляНоменклатуры)
    |                        И Номенклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец
    |                    ИЛИ Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ИспользоватьОбщиеДляВидаНоменклатуры)
    |                        И Номенклатура.ВидНоменклатуры = ХарактеристикиНоменклатуры.Владелец))
    |ГДЕ
    |    (НЕ Номенклатура.ЭтоГруппа)
    |{ГДЕ
    |    Номенклатура.Ссылка.* КАК Ссылка,
    |    ХарактеристикиНоменклатуры.Ссылка КАК ХарактеристикаНоменклатуры}
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура,
    |    ХарактеристикаНоменклатуры
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    Товары.Родитель,
    |    Товары.Код,
    |    Товары.Наименование,
    |    Товары.Артикул,
    |    Товары.НаименованиеПолное,
    |    Товары.НоменклатурнаяГруппа,
    |    Товары.ВидНоменклатуры,
    |    Товары.ДополнительноеОписание,
    |    Товары.БазоваяЕдиницаИзмерения,
    |    Товары.СтавкаНДС,
    |    Товары.СтранаПроисхождения,
    |    Товары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихХарактеристики.Период, ЦеныНоменклатурыСрезПоследних.Период) КАК ДатаУстановкиЦены,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихХарактеристики.ТипЦен, ЦеныНоменклатурыСрезПоследних.ТипЦен) КАК ТипЦен,
    |    ЕСТЬNULL(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихХарактеристики.Цена, ЦеныНоменклатурыСрезПоследних.Цена), 0) КАК Цена,
    |    ЕСТЬNULL(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихХарактеристики.ЕдиницаИзмерения, ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения), Товары.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
    |    0 КАК Остаток,
    |    ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
    |    ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка) КАК Магазин,
    |    ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад
    |ПОМЕСТИТЬ ТоварыЦеныОстатки
    |ИЗ
    |    Товары КАК Товары
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    |                &ДатаЦен,
    |                ТипЦен = &ТипЦен
    |                    И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) {(Номенклатура) КАК Ссылка}) КАК ЦеныНоменклатурыСрезПоследних
    |        ПО Товары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    |                &ДатаЦен,
    |                ТипЦен = &ТипЦен
    |                    И (НЕ ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) {(Номенклатура) КАК Ссылка, (ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатуры}) КАК ЦеныНоменклатурыСрезПоследнихХарактеристики
    |        ПО Товары.Номенклатура = ЦеныНоменклатурыСрезПоследнихХарактеристики.Номенклатура
    |            И Товары.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследнихХарактеристики.ХарактеристикаНоменклатуры
    |//СЕКЦИЯ_СОЕДИНЕНИЙ
    |ГДЕ
    |    ИСТИНА
    |//СЕКЦИЯ_УСЛОВИЙ
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура,
    |    ХарактеристикаНоменклатуры
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТоварыЦеныОстатки.Номенклатура КАК Ссылка,
    |    ТоварыЦеныОстатки.Родитель,
    |    ТоварыЦеныОстатки.Код,
    |    ТоварыЦеныОстатки.Наименование,
    |    ТоварыЦеныОстатки.Артикул,
    |    ТоварыЦеныОстатки.НаименованиеПолное,
    |    ТоварыЦеныОстатки.НоменклатурнаяГруппа,
    |    ТоварыЦеныОстатки.ВидНоменклатуры,
    |    ТоварыЦеныОстатки.ДополнительноеОписание,
    |    ТоварыЦеныОстатки.БазоваяЕдиницаИзмерения,
    |    ТоварыЦеныОстатки.СтавкаНДС,
    |    ТоварыЦеныОстатки.СтранаПроисхождения,
    |    ЕСТЬNULL(Штрихкоды.Штрихкод, """") КАК Штрихкод,
    |    ЕСТЬNULL(Штрихкоды.ПредставлениеШтрихкода, """") КАК ПредставлениеШтрихкода,
    |    ТоварыЦеныОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    ТоварыЦеныОстатки.ДатаУстановкиЦены,
    |    ТоварыЦеныОстатки.ТипЦен,
    |    ВЫБОР
    |        КОГДА ШтрихКоды.ЕдиницаИзмерения ЕСТЬ NULL
    |                ИЛИ ШтрихКоды.ЕдиницаИзмерения.Коэффициент = 0
    |                ИЛИ ТоварыЦеныОстатки.ЕдиницаИзмерения.Коэффициент = 0
    |            ТОГДА 1
    |        ИНАЧЕ ШтрихКоды.ЕдиницаИзмерения.Коэффициент / ТоварыЦеныОстатки.ЕдиницаИзмерения.Коэффициент
    |    КОНЕЦ * ТоварыЦеныОстатки.Цена КАК Цена,
    |    ЕСТЬNULL(ШтрихКоды.ЕдиницаИзмерения, ТоварыЦеныОстатки.ЕдиницаИзмерения) КАК ЕдиницаИзмерения,
    |    ВЫБОР
    |        КОГДА ШтрихКоды.ЕдиницаИзмерения ЕСТЬ NULL
    |                ИЛИ ШтрихКоды.ЕдиницаИзмерения.Коэффициент = 0
    |            ТОГДА ТоварыЦеныОстатки.Остаток
    |        ИНАЧЕ ТоварыЦеныОстатки.Остаток / ШтрихКоды.ЕдиницаИзмерения.Коэффициент
    |    КОНЕЦ КАК Остаток,
    |    КодыТоваровPLU.Код КАК КодТовараPLU,
    |    ТоварыЦеныОстатки.Организация.Наименование КАК ОрганизацияНаименование,
    |    ТоварыЦеныОстатки.Организация.НаименованиеСокращенное КАК ОрганизацияНаименованиеСокращенное,
    |    ТоварыЦеныОстатки.Организация.ИНН КАК ИНН,
    |    ТоварыЦеныОстатки.Организация.КодПоОКПО КАК КодПоОКПО,
    |    ТоварыЦеныОстатки.Организация.ОГРН КАК ОГРН,
    |    ТоварыЦеныОстатки.Организация.СвидетельствоДатаВыдачи КАК СвидетельствоДатаВыдачи,
    |    ТоварыЦеныОстатки.Организация.СвидетельствоСерияНомер КАК СвидетельствоСерияНомер,
    |    ТоварыЦеныОстатки.Организация КАК ОрганизацииСсылка,
    |    ТоварыЦеныОстатки.Магазин.Наименование КАК МагазиныНаименование,
    |    ТоварыЦеныОстатки.Магазин КАК МагазиныСсылка,
    |    ТоварыЦеныОстатки.Организация КАК ОрганизацияИзОстатков,
    |    ТоварыЦеныОстатки.Магазин КАК МагазинИзОстатков,
    |    ТоварыЦеныОстатки.Склад КАК СкладИзОстатков,
    |    """" КАК ТекущаяДата,
    |    """" КАК ТекущееВремя,
    |    """" КАК ТекущаяДатаИВремя,
    |    """" КАК ИмяПользователя,
    |    ЕСТЬNULL(ШтрихКоды.ТипШтрихкода, """") КАК ТипШтрихкода,
    |    ВЫБОР
    |        КОГДА ШтрихКоды.ЕдиницаИзмерения ЕСТЬ NULL
    |            ТОГДА ТоварыЦеныОстатки.ЕдиницаИзмерения.ЕдиницаПоКлассификатору
    |        ИНАЧЕ ШтрихКоды.ЕдиницаИзмерения.ЕдиницаПоКлассификатору
    |    КОНЕЦ КАК ЕдиницаПоКлассификатору
    |ИЗ
    |    ТоварыЦеныОстатки КАК ТоварыЦеныОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК ШтрихКоды
    |        ПО ТоварыЦеныОстатки.Номенклатура = ШтрихКоды.Владелец
    |            И ТоварыЦеныОстатки.ХарактеристикаНоменклатуры = ШтрихКоды.ХарактеристикаНоменклатуры
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыТоваровPLU КАК КодыТоваровPLU
    |        ПО ТоварыЦеныОстатки.Номенклатура = КодыТоваровPLU.Номенклатура
    |            И ТоварыЦеныОстатки.ХарактеристикаНоменклатуры = КодыТоваровPLU.ХарактеристикаНоменклатуры
    |            И (ВЫБОР
    |                КОГДА ТоварыЦеныОстатки.Номенклатура.Весовой
    |                    ТОГДА ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка) = КодыТоваровPLU.ЕдиницаИзмерения
    |                ИНАЧЕ ЕСТЬNULL(ШтрихКоды.ЕдиницаИзмерения, ТоварыЦеныОстатки.ЕдиницаИзмерения) = КодыТоваровPLU.ЕдиницаИзмерения
    |            КОНЕЦ)";
1 KUBIK
 
30.11.13
17:36
Релиз 1.0.16.8 (для 8.2), обработка типовая в составе конфы
2 KUBIK
 
02.12.13
02:21
Проблему решил: в запросе3 вместо таблицы РС ШтрихКоды заменил её на внутренний запрос к РС ШтрихКоды и ВТ Товары с ЛС. И сделал группировку в нем с типом итогов МИНИМУМ по ШтрихКод и ПредставлениеШтрихКода.

Теперь в ТЗ Товары заполняется ТОЛЬКО ОДИН товар с минимальным (в данном варианте запроса) в случае наличия у него нескольких штрихкодов! То что требовалось!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой