Имя: Пароль:
1C
1С v8
Вопрос о простейшем запросе
,
0 Knowledge
 
19.01.13
19:53
Что-то туплю немного. Нужно сделать простую вещь: вывести запросом список контрагентов с их договарами.
Вот код ниже делает это. Прошу не принимать во внимание логику запроса  - меня интересует вывод результатов.  Что- то подсказывает мне,  что можно сделать по-  другому.  После работы этого кода появляются лишние строки типа «ТипЗаписиЗапроса.ИтогПоИерархии» дублирующие итоги по группировке- их надо фильтровать.  Меня интересует можно ли заменить чем- то строки:
«|ИТОГИ ПО Контрагент ИЕРАРХИЯ,Договор ИЕРАРХИЯ АВТОУПОРЯДОЧИВАНИЕ»;.

Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Контрагенты.Ссылка КАК Контрагент,
   |    ДоговорыКонтрагентов.Ссылка КАК Договор
   |ИЗ
   |    Справочник.Контрагенты КАК Контрагенты
   |ЛЕВОЕ СОЕДИНЕНИЕ   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
   |ПО Контрагенты.Ссылка = ДоговорыКонтрагентов.Владелец
   |ИТОГИ ПО
   |    Контрагент ИЕРАРХИЯ,
   |    Договор ИЕРАРХИЯ
   |АВТОУПОРЯДОЧИВАНИЕ";
   
   Результат = Запрос.Выполнить();
   ТипОбхода = ОбходРезультатаЗапроса .ПоГруппировкам;
   ВыборкаКонтрагент  = Результат.Выбрать(ТипОбхода);
   Пока ВыборкаКонтрагент.Следующий() Цикл
   ТипЗаписиКонтрагент = ВыборкаКонтрагент.ТипЗаписи();
       Если ТипЗаписиКонтрагент=ТипЗаписиЗапроса.ИтогПоИерархии Тогда
       Продолжить
   КонецЕсли;
   ТабДок.Вывести(ОбластьКонтрагент);
…..
       ВыборкаДоговор = ВыборкаКонтрагент.Выбрать(ТипОбхода);
       Пока ВыборкаДоговор.Следующий() Цикл
               ТабДок.Вывести(ОбластьДоговор);
……
       КонецЦикла;
   КонецЦикла;
1 Wobland
 
19.01.13
20:02
ИТОГИ ПО Контрагент?
2 Knowledge
 
19.01.13
20:06
(1)«|ИТОГИ ПО Контрагент ИЕРАРХИЯ , Договор ИЕРАРХИЯ АВТОУПОРЯДОЧИВАНИЕ»;
определяют вывод иерархического списка.
Собственно в этом и вопрос можно ли их заменить чем- то другим.
3 Wobland
 
19.01.13
20:07
(2) это техническое любопытство, или ты разрешения спрашиваешь?
4 Knowledge
 
19.01.13
20:09
(3) это любопытство. Кроме того мне почему- то не нравится такая конструкция.
5 Wobland
 
19.01.13
20:12
(4) если ты хочешь иметь дерево на выходе, то заменить итоги нечем
6 Defender aka LINN
 
19.01.13
20:13
(2) Их можно заменить пустой строкой
7 Knowledge
 
19.01.13
20:17
(6) нет, не получится.
8 Wobland
 
19.01.13
20:18
(7) ну на нет и суда нет
9 Defender aka LINN
 
19.01.13
20:22
(7) Типа, кровь носом пойдет и зубы выпадут?
10 Knowledge
 
19.01.13
20:28
(9) На выходе будет другой набор (в смысле порядка следования строк). Зубы не причем.
11 Wobland
 
19.01.13
20:29
(10) я бы даже сказал, что на выходе будет плоская таблица. а ну и чо?
12 Defender aka LINN
 
19.01.13
20:29
(10) Порядок следования строк будет тот же самый. Еще откровения будут, или таки вооружишься книгой*
13 Wobland
 
19.01.13
20:32
(12) врёшь же. группировочные строки уйдут
14 Wobland
 
19.01.13
20:33
(13) впрочем, к порядку это не имеет большого отношения ;)

автор хочет получить ту же картину, что и есть, но через назад?
15 Knowledge
 
19.01.13
20:34
(12) только что попробовал + (13)
16 Defender aka LINN
 
19.01.13
20:35
(15) Все, проблема решена?
17 Wobland
 
19.01.13
20:35
(15) ну верни АВТОУПОРЯДОЧИВАНИЕ на место. будем дальше в угадайку играть? меня задолбало
18 Knowledge
 
19.01.13
20:41
(16-17) Если убрать, то получится
Контрагент    Договор
Банки    
   Договор №001804 от 01.01.2006
   Договор эквайринга
   К-2003/12
   Договор №001023 от 09.01.2003
АКБ "АВТ-БАНК"    
АКБ "АВТ-БАНК"    
АКБ "АВТ-БАНК"    
АКБ ИНВЕСТСПЕЦБАНК (ЗАО), а надо

Контрагент    Договор
Банки    
АКБ "АВТ-БАНК"    
   Договор №001804 от 01.01.2006
   Договор эквайринга
   К-2003/12
АКБ ИНВЕСТСПЕЦБАНК (ЗАО)    
   Договор №001023 от 09.01.2003
19 Wobland
 
19.01.13
20:43
(18) а сходи ещё раз в (1)
20 Knowledge
 
19.01.13
21:19
Ну и ладно, оставим так.