|
УниверсальныйОбменДаннымиХМЛ. Программная установка отбора | ☑ | ||
---|---|---|---|---|
0
Альбатрос
10.02.14
✎
13:28
|
Есть необходимость проводить выгрузку программно из сабжевой обработки. Не могу понять как установить отбор, в частности мне нужен отбор номенклатуры по списку значений. Не знаю, как задать отбор программно. Помогите, плиз!
Файлик = Новый ЧтениеТекста("D:\хз\share\Empty.txt"); СЗ = Новый СписокЗначений; Строчка = Файлик.ПрочитатьСтроку(); Пока Строчка <> неопределено цикл СЗ.Добавить(Справочники.Номенклатура.НайтиПоРеквизиту("Идентификатор", СокрЛП(Строчка))); Строчка = Файлик.ПрочитатьСтроку(); КонецЦикла; ОбработкаВыгрузка = Обработки.УниверсальныйОбменДаннымиXML; Выгрузка = ОбработкаВыгрузка.Создать(); Выгрузка.ИмяФайлаПравилОбмена = "D:\хз\share\ПравилаОбменаДанными.xml"; Выгрузка.ИмяФайлаОбмена = "D:\хз\share\Товар.xml"; Выгрузка.ЗагрузитьПравилаОбмена(); НастройкиПостроителя =Выгрузка.ПостроительОтчета.ПолучитьНастройки(); СтрокаПравил = Выгрузка.ТаблицаПравилВыгрузки.Строки.Найти("Номенклатура",,Истина); СтрокаПравил.ИспользоватьОтбор = ИСТИНА; СтрокаПравил.НастройкиПостроителя = НастройкиПостроителя; Форма = Выгрузка.ПолучитьФорму(); Форма.Открыть(); |
|||
1
Альбатрос
11.02.14
✎
05:33
|
Вопрос еще актуален )))
|
|||
2
Альбатрос
11.02.14
✎
05:33
|
ВТП = Выгрузка.ТаблицаПравилВыгрузки.Скопировать();
ТекущееПВД = ВТП.Строки.Найти("Номенклатура",,Истина); Построитель = Новый ПостроительОтчета; Отбор = Построитель.Отбор; ДоступныеПоляОтбора = Отбор.ПолучитьДоступныеПоля(); Поле = ДоступныеПоляОтбора.Добавить("Номенклатура", "Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); Поле.Отбор = Истина; Отбор.УстановитьДоступныеПоля(ДоступныеПоляОтбора); Если Отбор.Найти("Номенклатура") = Неопределено Тогда Отбор.Добавить("Номенклатура"); КонецЕсли; Отбор["Номенклатура"].Использование = Истина; Отбор["Номенклатура"].ВидСравнения = ВидСравнения.ВСписке; Отбор["Номенклатура"].Значение.ЗагрузитьЗначения(СЗ.ВыгрузитьЗначения()); ДоступностьПостроителя = Истина; Если Построитель.Отбор.Количество() > 0 Тогда ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки(); ТекущееПВД.ИспользоватьОтбор = ИСТИНА; КонецЕсли; Выгрузка.ТаблицаПравилВыгрузки = ВТП.Скопировать(); Форма = Выгрузка.ПолучитьФорму(); Форма.Открыть(); |
|||
3
Альбатрос
11.02.14
✎
05:34
|
не работает ссука...
|
|||
4
Альбатрос
11.02.14
✎
05:39
|
вот так заработало:
ВТП = Выгрузка.ТаблицаПравилВыгрузки.Скопировать(); ТекущееПВД = ВТП.Строки.Найти("Номенклатура",,Истина); Построитель = Новый ПостроительОтчета; Отбор = Построитель.Отбор; Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда Построитель.Текст = "ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _ | | |{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}"; КонецЕсли; Если Отбор.Найти("Справочник_Номенклатура") = Неопределено Тогда Отбор.Добавить("Справочник_Номенклатура"); КонецЕсли; Отбор["Справочник_Номенклатура"].Использование = Истина; Отбор["Справочник_Номенклатура"].ВидСравнения = ВидСравнения.ВСписке; Отбор["Справочник_Номенклатура"].Значение.ЗагрузитьЗначения(СЗ.ВыгрузитьЗначения()); ДоступностьПостроителя = Истина; Если Построитель.Отбор.Количество() > 0 Тогда ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки(); ТекущееПВД.ИспользоватьОтбор = ИСТИНА; КонецЕсли; Выгрузка.ТаблицаПравилВыгрузки = ВТП.Скопировать(); |
|||
5
Альбатрос
11.02.14
✎
05:41
|
Всем спасибо! )))
|
|||
6
Wobland
11.02.14
✎
06:00
|
вы прослушали утреннюю разминку для разума от Альбатрос
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |