Выгрузка документа в XML

Новая тема
"Помогите пожалуйста зашел в тупик!!!
В документе сделал кнопку при нажатии на которую документ должен выгрузиться.
Для выгрузки документа в процедуре выгрузки использую типовую УниверсальныйОбменДаннымиXML Как мне добавить документ в отбор в обработке УниверсальныйОбменДаннымиXML, т.к. мне надо выгрузить конкретно этот документ.

вот процедура выгрузки

Процедура ДействияФормыВыгрузкаВедомости(Кнопка)
   Перем мУниверсальнаяВыгрузкаДанных;

   мУниверсальнаяВыгрузкаДанных    = Обработки.УниверсальныйОбменДаннымиXML.Создать();
   //мУниверсальнаяВыгрузкаДанных    = ВнешниеОбработки.Создать("<Указать путь к обработке>"); //
 
   // Получим файл правил для выгрузки

   ПустьКФайлуПравил = НайтиФайлы("\\Buh\1с базы\Обмен\Правила выгрузки ведомости из ЗУП в БП", "ПравилаВыгрузкиИзЗУПвБП.xml");
   
   // Загрузка в универсальную обработку XML правил обмена

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

   Дата = Формат(Дата,"ДФ=yyyy-MM-dd");
   Время = СтрЗаменить(Формат(Дата,"ДЛФ=T"),":"," ");
   ИмяФайлаДанных = Новый Файл("ВыгрузкаИзЗУПвБп"+"_"+Дата+"_"+Время+"."+"xml");
   
ВременнаяТаблицаПравил = мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Скопировать();
   
// Вначале нужно подготовить таблицу выгрузки

    Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки Цикл
         Наименование = СтрокаУровня2.Имя;
         Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
                   СтрокаУровня2.Включить = 1;
        КонецЕсли;
    КонецЦикла;
       
   мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена    = ИмяФайлаДанных;
   мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();

КонецПроцедуры
"
По определенным правилам выгружаете?
"Вот что у меня получилось но никак не пойму как в УниверсальныйОбменДаннымиXML передать настройки отбора
выгружает все документы подряд в самой процедуре отбор правильный вот его и надо пеередать


Процедура ДействияФормыВыгрузкаВедомости(Кнопка)
   //ГАУИ.ВыгрузкаВедомостиВБП();

   Перем мУниверсальнаяВыгрузкаДанных;

   мУниверсальнаяВыгрузкаДанных    = Обработки.УниверсальныйОбменДаннымиXML.Создать();
   //мУниверсальнаяВыгрузкаДанных    = ВнешниеОбработки.Создать("<Указать путь к обработке>"); //

       
   // Получим файл правил для выгрузки

   ПустьКФайлуПравил = НайтиФайлы("\\Buh\1с базы\Обмен\Правила выгрузки ведомости из ЗУП в БП", "ПравилаВыгрузкиИзЗУПвБП.xml");
   
   // Загрузка в универсальную обработку XML правил обмена

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

//Задать имя файла данных


ДатаДок = Формат(Дата,"ДФ=yyyy-MM-dd");
ВремяДок = СтрЗаменить(Формат(Дата,"ДЛФ=T"),":","""");
ИмяФайлаДанных = Новый Файл("\\Buh\1с базы\Обмен\ИзЗУПвБП\"+ДатаДок+"_"+ВремяДок+"."+"xml");
мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = ИмяФайлаДанных.ПолноеИмя;

ВременнаяТаблицаПравил = мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Скопировать();

// Вначале нужно подготовить таблицу выгрузки


Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
СтрокаУровня2.Включить = 1;
КонецЕсли;
КонецЦикла;
мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки = ВременнаяТаблицаПравил.Скопировать();

Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
ТекущееПВД = СтрокаУровня2;

Построитель = Новый ПостроительОтчета;
Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда

//Свойства = Менеджеры[ТекущееПВД.ОбъектВыборки];


Построитель.Текст = "ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
|
|
|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";


КонецЕсли;

Отбор = Построитель.Отбор;
Если Отбор.Найти("Документ_ЗарплатаКВыплатеОрганизаций") = Неопределено Тогда
Отбор.Добавить("Документ_ЗарплатаКВыплатеОрганизаций");
КонецЕсли;

Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСсылка.ЗарплатаКВыплатеОрганизаций"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );

Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].Использование = Истина;
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].Значение = ЭтотОбъект.Ссылка;
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].ВидСравнения = ВидСравнения.Равно;

Если Построитель.Отбор.Количество() > 0 Тогда
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор = ИСТИНА;
КонецЕсли;
КонецЕсли;
КонецЦикла;

//

Вот тут надо как-то передать настройки отбора невъеду как сделать помогите
//

мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();

КонецПроцедуры
"
"Пожет поможет.
Вот в 7.7 делалось так:

СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("ТаблицаОбъектов", гТабОбъектов);
СписокПараметров.Установить("ИмяФайлаПравил", гПутьОбъекта_ПравилаКонвертации);
СписокПараметров.Установить("ИмяФайлаДанных", ФормИмяФайлаДанных);
СписокПараметров.Установить("ВыгружатьТолькоУказанные", 0);
СписокПараметров.Установить("ВключатьПравилаВФайл", 1);
СписокПараметров.Установить("НеОбрабатыватьПроведение", 0);
СписокПараметров.Установить("ФормФлНеВыгружатьБухИтоги",1);
СписокПараметров.Установить("БезОткрытияФормы", 1);
СписокПараметров.Установить("ПравилаКонвертации", гПравила);

СписокПараметров.Установить("ФормДатаНач", ДатаНач);
СписокПараметров.Установить("ФормДатаКон", ДатаКон);

Если Найти(гПутьОбъекта_УниверсальнаяОбработкаВыгрузки, ".ert") > 0 Тогда
ОткрытьФорму("Отчет", СписокПараметров, гПутьОбъекта_УниверсальнаяОбработкаВыгрузки);
Иначе
ОткрытьФорму(гПутьОбъекта_УниверсальнаяОбработкаВыгрузки, СписокПараметров);
КонецЕсли;

Ключевое место: гТабОбъектов. Это таблица с колонками:
гТабОбъектов = СоздатьОбъект("ТаблицаЗначений");
гТабОбъектов.НоваяКолонка("ИдПравила");
гТабОбъектов.НоваяКолонка("Тип");
гТабОбъектов.НоваяКолонка("Вид");
гТабОбъектов.НоваяКолонка("СписокОбъектов");

Пихаешь в нее все нужные объекты и все. Если ИдПравила будет пустым, то по алгоритму автоподбор правил будет."
у меня параметра тока 2 ДатаНач и ДатаКон все остальное через построитель составлються вот я в своей процедуре и сделал отбор так же как и в типовой обработки, получаю конкретный документ а как теперь его передать в настройки в обработку обмена вот загадка. Присвоить отбору свой отбор я не могу т.к. этот параметр тока чтение :(
"Перед выгрузкой еще раз надо:
мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки     = ВременнаяТаблицаПравил.Скопировать();

И все работает."
Читают тему
(гостей: 1)

Быстрый переход