Имя: Пароль:
1C
1С v8
Групировка строки 1с8.3
,
0 Casper211
 
13.06.16
10:51
Всем привет.
У меня есть вот такой запрос :


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    __Документ.Ссылка,
    __Документ.Номер КАК Номер,
    __Документ.Дата,
    РеализацияТоваровУслуг.Дата КАК ДатаРеализации
ИЗ
    Документ.ЗаказПокупателя КАК __Документ
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПО (РеализацияТоваровУслуг.Сделка = __Документ.Ссылка)
ГДЕ
    (__Документ.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачалаПериодаЖурнала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончанияПериодаЖурнала, ДЕНЬ)
            ИЛИ &ДатаОкончанияПериодаЖурнала = ДАТАВРЕМЯ(1, 1, 1))
    И __Документ.Номер = "ТН000003973"

УПОРЯДОЧИТЬ ПО
    __Документ.Дата



http://s018.radikal.ru/i500/1606/51/7d898da9f91d.png
Выводит 2 строки? как сгруппировать в 1 строку? чтобы Дата реализации была (30.05.2016 10:08:33, 30.05.2016 10:56:13), добавлялась. Это в запросе можно сделать, или только в коде?
Благодарю за помощь.
1 Nuobu
 
13.06.16
11:41
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Выбрать Различные.
2 catena
 
13.06.16
11:43
(0)В запросе нельзя. Кодом можно. В СКД можно.
3 Casper211
 
13.06.16
14:30
(2) а через обход по групировке с итогами ?
4 RomanYS
 
13.06.16
14:34
(3) это и есть "Кодом можно"
5 Casper211
 
13.06.16
14:55
(4) упс)
6 Cyberhawk
 
13.06.16
15:35
В запросе сгруппируй
7 Casper211
 
13.06.16
15:55
ПостроительОтчета.Выполнить();
    РезультатЗапроса = ПостроительОтчета.Результат;
    ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаСсылка.Следующий() Цикл
        НоваяСтрока = СписокДокументов.Добавить();
        ВыборкаДетальныеЗаписи = ВыборкаСсылка.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            НоваяСтрока. =ВыборкаДетальныеЗаписи. ;
            ...
            НоваяСтрока. =ВыборкаДетальныеЗаписи. ;
            Если НоваяСтрока.ДатаРеализации <> "" Тогда
                НоваяСтрока.ДатаРеализации = НоваяСтрока.ДатаРеализации+ ", "+ВыборкаДетальныеЗаписи.ДатаРеализации;
            КонецЕсли;
    КонецЦикла;


Вот так-то?
8 Casper211
 
13.06.16
15:55
ИТОГИ ПО
    Ссылка
9 Casper211
 
13.06.16
16:48
ПостроительОтчета.Выполнить();
    РезультатЗапроса = ПостроительОтчета.Результат;
    ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    СписокДокументов.Очистить();
    Пока ВыборкаСсылка.Следующий() Цикл
        НоваяСтрока = СписокДокументов.Добавить();
        НоваяСтрока.Ссылка  = ВыборкаСсылка.Ссылка;
        ВыборкаДетальныеЗаписи = ВыборкаСсылка.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            НоваяСтрока.Проведен = ВыборкаДетальныеЗаписи.Проведен ;
            НоваяСтрока.ВидОплаты = ВыборкаДетальныеЗаписи.ВидОплаты ;
            НоваяСтрока.Дата = ВыборкаДетальныеЗаписи.Дата;
            НоваяСтрока.Номер = ВыборкаДетальныеЗаписи.Номер ;
            НоваяСтрока.Ответственный = ВыборкаДетальныеЗаписи.Ответственный ;
            НоваяСтрока.Подразделение = ВыборкаДетальныеЗаписи.Подразделение ;
            НоваяСтрока.СуммаДокумента = ВыборкаДетальныеЗаписи.СуммаДокумента ;
            НоваяСтрока.СкладГруппа = ВыборкаДетальныеЗаписи.СкладГруппа ;
            НоваяСтрока.Контрагент = ВыборкаДетальныеЗаписи.Контрагент ;
            НоваяСтрока.ТелефонПолучателя = ВыборкаДетальныеЗаписи.ТелефонПолучателя;
            НоваяСтрока.СтатусОплаты =ВыборкаДетальныеЗаписи.СтатусОплаты;
            НоваяСтрока.СтатусДоставки = ВыборкаДетальныеЗаписи.СтатусДоставки;
            НоваяСтрока.СМС = ВыборкаДетальныеЗаписи.СМС;
            НоваяСтрока.НомерТТН = ВыборкаДетальныеЗаписи.НомерТТН;
            НоваяСтрока.Перевозчик = ВыборкаДетальныеЗаписи.Перевозчик;
            НоваяСтрока.Комментарий = ВыборкаДетальныеЗаписи.Комментарий;
            НоваяСтрока.Категория = ВыборкаДетальныеЗаписи.Категория;
            НоваяСтрока.Ссылка = ВыборкаДетальныеЗаписи.Ссылка;
            НоваяСтрока.Иконка = ВыборкаДетальныеЗаписи.Иконка;
            НоваяСтрока.КонтрагентПоставщик = ВыборкаДетальныеЗаписи.КонтрагентПоставщик;
            Если НоваяСтрока.ДатаРеализации = "" Тогда
                НоваяСтрока.ДатаРеализации = Строка(ВыборкаДетальныеЗаписи.ДатаРеализации);
            Иначе НоваяСтрока.ДатаРеализации = Строка(Строка(НоваяСтрока.ДатаРеализации)+ ", "+Строка(ВыборкаДетальныеЗаписи.ДатаРеализации));
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
10 Casper211
 
13.06.16
16:49
Глупо? И времени много занимает. Где секунд 7. Возможно я что-то неправильно сделал?
11 RomanYS
 
13.06.16
17:07
(10) замер сделай, скорей всего у тебя запрос кривой
12 Casper211
 
13.06.16
18:00
(11) В запросе вмгновенно