|
Вывод в иерархии результатов запроса
| ☑ |
0
Звездец
11.05.18
✎
09:47
|
1С 8.3
Нужно вывести номенклатуру в иерархии, с ценой и у которой есть остаток. Вроде как все просто, но что-то никак не соображу.
Проба 1.
Делаем вывод по справочнику номенклатура с иерархией, далее левое соединение к регистру остатков и еще левое к регистру с ценами (срезпоследних).
Но тут имеем массу дублей из-за выборки из регистра цен, так как ВЫБРАТЬ ПЕРВЫЕ не укажешь
Проба 2.
Делаем 3 запроса по Номенклатуре, регистрам остатков и Цен (срез последних Первые 1), помещаем все в 3 виртуальные таблицы, и далее запрос по ним. Ок. Дублей нет, но и иерархию так сделать же не получится.
Проба 3. Получение цен отдельным запросом. Но это уже будет запрос в цикле, некошерно и жутко медленно.
Какие еще есть варианты?
|
|
1
mistеr
11.05.18
✎
09:52
|
(0) 1. Запрос к остаткам, результат в ВТ1.
2. Запрос к регистру цен, срез последних, с условием (Номенклатура В (ВЫБРАТЬ Номенклатура ИЗ ВТ)), результат в ВТ2
3. Внутреннее соединение ВТ1 и ВТ2, упорядочить по иерархии.
|
|
2
hhhh
11.05.18
✎
09:55
|
(0) в запрос по ценам добавь ТипЦены = &ТипЦены
|
|
3
Звездец
11.05.18
✎
09:56
|
(2) ну это и так само собой
|
|
4
Звездец
11.05.18
✎
09:58
|
(1) сейчас попробую
|
|
5
hhhh
11.05.18
✎
10:00
|
(3) откуда тогда дубли в регистре цен.
|
|
6
Звездец
11.05.18
✎
10:07
|
(5) потому что при левом соединении никак не укажешь Выбрать первые 1, получается в выборке много значений. Цена то устанавливалась не раз
|
|
7
aleks_default
11.05.18
✎
10:26
|
(6)Дык у тебя же срез последних... откуда много значений?
|
|
8
Звездец
11.05.18
✎
10:38
|
(7) так, стоп, что-то я затупил. на Срез же некорректно использовать ГДЕ, нужно отбор накладывать
|
|