Имя: Пароль:
1C
1C 7.7
v7: Соединение запросов
,
0 Ainur
 
16.03.13
11:59
Добрый день! Коллеги подскажите как оптимально сделать отчет.
Есть 2 регистра
1.Продажи:
День
Контрагент
Количество
2.Маршруты
День
Контрагент

Вот эти 2 запроса (или 2 ТЗ) нужно соединить по День и Контрагент
1 zak555
 
16.03.13
12:00
регистры остатков/оборотов ?
2 Ainur
 
16.03.13
12:01
Продажи - остатки
Маршруты - обороты
3 zak555
 
16.03.13
12:06
кто сконструировал это ?
4 Ainur
 
16.03.13
12:06
выгружать запросы в ТЗ и перебирать 1 для каждой строки 2 - это очень долго
5 Chai Nic
 
16.03.13
12:07
1с++ и прямой запрос
6 Ainur
 
16.03.13
12:08
я. других вариантов нет, регистры из разных подсистем. если есть предложения, я могу переделать регистр маршрутов, там перепровести можно будет
7 zak555
 
16.03.13
12:09
предлагаю переделать
8 Ainur
 
16.03.13
12:09
что такое 1с++, признаюсь в 7.7 я не силен
9 Ainur
 
16.03.13
12:09
как переделать? подскажешь?
10 Chai Nic
 
16.03.13
12:10
(8) Внешняя компонента, которая расширяет возможности 1с. Самые популярные её возможности - индексированная таблица и прямые запросы. Информация и собственно дллка гуглится и скачивается.
11 zak555
 
16.03.13
12:11
Контрагент
День
Количество

хотя запросом можно детализацию делать по дня, но с измерением можно группировать по разному дни
12 Ainur
 
16.03.13
12:16
а что даст переделать регистр? в общем мне нужно вытащить ресурс Маршрут, соответствующий дню и контрагенту. может просто создать процедуру глПолучитьМаршрут(День, Контрагент) и с запроса ссылаться туда?
13 Ainur
 
16.03.13
12:21
|Период с ВыбНачПериода по ВыбКонПериода;
   |Контрагент = Регистр.Продажи.Контрагент;
   |Док = Регистр.Продажи.ТекущийДокумент;
   |Количество = Регистр.Продажи.Количество;
   |Функция КоличествоСумма = Сумма(Количество);
   |Функция Маршрут = глПолучитьМаршрут(Контрагент,Док .ДатаДок));
   |Группировка .....

Типа такого. будет работать?
14 Ainur
 
16.03.13
12:27
Вру. в 7.7 маршрут нельзя поставить ресурсом. только числа можно((. Куда же его тогда? в реквизиты?
15 Ainur
 
16.03.13
12:31
До этого маршрут у меня в измерениях просто был, я забыл в (0) указать что мне как раз его нужно вытащить по контрагенту за день
16 Cthulhu
 
16.03.13
13:02
|Контрагент = Продажи.Контрагент, Маршруты.Контрагент;
|День = Продажи.День, Маршруты.День;
|...
|Группировка Контрагент; Группировка День;
|...
17 Cthulhu
 
16.03.13
13:02
+Регистр. конечно же.
18 Ainur
 
16.03.13
17:24
"//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Номенклатура = Регистр.Продажи.Номенклатура;
   |Покупатель = Регистр.Продажи.Покупатель, Регистр.МаршрутКонтрагента.Контрагент;  
   |ДатаДок = Регистр.Продажи.ТекущийДокумент.ДатаДок, Регистр.МаршрутКонтрагента.ТекущийДокумент.ДатаДок;  
   |Количество = Регистр.Продажи.Количество;
   |ПродСтоимость = Регистр.Продажи.ПродСтоимость;
   |Район = Регистр.МаршрутКонтрагента.Район;
   |Функция КоличествоСумма = Сумма(Количество);
   |Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
   |Группировка День;
   |Группировка Район без групп;
   |Группировка Покупатель без групп;
   |Группировка Номенклатура без групп;
   |Условие(Район = ВыбРайон);

не работает
19 VladZ
 
16.03.13
17:32
Вот поэтому важно правильно разработать структуру данных на этапе проектирования. Именно для этого и пишутся ТЗ.
20 Cthulhu
 
18.03.13
12:24
и не будет работать.
просто потому, что структура не позволяет делать то, что вам надо.
как ты себе представляешь группировку по измерению одного регистра, вложенную в группировку по измерению другого регистра (если записи этих регистров не связаны по записям "один к одному")?..