Имя: Пароль:
1C
1С v8
Групировка результата запроса ТЧ документа
0 D_Sergeevich
 
29.09.12
17:55
Приветствую!
Имеется запрос ТЧ документа
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ВыдачаКредитаРеестрПлатежногоПоручения.ФамилияИмяОтчество,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.АдресПроживания,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.ДатаДоговора,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.НомерДоговора,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.НомерСчета,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.Сумма
       |ИЗ
       |    Документ.ВыдачаКредита.РеестрПлатежногоПоручения КАК ВыдачаКредитаРеестрПлатежногоПоручения
       |ГДЕ
       |    ВыдачаКредитаРеестрПлатежногоПоручения.Ссылка = &Ссылка";

   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
Результат необходимо вывести на печать
   Пока Выборка.Следующий() Цикл
       ОблРеестр.Параметры.АдресПроживания = Выборка.АдресПроживания;
       ОблРеестр.Параметры.ФамилияИмяОтчество = Выборка.ФамилияИмяОтчество;
       ОблРеестр.Параметры.ДатаДоговора = Выборка.ДатаДоговора;
       ОблРеестр.Параметры.НомерДоговора = Выборка.НомерДоговора;
       ОблРеестр.Параметры.НомерСчета = Выборка.НомерСчета;
       ОблРеестр.Параметры.Сумма = Выборка.Сумма;
       ТабДок2.Вывести(ОблРеестр);
   КонецЦикла;
Макет печати http://image.openlan.ru/images/92342071074660805892.png
Результат печати http://image.openlan.ru/images/94514834831662478109.png
Как видно из результата - никакой группировки. Как сделать так чтобы район не повторялся а группировался второй день бьюсь над этой задачей...
    Слободзейский район
ФИО... Дата...и т.д.
ФИО... Дата...и т.д.
    Григориопольский район
ФИО... Дата...и т.д.
1 D_Sergeevich
 
29.09.12
17:56
Как то не по русски сообщение вывелось..
Макет печати http://image.openlan.ru/images/92342071074660805892.png
Результат печати http://image.openlan.ru/images/94514834831662478109.png
2 Solitar
 
29.09.12
17:59
посмотри в гугле "ОбходРезультатаЗапроса по группировкам". у тебя кое чего не хватает в запросе.
3 Solitar
 
29.09.12
18:00
тут тебе вроде как итоги нужны.
4 D_Sergeevich
 
29.09.12
18:03
(2) я это пробовал, но чет у меня не получается. Я не очень пока селен в запросах. (только учусь)
5 sttt
 
29.09.12
18:49
может поможет http://ops.org.ua/P6/SelectQ.php
6 D_Sergeevich
 
29.09.12
18:58
Вроде как Итоги мне помогли. Все работает как мне надо. Правильно ли я сделал? чтоб потом косяки не вылезли когда будит большой список.
И адрес я вывел в отдельную область.

Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ВыдачаКредитаРеестрПлатежногоПоручения.ФамилияИмяОтчество,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.АдресПроживания КАК АдресПроживания,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.ДатаДоговора,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.НомерДоговора,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.НомерСчета,
       |    ВыдачаКредитаРеестрПлатежногоПоручения.Сумма
       |ИЗ
       |    Документ.ВыдачаКредита.РеестрПлатежногоПоручения КАК ВыдачаКредитаРеестрПлатежногоПоручения
       |ГДЕ
       |    ВыдачаКредитаРеестрПлатежногоПоручения.Ссылка = &Ссылка
       |
       |УПОРЯДОЧИТЬ ПО
       |    АдресПроживания УБЫВ
       |ИТОГИ ПО
       |    АдресПроживания";

   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
       Если Выборка.Группировка() = "АдресПроживания" Тогда
           ОблАдрес.Параметры.АдресПроживания = Выборка.АдресПроживания;
           ТабДок2.Вывести(ОблАдрес);
       Иначе
           ОблРеестр.Параметры.ФамилияИмяОтчество = Выборка.ФамилияИмяОтчество;
           ОблРеестр.Параметры.ДатаДоговора = Выборка.ДатаДоговора;
           ОблРеестр.Параметры.НомерДоговора = Выборка.НомерДоговора;
           ОблРеестр.Параметры.НомерСчета = Выборка.НомерСчета;
           ОблРеестр.Параметры.Сумма = Выборка.Сумма;
           ТабДок2.Вывести(ОблРеестр);
       КонецЕсли;
   КонецЦикла;
7 D_Sergeevich
 
29.09.12
19:12
Еще вопрос парни. Как сделать чтобы нумерация (№п/п) в каждой группе начиналась заного
Вот нынешний результат: http://image.openlan.ru/images/41087196876025605338.png
8 MishaD
 
29.09.12
19:22
Сейчас 8-ки меня обзовут нехорошими словами, но я бы переменную-счетчик добавил бы в секцию Иначе.

       Если Выборка.Группировка() = "АдресПроживания" Тогда
           ОблАдрес.Параметры.АдресПроживания = Выборка.АдресПроживания;
           ТабДок2.Вывести(ОблАдрес);
           сч=0;
       Иначе
           сч=сч+1;
           ОблРеестр.Параметры.номПП=сч;
           ОблРеестр.Параметры.ФамилияИмяОтчество = Выборка.ФамилияИмяОтчество;
           ОблРеестр.Параметры.ДатаДоговора = Выборка.ДатаДоговора;
           ОблРеестр.Параметры.НомерДоговора = Выборка.НомерДоговора;
           ОблРеестр.Параметры.НомерСчета = Выборка.НомерСчета;
           ОблРеестр.Параметры.Сумма = Выборка.Сумма;
           ТабДок2.Вывести(ОблРеестр);
       КонецЕсли;
9 D_Sergeevich
 
29.09.12
19:36
(8) Благодарю! А чем этот вариант плох для 8-ки? все отлично работает.
10 MishaD
 
29.09.12
19:55
Блатные 8-ки такой отчетик делали бы на СКД. Там номер пункта в подгруппе один из стандартных параметров.
11 mih_io
 
29.09.12
20:07
выводить лучше так. как то красивше и понятнее

   ВыборкаАдрес = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока ВыборкаАдрес.Следующий() Цикл
       //*****
       ОблАдрес.Параметры.АдресПроживания = ВыборкаАдрес .АдресПроживания;
       ТабДок2.Вывести(ОблАдрес);
       //*****
   Выборка = ВыборкаАдрес .Выбрать();
   Пока Выборка.Следующий() Цикл
           ОблРеестр.Параметры.ФамилияИмяОтчество = Выборка.ФамилияИмяОтчество;
           ОблРеестр.Параметры.ДатаДоговора = Выборка.ДатаДоговора;
           ОблРеестр.Параметры.НомерДоговора = Выборка.НомерДоговора;
           ОблРеестр.Параметры.НомерСчета = Выборка.НомерСчета;
           ОблРеестр.Параметры.Сумма = Выборка.Сумма;
           ТабДок2.Вывести(ОблРеестр);
       КонецЦикла;
   КонецЦикла;
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс