СКД. Не найден внешний набор данных "ТЗ"
Добрый день. В обработчике ПриКомпоновкеРезультата передаю свою ТЗ, как внешний набор данных в СКД. При формировании отчета, возникает "Ошибка исполнения отчета по причине: Ошибка инициализации по причине: Ошибка создания набора данных ТЗ" - а потом отчет формируется как надо! Не работает только расшифровка полей отчета. Как это исправить?
Мой код в ПриКомпоновкеРезультата:
[quote]
ВнешнийНабор = Новый Структура("ТЗ", ТЗ);
Схема = СхемаКомпоновкиДанных;
Настройки = Схема.НастройкиПоУмолчанию;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(МакетКомпоновки, ВнешнийНабор, , Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Форма = ЭтотОбъект.ПолучитьФорму("ФормаОтчета");
ПроцессорВывода.УстановитьДокумент(Форма.ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(Процессор);
[/quote]
Колонки ТЗ определяю так(я же правильно описываю типы, почему не работает расшифровка?):
[quote]
ТЗ.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗ.Колонки.Добавить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("РозничнаяЦена", Новый ОписаниеТипов("Число"));
[/quote]
Всем заранее спасибо.
Мой код в ПриКомпоновкеРезультата:
[quote]
ВнешнийНабор = Новый Структура("ТЗ", ТЗ);
Схема = СхемаКомпоновкиДанных;
Настройки = Схема.НастройкиПоУмолчанию;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(МакетКомпоновки, ВнешнийНабор, , Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Форма = ЭтотОбъект.ПолучитьФорму("ФормаОтчета");
ПроцессорВывода.УстановитьДокумент(Форма.ЭлементыФормы.Результат);
ПроцессорВывода.Вывести(Процессор);
[/quote]
Колонки ТЗ определяю так(я же правильно описываю типы, почему не работает расшифровка?):
[quote]
ТЗ.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗ.Колонки.Добавить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("РозничнаяЦена", Новый ОписаниеТипов("Число"));
[/quote]
Всем заранее спасибо.
По теме из базы знаний
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Нюансы преобразования запроса СКД
- Универсальный отчет для сравнения записей регистров накопления между базами по COM-соединению, для обычных форм
- СКД: все, что вы хотели знать о подмене схемы компоновки данных в отчетах и обработках
- Хитрости СКД. Часть 4
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) ErrorEd88,
я же правильно описываю типы
я всегда думал что "Тип значения" для полей нужно указывать на вкладке "Наборы данных".
Как это исправить?
Попробуйте локализовать проблему, создав простейшую схему с использованием ТЗ, в которой не будет выявляться ошибка, а потом добавляйте куски свего кода и определите в чем проблема. Я всегда стараюсь так делать прежде чем постить на форум.
(1) ErrorEd88,
В обработчике ПриКомпоновкеРезультата() вначале кода отключи стандартную обработку:
В обработчике ПриКомпоновкеРезультата() вначале кода отключи стандартную обработку:
СтандартнаяОбработка = Ложь;
user1493468; demidrole; Date; zzz14; DmitryKSL; Aspire1C; dbachinsky; ViktoriyaMozgovaya; Наг; Oxygraphis; savant; SIrina9; user1278383; Divedition; user1835472; belarus767; Crazy_Max; user1367144; user1088651; Csar; eViLL; anuar_medeup; Mahon83; userMKA; user1658642; kabantus; anderson; IVKuzmin; SadrA; MrBukas; arthur2003; user659168_xec8787; SeerRM; Sersh2010; gavrilov_dv; Helly_ti; divSvid; maxst22; LIL_PIVO; MikeI; programmer_87; _Ramzes; romulanin; sapervodichka; Luksez; Tigreno; serpan75; skalistratov; purgin; mybracho; EugeneMIPT; GonziK_KIV; Acort; simy4; dudmax; acanta; 79123890854; vat-74; andron77777; vital1c; Oleg_nsk; Veselchak; Dmitrii D; Painted; alexandrmishinn; woozee; _WinChester_; k992007; soft; smit1c; vasileps; unreg11; denvit; Renegade; ВРедная; coollerinc; Brook; Korolev; xzorkiix; Захаров_Николай; fantomas; AB_74; ivprovotorov; Manticor; Anikrion; Mitreski; AlexandraSerg;
+87
–
Ответить
надо копать в сторону основной схемы компоновки данных... проверьте совпадает ли у вас имя в наборе данных СКД в поле "Имя объекта, содержащего данные" с именем таблицы значений которую передаёте в CRL/ и там и там должно быть на основе кода "ТЗ"
Запрос=Новый Запрос("Выбрать * ПОМЕСТИТЬ ВТТаб Из &Таб Как Т");
Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Таб",ТаблицаЗначений);
Запрос.Выполнить();
ЗапросТЗ=Новый Запрос("ВЫБРАТЬ* ВТТаб КАК ВТТаб");
ЗапросТЗ.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц;
Результат =ЗапросТЗ.Выполнить().Выгрузить();
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("тз",Результат);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,
ВнешниеНаборыДанных);
Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Таб",ТаблицаЗначений);
Запрос.Выполнить();
ЗапросТЗ=Новый Запрос("ВЫБРАТЬ* ВТТаб КАК ВТТаб");
ЗапросТЗ.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц;
Результат =ЗапросТЗ.Выполнить().Выгрузить();
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("тз",Результат);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,
ВнешниеНаборыДанных);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот