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

Сгруппировать запрос

Автор freez1301, 14 ноя 2014, 15:14

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

freez1301

есть некий запрос по доп реквизитам номенклатуры. реквизита 2. если у номенклатуры оба реквизита заполнены, то в ТЗ попадает две строки. К примеру есть Товар1 с реквизитами Модель - модель1, Бренд - бренд1. Результат будет таким:
Товар1 модель1
Товар1               бренд1

Код запроса
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ВЫБОР
| КОГДА ДопРеквизиты.Свойство.Заголовок = ""Модель""
| ТОГДА ДопРеквизиты.Значение
| КОНЕЦ КАК Модель,
| ВЫБОР
| КОГДА ДопРеквизиты.Свойство.Заголовок = ""Бренд""
| ТОГДА ДопРеквизиты.Значение
| КОНЕЦ КАК Бренд
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДопРеквизиты
| ПО (Номенклатура.Ссылка = ДопРеквизиты.Ссылка)"


Да, и вариант манипуляций с ТЗ не катит, т.к. запрос динамический для формы списка в УФ.

Вопрос - как бы так сгруппировать?

sertak

Как я понял, если оба реквизиты заполнены, то товар пройдет в выборке дважды.
Тогда можно сделать 2 временные таблицы: 1-я для номенклатуры, в которой заполнен 1-й реквизит, 2-я для номенклатуры, в которой заполнен 2-й реквизит, и объединить временные таблицы через полное соединение.
Добавлено: 14 ноя 2014, 20:53


Не, не так. Дезинформировал.
Объединение просто сделать надо из двух запросов, один будет по моделям, а второй по брендам.
Добавлено: 14 ноя 2014, 20:54


А если оба реквизита не заполнены, сколько строк выводить надо?

freez1301

два раза соединять вариант, но при незаполненных реквизитах - строка в отбор не попадает, плюс запрос такой довольно долго выполняется (около 10сек открытие формы). не вариант
не могу вспомнить - как добавить параметр к отбору в УФ. как то добавлял, помню что при создании формы его описывать нужно

KKurgan

А если попробовать так:
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| Модель.Значение КАК Модель,
| Бренд.Значение КАК Бренд
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
| ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
| ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство.Наименование = ""Модель"") КАК Модель
| ПО Номенклатура.Ссылка = Модель.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
| ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
| ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство.Наименование = ""Бренд"") КАК Бренд
| ПО Номенклатура.Ссылка = Бренд.Ссылка"

По крайней мере строки с незаполненными реквизитами никуда не пропадут

freez1301

Цитата: KKurgan от 17 ноя 2014, 13:01
А если попробовать так:
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| Модель.Значение КАК Модель,
| Бренд.Значение КАК Бренд
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
| ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
| ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство.Наименование = ""Модель"") КАК Модель
| ПО Номенклатура.Ссылка = Модель.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
| ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
| ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство.Наименование = ""Бренд"") КАК Бренд
| ПО Номенклатура.Ссылка = Бренд.Ссылка"

По крайней мере строки с незаполненными реквизитами никуда не пропадут

такой запрос был изначально. у меня прикручено к нему еще цена и тек. остаток - для 25000 позиций номенклатуры - долго обрабатывается.

Спасибо за советы

Теги:

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

Рейтинг@Mail.ru

Поиск