Имя: Пароль:
1C
1C 7.7
v7: Как объединить выборку в запросе
0 exec11
 
01.02.23
09:46
v.77

Есть транзакционный документ, у которого есть два похожих реквизиты, склад списания, назовем его склад_1, и склад поступления, назовем его склад_2.
Родитель для склад_1 и склад_2 в ерархии справочника - "Московский регион"
Надо сделать отчет, который показывается приход, расход и перемещение товара по этим двум складам. То есть по всем складам "Московский регион".
Пишем запрос.

...
|Склад = Документ.ПрихНакл.Склад,  Документ.РасхНакл.Склад,  Документ.ПереводТовара.Склад_1,  Документ.ПереводТовара.Склад_2 ;
...
|Группировка Склад;
|Условие (Склад в ВыборСклад);

Работать не будет, Документ.ПереводТовара.Склад_2 в отбор не попадает.
Хорошо, пробуем по другому.

...
|Склад_1 = Документ.ПрихНакл.Склад,  Документ.РасхНакл.Склад,  Документ.ПереводТовара.Склад_1  ;
|Склад_2 = Документ.ПрихНакл.Склад,  Документ.РасхНакл.Склад,  Документ.ПереводТовара.Склад_2  ;
...
|Условие ( (Склад_1 в ВыборСклад) ИЛИ (Склад_2 в ВыборСклад) );

Но группировку объединить по ИЛИ то нельзя !!!

|Группировка Склад_1 ИЛИ Склад_2;

А как тогда быть ?
Делать два разных запроса ? Тогда суммы по "Московскому региону" в запросе не соберуться, нужно будет ручками считать.
Что посоветуете ?!
1 АгентБезопасной Нацио
 
01.02.23
09:54
"ПереводТовара" - хорошо звучит. лучше только НапрасныйПереводТовара
2 Kigo_Kigo
 
01.02.23
09:56
ВыборСклад = список значений из Склад 1 склад 2
3 Fedor-1971
 
01.02.23
09:57
(0) а так пробовал?
Склад = Документ.ПрихНакл.Склад,  Документ.РасхНакл.Склад,  Документ.ПереводТовара.Склад_1, Склад_2 = Документ.ПрихНакл.Склад,  Документ.РасхНакл.Склад,  Документ.ПереводТовара.Склад_2;

т.е. в одном поле несколько складов и группируй себе на здоровье
4 Fedor-1971
 
01.02.23
10:00
3+ обманул
Склад = Документ.ПрихНакл.Склад,  Документ.РасхНакл.Склад,  Документ.ПереводТовара.Склад;
|Условие (Склад в ВыборСклад)

а в выборку положи свои склады
5 Андрей_Андреич
 
naïve
01.02.23
10:06
(0) Классическая ошибка начинающего - надо анализировать не документы, а движения по складу. То есть запрос по регистру
6 exec11
 
01.02.23
10:09
3 - ошибка.
Запрос[]: Не верно задан путь "Склад_2"

4 - у документа ПереводаТовара нету реквизита Склад. Есть Склад_1 и Склад_2. Какой нужно поправить ?

5 - Согласен. Но мы идем от простого к сложному. Регистр надо создать, заполнить и т.д.
7 exec11
 
01.02.23
10:17
Данный пример упрошен. И вопрос именно в написание запроса на выборку документов, разных документов.
Так как в итоге нужна выборка документов которые не участвуют в движении товара.
И сортировка их по дате для наглядности и визуализации ..
8 Андрей_Андреич
 
naïve
01.02.23
10:21
(7) уж если гланды через опу вырезать - создай объект документ и перебирай документы. каждый анализируй и выводи в отчет (или не выводи если не нужен)
9 Aleksey
 
01.02.23
10:33
(8) анализировать каждый можно и в запорсе
10 Fedor-1971
 
01.02.23
10:51
(6) в группировку можно включить несколько полей, попробуй так:
Группировка ТекущийДокумент упорядочить по ТекущийДокумент.Склад, ТекущийДокумент.СкладПолучатель;
11 АгентБезопасной Нацио
 
01.02.23
10:51
как только люди не извращаются, лишь бы нормальные запросы не применять..
12 Fedor-1971
 
01.02.23
10:55
(11) других нет, приходится выкручиваться чем есть
(9) это 7, запросы достаточно своеобразные и не известно, что проще порулить через объектную модель с заполнением таблицы значений или извращаться с запросом
13 АгентБезопасной Нацио
 
01.02.23
10:57
(12) другие есть, и давно. Я просидел на клюшках почти 15 лет, из них лет 12 черными не пользовался.
14 Злопчинский
 
01.02.23
21:14
в (5) правильно написали.