Имя: Пароль:
1C
1С v8
Заполнение Табличного документа значениями из ТЗ
0 a1phoenix
 
11.03.13
09:05
Добрый день!
Каким образом заполнить табличный документ( в котором уже указаны параметры) значениями из Таблицы Значений?
Дошел до такой вот процедуры:

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

Значения заполняет в частности в поле "КоличествоСработок" идет последовательно количество стработок и имя сработки("пожар" и тд),то есть первая строка - 8, вторая строка - пожар, а в
"ТипСработки" просто указывается КолонкаТаблицыЗначений.
Каким образом (желательно пример) заполнить "КоличествоСработок" = числом сработок(8), а "ТипСработки" = именем сработки(пожар)?
1 cw014
 
11.03.13
09:07
Убирай:
       Для Каждого Колонка Из ТЗ.Колонки Цикл
           ТекстОтчета.Параметры.КоличествоСработок=стр[Колонка.Имя];
           ТекстОтчета.Параметры.ТипСработки=Колонка;
           ТабДок.Вывести(ТекстОтчета);
       КонецЦикла;


Вместо этого пиши одну строку
ТекстОтчета.Параметры.Заполнить(стр);
2 cw014
 
11.03.13
09:07
С тебя 100 р
3 mikecool
 
11.03.13
09:08
параметры макета назвать как поля в выборке и делать просто ОбластьМакета.Параметры.Заполнить(Выборка)
4 cw014
 
11.03.13
09:15
(3) По сути у него так и сделано, только заполнение неправильное. Плюс - не успел, я раньше написал :)
5 a1phoenix
 
11.03.13
09:21
Мда.. бывает переклинит и усе... спасибо.
6 cw014
 
11.03.13
09:28
(5) Почему (2) игнорируем? :)
7 mikecool
 
11.03.13
09:29
(4) а я не претендую на первенство )