Помогите с запросом
13.05.2014
17:24
#24
Т.е. справочник "Ячейки" - это иерархический список, где часть элементов находятся в группах, а часть - нет, так?
Ответили:
пост #25
13.05.2014
17:37
#25
Ответ на
пост №24
uinny, да, это иерархический список, только все элементы находятся в группах 16.05.2014
11:20
#26
Да, тяжко вспоминать семерку...
Получается, что в работающем варианте вы выполняете запрос, проходите по результатам, получая ячейки, и для каждой перебираете заново таблицу товаров в документе, чтобы проверить, нужно ли именно этот товар выводить?
Кстати, а почему в запросе нет выборки количества товара из накладной? И почему условие отбора по складу пользователя, а не по складу документа?
Вообще, если делать по рабоче-крестьянски, я бы сделала так:
1. создать ТаблицуЗначений с полями (группа ячеек, ячейка, товар, количество)
2. пройти один раз по табличной части, заполнить ТаблицуЗначений
3. сгруппировать ТаблицуЗначений по полям (группа ячеек, ячейка, товар) с суммированием количества
4. вывести список.
Второй рабоче-крестянский способ - выводить данные сразу из запроса, но не использовать Группировку по ячейке, вместо нее использовать сортировку.
Завести переменную ТекущаяГруппа и проверять соответствие данных в строке результатов запроса этой переменной. Если сходятся - выводить строку, если нет - обновлять данные переменной, выводить данные группы ячеек, потом выводить саму строку.
Ну и третий способ - все-таки понять, как использовать синтаксис языка правильно. Я не вспомню без встроенной помощи точно. Но мне кажется, что раз есть возможность выбрать группировку
Пока Запрос.Группировка("Ячейка") > 0
то должна быть возможность выбрать строки этой группировки. Во всяком случае, в версии 8 именно так. Может что-то типа Пока Запрос.Группировка("Ячейка").ПолучитьДанные или ВыбратьРезультатыГруппировки. Сейчас получается, что у вас в запросе три группы ячеек, в каждой по несколько строк, но вы проходите только по трем, заглавным строкам.
Что-то много букв получилось, надеюсь, хоть что-то поможет )
Получается, что в работающем варианте вы выполняете запрос, проходите по результатам, получая ячейки, и для каждой перебираете заново таблицу товаров в документе, чтобы проверить, нужно ли именно этот товар выводить?
Кстати, а почему в запросе нет выборки количества товара из накладной? И почему условие отбора по складу пользователя, а не по складу документа?
Вообще, если делать по рабоче-крестьянски, я бы сделала так:
1. создать ТаблицуЗначений с полями (группа ячеек, ячейка, товар, количество)
2. пройти один раз по табличной части, заполнить ТаблицуЗначений
3. сгруппировать ТаблицуЗначений по полям (группа ячеек, ячейка, товар) с суммированием количества
4. вывести список.
Второй рабоче-крестянский способ - выводить данные сразу из запроса, но не использовать Группировку по ячейке, вместо нее использовать сортировку.
Завести переменную ТекущаяГруппа и проверять соответствие данных в строке результатов запроса этой переменной. Если сходятся - выводить строку, если нет - обновлять данные переменной, выводить данные группы ячеек, потом выводить саму строку.
Ну и третий способ - все-таки понять, как использовать синтаксис языка правильно. Я не вспомню без встроенной помощи точно. Но мне кажется, что раз есть возможность выбрать группировку
Пока Запрос.Группировка("Ячейка") > 0
то должна быть возможность выбрать строки этой группировки. Во всяком случае, в версии 8 именно так. Может что-то типа Пока Запрос.Группировка("Ячейка").ПолучитьДанные или ВыбратьРезультатыГруппировки. Сейчас получается, что у вас в запросе три группы ячеек, в каждой по несколько строк, но вы проходите только по трем, заглавным строкам.
Что-то много букв получилось, надеюсь, хоть что-то поможет )
Ответили:
пост #27
16.05.2014
12:04
#27
Ответ на
пост №26
uinny,Спасибо, попробую по 1-му варианту, без запроса должно быстрее работать. 16.05.2014
12:51
#28
Вот не уверена. Ведь придется вытаскивать для каждой строки данные подчиненного справочника.
А запросом вроде как все выбирается сразу.
А запросом вроде как все выбирается сразу.
Ответили:
пост #29
16.05.2014
12:57
#29
Ответ на
пост №28
uinny, у меня накладные небольшие, макс 30 строк, поэтому скорее всего будет быстрее через ТЗ 16.05.2014
15:07
#30
Тоже кривое решение, но вдруг пошустрее будет.
Я там много комментариев написал.
Я там много комментариев написал.
Ответили:
пост #31
Читают тему
(гостей: 1)