Имя: Пароль:
1C
 
СКД. Не найден внешний набор данных.
0 Подводный Таракан
 
28.01.10
12:42
Делаю внешний отчет. В СКД выбираю набор данных - объект. Имя объекта - "Табл". Далее делаю табличную часть отчета с именем "Табл". Реквизиты табличной части соответствуют полям в СКД. При открытии отчета выполняю следующие действия:

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

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

но при нажатии "Сформировать" в форме отчета выдает ошибку -

Ошибка исполнения отчета
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Не найден внешний набор данных "Табл"
1 mirosh
 
28.01.10
12:43
(0) в самой компоновке у тебя набор данных назвается "НаборДанных1", а должен "Табл". перименуй (это деолается в правом нижнем углу на первой вкладке в компоновке).
2 Подводный Таракан
 
28.01.10
12:51
(1) сейчас пишет вот что -

Ошибка создания набора данных "Табл"
по причине:
Не найден внешний набор данных "Табл"
3 Aprobator
 
28.01.10
13:02
(2) Может табличную часть отчета есть не хочет? Попробуй вместо Табл поставить Табл.Выгрузить().
4 Подводный Таракан
 
28.01.10
13:08
(3) неа, то же самое. Интерсно то, что, если я делаю на форме новую кнопку "Печать" и в нее запихиваю следующий текст, то все работает.

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

   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
     
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
   ДокументРезультат = Новый ТабличныйДокумент;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   ДокументРезультат.ОтображатьСетку = Ложь;
   ДокументРезультат.ОтображатьЗаголовки = Ложь;
   ДокументРезультат.Показать();
5 Aprobator
 
28.01.10
13:12
(4) при открытии отчета - это в какой процедуре имеется ввиду?
6 Подводный Таракан
 
28.01.10
13:15
(5) ПриОткрытии()
7 Aprobator
 
28.01.10
13:16
+(5) как вариант - просто процедуру Сформировать(Элемент) сделай свою и действие кнопки сформировать на эту кнопку переориентируй и все.
8 Aprobator
 
28.01.10
13:18
+(7) вернее процедуру.
9 Подводный Таракан
 
28.01.10
13:25
(8) да, так сейчас и делаю, просто интересно, почему первый вариант не работает. Еще вопрос - как можно вытащить на форму отчета группировки и их порядок из СКД?
10 Aprobator
 
28.01.10
13:45
(9) скорее всего первый вариант выполняет еще раз инициализацию Процессора и внешний набор уходит в аут. По поводу вопроса не понял - Настройки СКД как на форму вытащить что ли?
11 Aprobator
 
28.01.10
13:50
+(10) вообще у формы отчета есть расширение КомпоновщикНастроек. И можно просто вытащить на форму ТабличноеПоле и связать его с КомпоновщикНастроек.Настройки (можно вроде еще глубже влезть). Но для этого в твоем коде понадобитмя ееще строка:

КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию)

Вообще - почитай в СП про расширения формы отчетов.
12 Подводный Таракан
 
28.01.10
13:53
(11) спасибо, с настройками разобрался.
13 Aprobator
 
28.01.10
13:55
не за что. А вообще быстро ты с ними )
14 Подводный Таракан
 
28.01.10
14:09
(13) да не, как выносить на форму настройки - я знал. Просто думал, что можно как то вынести именно группировки по строкам и колонкам, ну к примеру как в построителе отчета. А потом не стал заморачиваться, вынес просто всю настройку, там и конструктор есть, так что думаю потянет.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой