Имя: Пароль:
1C
1С v8
вывести ТЗ в СКД
0 lucifer
 
13.12.12
18:53
Нашел статью
http://coder1cv8.narod.ru/Publication6.html
(Программный вывод отчета в самом низу)
У меня УФ Какие-то из этих процедур, типов доступны на сервере, какие-то на клиенте, не как не получается собрать это дело в рабочий код, помогите дельным примером.
1 Нуф-Нуф
 
13.12.12
18:57
просмотри курсы http://www.spec8.ru/kurs-po-skd-besplatno
будь мужиком, блеать!
2 lucifer
 
13.12.12
18:58
(1) после работы буду смотреть
3 Нуф-Нуф
 
13.12.12
19:00
если тебе совсем оперативно надо, вот здесь смотри примеры http://1cskd.ru
4 Нуф-Нуф
 
13.12.12
19:00
5 lucifer
 
13.12.12
19:51
(4) это пробовал, что-то нечего не произошло
6 lucifer
 
13.12.12
21:26
(1) в этих курсах нет то что мне нужно
7 lucifer
 
13.12.12
22:57
Ну вот что я не так делаю?
Вот скрин макета:
http://s018.radikal.ru/i501/1212/a5/94486d85725c.png
вот скрин реквизита формы:
http://s53.radikal.ru/i140/1212/cc/803e13123e06.png

вот код:

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

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



По нажатию на кнопку реакции никакой, что еще нужно?
8 Нуф-Нуф
 
13.12.12
23:21
ДокументРезультат.Показать - на сервере?
9 lucifer
 
13.12.12
23:43
(8) Да, поправил, но воз и ныне там.
Переделал:

&НаКлиенте
Процедура Сформировать(Команда)
   ВывестиОтчет(Результат); // тот код что я приводил выше
   Результат.Показать();    
КонецПроцедуры


открывается новое пустое окно макета, и странно почему не в окне отчета
http://s019.radikal.ru/i607/1212/ac/fb83b6aff4ca.png
а в новом
http://s004.radikal.ru/i205/1212/02/5ba03f03af58.jpg
10 Нуф-Нуф
 
14.12.12
00:00
//Вывод результата

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

КонецПроцедуры
11 lucifer
 
14.12.12
00:06
(10) Да, окна нового теперь нет.
Кстати замечено что по нажатию на кнопку появляется скрол
до:
http://s001.radikal.ru/i194/1212/e8/e73859a15ee0.png

после:
http://s018.radikal.ru/i521/1212/a6/799d8f36f604.png

как буд-то что-то выводится, но не отображается почему-то
12 lucifer
 
14.12.12
09:30
up
13 lucifer
 
14.12.12
15:16
апну еще раз, может найдется тот кто знает.
14 lucifer
 
17.12.12
18:12
Рещение было найдено (пару дней назад) решил выложить мож кому пригодиться

в модуле объекта (в форме отчета не хочет работать) этот код:

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

 //Макет компоновки
 КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
 МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);

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

 //Вывод результата
 ДокументРезультат.Очистить();
 ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
 ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
 ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший