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

Сложение одинаковых срок

Автор Ekaterina20, 30 ноя 2015, 18:54

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

Ekaterina20

Ребята,всем привет! Не судите строго, я пока учусь. У меня такая задача.
В задании я получила некую таблицу с помощью запроса. В таблице 3 столбца в которых есть код телефонов и время разговора. Мне нужно, либо с помощью цикла сделать выборку из таблицы одинаковых кодов и сложить их время разговора,либо как я вычитала с помощью Свернуть(),но не знаю где его вставлять. Помогите,пожалуйста выйти на истинный путь в задаче. Понимаю все,что нужно делать,но не знаю,как это описать и получить. Заранее спасибо за помощь!

дфтын

Таблица.свернуть("Названиеколонкистелефоном","названиеколонкисвременем")

Отправлено с моего Boost через Tapatalk


pavl_vs

Ekaterina20, конечно проще и правильнее в данном случае использовать метод Таблицы значений "Свернуть":

ТабЗнач.Свернуть("Колонка1, Колонка2", "ВремяРазговора")

Осуществляется свертка таблицы значений по указанным колонкам группировки.
Строки, у которых совпадают значения в колонках, указанных в первом параметре ("Колонка1, Колонка2"), сворачиваются в одну строку.
Значения этих строк, хранящиеся в колонках, указанных во втором параметре ("ВремяРазговора"), накапливаются.

И никакого цикла.

дфтын


pavl_vs

дфтын, что не так? Просто не проверил наличие других ответов.

Ekaterina20

Спасибо за ответ и помощь! Я про Свернуть() поняла,не могу понять куда его вставить в коде, подскажите,пожалуйста!

Процедура Отчет1(ТабДок, ДатаК, ДатаН) Экспорт
Макет = ОтчетОбъект.ПолучитьМакет("Отчет1");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|R_Связь.НомерСтроки
|R_Связь.ДлительностьЗвонка КАК ДлительностьЗвонка,
|R_Связь.Код КАК Код
|ИЗ
|РегистрСведений.R_Связь КАК R_Связь
|ГДЕ
|R_Связь.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК";
   
Запрос.УстановитьПараметр("ДатаК", НачалоДня(ДатаК));
Запрос.УстановитьПараметр("ДатаН", КонецДня(ДатаН));
   
Результат = Запрос.Выполнить();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
//ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
               
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

ВыборкаДетальныеЗаписи = Результат.Выбрать();
               
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                                                      ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);   
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
           
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьДетальныхЗаписей);
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);

         
КонецПроцедуры

дфтын

ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

меняем на:
//ВыборкаДетальныеЗаписи = Результат.Выбрать();
ВыборкаДетальныеЗаписи = Результат.Выгрузить();
ВыборкаДетальныеЗаписи .Свернуть(каквамнадо);
//Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Для каждого ст из ВыборкаДетальныеЗаписи Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ст);   



Ekaterina20


Спасибо огромное! Все получилось!

SitnovaMarina

Народная мудрость: Программу встречают по интерфейсу

Теги:

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

Рейтинг@Mail.ru

Поиск