Имя: Пароль:
1C
 
Передача параметра из источника в приемник
,
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
Реально нужна помощь знатоков конвертации и типовых обменов