|
Конвертация данных, подтверждение | ☑ | ||
---|---|---|---|---|
0
lg2marvel
25.02.21
✎
17:51
|
Всем привет. Конвертация данных, давно не сталкивался, много подзабыл.
Две базы (БП), односторонний обмен: Источник, Приемник. Из Источника выгружаю документ "ВводВЭксплуатациюОС" в документ "ОперацияУПР". Реализовано следующим образом: В правилах ПКО: ВводВЭксплуатациюОС", "ОперацияУПР", ПКС ОперацииУПР - все получаем из входящих данных. ПВД ВводВЭксплуатациюОС: подготовливаем структуру ВходящиеДанные и ВыгрузитьПоПравилу(Объект.Ссылка,,ВходящиеДанные,,"ОперацияУПР"); Отказ = Истина; в настройках ПКО ОперацияУПР галочка искать объект приемника по внутреннему идентификатору и автоматически генерировать номер. в настройках ПКО ВводВЭксплуатациюОС - искать объект приемника по внутреннемц идентификатору. Запускаю обмен из источника: отправка без ошибок, получение ошибка: Значение не является значением объектного типа (Менеджер) {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(8978)}: УникальныйИдентификаторИсточника = СтруктураСвойств.Менеджер.ПолучитьСсылку(УникальныйИдентификаторИсточника); {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(16076)}: ПоследнийОбъектЗагрузки = ПрочитатьИнформациюОРегистрацииОбъекта(); {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2667)}: ПроизвестиЧтениеДанныхВРежимеВнешнегоСоединения(ЧтениеСообщения); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(5480)}: ОбработкаОбменаДаннымиВнешнееСоединение.ВыполнитьВыгрузкуДанных(ОбработкаДляЗагрузкиДанных); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(2539)}: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ, {Обработка.ВыполнениеОбменаДанными.МодульМенеджера(26)}: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( {(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(4892)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(719)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыПроцедуры); {ОбщийМодуль.ДлительныеОперации.Модуль(710)}: ВыполнитьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры); При этом документы в приемнике создались. Ок, лезу в отладку (в базе источнике, в базе приемнике ошибка отправки: возникла ощшибка в базе корреспонденте): Обработка.КонвертацияОбъектовИнформационныхБаз Функция ПрочитатьИнформациюОРегистрацииОбъекта() // Присваиваем ПЕРЕКРЕСТНЫЕ значения переменным; РС симметричен. УникальныйИдентификаторПриемника = одАтрибут(ФайлОбмена, ТипСтрока, "УникальныйИдентификаторИсточника"); УникальныйИдентификаторИсточника = одАтрибут(ФайлОбмена, ТипСтрока, "УникальныйИдентификаторПриемника"); ТипПриемника = одАтрибут(ФайлОбмена, ТипСтрока, "ТипИсточника"); ТипИсточника = одАтрибут(ФайлОбмена, ТипСтрока, "ТипПриемника"); ПустойНабор = одАтрибут(ФайлОбмена, ТипБулево, "ПустойНабор"); Идентификаторы есть, ТипПриемника есть, ТипИсточника - нет и как с этим быть? Пересмотрел кучу примеров, как-то упускается из виду этот момент. Подскажите плз. |
|||
1
vde69
25.02.21
✎
17:57
|
а где узел?
|
|||
2
vde69
25.02.21
✎
17:58
|
ну и смотреть чего ты там подготовил во входящих данных :)
|
|||
3
lg2marvel
25.02.21
✎
17:58
|
(1) Узел?, не понял Вас
|
|||
4
lg2marvel
25.02.21
✎
17:59
|
(2)
ВходящиеДанные = Новый Структура; ВходящиеДанные.Вставить("Комментарий", Объект.Комментарий); ВходящиеДанные.Вставить("ВнешняяСсылка", ОбщегоНазначения.АдресПубликацииИнформационнойБазыВИнтернете() + "#" + ПолучитьНавигационнуюСсылку(Объект.Ссылка) ); ВходящиеДанные.Вставить("Организация", Объект.Организация); ВходящиеДанные.Вставить("Содержание", Строка(Объект.Ссылка)); ВходящиеДанные.Вставить("Организация", Объект.Организация); ВходящиеДанные.Вставить("Дата", Объект.Дата); ВходящиеДанные.Вставить("ПометкаУдаления", Объект.ПометкаУдаления); ВходящиеДанные.Вставить("Проведен", Объект.Проведен); Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор, | ХозрасчетныйДвиженияССубконто.НомерСтроки КАК НомерСтроки, | ХозрасчетныйДвиженияССубконто.Активность КАК Активность, | ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт, | ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1, // | ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1 КАК ВидСубконтоДт1, | ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2, // | ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2 КАК ВидСубконтоДт2, | ХозрасчетныйДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3, // | ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3 КАК ВидСубконтоДт3, | ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт, | ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1, // | ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1 КАК ВидСубконтоКт1, | ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2, // | ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2 КАК ВидСубконтоКт2, | ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК СубконтоКт3, // | ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3 КАК ВидСубконтоКт3, | ХозрасчетныйДвиженияССубконто.Организация КАК Организация, | ХозрасчетныйДвиженияССубконто.ВалютаДт КАК ВалютаДт, | ХозрасчетныйДвиженияССубконто.ВалютаКт КАК ВалютаКт, | ХозрасчетныйДвиженияССубконто.НалоговоеНазначениеДт КАК НалоговоеНазначениеДт, | ХозрасчетныйДвиженияССубконто.НалоговоеНазначениеКт КАК НалоговоеНазначениеКт, | ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма, | ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаДт КАК ВалютнаяСуммаДт, | ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаКт КАК ВалютнаяСуммаКт, | ХозрасчетныйДвиженияССубконто.КоличествоДт КАК КоличествоДт, | ХозрасчетныйДвиженияССубконто.КоличествоКт КАК КоличествоКт, | ХозрасчетныйДвиженияССубконто.СуммаНУДт КАК СуммаНУДт, | ХозрасчетныйДвиженияССубконто.СуммаНУКт КАК СуммаНУКт, | ХозрасчетныйДвиженияССубконто.Содержание КАК Содержание, | ХозрасчетныйДвиженияССубконто.НомерЖурнала КАК НомерЖурнала, | ХозрасчетныйДвиженияССубконто.СчетДополнительный КАК СчетДополнительный, | ХозрасчетныйДвиженияССубконто.НеКорректироватьСтоимостьАвтоматически КАК НеКорректироватьСтоимостьАвтоматически, | ХозрасчетныйДвиженияССубконто.НомерИсходнойПроводки КАК НомерИсходнойПроводки // | ХозрасчетныйДвиженияССубконто.МоментВремени КАК МоментВремени |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &Регистратор, , ) КАК ХозрасчетныйДвиженияССубконто |"; Запрос.УстановитьПараметр("Регистратор", Объект.Ссылка); тз = Запрос.Выполнить().Выгрузить(); ВходящиеДанные.Вставить("Хозрасчетный", тз); ВходящиеДанные.Вставить("СуммаОперации", тз.Итог("Сумма")); ВыгрузитьПоПравилу(Объект.Ссылка,,ВходящиеДанные,,"ОперацияУПР"); Отказ = Истина; |
|||
5
vde69
25.02.21
✎
18:00
|
я на память не помню, но еще в части случаев надо перекресно пользоватся входящие и исходящие данные, по моему это твой случай
|
|||
6
lg2marvel
25.02.21
✎
18:00
|
(4) в обработчике ПВД ПередВыгрузкой
|
|||
7
vde69
25.02.21
✎
18:02
|
(4) у тебя не все необходимые свойства. Подумай, что является ключем поиска :)
|
|||
8
lg2marvel
25.02.21
✎
18:02
|
(5) т.е. добавлять регистрацию документа в приемнике и делать "холостую" выгрузку обратно в источник?
|
|||
9
lg2marvel
25.02.21
✎
18:03
|
(7) по уникальному идентификатору хотелось бы
|
|||
10
vde69
25.02.21
✎
18:03
|
должно быть типа (посмотри в файле у других ссылок)
"{Идентификатор}" |
|||
11
vde69
25.02.21
✎
18:06
|
(8) нет, по моему ты должен генерить ИсходящиеДанные, а в ПКО они уже станут входящими...
а вот когда идешь из ПКО в ПКС то там они всегда входящие |
|||
12
lg2marvel
25.02.21
✎
18:14
|
(10) нет такого нигде :-(
(11) Попробую конечно, но ведь док полностью передается заполненный в приемник |
|||
13
lg2marvel
25.02.21
✎
18:28
|
(11) данные отправились, все ок. При повторном запуске документы с регистрации снялись - ок.
Ошибка видимо в другом, возможно в том что в приемнике документы удалял для тестов. Значение не является значением объектного типа (Менеджер) {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(8978)}: УникальныйИдентификаторИсточника = СтруктураСвойств.Менеджер.ПолучитьСсылку(УникальныйИдентификаторИсточника); {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(16076)}: ПоследнийОбъектЗагрузки = ПрочитатьИнформациюОРегистрацииОбъекта(); {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2667)}: ПроизвестиЧтениеДанныхВРежимеВнешнегоСоединения(ЧтениеСообщения); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(5480)}: ОбработкаОбменаДаннымиВнешнееСоединение.ВыполнитьВыгрузкуДанных(ОбработкаДляЗагрузкиДанных); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(2539)}: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ, {Обработка.ВыполнениеОбменаДанными.МодульМенеджера(26)}: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( {(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(4892)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(719)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыПроцедуры); {ОбщийМодуль.ДлительныеОперации.Модуль(710)}: ВыполнитьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры); |
|||
14
lg2marvel
25.02.21
✎
19:00
|
вопрос закрыт, ошибка была не связанная с правилами. Пересоздал узел обмена - все ок
|
|||
15
lg2marvel
01.03.21
✎
16:01
|
Таки вопрос не закрыт :-(.
Объекты выгрузились, и при повторной синхронизации опять та же ошибка. В принципе на работоспособность не влияет, но не хорошо это. (5) О перекрестной передаче не подскажете где почитать, глянуть примеры? |
|||
16
lg2marvel
01.03.21
✎
16:18
|
В РегистрСведений.СоответствияОбъектовИнформационныхБаз.ФормаСписка не пишется в поле ТипПриемника значение. Попробую исправить
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |