Как получить одним запросом все товары из заказа, которые являются комплектами
Как получить одним запросом все товары из заказа, которые являются комплектами?
Хочу из таблицы Товары из заказа клиента вытянуть все товары, а затем проверить являются ли они комплектом в Справочнике ВариантыКомплектацииНоменклатуры.
Пока на ум приходит только написать запрос:
И загонять туда циклом построчно данные из таблицы и если находит радуемся жизни, но насколько знаю запросы в цикле являются грубой ошибкой при программировании и лучше такого избегать.
Подскажите как поступить
Хочу из таблицы Товары из заказа клиента вытянуть все товары, а затем проверить являются ли они комплектом в Справочнике ВариантыКомплектацииНоменклатуры.
Пока на ум приходит только написать запрос:
ВЫБРАТЬ
ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество
ИЗ
Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
ПО ВариантыКомплектацииНоменклатурыТовары.Ссылка = ВариантыКомплектацииНоменклатуры.Ссылка
ГДЕ
ВариантыКомплектацииНоменклатуры.Владелец = &Владелец
И ВариантыКомплектацииНоменклатуры.Характеристика = &Характеристика
ПоказатьИ загонять туда циклом построчно данные из таблицы и если находит радуемся жизни, но насколько знаю запросы в цикле являются грубой ошибкой при программировании и лучше такого избегать.
Подскажите как поступить
По теме из базы знаний
- Свертка базы - или как свернуть базу УТ 10.3
- Система питания в офисе: как совместить вендинговые автоматы, 1С, облачную кассу и веб-технологии
- Как сдать экзамен 1С:Специалист по платформе?
- SynchroWB — интеграция 1С и Wildberries: автоматизация заказов и остатков по API с УТ, КА, ERP, УНФ, Розница 3
- Интеграция с маркетплейсами Wildberries, Ozon, Яндекс.Маркет и МегаМаркет - обмен 1С с маркетплейсами остатками, ценами, заказами и аналитика продаж
Найденные решения
(2) Спасибо, что натолкнули на мысль! Всё получилось!
ВЫБРАТЬ
ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество
ИЗ
Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗаказКлиентаТовары.Характеристика КАК Характеристика,
ЗаказКлиентаТовары.Номенклатура КАК Номенклатура
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
ЗаказКлиентаТовары.Ссылка = &Ссылка) КАК ВложенныйЗапрос
ПО ВариантыКомплектацииНоменклатуры.Характеристика = ВложенныйЗапрос.Характеристика
И ВариантыКомплектацииНоменклатуры.Владелец = ВложенныйЗапрос.Номенклатура
ПО ВариантыКомплектацииНоменклатурыТовары.Ссылка = ВариантыКомплектацииНоменклатуры.Ссылка
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Фразу "являются ли они комплектом в Справочнике ВариантыКомплектацииНоменклатуры" не понял, т.к. исходя из вашего же запроса никоим образом присутствие товара в этом справочнике не говорит о том, что номенклатура является комплектом, а только о том, что она может входить в состав какого -то комплекта.
В остальном как-то так:
В остальном как-то так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Номенклатура, ХарактеристикаНоменклатуры //или как там она у вас называется
Поместить ВТ
ИЗ Документ.ЗаказПокупателя.Товары
ГДЕ Ссылка = &ВашЗаказ
Индексировать ПО Номенклатура, ХарактеристикаНоменклатуры;
//Если у вас заказ еще не записан, то выгружайте таб. часть в ТЗ и подставляйте ее в верхний запрос вместо
//Документ.ЗаказПокупателя.Товары;
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
СУММА(ВариантыКомплектацииНоменклатурыТовары.Количество) КАК Количество
ИЗ
Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ
ПО ВТ.Номенклатура = ВариантыКомплектацииНоменклатурыТовары.Номенклатура
И ВТ.ХарактеристикаНоменклатуры = ВариантыКомплектацииНоменклатурыТовары.Характеристика
Сгруппировать ПО
ВариантыКомплектацииНоменклатурыТовары.Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика
Показать
(2) На сколько я знаю в справочнике ВариантыКомплектацииНоменклатуры содержится информация о комплекте, если передать значения Владелец и Номенклатура, запросом выше можно получить комплектующие из которых состоит товар.
Вот как раз и хотел узнать как можно запросом проверить является ли товар из моей таблицы комплектом и получить товары из которых этот комплект состоит
Вот как раз и хотел узнать как можно запросом проверить является ли товар из моей таблицы комплектом и получить товары из которых этот комплект состоит
(2) Спасибо, что натолкнули на мысль! Всё получилось!
ВЫБРАТЬ
ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество
ИЗ
Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗаказКлиентаТовары.Характеристика КАК Характеристика,
ЗаказКлиентаТовары.Номенклатура КАК Номенклатура
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
ЗаказКлиентаТовары.Ссылка = &Ссылка) КАК ВложенныйЗапрос
ПО ВариантыКомплектацииНоменклатуры.Характеристика = ВложенныйЗапрос.Характеристика
И ВариантыКомплектацииНоменклатуры.Владелец = ВложенныйЗапрос.Номенклатура
ПО ВариантыКомплектацииНоменклатурыТовары.Ссылка = ВариантыКомплектацииНоменклатуры.Ссылка
Показать
(4)Святая Корова...
или вообще вот так:
ВЫБРАТЬ
ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
ПО (ЗаказКлиентаТовары.Номенклатура = ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец)
И (ЗаказКлиентаТовары.Характеристика = ВариантыКомплектацииНоменклатурыТовары.Характеристика)
И (ЗаказКлиентаТовары.Ссылка = &Ссылка)
Показатьили вообще вот так:
ВЫБРАТЬ
ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК Номенклатура,
ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика,
ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество
ИЗ
Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары
ГДЕ
(ВариантыКомплектацииНоменклатурыТовары.Ссылка.Владелец, ВариантыКомплектацииНоменклатурыТовары.Характеристика) В
(ВЫБРАТЬ
Т.Номенклатура,
Т.Характеристика
ИЗ
Документ.ЗаказКлиента.Товары КАК Т
ГДЕ
Т.Ссылка = &Ссылка)
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот