Имя: Пароль:
1C
1С v8
Поле не найдено в СКД
0 serg-lom89
 
17.04.17
11:46
Добрый день


борюсь все с быстротой выполнения вывода СКД.
Сразу получаю первую схему компоновки.
Выполняю ее.

    
    МВТ = Новый МенеджерВременныхТаблиц;
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.Текст = МакетКомпоновки.НаборыДанных[0].Запрос;
    Для Каждого Параметр из МакетКомпоновки.ЗначенияПараметров Цикл
        Запрос.УстановитьПараметр(Параметр.Имя, Параметр.Значение);        
    КонецЦикла;
    РезультатЗапроса = Запрос.Выполнить();
    
    ТЗИтогКоличество =РезультатЗапроса.Выбрать();


Затем заполняю мою ТЗИтогКоличество .


Затем программно во вторую схему подставляю это результат как внешний набор данных.

    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ОбъектСДанными", ТЗ_);

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


выполняю ,все выводит

Ставлю потом отбор какой нить и мне пишет

Ошибка компоновки макета
по причине:
Поле не найдено "Организация"
Хотя я строю по предприятию.

ЧЯДНТ?
1 Buster007
 
17.04.17
11:48
Значит у тебя во вторую схему какое-то поле "организация" попало
2 serg-lom89
 
17.04.17
11:51
(1) так я потом поля то сам заполняю
    КоллекцияПолей = СхемаКомпоновкиДанных.НаборыДанных[0].Поля;
    КоллекцияПолей.Очистить();
    
    
    
    
    
    
    
    
    
    
    Для каждого Колонка из   ТЗ_.Колонки Цикл
        ПолеНабора =     КоллекцияПолей.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
        ПолеНабора.ПутьКДанным =  Колонка.Имя;
        ПолеНабора.Поле   =  Колонка.Имя;
    КонецЦикла;
3 serg-lom89
 
17.04.17
11:51
СхемаКомпоновкиДанных = получитьМакет("МакетДанныхТЗ");
4 serg-lom89
 
17.04.17
12:02
(1) и как найти это поле ?где оно храниться будет
5 Buster007
 
17.04.17
12:10
Может схему приложишь 2ую?
6 serg-lom89
 
17.04.17
12:11
(5) я схему программно строю...диаграмму программно вывожу
7 Buster007
 
17.04.17
12:16
(6) Тогда тут сложно тебе чем-то помочь... "Ищите, Шура, ищите"
8 serg-lom89
 
17.04.17
12:19
(7) что интересно получается

Когда я строю диаграмму,по предприятию,тогда работает отбор по предприятию и никакой другой отбор не работает.
Если я строю по организации,тогда отбор по организации работает и ни по каким другим отбором не работает.
9 serg-lom89
 
17.04.17
12:34
вроде нашел...во второй схеме надо отборы убирать..счас буду тестить
10 serg-lom89
 
17.04.17
13:43
первую проблему вроде поборол)))
    МВТ = Новый МенеджерВременныхТаблиц;
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.Текст = МакетКомпоновки.НаборыДанных[0].Запрос;
    Для Каждого Параметр из МакетКомпоновки.ЗначенияПараметров Цикл
        Запрос.УстановитьПараметр(Параметр.Имя, Параметр.Значение);        
    КонецЦикла;
    

    
    РезультатЗапроса = Запрос.Выполнить();
    
    ТЗИтогКоличество =РезультатЗапроса.Выбрать();
    



сейчас вот вторая....)))как максимально ускорить процесс выполнения?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший