|
Выборка из регистра сведений
| ☑ |
0
DenSpb
05.08.11
✎
10:35
|
Есть Регистр сведений(Измерения: Контрагент, Номенклатура, Ячейка ТипПросчета). Нужно сделать выборку: Контрагент, Номенклатура, Ячейка по принципу, если с таким ключом в ТипеПросчета = ГруппаА есть строка, то дальше в других ТипахПросчета ее не ищем. Понятно, что можно сделать перебором, но хотелось бы сделать одним запросом. Какие есть идеи?
|
|
1
Rovan
гуру
05.08.11
✎
10:41
|
(0) через вложенные запросы
|
|
2
Axel2009
05.08.11
✎
10:42
|
(0) для этого нужно задать порядок этих типов просчета. чтобы выбирать по принципу
|
|
3
DenSpb
05.08.11
✎
10:43
|
(1) Для первого просчета берем все строки, для второго просчета берез все, не входящие в первый, для третьего все, не входчщие в первый и второй, так?
|
|
4
DenSpb
05.08.11
✎
10:44
|
(2)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ИнвентаризацияРЧТ.Контрагент КАК Контрагент,
| ИнвентаризацияРЧТ.Номенклатура КАК Номенклатура,
| ИнвентаризацияРЧТ.Номенклатура.Код,
| СУММА(ИнвентаризацияРЧТ.Количество) КАК Количество,
| МАКСИМУМ(ВЫБОР
| КОГДА ИнвентаризацияРЧТ.имяПросчета = &КонтрольныйПросчет
| ТОГДА 1
| КОГДА ИнвентаризацияРЧТ.имяПросчета = &ПросчетРазногласий
| ТОГДА 2
| КОГДА ИнвентаризацияРЧТ.имяПросчета = &ПросчетГруппаА
| ТОГДА 3
| ИНАЧЕ 99999
| КОНЕЦ) КАК Порядок
|ИЗ
| РегистрСведений.ИнвентаризацияРЧТ КАК ИнвентаризацияРЧТ
|ГДЕ
| ИнвентаризацияРЧТ.имяПросчета В(&МассивПросчетов)
|
|СГРУППИРОВАТЬ ПО
| ИнвентаризацияРЧТ.Контрагент,
| ИнвентаризацияРЧТ.Номенклатура,
| ИнвентаризацияРЧТ.Номенклатура.Код
|
|УПОРЯДОЧИТЬ ПО
| Порядок УБЫВ,
| Номенклатура,
| Контрагент";
Я вот так сделал, но дальше возникает впорос, как? У меня мысли до перебора доходят
|
|
5
DenSpb
05.08.11
✎
10:47
|
(1) если (3) верно, то для если ТиповПросчетов будет много, то количество вложенных запросов будет огромно.
|
|