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

Запрос

Автор jamil, 30 авг 2023, 09:17

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

jamil

Здравствуйте, я новичок в 1С, у меня есть одна проблема я никак не могу найти информацию в интернете, пожалуйста помогите.

я должен написать запрос, в котором, выведу в список все номенклатуры и штрихкоды номенклатур, если у номенклатуры несколько штрихкодов, нужно показать их в отдельной колонке.


Пример:

LexaK

ха-ха, а если у номенклатуры будет 1000 штрих кодов?
(как-то сложно представить таблицу с > 1000 колонками)
если помогло нажмите: Спасибо!

jamil

LexaK, Не, макс 3 будет не больше.

LexaK

jamil, вот пример подобного запроса
(используются тестовые временные таблицы)
внимание! это рабочий пример из моей базы! в вашей базе могут быть другие наименования!
их при необходимости надо заменить!
//на примере первых 100 товаров
Выбрать первые 100
спр.ссылка как Номенклатура
поместить втНом
из
справочник.Номенклатура спр
где
Не спр.пометкаудаления
и спр.Артикул подобно "01%"
;

//штрих кода как есть к этим 100 товарам
выбрать
таб.Номенклатура,
рег.штрихКод
поместить Пром
из
втНом таб
левое соединение регистрСведений.ШтрихкодыНоменклатуры рег
по таб.Номенклатура = рег.Номенклатура
;

//можно сразу строить по данным регистра ШтрихкодыНоменклатуры
выбрать
таб.Номенклатура,
таб.штрихКод,
Количество(таб1.штрихКод) как Нпп //нумерация штрих кодов одного товара
поместить втШК
из
Пром таб
левое соединение Пром таб1
по Таб.Номенклатура = Таб1.Номенклатура
и таб.штрихКод  <= таб1.штрихКод

Сгруппировать по
таб.Номенклатура,
таб.штрихКод
;

//результирующая выборка, с выводом Штрих кодов в 3 колонки
Выбрать
таб.Номенклатура,
шк1.штрихКод как штрихКод1,
шк2.штрихКод как штрихКод2,
шк3.штрихКод как штрихКод3
из
втНом таб
левое соединение втШК шк1
по таб.Номенклатура = шк1.Номенклатура
и шк1.Нпп = 1
левое соединение втШК шк2
по таб.Номенклатура = шк2.Номенклатура
и шк2.Нпп = 2
левое соединение втШК шк3
по таб.Номенклатура = шк3.Номенклатура
и шк3.Нпп = 3




если помогло нажмите: Спасибо!

antoneus

Да можно же просто итоги воткнуть

Запрос.Текст = "Выбрать
|Штрихкоды.Номенклатура,
|Штрихкоды.ШтрихКод
|ИЗ
|РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
|ИТОГИ ПО Номенклатура";

Выборка = Запрос.Выполнить().Выбрать(ВыборкаИзРезультатаЗапроса.ПоГруппировкамСИерархией);
Пока Выборка.Следующий() Цикл
    ОблНоменклатура.Параметры.Номенклатура = Выборка.Номенклатура;
    ТабДок.Вывести(ОблНоменклатура);
    ВыборкаШК = Выборка.Выбрать();
    Для сч = 1 по 3 Цикл
        Если ВыборкаШК.Следующий() Тогда
            ОбластьШК.Параметры.Штрихкод = ВыборкаШК.Штрихкод;
        Иначе
            ОбластьШК.Параметры.Штрихкод = "";
        КонецЕсли;
        ТабДок.Присоединить(ОбластьШК)
    КонецЦикла;
КонецЦикла;

jamil

antoneus, Я знаю, мне просто нужен только запрос. Все это в одном запросе.

antoneus

У меня один и есть)

jamil

LexaK, Большое спаCИбО!!!

Теги:

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

Рейтинг@Mail.ru

Поиск