Имя: Пароль:
1C
1С v8
Не получается сформировать отчет на СКД
,
0 mikecool
 
12.10.11
17:17
Порывшись в поиске про вывод списка документов с пом СКД, накропал сию функцию. Все в ней хорошо, но данных не выводит

Функция ПечатьСпискаНаСервере() Экспорт
   
   СхемаКомпоновкиДанных = Документы.ЗаявкаНаОтгрузку.ПолучитьМакет("ОсновнаяСхема");
   НастройкиКомпоновки = Новый КомпоновщикНастроекКомпоновкиДанных;
   НастройкиКомпоновки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   
   Настройки = НастройкиКомпоновки.Настройки;
   ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Отбор, Список.Отбор);
   ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Порядок, Список.Порядок);
   
   ДопМакет = Документы.ЗаявкаНаОтгрузку.ПолучитьМакет("СписокЗаявок");
   ДопЗаголовок = ДопМакет.ПолучитьОбласть("Заголовок");
   
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
     
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
   
   ДопПодвал = ДопМакет.ПолучитьОбласть("Подвал");
   ДопПодвал.Параметры.ТекстПодвала = "Дата формирования: " + Формат(ТекущаяДата(), "ДФ='dd.MM.yyyy ""г."" ЧЧ:мм'");
   ДокументРезультат = Новый ТабличныйДокумент;
   ДокументРезультат.Вывести(ДопПодвал);
   
   ДокументРезультат.Вывести(ДопЗаголовок);
   
   ДокументРезультат.АвтоМасштаб = Истина;
   ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   Возврат ДокументРезультат;    

КонецФункции

не дружу я с скд, совсем (((
попинайте в правильном направлении
1 mikecool
 
12.10.11
17:26
ээх ((
2 Defender aka LINN
 
12.10.11
17:27
Кэп подсказывает, что у тебя со схемой фигня какая-то
3 lubja
 
12.10.11
17:28
(0) точно не уверена, но возможно


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

// Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));
   
// Основной цикл вывода отчета
Пока Истина Цикл
   // Получим следующий элемент результата компоновки
   ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
   
   Если ЭлементРезультата = Неопределено Тогда
       // Следующий элемент не получен - заканчиваем цикл вывода
       Прервать;
   Иначе
       // Элемент получен - выведем его при помощи процессора вывода
       ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
   КонецЕсли;
   ОбработкаПрерыванияПользователя();
КонецЦикла;

ПроцессорВывода.ЗакончитьВывод();
4 mikecool
 
12.10.11
17:29
(2) схему скопипаздил из внешнего отчета, могу выложить )
5 mikecool
 
12.10.11
17:30
(3) если мне не изменяет склероз
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

=

ПроцессорВывода.НачатьВывод();
Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));
   
// Основной цикл вывода отчета

Пока Истина Цикл
   // Получим следующий элемент результата компоновки

   ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
   
   Если ЭлементРезультата = Неопределено Тогда
       // Следующий элемент не получен - заканчиваем цикл вывода

       Прервать;
   Иначе
       // Элемент получен - выведем его при помощи процессора вывода

       ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
   КонецЕсли;
   ОбработкаПрерыванияПользователя();
КонецЦикла;

ПроцессорВывода.ЗакончитьВывод();
6 lubja
 
12.10.11
17:30
(5) возможно, поэтому и написала, что не уверена ))
7 mikecool
 
12.10.11
17:31
щас открыл ее, три параметра, ща повспоминаю, как они в отчете устанавливались
8 ssh2006
 
12.10.11
17:32
Проблема здесь

 НастройкиКомпоновки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   
   Настройки = НастройкиКомпоновки.Настройки;

А сами настройки-то какие?
9 mikecool
 
12.10.11
17:32
(8) да откуда ж я знаю )))
я типа их собираю
   ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Отбор, Список.Отбор);
   ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Порядок, Список.Порядок);
))
10 mikecool
 
12.10.11
17:33
Список - Динамический список
может в нем собака порылась?
11 ssh2006
 
12.10.11
17:33
А структура?
12 mikecool
 
12.10.11
17:33
(11) что структура?
13 mikecool
 
12.10.11
17:34
в который раз рассматриваю http://1cskd.ru/2010/07/ustrojstvo-sistemy-komponovki-dannyx/ - вот никак не дойдет до меня она ((
14 ssh2006
 
12.10.11
17:35
Настрой в самой схеме настройки. Далее напиши
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Это

  ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Отбор, Список.Отбор);
   ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Порядок, Список.Порядок);
Закомментируй и попробуй
15 mikecool
 
12.10.11
17:36
(14) ага, щас пробую как раз
16 mikecool
 
12.10.11
17:46
чего то получилось так
   НастройкиКомпоновки = Новый КомпоновщикНастроекКомпоновкиДанных;
   НастройкиКомпоновки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   
   НастройкиКомпоновки.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);


результат:
Ошибка компоновки макета
по причине:
Поле не найдено "Date"
17 mikecool
 
12.10.11
17:47
вот только откуда это поле Date
если в настройках есть только Дата
18 GenV
 
12.10.11
17:49
(16) Тебе тогда компоновщик настроек не нужен. Сразу настройки передавай. Как в уроке упомянутом. Для компоновщика еще попробуй передавать настройки через НастройкиКомпоновки.ПолучитьНастройки()
19 mikecool
 
12.10.11
17:49
нашел здесь ТиповыеОтчеты.СкопироватьЭлементы(Настройки.Порядок, Список.Порядок);
что за поле, пока непонятно
20 mikecool
 
12.10.11
17:50
(18) о как, не доглядел...
21 ssh2006
 
12.10.11
17:50
СхемаКомпоновкиДанных = Документы.ЗаявкаНаОтгрузку.ПолучитьМакет("ОсновнаяСхема");
   
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
22 mikecool
 
12.10.11
17:51
а Date походу какое то служебное поле для упорядочивания дин. списка по-умолчанию
23 mikecool
 
12.10.11
17:52
о, поперло )))
ни один отбор не лег - вываливается весь список
24 mikecool
 
13.10.11
11:29
подниму ветку - не могу установить отбор ((
пробовал добавить - не пойму, в какую веток настроек его засунуть
плюнул - решил отбор добавить в схему, добавил
формирую, смотрю в отладчике - доступных полей отбора нет
куда же мне его засунуть, этот отбор?
25 mikecool
 
13.10.11
11:33
туц-туц
26 mikecool
 
13.10.11
15:53
еще пробую поднять
27 ssh2006
 
13.10.11
16:54
как с отбором-то?
28 Пришел в тапках
 
13.10.11
17:04
Независимо от того, куда вы едете — это в гору и против ветра!