Имя: Пароль:
1C
 
вывести таблицу значений в СКД
0 Vvvvv
 
09.02.15
16:24
Создал набор данных в СКД с типом "Объект". Задал имя объекта, т.е. таблицы значения - "ТЗ". На той же вкладке создал два поля с типом строка. Поля "Номер" и "Символ" - такие же как и в Таблице значений.

На вкладке "Настройки", выбрал детальные записи и для них выбрал 2 поля номер и символ.

В модуле объекта прописал код:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();     
    //
    ТЗ = новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Номер");
    ТЗ.Колонки.Добавить("Символ");
    
    НоваяСтрока = тз.Добавить();
    НоваяСтрока.Номер = "тп000044";
    НоваяСтрока.Символ = "ТП";
    
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("тз",тз);

    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; // Создаем данные расшифровки
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; // Создаем компоновщик макета
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);

    ТабДок = Новый ТабличныйДокумент;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
КонецПроцедуры

Ошибки не выдает, и ничего не выдает.
1 Vvvvv
 
09.02.15
16:39
Открывал книгу Хрусталевой по СКД, там ничего не нашел.
2 Fram
 
09.02.15
16:48
А что он должен выдать если у тебя ТабДок живет только внутри процедуры
3 barrgand
 
09.02.15
16:50
(0) ТабДок.Показать()?
4 Vvvvv
 
09.02.15
17:02
(1) это не то. В таком случаи он выводит в табличном документе и то только шапка выводится. А мне нужно что бы выводился как в СКД.
5 Vvvvv
 
09.02.15
17:08
Написал немного по другому

СтандартнаяОбработка = Ложь;
    

    ТЗ = новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Номер");
    ТЗ.Колонки.Добавить("Символ");
    
    НоваяСтрока = тз.Добавить();
    НоваяСтрока.Номер = "тп000044";
    НоваяСтрока.Символ = "ТП";
    
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ВнешнийНаборДанных = Новый Структура("Свойства", тз);
    ВнешнийНаборДанных.Вставить("тз",тз);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
    ДокументРезультат.Очистить();
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


Теперь вот что выходит:
http://www.image123.net/qkjxdac8976kpic.html
6 Vvvvv
 
09.02.15
17:15
Разобрался. Невнимательность моя была.
Вдруг кому пригодится, хочу сказать, что последний код (5) правильный. У меня в настройках стояли галочки на отбор.
7 Fram
 
09.02.15
17:17
Настройку покажи
2 + 2 = 3.9999999999999999999999999999999...