Вход | Регистрация
 

Может у кого то есть пример обработки обмена

Может у кого то есть пример обработки обмена
Я
   Tarlich
 
29.09.20 - 11:48
Хочу сделать обмен (Из УТ 10,3), на КД 2 что бы пользователь в начале сам мог выбрать условия , заполнилось ТЗ , выбрал что надо ,
(как я понимаю) из макета подтянуться правила ....
Прошу какой нибудь примерчик
   Avalone2010
 
1 - 29.09.20 - 11:54
(0)Лови!    
//1. Так как для инормационной базы может быть указано несколько правил конвертации мы все сконвертированные файлы будем помещать в массив

    МассивФайлов = Новый Массив;
    
    //2. Процедемся по правилам выгрузки для нашей обрабатываемой базу

    Для Каждого СтрокаПравилВыгрузки Из ИнформационнаяБаза.ПравилаВыгрузкиДанных Цикл
        
        Если СтрокаПравилВыгрузки.Состояние = Перечисления.ОБМ_СостоянияИспользования.НеИспользуется Тогда Продолжить; КонецЕсли;
        
        //3. Получим правила конвертации

        ПравилоВыгрузки     = СтрокаПравилВыгрузки.Правило;
        ПравилоКонвертацииДД= ПравилоВыгрузки.ПравилаКонвертации.Получить()// двоичные данные

        
        //4. Сохранаяем правила конвертации

        ПутьКПравиламКД = ПолучитьИмяВременногоФайла("xml");
        ПравилоКонвертацииДД.Записать(ПутьКПравиламКД);// Записываем правила на диск    

        
        //5. Создаем файл выгрузки данных, в него будут записаны выгружаемые данные    

        ПутьКФайлуДанных = ПолучитьИмяВременногоФайла("xml");
        ТекстовыйДокумент= Новый ТекстовыйДокумент;
        ТекстовыйДокумент.Записать(ПутьКФайлуДанных);
        
        //6. Инициализируем обработку обмена

        ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
        
        //6.1 Загружаем макет правил конвертации

        ОбработкаОбмена.ЗагрузитьПравилаОбмена(ПутьКПравиламКД, "XMLФайл");
        
        //6.2 Устанавливаем файл выгрузки данных

        ОбработкаОбмена.ИмяФайлаПравилОбмена = ПутьКПравиламКД;
        ОбработкаОбмена.ИмяФайлаОбмена         = ПутьКФайлуДанных;
        
        //6.3 Заполнение параметров

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

        ОбработкаОбмена.ИнициализироватьПервоначальныеЗначенияПараметров();
        ОбработкаОбмена.ВыполнитьВыгрузку();
        
        //8. Запись данных обмена в массив файлов значения

        //8.1 Получим имя файла

        Рез = "";
        Выполнить(СтрокаПравилВыгрузки.ШаблонИмениФайла);
        
        ИмяФайла         = ?(ЗначениеЗаполнено(Рез), Рез, "Файл данных") + ".xml";
        ДвоичныеДанные     = Новый ДвоичныеДанные(ПутьКФайлуДанных);
        
        МассивФайлов.Добавить(Новый Структура("ИмяФайла, ДвоичныеДанные", ИмяФайла, ДвоичныеДанные));        
    КонецЦикла;    
    
    //Данные получены, выполним их отправку транспортом сообщения

    ВыполнитьОтправкуДанныхОбмена(ИнформационнаяБаза, МассивФайлов);
   Ёпрст
 
2 - 29.09.20 - 11:54
УниверсальныйОбменДаннымиXML
   Avalone2010
 
3 - 29.09.20 - 11:54
к(1) смотри с п.3
   Tarlich
 
4 - 29.09.20 - 12:05
(1) Спасибо ! направление понятно
   Tarlich
 
5 - 29.09.20 - 12:05
С Этим я все понял 

ПутьКПравиламКД = ПолучитьИмяВременногоФайла("xml");
        ПравилоКонвертацииДД.Записать(ПутьКПравиламКД)// Записываем правила на диск    


        
        //5. Создаем файл выгрузки данных, в него будут записаны выгружаемые данные    


        ПутьКФайлуДанных = ПолучитьИмяВременногоФайла("xml");
        ТекстовыйДокумент= Новый ТекстовыйДокумент;
        ТекстовыйДокумент.Записать(ПутьКФайлуДанных);
        
        //6. Инициализируем обработку обмена


        ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
        
        //6.1 Загружаем макет правил конвертации


        ОбработкаОбмена.ЗагрузитьПравилаОбмена(ПутьКПравиламКД, "XMLФайл");
        
        //6.2 Устанавливаем файл выгрузки данных


        ОбработкаОбмена.ИмяФайлаПравилОбмена = ПутьКПравиламКД;
        ОбработкаОбмена.ИмяФайлаОбмена         = ПутьКФайлуДанных;
   Tarlich
 
6 - 29.09.20 - 12:09
Я думаю что в Обработке будет табличнаячасть со списком документов (они могут быть разные по виду) - вот я и думаю как ее передать в обработку - параметром ?
   Avalone2010
 
7 - 29.09.20 - 13:45
(6) загрузи вот этим макаром правила твои и смотри свойства объекта "ОбработкаОбмена". Там по свойствам поковыряешься и сообразишь что и куда передавать.
   ДНН
 
8 - 29.09.20 - 13:57

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.