Програмный отбор в обработке "Универсальный обмен данными в формате XML"
Добрый день уважаемые форумчане. Помогите разобраться с вопросом.
Есть обработка "Универсальный обмен данными в формате XML". Хочу добавить в нее отбор по конкретному документу из которого будет вызываться отчет. Без открытия формы отчета. Нашел на просторах пример установки отбора.
Вот собственно сам код:
Для Каждого СтрокаУровня0 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня0.Имя;
Если Наименование = "РеализацияТоваровУслуг" Тогда
ТекущееПВД = СтрокаУровня0;
Построитель = Новый ПостроительОтчета;
Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда
Построитель.Текст =
"ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
|
|
|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
КонецЕсли;
Отбор = Построитель.Отбор;
Если Отбор.Найти("Документ_РеализацияТоваровУслуг") = Неопределено Тогда
Отбор.Добавить("Документ_РеализацияТоваровУслуг");
КонецЕсли;
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );
Отбор["Документ_РеализацияТоваровУслуг"].Использование = Истина;
Отбор["Документ_РеализацияТоваровУслуг"].Значение = _Документ;
Отбор["Документ_РеализацияТоваровУслуг"].ВидСравнения = ВидСравнения.Равно;
ДоступностьПостроителя = Истина;
Если Построитель.Отбор.Количество() > 0 Тогда
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор = ИСТИНА;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Отбор не работает. ТекущееПВД.Отбор = Неопределено
Что я делаю не так и куда копать ?
Есть обработка "Универсальный обмен данными в формате XML". Хочу добавить в нее отбор по конкретному документу из которого будет вызываться отчет. Без открытия формы отчета. Нашел на просторах пример установки отбора.
Вот собственно сам код:
Для Каждого СтрокаУровня0 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня0.Имя;
Если Наименование = "РеализацияТоваровУслуг" Тогда
ТекущееПВД = СтрокаУровня0;
Построитель = Новый ПостроительОтчета;
Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда
Построитель.Текст =
"ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
|
|
|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
КонецЕсли;
Отбор = Построитель.Отбор;
Если Отбор.Найти("Документ_РеализацияТоваровУслуг") = Неопределено Тогда
Отбор.Добавить("Документ_РеализацияТоваровУслуг");
КонецЕсли;
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );
Отбор["Документ_РеализацияТоваровУслуг"].Использование = Истина;
Отбор["Документ_РеализацияТоваровУслуг"].Значение = _Документ;
Отбор["Документ_РеализацияТоваровУслуг"].ВидСравнения = ВидСравнения.Равно;
ДоступностьПостроителя = Истина;
Если Построитель.Отбор.Количество() > 0 Тогда
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор = ИСТИНА;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Отбор не работает. ТекущееПВД.Отбор = Неопределено
Что я делаю не так и куда копать ?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Отладчиком прошелся.
Цикл отрабатывается. "ВременнаяТаблицаПравил.Строки[0].Строки" не пустая. В ней список документов.
"Построитель" содержит в себе "Отбор" и ссылку на документ.
Проблема возникает на строке "ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();". В ТекущееПВД не попадает отбор.
Цикл отрабатывается. "ВременнаяТаблицаПравил.Строки[0].Строки" не пустая. В ней список документов.
"Построитель" содержит в себе "Отбор" и ссылку на документ.
Проблема возникает на строке "ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();". В ТекущееПВД не попадает отбор.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот