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)Друг!атдуши!спасибо.добился нужного результата! |
|
Список тем форума |