Как выбрать правильно номенклатуру по различным способам соединений
Есть Табличная часть, 4 колонки, последняя количество. Первые Три:
Номенклатура
Номенклатурная Группа
Плановая Группа
Последние две это группировки Номенклатуры
И так пользователь заполняет табличную часть
Он может заполнить Номенклатуру и тогда нам надо вытащить Эту номенклатуру и указанное ей количество
Он может Заполнить Номенклатурную группу и нам тогда надо вытащить все номенклатуры этой номенлактурной группы (если не было ранее более узких группировок) и количество указать каждой из них
ОН может задать Плановую Группу и тогда необходимо сделать тоже самое что и для номенклатурной группы
А может Задать и Номенклатурную группу и Плановую и тогда нам надо выбрать только номенклатуру для которой верен данный отбор.
Для примера
Товар 1,2 Входит в НГ1 и ПГ1
Товар 3 Входит В НГ1, ПГ2
Товар 4 Входить ПГ2
Пользователь ввел
Товар 1 Цена 1
НГ1. ПГ1 Цена 2
ПГ 2 Цена 3
Мы должны получить
Товар 1 Цена 1
Товар 2 Цена 2
Товар 3 Цена 3
Товар 4 Цена 3
Можно ли это сделать запросом? и помогите как
Номенклатура
Номенклатурная Группа
Плановая Группа
Последние две это группировки Номенклатуры
И так пользователь заполняет табличную часть
Он может заполнить Номенклатуру и тогда нам надо вытащить Эту номенклатуру и указанное ей количество
Он может Заполнить Номенклатурную группу и нам тогда надо вытащить все номенклатуры этой номенлактурной группы (если не было ранее более узких группировок) и количество указать каждой из них
ОН может задать Плановую Группу и тогда необходимо сделать тоже самое что и для номенклатурной группы
А может Задать и Номенклатурную группу и Плановую и тогда нам надо выбрать только номенклатуру для которой верен данный отбор.
Для примера
Товар 1,2 Входит в НГ1 и ПГ1
Товар 3 Входит В НГ1, ПГ2
Товар 4 Входить ПГ2
Пользователь ввел
Товар 1 Цена 1
НГ1. ПГ1 Цена 2
ПГ 2 Цена 3
Мы должны получить
Товар 1 Цена 1
Товар 2 Цена 2
Товар 3 Цена 3
Товар 4 Цена 3
Можно ли это сделать запросом? и помогите как
По теме из базы знаний
- Зачем запросу план и кто его выполняет?
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- Как сдать экзамен 1С:Специалист по платформе?
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Применение 1С:Аналитики и Дата акселератора, или Как получить в 1С прозрачность и скорость обработки данных для прямого доступа и контроля руководителя
Найденные решения
И так кажись я нашла решение этого вопроса, будем расставлять приоритеты, если Номенклатура Заполнена, то приоритет = 1 если заполнено ЦГ и ПГ тогда приоритет = 2, Если Заполнена только ПГ тогда приоритет 3, если заполнено только НГ то приоритет 4.
А уж потом раскрою по номенклатурно и соединю в одну ТЗ по приоритетам для исключения задвоений номенклатуры. Вроде все красиво.
(2)
Это вы хотите выбрать всю номенклатуру. Но это не совсем решение.
А уж потом раскрою по номенклатурно и соединю в одну ТЗ по приоритетам для исключения задвоений номенклатуры. Вроде все красиво.
(2)
Справочник.Номенклатура КАК Номенклатура
ПО (ТабЧасть.Номенклатура.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка = ТабЧасть.Номенклатура)
ПО (ТабЧасть.Номенклатура.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка = ТабЧасть.Номенклатура)
Это вы хотите выбрать всю номенклатуру. Но это не совсем решение.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ *
ИЗ ТабЧасть КАК ТабЧасть
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО (ТабЧасть.Номенклатура.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка = ТабЧасть.Номенклатура)
И (ТабЧасть.НоменклатурнаяГруппа.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (ТабЧасть.НоменклатурнаяГруппа))
И (ТабЧасть.ПлановаяГруппа.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка В ИЕРАРХИИ (ТабЧасть.ПлановаяГруппа))
И так кажись я нашла решение этого вопроса, будем расставлять приоритеты, если Номенклатура Заполнена, то приоритет = 1 если заполнено ЦГ и ПГ тогда приоритет = 2, Если Заполнена только ПГ тогда приоритет 3, если заполнено только НГ то приоритет 4.
А уж потом раскрою по номенклатурно и соединю в одну ТЗ по приоритетам для исключения задвоений номенклатуры. Вроде все красиво.
(2)
Это вы хотите выбрать всю номенклатуру. Но это не совсем решение.
А уж потом раскрою по номенклатурно и соединю в одну ТЗ по приоритетам для исключения задвоений номенклатуры. Вроде все красиво.
(2)
Справочник.Номенклатура КАК Номенклатура
ПО (ТабЧасть.Номенклатура.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка = ТабЧасть.Номенклатура)
ПО (ТабЧасть.Номенклатура.Ссылка Есть NULL ИЛИ Номенклатура.Ссылка = ТабЧасть.Номенклатура)
Это вы хотите выбрать всю номенклатуру. Но это не совсем решение.
(3) В смысле, всю номенклатуру?
1. Если заполнена номенклатура, выберется только эта номенклатура;
2. Если заполнено НГ, выберется только то, что в НГ;
3. Если заполнено ПГ, выберется только то, что в ПГ;
4. Если заполнено и НГ и ПГ, выберется только то, что попадает в ПГ и НГ одновременно.
Вроде так вам надо было.
1. Если заполнена номенклатура, выберется только эта номенклатура;
2. Если заполнено НГ, выберется только то, что в НГ;
3. Если заполнено ПГ, выберется только то, что в ПГ;
4. Если заполнено и НГ и ПГ, выберется только то, что попадает в ПГ и НГ одновременно.
Вроде так вам надо было.
(7) я не это имел в виду. Доработанный вариант из (2), при условии что плановая и номенклатурные группы - элементы справочника номенклатура:
ВЫБРАТЬ *
ИЗ ТабЧасть КАК ТабЧасть
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Спр
ПО ТабЧасть.Номенклатура = Спр.Ссылка
ИЛИ (ТабЧасть.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И ТабЧасть.ПлановаяГруппа = Спр.ПлановаяГруппа И ТабЧасть.НоменклатурнаяГруппа = Спр.НоменклатурнаяГруппа)
ИЛИ (ТабЧасть.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И ТабЧасть.ПлановаяГруппа = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И ТабЧасть.НоменклатурнаяГруппа = Спр.НоменклатурнаяГруппа)
ИЛИ (ТабЧасть.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И ТабЧасть.ПлановаяГруппа = Спр.ПлановаяГруппа И ТабЧасть.НоменклатурнаяГруппа = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
(11) У неё приоритеты по срабатыванию правил соединения. В (1) есть пример, когда соединение по номенклатуре является более приоритетным, чем соединение по группе.
Можно тогда условие сделать через "ВЫБОР КОГДА"... А можно юнионы с весами приоритетов. Тоже решение.
Можно тогда условие сделать через "ВЫБОР КОГДА"... А можно юнионы с весами приоритетов. Тоже решение.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот