Имя: Пароль:
1C
1С v8
не найден внешний набор данных СКД УФ
, ,
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
И снова спасибо. Действительно к концу дня бес попутал.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший