|
| ||
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 |
|
Список тем форума |