Помогите с запросом

Новая тема
Показывать по сообщений
Ответ на пост №20
maestro_voln, В этом экселевском документе "Магазин", "Склад" и пустое значение - это что, название складов? В одной расходной накладной может быть несколько складов?
Ответили: пост #22 , пост #23
Ответ на пост №21
uinny,"Магазин" и "Склад" это группы в справочнике "Ячейки"
Ответ на пост №21
uinny,а там где пусто это не установленное место хранения
Т.е. справочник "Ячейки" - это иерархический список, где часть элементов находятся в группах, а часть - нет, так?
Ответили: пост #25
Ответ на пост №24
uinny, да, это иерархический список, только все элементы находятся в группах
Да, тяжко вспоминать семерку...
Получается, что в работающем варианте вы выполняете запрос, проходите по результатам, получая ячейки, и для каждой перебираете заново таблицу товаров в документе, чтобы проверить, нужно ли именно этот товар выводить?

Кстати, а почему в запросе нет выборки количества товара из накладной? И почему условие отбора по складу пользователя, а не по складу документа?

Вообще, если делать по рабоче-крестьянски, я бы сделала так:
1. создать ТаблицуЗначений с полями (группа ячеек, ячейка, товар, количество)
2. пройти один раз по табличной части, заполнить ТаблицуЗначений
3. сгруппировать ТаблицуЗначений по полям (группа ячеек, ячейка, товар) с суммированием количества
4. вывести список.

Второй рабоче-крестянский способ - выводить данные сразу из запроса, но не использовать Группировку по ячейке, вместо нее использовать сортировку.
Завести переменную ТекущаяГруппа и проверять соответствие данных в строке результатов запроса этой переменной. Если сходятся - выводить строку, если нет - обновлять данные переменной, выводить данные группы ячеек, потом выводить саму строку.

Ну и третий способ - все-таки понять, как использовать синтаксис языка правильно. Я не вспомню без встроенной помощи точно. Но мне кажется, что раз есть возможность выбрать группировку
Пока Запрос.Группировка("Ячейка") > 0
то должна быть возможность выбрать строки этой группировки. Во всяком случае, в версии 8 именно так. Может что-то типа Пока Запрос.Группировка("Ячейка").ПолучитьДанные или ВыбратьРезультатыГруппировки. Сейчас получается, что у вас в запросе три группы ячеек, в каждой по несколько строк, но вы проходите только по трем, заглавным строкам.

Что-то много букв получилось, надеюсь, хоть что-то поможет )
Ответили: пост #27
Ответ на пост №26
uinny,Спасибо, попробую по 1-му варианту, без запроса должно быстрее работать.
Вот не уверена. Ведь придется вытаскивать для каждой строки данные подчиненного справочника.
А запросом вроде как все выбирается сразу.
Ответили: пост #29
Ответ на пост №28
uinny, у меня накладные небольшие, макс 30 строк, поэтому скорее всего будет быстрее через ТЗ
Тоже кривое решение, но вдруг пошустрее будет.
Я там много комментариев написал.
Ответили: пост #31
Читают тему
(гостей: 1)

Быстрый переход