Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

не выводит результат из ПроцессораКомпоновки

не выводит результат из ПроцессораКомпоновки
Я
   Папай
 
23.02.21 - 12:40
всем добрый день.
приведу код:

        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        
        СхемаСКД = ПолучитьМакет("ВыгрузкаНоменклатуры");    
        
        НовоеПоле = КомпоновщикСхемы.Настройки.ПараметрыДанных.Элементы.Найти("Узел");
        НовоеПоле.Использование = Истина;
        НовоеПоле.Значение = ПланОбмена;
        
        НовоеПоле = КомпоновщикСхемы.Настройки.ПараметрыДанных.Элементы.Найти("НеОтборИзменениями");
        НовоеПоле.Использование = Истина;
        НовоеПоле.Значение = НЕ ВыгружатьИзменения;
        
        ОсновнаяГруппировка = КомпоновщикСхемы.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
        ОсновнаяГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
        
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаСКД, КомпоновщикСхемы.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
        
        Результат = Новый ТаблицаЗначений;
        
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
        ПроцессорВывода.УстановитьОбъект(Результат);
        ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
        
        Для каждого СтрокаТовараДляОбработки Из Результат Цикл //////
            
            Идентификатор = ВыгрузитьНоменклатуру(СтрокаТовараДляОбработки.Ссылка);
            
            Если ЗначениеЗаполнено(Идентификатор) И ВыгружатьИзменения Тогда
                
                ПланыОбмена.УдалитьРегистрациюИзменений(ПланОбмена, СтрокаТовараДляОбработки.Ссылка);
                
            КонецЕсли;
            
        КонецЦикла;    

может кто подскажет в какую сторону копать.это обмен.между опен картом и 1с.Так вот беру запрос из СКД.запрос дает ссылку на номенклатуру,сделал отдельно очет на СКД.Отчет выводит ссылку на номенклатуру(собственно ссылка для обмена с сайтом на опен карте)
Но вот код категорчиески не двигаться в цикл.То есть при проверке ТаблицаЗначений абсолютно пустая,хотя ПроцессорКомпоновки.следующий() показывает такие параметры:

ЗначенияПараметров    ЗначенияПараметровМакетаКомпоновкиДанных    ЗначенияПараметровМакетаКомпоновкиДанных
Макет    "Макет1"    Строка
Макеты    ОписанияМакетовОбластейМакетаКомпоновкиДанных    ОписанияМакетовОбластейМакетаКомпоновкиДанных
ПроцентВывода    0    Число
РасположениеВложенныхЭлементов    Горизонтально    РасположениеВложенныхЭлементовРезультатаКомпоновкиДанных
ТипЭлемента    Начало и конец    ТипЭлементаРезультатаКомпоновкиДанных
   Папай
 
1 - 23.02.21 - 12:42
не понятно почему Макет1 если имя макета "ВыгрузкаНоменклатуры"
   hhhh
 
2 - 23.02.21 - 12:46
попробуйте Результат2
   Папай
 
3 - 23.02.21 - 12:58
поменял.категорически ноль строк в таблице значений

        Результат2 = Новый ТаблицаЗначений;
        
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
        ПроцессорВывода.УстановитьОбъект(Результат2);
        ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
                 сообщить(Результат2.Количество());
        Для каждого СтрокаТовараДляОбработки Из Результат2 Цикл
   zmaximka
 
4 - 23.02.21 - 13:05
Результат = Новый ТаблицаЗначений; а это зачем?
   Папай
 
5 - 23.02.21 - 13:08
(4)потому что УстановитьОбъект требует таблицу значений
Синтаксис:
УстановитьОбъект(<Объект>)
Параметры:
<Объект> (необязательный)
Тип: ТаблицаЗначений, ДеревоЗначений.
Объект, в который будет осуществляться вывод.
   Папай
 
6 - 23.02.21 - 13:10
сам СКД отрабатывает отлично.и дает результат
   Папай
 
7 - 23.02.21 - 13:10
ну всмысле ссылку выкидывает.
   DrShad
 
8 - 23.02.21 - 13:25
а где у тебя хоть одно выбранное поле?
   acht
 
9 - 23.02.21 - 13:42
(6) Откуда приходит КомпоновщикСхемы и чем оно инициалируется?
   acht
 
10 - 23.02.21 - 13:53
(1) > если имя макета
Потому что макет объекта, откуда бы берешь схему компоновки и макет компоновки - разные вещи
   Папай
 
11 - 23.02.21 - 14:25
(9)
чуть выше у меня есть процедурка по прочтению настроек

и там:

    КомпоновщикСхемы = Новый КомпоновщикНастроекКомпоновкиДанных;
    
    КомпоновщикСхемы.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ВременноеХранилищеСКД));
   acht
 
12 - 23.02.21 - 14:33
(11) Гм. То есть ты инициализируешь компоновщик вместе с полями выбора и структорой вывода одной схемой, а потом работаешь с другой, из макета объекта. Зачем?

    СхемаКомпоновки  = ПолучитьИзВременногоХранища(ВременноеХранилищеСКД);
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    ИсточникНастроек    = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки);
    КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
    
... тут твои коррекции параметров ...
  
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, КомпоновщикНастроек.Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Как-то так
   acht
 
13 - 23.02.21 - 14:35
А, еще после иницалиции возможно понадобится сделать типа

    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
   Папай
 
14 - 23.02.21 - 14:36
буду пробовать спасибо
   Папай
 
15 - 24.02.21 - 13:22
добрый день.хотелось бы поднять тему еще раз так как я в глухом углу.к сожалению предложенный вариант (12)(13)не сработал
        СхемаКомпоновки  = ПолучитьИзВременногоХранилища(ВременноеХранилищеСКД);
           
        КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
        ИсточникНастроек    = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки);
        КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
        
        КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию); 
        
        НастройкиКомпоновщика = КомпоновщикНастроек.Настройки; 
        ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных; 
        
        // устанавливаем параметры отчета

        ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Узел")); 
        ЗначениеПараметра.Значение = ПланОбмена; 
        
        ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НеОтборИзменениями")); 
        ЗначениеПараметра.Значение = ВыгружатьИзменения; 
        
        //Получим макет компоновки    

        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; 
        МакетКомпоновкиДанных =КомпоновщикМакета.Выполнить(СхемаКомпоновки,НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); 
        
        //Через процессор компоновки получим результат

        ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; 
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); 
        
        
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; 
     Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);    


количество в ТЗ по прежнему ноль.ни одной строки
   acht
 
16 - 24.02.21 - 13:58
Структура вывода в настрокайх компоновки, ну и в настройках по умолчанию схемы настроена?
   Вафель
 
17 - 24.02.21 - 13:59
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

   Вафель
 
18 - 24.02.21 - 14:00
и вместо
КомпоновщикСхемы.Настройки

лучше писать
КомпоновщикСхемы.ПолучитьНастройки()

иначе будут косяки с пользовательскими настройками
   Папай
 
19 - 24.02.21 - 14:54
(16)начала заполняться таблица.спасибо.а как по умолчанию прописать узел?если он не предопределенный.потому что по факту из узла 1 элемент зарегистрирован а вижу 9600.то есть это со всех узлов наверное
   Папай
 
20 - 24.02.21 - 15:15
(12)Друг!атдуши!спасибо.добился нужного результата!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.