|
План обмена БП - ERP | ☑ | ||
---|---|---|---|---|
0
Reclaim
10.10.16
✎
08:32
|
Здравствуйте! Столкнулся с такой проблемой, что данные не считываются и соответственно не загружаются из XML файла обмена.
В БП создан рукописный план обмена, заданы узлы и настройки обмена. Выгрузка происходит нормально. На стороне ERP создал план обмена с идентичным наименованием, заданы узлы с соответствием кодов узлов БП. "Синхронизация" проходит успешно, но при этом в загрузке объекты не обрабатываются (пишет выполнено, обработано 0). Направьте в какую сторону стоит смотреть В модуле менеджера разместил такой код: #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда Функция ИспользуемыеТранспортыСообщенийОбмена() Экспорт Результат = Новый Массив; Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FILE); Результат.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FTP); Возврат Результат; КонецФункции Функция ОбщиеДанныеУзлов(ВерсияКорреспондента, ИмяФормы) Экспорт Возврат ""; КонецФункции Процедура ОпределитьНастройки(Настройки, ИдентификаторНастройки = "") Экспорт Настройки.ПредупреждатьОНесоответствииВерсийПравилОбмена = Ложь; Настройки.ЗаголовокПомощникаСозданияОбмена = НСтр("ru='Настройка синхронизации с 1С:Бухгалтерия для Беларуси'"); Настройки.ЗаголовокУзлаПланаОбмена = НСтр("ru='Синхронизация с 1С:Бухгалтерия для Беларуси'"); КонецПроцедуры Процедура ПриВыгрузке(НастройкиТранспорта, ИмяСобытияЖурналаРегистрации, КоличествоОтправленныхОбъектов) Экспорт КонецПроцедуры Процедура ПриЗагрузке(НастройкиТранспорта, ИмяСобытияЖурналаРегистрации, КоличествоПолученныхОбъектов) Экспорт КонецПроцедуры #КонецЕсли В общем модуле "ОбменДаннымиПереопределяемый": Процедура ПриВыгрузкеДанных(СтандартнаяОбработка, Получатель, ИмяФайлаСообщения, ДанныеСообщения, КоличествоЭлементовВТранзакции, ИмяСобытияЖурналаРегистрации, КоличествоОтправленныхОбъектов) Экспорт Если ТипЗнч(Получатель) = Тип("ПланОбменаСсылка.НЗ_ОбменЕРП") Тогда ПриВыгрузке(СтандартнаяОбработка, Получатель, ИмяФайлаСообщения, ДанныеСообщения, КоличествоЭлементовВТранзакции, ИмяСобытияЖурналаРегистрации, КоличествоОтправленныхОбъектов); КонецЕсли; КонецПроцедуры Процедура ПриЗагрузкеДанных(СтандартнаяОбработка, Отправитель, ИмяФайлаСообщения, ДанныеСообщения, КоличествоЭлементовВТранзакции, ИмяСобытияЖурналаРегистрации, КоличествоПолученныхОбъектов) Экспорт Если ТипЗнч(Отправитель) = Тип("ПланОбменаСсылка.НЗ_ОбменЕРП") Тогда ПриЗагрузке(СтандартнаяОбработка, Отправитель, ИмяФайлаСообщения, ДанныеСообщения, КоличествоЭлементовВТранзакции, ИмяСобытияЖурналаРегистрации, КоличествоПолученныхОбъектов); КонецЕсли; КонецПроцедуры Процедура ПриВыгрузке(СтандартнаяОбработка, Получатель, ИмяФайлаСообщения, ДанныеСообщения, КоличествоЭлементовВТранзакции, ИмяСобытияЖурналаРегистрации, КоличествоОтправленныхОбъектов) Экспорт СтандартнаяОбработка = Ложь; НастройкиТранспорта = НастройкиТранспортаУзла(Получатель, Перечисления.ДействияПриОбмене.ВыгрузкаДанных); ОбщегоНазначения.МенеджерОбъектаПоСсылке(Получатель).ПриВыгрузке(НастройкиТранспорта, ИмяСобытияЖурналаРегистрации, КоличествоОтправленныхОбъектов); СоздатьФайлВыгрузкиЗаглушкуДляОбменаНаБСП(ИмяФайлаСообщения); КонецПроцедуры Процедура ПриЗагрузке(СтандартнаяОбработка, Отправитель, ИмяФайлаСообщения, ДанныеСообщения, КоличествоЭлементовВТранзакции, ИмяСобытияЖурналаРегистрации, КоличествоПолученныхОбъектов) Экспорт СтандартнаяОбработка = Ложь; НастройкиТранспорта = НастройкиТранспортаУзла(Отправитель, Перечисления.ДействияПриОбмене.ЗагрузкаДанных); ОбщегоНазначения.МенеджерОбъектаПоСсылке(Отправитель).ПриЗагрузке(НастройкиТранспорта, ИмяСобытияЖурналаРегистрации, КоличествоПолученныхОбъектов); КонецПроцедуры Процедура СоздатьФайлВыгрузкиЗаглушкуДляОбменаНаБСП(ИмяФайлаСообщения) ЗаписьХМЛ = Новый ЗаписьXML; ЗаписьХМЛ.ОткрытьФайл(ИмяФайлаСообщения); ТекстЗаглушка = "Этот файл создаётся типовым механизмом обмена БСП. Его следует игнорировать. Можно удалять."; ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Данные"); ЗаписьХМЛ.ЗаписатьТекст(ТекстЗаглушка); ЗаписьХМЛ.ЗаписатьКонецЭлемента(); ЗаписьХМЛ.Закрыть(); КонецПроцедуры Функция НастройкиТранспортаУзла(Узел, ВыполняемоеДействие) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СценарииОбменовДаннымиНастройкиОбмена.ВидТранспортаОбмена |ИЗ | Справочник.СценарииОбменовДанными.НастройкиОбмена КАК СценарииОбменовДаннымиНастройкиОбмена |ГДЕ | СценарииОбменовДаннымиНастройкиОбмена.УзелИнформационнойБазы = &УзелИнформационнойБазы | И СценарииОбменовДаннымиНастройкиОбмена.ВыполняемоеДействие = &ВыполняемоеДействие"; Запрос.УстановитьПараметр("УзелИнформационнойБазы", Узел); Запрос.УстановитьПараметр("ВыполняемоеДействие", ВыполняемоеДействие); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Количество() > 1 Тогда ВызватьИсключение "Для узлов данного плана обмена нельзя задавать больше чем по одному сценарию обмена!!!"; ИначеЕсли Выборка.Количество() = 0 Тогда ВызватьИсключение "Не найден сценарий обмена для данного узла обмена"; КонецЕсли; Выборка.Следующий(); НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбмена.НастройкиТранспорта(Узел, Выборка.ВидТранспортаОбмена); Возврат НастройкиТранспорта; КонецФункции |
|||
1
zak555
10.10.16
✎
08:37
|
Штаная работает
|
|||
2
Reclaim
10.10.16
✎
09:07
|
(1) Если убрать сценарий обмена для узла, то вылетает:
"ВызватьИсключение "Не найден сценарий обмена для данного узла обмена";", т.е. рукописный код загрузки/выгрузки отрабатывает, но при этом ничего не происходит... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |