Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 фев 2025, 17:57

Помогите с запросом типов штрихкодов

Автор programmister, 22 дек 2024, 20:45

0 Пользователей и 1 гость просматривают эту тему.

programmister

Всем привет! Помогите с запросом, необходимо в зависимости от группы номенклатуры "Рога" выводить нужный тип штрихкода, в базе есть 2 типа EAN13 И CODE128, делаю так

Запрос_.УстановитьПараметр("Владелец", ВыборкаТовары.Номенклатура);
            Запрос_.Текст =
            "ВЫБРАТЬ
            |    Штрихкоды.Штрихкод КАК Штрихкод,
            |    ВЫБОР
            |        КОГДА Штрихкоды.Владелец.Родитель = ""Рога""
            |            ТОГДА Штрихкоды.ТипШтрихкода = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
            |        ИНАЧЕ Штрихкоды.ТипШтрихкода
            |    КОНЕЦ КАК Поле1
            |ИЗ
            |    РегистрСведений.Штрихкоды КАК Штрихкоды
            |ГДЕ
            |    Штрихкоды.Владелец.Код = &Владелец";

 

alexandr_ll

programmister, Вы сравниваете ссылку на справочник со строкой. Это разные типы.
Штрихкоды.Владелец.Родитель = ""Рога""

fruitella

Запрос_.УстановитьПараметр("Владелец", ВыборкаТовары.Номенклатура.Код);
Запрос_.УстановитьПараметр("ГруппаТоваров", Справочник.Номенклатура.НайтиПоНаименованию("Рога"));

            Запрос_.Текст =
            "ВЫБРАТЬ
            |    Штрихкоды.Штрихкод КАК Штрихкод,
            |    ВЫБОР
            |        КОГДА Штрихкоды.Владелец.Родитель = &ГруппаТоваров
            |            ТОГДА ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
            |        ИНАЧЕ ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.CODE128)
            |    КОНЕЦ КАК ТипШтрихкода
            |ИЗ
            |    РегистрСведений.Штрихкоды КАК Штрихкоды
            |ГДЕ
            |    Штрихкоды.Владелец.Код = &Владелец";

Так попропубй

programmister

Сделал так: указал номенклатурную группу, нет отбора типа штрихкода, выводится первый попавшийся
Запрос_.УстановитьПараметр("Владелец", ВыборкаТовары.Номенклатура.Код);
Запрос_.УстановитьПараметр("ГруппаТоваров", Справочник.НоменклатурныеГруппы.НайтиПоНаименованию("Рога"));

            Запрос_.Текст =
            "ВЫБРАТЬ
            |    Штрихкоды.Штрихкод КАК Штрихкод,
            |    ВЫБОР
            |        КОГДА Штрихкоды.Владелец.Родитель = &ГруппаТоваров
            |            ТОГДА ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.EAN13)
            |        ИНАЧЕ ЗНАЧЕНИЕ(ПланВидовХарактеристик.ТипыШтрихкодов.CODE128)
            |    КОНЕЦ КАК ТипШтрихкода
            |ИЗ
            |    РегистрСведений.Штрихкоды КАК Штрихкоды
            |ГДЕ
            |    Штрихкоды.Владелец.Код = &Владелец";

alexandr_ll

programmister, Код товара не может быть владельцем штрихкода. Почему группу вы ищете по именованию, а владельца по коду найти не можете?

fruitella

что значит первый попавшийся? У тебя выводиться штрих с типом CODE128?

antoneus

Измерение или ресурс "Тип штрихкода" в регистре есть?

programmister


programmister


fruitella

programmister, ну у тебя условие твое и не отрабатывает, у тебя всегда в иначе будет падать - поэтому ты получаешь только тип CODE128. У номенклатуры родителем является тип Справочник.Номенклатура а не номенклатурные группы. Я же тебе написал сперва как надо или меняй условие по соответствию со своим типом, строй по другому запрос.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск