|
не выводит результат из ПроцессораКомпоновки | ☑ | ||
---|---|---|---|---|
0
Папай
23.02.21
✎
12:40
|
всем добрый день.
приведу код: КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; СхемаСКД = ПолучитьМакет("ВыгрузкаНоменклатуры"); НовоеПоле = КомпоновщикСхемы.Настройки.ПараметрыДанных.Элементы.Найти("Узел"); НовоеПоле.Использование = Истина; НовоеПоле.Значение = ПланОбмена; НовоеПоле = КомпоновщикСхемы.Настройки.ПараметрыДанных.Элементы.Найти("НеОтборИзменениями"); НовоеПоле.Использование = Истина; НовоеПоле.Значение = НЕ ВыгружатьИзменения; ОсновнаяГруппировка = КомпоновщикСхемы.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ОсновнаяГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаСКД, КомпоновщикСхемы.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); Результат = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина); Для каждого СтрокаТовараДляОбработки Из Результат Цикл ////// Идентификатор = ВыгрузитьНоменклатуру(СтрокаТовараДляОбработки.Ссылка); Если ЗначениеЗаполнено(Идентификатор) И ВыгружатьИзменения Тогда ПланыОбмена.УдалитьРегистрациюИзменений(ПланОбмена, СтрокаТовараДляОбработки.Ссылка); КонецЕсли; КонецЦикла; может кто подскажет в какую сторону копать.это обмен.между опен картом и 1с.Так вот беру запрос из СКД.запрос дает ссылку на номенклатуру,сделал отдельно очет на СКД.Отчет выводит ссылку на номенклатуру(собственно ссылка для обмена с сайтом на опен карте) Но вот код категорчиески не двигаться в цикл.То есть при проверке ТаблицаЗначений абсолютно пустая,хотя ПроцессорКомпоновки.следующий() показывает такие параметры: ЗначенияПараметров ЗначенияПараметровМакетаКомпоновкиДанных ЗначенияПараметровМакетаКомпоновкиДанных Макет "Макет1" Строка Макеты ОписанияМакетовОбластейМакетаКомпоновкиДанных ОписанияМакетовОбластейМакетаКомпоновкиДанных ПроцентВывода 0 Число РасположениеВложенныхЭлементов Горизонтально РасположениеВложенныхЭлементовРезультатаКомпоновкиДанных ТипЭлемента Начало и конец ТипЭлементаРезультатаКомпоновкиДанных |
|||
1
Папай
23.02.21
✎
12:42
|
не понятно почему Макет1 если имя макета "ВыгрузкаНоменклатуры"
|
|||
2
hhhh
23.02.21
✎
12:46
|
попробуйте Результат2
|
|||
3
Папай
23.02.21
✎
12:58
|
поменял.категорически ноль строк в таблице значений
Результат2 = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(Результат2); ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина); сообщить(Результат2.Количество()); Для каждого СтрокаТовараДляОбработки Из Результат2 Цикл |
|||
4
zmaximka
23.02.21
✎
13:05
|
Результат = Новый ТаблицаЗначений; а это зачем?
|
|||
5
Папай
23.02.21
✎
13:08
|
(4)потому что УстановитьОбъект требует таблицу значений
Синтаксис: УстановитьОбъект(<Объект>) Параметры: <Объект> (необязательный) Тип: ТаблицаЗначений, ДеревоЗначений. Объект, в который будет осуществляться вывод. |
|||
6
Папай
23.02.21
✎
13:10
|
сам СКД отрабатывает отлично.и дает результат
|
|||
7
Папай
23.02.21
✎
13:10
|
ну всмысле ссылку выкидывает.
|
|||
8
DrShad
23.02.21
✎
13:25
|
а где у тебя хоть одно выбранное поле?
|
|||
9
acht
23.02.21
✎
13:42
|
(6) Откуда приходит КомпоновщикСхемы и чем оно инициалируется?
|
|||
10
acht
23.02.21
✎
13:53
|
(1) > если имя макета
Потому что макет объекта, откуда бы берешь схему компоновки и макет компоновки - разные вещи |
|||
11
Папай
23.02.21
✎
14:25
|
(9)
чуть выше у меня есть процедурка по прочтению настроек и там: КомпоновщикСхемы = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикСхемы.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ВременноеХранилищеСКД)); |
|||
12
acht
23.02.21
✎
14:33
|
(11) Гм. То есть ты инициализируешь компоновщик вместе с полями выбора и структорой вывода одной схемой, а потом работаешь с другой, из макета объекта. Зачем?
СхемаКомпоновки = ПолучитьИзВременногоХранища(ВременноеХранилищеСКД); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки); КомпоновщикНастроек.Инициализировать(ИсточникНастроек); ... тут твои коррекции параметров ... КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, КомпоновщикНастроек.Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Как-то так |
|||
13
acht
23.02.21
✎
14:35
|
А, еще после иницалиции возможно понадобится сделать типа
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию); |
|||
14
Папай
23.02.21
✎
14:36
|
буду пробовать спасибо
|
|||
15
Папай
24.02.21
✎
13:22
|
добрый день.хотелось бы поднять тему еще раз так как я в глухом углу.к сожалению предложенный вариант (12)(13)не сработал
СхемаКомпоновки = ПолучитьИзВременногоХранилища(ВременноеХранилищеСКД); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки); КомпоновщикНастроек.Инициализировать(ИсточникНастроек); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию); НастройкиКомпоновщика = КомпоновщикНастроек.Настройки; ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных; // устанавливаем параметры отчета ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Узел")); ЗначениеПараметра.Значение = ПланОбмена; ЗначениеПараметра = ПараметрыНастройки.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НеОтборИзменениями")); ЗначениеПараметра.Значение = ВыгружатьИзменения; //Получим макет компоновки КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных =КомпоновщикМакета.Выполнить(СхемаКомпоновки,НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); //Через процессор компоновки получим результат ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); количество в ТЗ по прежнему ноль.ни одной строки |
|||
16
acht
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)Друг!атдуши!спасибо.добился нужного результата!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |