Выгрузка документа в XML
03.12.2008
13:41
#1
"Помогите пожалуйста зашел в тупик!!!
В документе сделал кнопку при нажатии на которую документ должен выгрузиться.
Для выгрузки документа в процедуре выгрузки использую типовую УниверсальныйОбменДаннымиXML Как мне добавить документ в отбор в обработке УниверсальныйОбменДаннымиXML, т.к. мне надо выгрузить конкретно этот документ.
вот процедура выгрузки
Процедура ДействияФормыВыгрузкаВедомости(Кнопка)
Перем мУниверсальнаяВыгрузкаДанных;
мУниверсальнаяВыгрузкаДанных = Обработки.УниверсальныйОбменДаннымиXML.Создать();
//мУниверсальнаяВыгрузкаДанных = ВнешниеОбработки.Создать("<Указать путь к обработке>"); //
// Получим файл правил для выгрузки
ПустьКФайлуПравил = НайтиФайлы("\\Buh\1с базы\Обмен\Правила выгрузки ведомости из ЗУП в БП", "ПравилаВыгрузкиИзЗУПвБП.xml");
// Загрузка в универсальную обработку XML правил обмена
мУниверсальнаяВыгрузкаДанных.ИмяФайлаПравилОбмена = ПустьКФайлуПравил;
мУниверсальнаяВыгрузкаДанных.РежимОбмена = "Выгрузка";
мУниверсальнаяВыгрузкаДанных.ЗагрузитьПравилаОбмена();
//Задать имя файла данных
Дата = Формат(Дата,"ДФ=yyyy-MM-dd");
Время = СтрЗаменить(Формат(Дата,"ДЛФ=T"),":"," ");
ИмяФайлаДанных = Новый Файл("ВыгрузкаИзЗУПвБп"+"_"+Дата+"_"+Время+"."+"xml");
ВременнаяТаблицаПравил = мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Скопировать();
// Вначале нужно подготовить таблицу выгрузки
Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
СтрокаУровня2.Включить = 1;
КонецЕсли;
КонецЦикла;
мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = ИмяФайлаДанных;
мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();
КонецПроцедуры
"
В документе сделал кнопку при нажатии на которую документ должен выгрузиться.
Для выгрузки документа в процедуре выгрузки использую типовую УниверсальныйОбменДаннымиXML Как мне добавить документ в отбор в обработке УниверсальныйОбменДаннымиXML, т.к. мне надо выгрузить конкретно этот документ.
вот процедура выгрузки
Процедура ДействияФормыВыгрузкаВедомости(Кнопка)
Перем мУниверсальнаяВыгрузкаДанных;
мУниверсальнаяВыгрузкаДанных = Обработки.УниверсальныйОбменДаннымиXML.Создать();
//мУниверсальнаяВыгрузкаДанных = ВнешниеОбработки.Создать("<Указать путь к обработке>"); //
// Получим файл правил для выгрузки
ПустьКФайлуПравил = НайтиФайлы("\\Buh\1с базы\Обмен\Правила выгрузки ведомости из ЗУП в БП", "ПравилаВыгрузкиИзЗУПвБП.xml");
// Загрузка в универсальную обработку XML правил обмена
мУниверсальнаяВыгрузкаДанных.ИмяФайлаПравилОбмена = ПустьКФайлуПравил;
мУниверсальнаяВыгрузкаДанных.РежимОбмена = "Выгрузка";
мУниверсальнаяВыгрузкаДанных.ЗагрузитьПравилаОбмена();
//Задать имя файла данных
Дата = Формат(Дата,"ДФ=yyyy-MM-dd");
Время = СтрЗаменить(Формат(Дата,"ДЛФ=T"),":"," ");
ИмяФайлаДанных = Новый Файл("ВыгрузкаИзЗУПвБп"+"_"+Дата+"_"+Время+"."+"xml");
ВременнаяТаблицаПравил = мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Скопировать();
// Вначале нужно подготовить таблицу выгрузки
Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
СтрокаУровня2.Включить = 1;
КонецЕсли;
КонецЦикла;
мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = ИмяФайлаДанных;
мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();
КонецПроцедуры
"
04.12.2008
09:52
#3
"Вот что у меня получилось но никак не пойму как в УниверсальныйОбменДаннымиXML передать настройки отбора
выгружает все документы подряд в самой процедуре отбор правильный вот его и надо пеередать
Процедура ДействияФормыВыгрузкаВедомости(Кнопка)
//ГАУИ.ВыгрузкаВедомостиВБП();
Перем мУниверсальнаяВыгрузкаДанных;
мУниверсальнаяВыгрузкаДанных = Обработки.УниверсальныйОбменДаннымиXML.Создать();
//мУниверсальнаяВыгрузкаДанных = ВнешниеОбработки.Создать("<Указать путь к обработке>"); //
// Получим файл правил для выгрузки
ПустьКФайлуПравил = НайтиФайлы("\\Buh\1с базы\Обмен\Правила выгрузки ведомости из ЗУП в БП", "ПравилаВыгрузкиИзЗУПвБП.xml");
// Загрузка в универсальную обработку XML правил обмена
мУниверсальнаяВыгрузкаДанных.ИмяФайлаПравилОбмена = ПустьКФайлуПравил[0].ПолноеИмя;
мУниверсальнаяВыгрузкаДанных.РежимОбмена = "Выгрузка";
мУниверсальнаяВыгрузкаДанных.ЗагрузитьПравилаОбмена();
//Задать имя файла данных
ДатаДок = Формат(Дата,"ДФ=yyyy-MM-dd");
ВремяДок = СтрЗаменить(Формат(Дата,"ДЛФ=T"),":","""");
ИмяФайлаДанных = Новый Файл("\\Buh\1с базы\Обмен\ИзЗУПвБП\"+ДатаДок+"_"+ВремяДок+"."+"xml");
мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = ИмяФайлаДанных.ПолноеИмя;
ВременнаяТаблицаПравил = мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Скопировать();
// Вначале нужно подготовить таблицу выгрузки
Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
СтрокаУровня2.Включить = 1;
КонецЕсли;
КонецЦикла;
мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки = ВременнаяТаблицаПравил.Скопировать();
Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
ТекущееПВД = СтрокаУровня2;
Построитель = Новый ПостроительОтчета;
Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда
//Свойства = Менеджеры[ТекущееПВД.ОбъектВыборки];
Построитель.Текст = "ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
|
|
|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
КонецЕсли;
Отбор = Построитель.Отбор;
Если Отбор.Найти("Документ_ЗарплатаКВыплатеОрганизаций") = Неопределено Тогда
Отбор.Добавить("Документ_ЗарплатаКВыплатеОрганизаций");
КонецЕсли;
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСсылка.ЗарплатаКВыплатеОрганизаций"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].Использование = Истина;
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].Значение = ЭтотОбъект.Ссылка;
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].ВидСравнения = ВидСравнения.Равно;
Если Построитель.Отбор.Количество() > 0 Тогда
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор = ИСТИНА;
КонецЕсли;
КонецЕсли;
КонецЦикла;
//
Вот тут надо как-то передать настройки отбора невъеду как сделать помогите
//
мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();
КонецПроцедуры
"
выгружает все документы подряд в самой процедуре отбор правильный вот его и надо пеередать
Процедура ДействияФормыВыгрузкаВедомости(Кнопка)
//ГАУИ.ВыгрузкаВедомостиВБП();
Перем мУниверсальнаяВыгрузкаДанных;
мУниверсальнаяВыгрузкаДанных = Обработки.УниверсальныйОбменДаннымиXML.Создать();
//мУниверсальнаяВыгрузкаДанных = ВнешниеОбработки.Создать("<Указать путь к обработке>"); //
// Получим файл правил для выгрузки
ПустьКФайлуПравил = НайтиФайлы("\\Buh\1с базы\Обмен\Правила выгрузки ведомости из ЗУП в БП", "ПравилаВыгрузкиИзЗУПвБП.xml");
// Загрузка в универсальную обработку XML правил обмена
мУниверсальнаяВыгрузкаДанных.ИмяФайлаПравилОбмена = ПустьКФайлуПравил[0].ПолноеИмя;
мУниверсальнаяВыгрузкаДанных.РежимОбмена = "Выгрузка";
мУниверсальнаяВыгрузкаДанных.ЗагрузитьПравилаОбмена();
//Задать имя файла данных
ДатаДок = Формат(Дата,"ДФ=yyyy-MM-dd");
ВремяДок = СтрЗаменить(Формат(Дата,"ДЛФ=T"),":","""");
ИмяФайлаДанных = Новый Файл("\\Buh\1с базы\Обмен\ИзЗУПвБП\"+ДатаДок+"_"+ВремяДок+"."+"xml");
мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = ИмяФайлаДанных.ПолноеИмя;
ВременнаяТаблицаПравил = мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки.Скопировать();
// Вначале нужно подготовить таблицу выгрузки
Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
СтрокаУровня2.Включить = 1;
КонецЕсли;
КонецЦикла;
мУниверсальнаяВыгрузкаДанных.ТаблицаПравилВыгрузки = ВременнаяТаблицаПравил.Скопировать();
Для Каждого СтрокаУровня2 Из ВременнаяТаблицаПравил.Строки[0].Строки Цикл
Наименование = СтрокаУровня2.Имя;
Если Наименование = "ЗарплатаКВыплатеОрганизаций" Тогда
ТекущееПВД = СтрокаУровня2;
Построитель = Новый ПостроительОтчета;
Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда
//Свойства = Менеджеры[ТекущееПВД.ОбъектВыборки];
Построитель.Текст = "ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
|
|
|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
КонецЕсли;
Отбор = Построитель.Отбор;
Если Отбор.Найти("Документ_ЗарплатаКВыплатеОрганизаций") = Неопределено Тогда
Отбор.Добавить("Документ_ЗарплатаКВыплатеОрганизаций");
КонецЕсли;
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСсылка.ЗарплатаКВыплатеОрганизаций"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].Использование = Истина;
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].Значение = ЭтотОбъект.Ссылка;
Отбор["Документ_ЗарплатаКВыплатеОрганизаций"].ВидСравнения = ВидСравнения.Равно;
Если Построитель.Отбор.Количество() > 0 Тогда
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор = ИСТИНА;
КонецЕсли;
КонецЕсли;
КонецЦикла;
//
Вот тут надо как-то передать настройки отбора невъеду как сделать помогите
//
мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();
КонецПроцедуры
"
04.12.2008
11:07
#4
"Пожет поможет.
Вот в 7.7 делалось так:
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("ТаблицаОбъектов", гТабОбъектов);
СписокПараметров.Установить("ИмяФайлаПравил", гПутьОбъекта_ПравилаКонвертации);
СписокПараметров.Установить("ИмяФайлаДанных", ФормИмяФайлаДанных);
СписокПараметров.Установить("ВыгружатьТолькоУказанные", 0);
СписокПараметров.Установить("ВключатьПравилаВФайл", 1);
СписокПараметров.Установить("НеОбрабатыватьПроведение", 0);
СписокПараметров.Установить("ФормФлНеВыгружатьБухИтоги",1);
СписокПараметров.Установить("БезОткрытияФормы", 1);
СписокПараметров.Установить("ПравилаКонвертации", гПравила);
СписокПараметров.Установить("ФормДатаНач", ДатаНач);
СписокПараметров.Установить("ФормДатаКон", ДатаКон);
Если Найти(гПутьОбъекта_УниверсальнаяОбработкаВыгрузки, ".ert") > 0 Тогда
ОткрытьФорму("Отчет", СписокПараметров, гПутьОбъекта_УниверсальнаяОбработкаВыгрузки);
Иначе
ОткрытьФорму(гПутьОбъекта_УниверсальнаяОбработкаВыгрузки, СписокПараметров);
КонецЕсли;
Ключевое место: гТабОбъектов. Это таблица с колонками:
гТабОбъектов = СоздатьОбъект("ТаблицаЗначений");
гТабОбъектов.НоваяКолонка("ИдПравила");
гТабОбъектов.НоваяКолонка("Тип");
гТабОбъектов.НоваяКолонка("Вид");
гТабОбъектов.НоваяКолонка("СписокОбъектов");
Пихаешь в нее все нужные объекты и все. Если ИдПравила будет пустым, то по алгоритму автоподбор правил будет."
Вот в 7.7 делалось так:
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("ТаблицаОбъектов", гТабОбъектов);
СписокПараметров.Установить("ИмяФайлаПравил", гПутьОбъекта_ПравилаКонвертации);
СписокПараметров.Установить("ИмяФайлаДанных", ФормИмяФайлаДанных);
СписокПараметров.Установить("ВыгружатьТолькоУказанные", 0);
СписокПараметров.Установить("ВключатьПравилаВФайл", 1);
СписокПараметров.Установить("НеОбрабатыватьПроведение", 0);
СписокПараметров.Установить("ФормФлНеВыгружатьБухИтоги",1);
СписокПараметров.Установить("БезОткрытияФормы", 1);
СписокПараметров.Установить("ПравилаКонвертации", гПравила);
СписокПараметров.Установить("ФормДатаНач", ДатаНач);
СписокПараметров.Установить("ФормДатаКон", ДатаКон);
Если Найти(гПутьОбъекта_УниверсальнаяОбработкаВыгрузки, ".ert") > 0 Тогда
ОткрытьФорму("Отчет", СписокПараметров, гПутьОбъекта_УниверсальнаяОбработкаВыгрузки);
Иначе
ОткрытьФорму(гПутьОбъекта_УниверсальнаяОбработкаВыгрузки, СписокПараметров);
КонецЕсли;
Ключевое место: гТабОбъектов. Это таблица с колонками:
гТабОбъектов = СоздатьОбъект("ТаблицаЗначений");
гТабОбъектов.НоваяКолонка("ИдПравила");
гТабОбъектов.НоваяКолонка("Тип");
гТабОбъектов.НоваяКолонка("Вид");
гТабОбъектов.НоваяКолонка("СписокОбъектов");
Пихаешь в нее все нужные объекты и все. Если ИдПравила будет пустым, то по алгоритму автоподбор правил будет."
04.12.2008
11:28
#5
у меня параметра тока 2 ДатаНач и ДатаКон все остальное через построитель составлються вот я в своей процедуре и сделал отбор так же как и в типовой обработки, получаю конкретный документ а как теперь его передать в настройки в обработку обмена вот загадка. Присвоить отбору свой отбор я не могу т.к. этот параметр тока чтение
Читают тему
(гостей: 1)