8.х ОБМЕН Обмен ЗУП в БП

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем s_mario, 3 дек 2008.

  1. TopicStarter Overlay
    s_mario
    Offline

    s_mario

    Регистрация:
    3 дек 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Помогите пожалуйста зашел в тупик!!!
    В документе сделал кнопку при нажатии на которую документ должен выгрузиться.
    Для выгрузки документа в процедуре выгрузки использую типовую УниверсальныйОбменДаннымиXML Как мне добавить документ в отбор в обработке УниверсальныйОбменДаннымиXML, т.к. мне надо выгрузить конкретно этот документ.

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

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

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

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

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

    // Загрузка в универсальную обработку XML правил обмена

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

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

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

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

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

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

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

    КонецПроцедуры
  2. TopicStarter Overlay
    s_mario
    Offline

    s_mario

    Регистрация:
    3 дек 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    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 Тогда
    ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    ТекущееПВД.ИспользоватьОтбор = ИСТИНА;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    //

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

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

    КонецПроцедуры

Поделиться этой страницей