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

Таблица значений

Автор Николай, 20 апр 2017, 14:03

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

Николай

Делаю вывод DBF файла в Табличное поле "Таблица1", а из него пытаюсь вывести сгруппированные данные в отчет, а выходит пустая страницаМассивНомерЛСвнешний=Новый массив;

МассивНаименованиеКонтрагента=Новый массив;
МассивАдресОбъекта=Новый массив;
МассивСуммаДолга =Новый массив;
//создаем таблицу значений
ТЗ = Новый ТаблицаЗначений;
КвалификаторыСтроки = Новый КвалификаторыСтроки(50);
КвалификаторыЧисла =  Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Любой);
ТЗ.Колонки.Добавить("N", Новый ОписаниеТипов("Строка",,КвалификаторыСтроки));
ТЗ.Колонки.Добавить("Fio",Новый ОписаниеТипов("Строка",,КвалификаторыСтроки));
ТЗ.Колонки.Добавить("Adres",Новый ОписаниеТипов("Строка",,КвалификаторыСтроки));
ТЗ.Колонки.Добавить("Sm_out",Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТЗ.ЗагрузитьКолонку(Таблица1.ВыгрузитьКолонку("N"),"N");
ТЗ.ЗагрузитьКолонку(Таблица1.ВыгрузитьКолонку("Fio"),"Fio");
ТЗ.ЗагрузитьКолонку(Таблица1.ВыгрузитьКолонку("Adres"),"Adres");
ТЗ.ЗагрузитьКолонку(Таблица1.ВыгрузитьКолонку("Sm_out"),"Sm_out");
Запрос = новый запрос;
Запрос.УстановитьПараметр("ТЗ",ТЗ);
запрос.Текст = "ВЫБРАТЬ
|   ТЗ.N,
|   ТЗ.Sm_out,
|   ТЗ.Fio,
|   ТЗ.Adres
|ПОМЕСТИТЬ Таблица
|ИЗ
|   &ТЗ КАК ТЗ
|;
|
|///////////////////////////////////////////////
|ВЫБРАТЬ
|   Таблица.N,
|   СУММА(Таблица.Sm_out) КАК Сумма,
|   Таблица.Fio,
|   Таблица.Adres
|ИЗ
|   Таблица КАК Таблица
//|ГДЕ
//|   Таблица.Сумма <> 0
|
|СГРУППИРОВАТЬ ПО
|   Таблица.N,
|   Таблица.Fio,
|   Таблица.Adres";

Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий()Цикл
МассивНомерЛСвнешний.Добавить(Выборка.N); 
МассивНаименованиеКонтрагента.Добавить(Выборка.Fio);
     МассивАдресОбъекта.Добавить(Выборка.Adres);
МассивСуммаДолга.Добавить(Выборка.Сумма);
КонецЦикла;
Для Н2 = 0 по МассивНомерЛСвнешний.Количество()-1  Цикл
Шапка.Параметры.НомерЛСвнешний=МассивНомерЛСвнешний[Н2];
.........


Если сразу делаю вывод из Таблицы1 посредствам
МассивНомерЛСвнешний = Таблица1.ВыгрузитьКолонку("N");
Шапка.Параметры.НомерЛСвнешний=МассивНомерЛСвнешний[Н2]; то все выводится


Kironten

В конструкторе запроса возможно не устанавливались типы значений при считывании из ТЗ.
А вообще у вас есть методы таблицы значений Сортировать и Свернуть, пользуйтесь ими, зачем вам запрос? Вы ничего из данных базы не тащите, ну и незачем его использовать.

Dethmontt

Упрощаем


//Если контейнер табличная часть
ТЗ = Таблица1.Выгрузить();

//или если контейнер Таблица значений
ТЗ = Таблица1.Скопировать();

//Группируем
ТЗ.Свернуть("N,Fio,Adres","Сумма");

//Вывод в табличный документ
Для каждого СтрокаТЗ из ТЗ Цикл
   Шапка.Параметры.НомерЛСвнешний = СтрокаТЗ.N;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Николай


Теги:

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

Рейтинг@Mail.ru

Поиск