Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 08:36

Вывод результата запроса через запятую

Автор denzo, 03 ноя 2022, 11:05

0 Пользователей и 1 гость просматривают эту тему.

denzo

Друзья! Подскажите логику действий чтобы вывести результат запроса через запятую в макет.
Суть такова есть записи регистра сведений в котором имеются такие значения:
01.11.22 Ролик 8:25
01.11.22 Ролик 9:35
02.11.22 Ролик 8:00
02.11.22 Ролик 10:15
Необходимо в макет вывести результаты запроса в таком виде
01.11.22 8:25, 9:35
02.11.22 8:00, 10:15

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

Запрос.УстановитьПараметр("НаименованиеФайла", НаименованиеФайла);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ВремяЭфира = Строка(ВремяЭфира) + ", " +  Строка(формат(ВыборкаДетальныеЗаписи.ВремяВыхода,"ДФ='HH:mm'"));
 
     ОбластьСтрока.Параметры.ДатаВыхода = ВыборкаДетальныеЗаписи.ДатаВыхода;
     ОбластьСтрока.Параметры.ВремяВыхода = ВремяЭфира;
  ТабДок1.Вывести(ОбластьСтрока);   
  КонецЦикла;

Снимок.JPG

LexaK

denzo, (возможно много вариантов, это один из них) попробуйте такой код, сравните со своим, на этом примере поймите как это работает
Для Каждого СтрокаТЧ Из Объект.СписокРоликов Цикл
НаименованиеФайла = СтрокаТЧ.НаименованиеРолика;
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВыходыПрограмм.ДатаВыхода КАК ДатаВыхода,
        |    ВыходыПрограмм.ВремяВыхода КАК ВремяВыхода,
        |    ВыходыПрограмм.ФайлЭфира КАК ФайлЭфира
        |ИЗ
        |    РегистрСведений.ВыходыПрограмм КАК ВыходыПрограмм
        |ГДЕ
        |    ВыходыПрограмм.ФайлЭфира = &НаименованиеФайла
        |
        |СГРУППИРОВАТЬ ПО
        |    ВыходыПрограмм.ДатаВыхода,
        |    ВыходыПрограмм.ВремяВыхода,
        |    ВыходыПрограмм.ФайлЭфира
        |
        |УПОРЯДОЧИТЬ ПО //добавлена сортировка по Времени
        |    ДатаВыхода, ВремяВыхода";
   
    Запрос.УстановитьПараметр("НаименованиеФайла", НаименованиеФайла);
   
    РезультатЗапроса = Запрос.Выполнить();
   
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    лкДатаВыхода = 0;
ВремяЭфира = "";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если лкДатаВыхода <> ВыборкаДетальныеЗаписи.ДатаВыхода Тогда
//смена даты
Если лкДатаВыхода <> 0 Тогда
ОбластьСтрока.Параметры.ДатаВыхода = лкДатаВыхода;
ОбластьСтрока.Параметры.ВремяВыхода = ВремяЭфира;
ТабДок1.Вывести(ОбластьСтрока);   
КонецЕсли; 
лкДатаВыхода = ВыборкаДетальныеЗаписи.ДатаВыхода;
ВремяЭфира = "";//сбрасываем время
КонецЕсли;
        ВремяЭфира = Строка(ВремяЭфира) + ", " +  Строка(формат(ВыборкаДетальныеЗаписи.ВремяВыхода,"ДФ='HH:mm'"));
     
КонецЦикла;

Если лкДатаВыхода <> 0 Тогда
ОбластьСтрока.Параметры.ДатаВыхода = лкДатаВыхода;
ОбластьСтрока.Параметры.ВремяВыхода = ВремяЭфира;
ТабДок1.Вывести(ОбластьСтрока);   
КонецЕсли; 
 
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск