|
Передача параметра из источника в приемник | ☑ | ||
---|---|---|---|---|
0
ArtemSV
18.02.16
✎
12:52
|
Суть задачи. Нужно допилить типовые правила синхронизации между Бухгалтерией 3.0 и Документооборотом 2.0, чтобы передавать программно установленный параметр из источника в приемник. Использую подход из v8: Передача параметра в правилах обмена. В событие ПередВыгрузкойДанных использую процедуру ПередатьОдинПараметрВПриемник при помощи, которой передаю параметр. В событие ПослеЗагрузкиПараметров собираюсь анализировать этот параметр. Однако типовая обработка «КонвертацияОбъектовИнформационныхБаз», через которую происходит обмен, читает файл выгрузки последовательно. И тэг «ЗначениеПараметров» в файле выгрузке должен располагаться после тэга «ИнформацияОТипахДанных». В моем же случае он располагается до "ИнформацияОТипахДанных" и загрузка в источники вываливается по ошибке «Ошибка формата сообщения обмена». Подскажите, как обойти эту проблему и передать корректно этот параметр.
|
|||
1
Ma3eIIa
18.02.16
✎
12:59
|
Сударь значит вы накосячили. там же написано. что ваш параметр будет доступен после обработчика ПердЗагрузкойДанных
http://1c-pro.ru/threads/parametr-pri-zagruzke-v-kd.51032/ Сохраняйте его в файл и дергайте его где вам надо |
|||
2
Ma3eIIa
18.02.16
✎
13:01
|
(0) Книга знаний: КД 2.х Передача произвольного параметра с объектом выгрузки при переносе 7.7-8.х
3. Передача глобальных параметров при конвертации 7.7 ==> 8 без правки штатных модулей что то подобное нужно и вам |
|||
3
ArtemSV
18.02.16
✎
13:20
|
(1) Проблема в том, что файл который создает КонвертацияОбъектовИнформационныхБаз кривой, и она не может его корректно прочитать. Обмен между двумя 8-ками
|
|||
4
Ma3eIIa
18.02.16
✎
13:23
|
(3) он кривым не может быть. у всех работает. у тебя кривой.
|
|||
5
ArtemSV
18.02.16
✎
13:45
|
Не знаю как у всех, а у меня в правиле выгрузке указано:
ПередВыгрузкойДанных>ПередатьОдинПараметрВПриемник("УИДДопРеквизитаТипДокумента",ПредопределенноеЗначение("Справочник.слОбъектыДокументооборота.ДопРеквизитТипДокумента").УникальныйИдентификатор); ПередатьОдинПараметрВПриемник("УИДДопРеквизитаФормаДокумента",ПредопределенноеЗначение("Справочник.слОбъектыДокументооборота.ДопРеквизитФормаДокумента").УникальныйИдентификатор); 13:52:14</ПередВыгрузкойДанных> <ПриПолученииИнформацииОбУдалении>МетаданныеОбъекта = Объект.Метаданные(); Если Метаданные.Справочники.Содержит(МетаданныеОбъекта) Тогда Отказ = Истина; УстановитьПометкуУдаленияУОбъекта(Объект, Истина, "Справочник"); КонецЕсли;</ПриПолученииИнформацииОбУдалении> <ПослеЗагрузкиПараметров> Попытка ДопРеквизитТипДокумента=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор(Параметры.УИДДопРеквизитаТипДокумента)); Если Найти(Строка(ДопРеквизитТипДокумента),"Объект не найден") Тогда Параметры.Вставить("ДопРеквизитТипДокумента",Неопределено); ТекстСообщения = НСтр("ru = 'Ошибка при обновлении значений доп. реквизита ""Тип документа"":'") +" не найден дополнительный реквизит с УИД " + Параметры.УИДДопРеквизитаТипДокумента; ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными с 1С:Документооборотом'"), УровеньЖурналаРегистрации.Ошибка,,,ТекстСообщения); Иначе Параметры.Вставить("ДопРеквизитТипДокумента",ДопРеквизитТипДокумента); КонецЕсли; Исключение Параметры.Вставить("ДопРеквизитТипДокумента",Неопределено); ТекстСообщения = НСтр("ru = 'Ошибка при обновлении значений доп. реквизита ""Тип документа"":'") + " " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными с 1С:Документооборотом'"), УровеньЖурналаРегистрации.Ошибка,,,ТекстСообщения); КонецПопытки; Попытка ДопРеквизитФормаДокумента=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор(Параметры.УИДДопРеквизитаФормаДокумента)); Если Найти(Строка(ДопРеквизитФормаДокумента),"Объект не найден") Тогда Параметры.Вставить("ДопРеквизитФормаДокумента",Неопределено); ТекстСообщения = НСтр("ru = 'Ошибка при обновлении значений доп. реквизита ""Форма документа"":'") +" не найден дополнительный реквизит с УИД " + Параметры.УИДДопРеквизитаФормаДокумента; ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными с 1С:Документооборотом'"), УровеньЖурналаРегистрации.Ошибка,,,ТекстСообщения); Иначе Параметры.Вставить("ДопРеквизитФормаДокумента",ДопРеквизитФормаДокумента); КонецЕсли; Исключение Параметры.Вставить("ДопРеквизитФормаДокумента",Неопределено); ТекстСообщения = НСтр("ru = 'Ошибка при обновлении значений доп. реквизита ""Форма документа"":'") + " " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными с 1С:Документооборотом'"), УровеньЖурналаРегистрации.Ошибка,,,ТекстСообщения); КонецПопытки; А в файле с данными: -<ЗначениеПараметра Тип="Строка" Имя="УИДДопРеквизитаТипДокумента"> <Значение>377b8562-d162-11e5-87d5-005056ab6200</Значение> </ЗначениеПараметра> -<ЗначениеПараметра Тип="Строка" Имя="УИДДопРеквизитаФормаДокумента"> <Значение>57adb046-d163-11e5-87d5-005056ab6200</Значение> </ЗначениеПараметра> -<ИнформацияОТипахДанных> |
|||
6
ArtemSV
18.02.16
✎
14:18
|
(4) проблема понятна?
|
|||
7
ArtemSV
18.02.16
✎
17:08
|
Реально нужна помощь знатоков конвертации и типовых обменов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |