|
не найден внешний набор данных СКД УФ | ☑ | ||
---|---|---|---|---|
0
sagitt
04.07.17
✎
08:58
|
Помогите разобраться с внешним набором данных.
Создал простейший отчет: https://yadi.sk/d/1ftrGBU93Kinb5 В модуле написал Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) тз=новый таблицазначений; тз.Колонки.Добавить("Поле1"); нс=тз.Добавить(); нс.Поле1="33№"; нс.Поле1="44№"; нс.Поле1="55№"; ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных .Вставить("ТЗ", тз); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры При формировании возникает ошибка: Не найден внешний набор данных "ТЗ" Причем, если в ВнешниеНаборыДанных указать не правильный ключ,например: ВнешниеНаборыДанных .Вставить("ТЗНЕПРАВИЛЬНО", тз); то ошибка вылезает сразу, а если так как написано, машина сначала думает некоторое время и только потом возникает ошибка. Подскажите, что я не так делаю. |
|||
1
Одинесю
04.07.17
✎
09:02
|
ВнешниеНаборыДанных .Вставить("ТЗ", тз); - ничего, что пробел?
|
|||
2
Dvoe4nik
04.07.17
✎
09:08
|
(0) а в самой СКД имя источника "ТЗ"? ТЗ не неопределено?
|
|||
3
Dvoe4nik
04.07.17
✎
09:09
|
(2)+я имею ввиду таблица передаваемая
|
|||
4
sagitt
05.07.17
✎
08:38
|
Я специально выложил сам отчет.
Уважаемый Одинесю, вы имеете в виду пробел между "ТЗ", тз? Я полагаю, что это не может быть причиной, ведь это просто конструкция языка, а не идентификатор переменной. уважаемый Dvoe4nik, Да,имя источника "ТЗ". Причем это"ТЗ" я переносил через ClipBoard во избежание так сказать.И в модуль объекта и в название объекта. Т.е разница в идентификаторах исклюена. Передаваемая таблица тоже "ТЗ". Крме того, яотмечал, что если в ВнешниеНаборыДанных указать не правильный ключ, то ошибка появляется гораздо раньше, чем если там указать правильное имя объекта,содержащего данные. |
|||
5
Одинесю
05.07.17
✎
08:39
|
ВнешниеНаборыДанныхВотТутПробел.Вставить("ТЗ", тз);
|
|||
6
Имитация работы
05.07.17
✎
08:41
|
Значит ищи глубже в скд - корректность и типы полей набора, условия связи и т.п. и т.д.
|
|||
7
Имитация работы
05.07.17
✎
08:42
|
(5) ГлубокоФиолетовоПроверьРаботает
|
|||
8
Одинесю
05.07.17
✎
08:43
|
(7) Понятно, я не утверждал, скорее спрашивал.
|
|||
9
Mankubus
05.07.17
✎
08:47
|
СтандартнаяОбработка = Ложь
|
|||
10
sagitt
05.07.17
✎
19:15
|
Mankubus, спасибо. Действительно ошибка пропала. Теперь понимаю, чем была вызвана задержка перед появлением ошибки: сначала формировался отчет с заданным внешним набором, а потом запускалась стандартная процедура формирования отчета.
А не подскажете вдогонку, в отчете я вижу только последнее значение из ТЗ. Где копать, чтобы отразилось все содержимое таблицы. Заранее благодарен за ответы. |
|||
11
Mankubus
05.07.17
✎
20:07
|
>>А не подскажете вдогонку, в отчете я вижу только последнее значение из ТЗ. Где копать, чтобы отразилось все содержимое таблицы.
Элементарно. Этот код добавляет одну строку в таблицу: нс=тз.Добавить(); нс.Поле1="33№"; нс.Поле1="44№"; нс.Поле1="55№"; 3 строки добавляются так: нс=тз.Добавить(); нс.Поле1="33№"; нс=тз.Добавить(); нс.Поле1="44№"; нс=тз.Добавить(); нс.Поле1="55№"; |
|||
12
sagitt
05.07.17
✎
21:28
|
И снова спасибо. Действительно к концу дня бес попутал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |