|
КД 3.0 обмен Справочник_БанковскиеСчета не тянет валюту при обмене документов. | ☑ | ||
---|---|---|---|---|
0
spiller26
04.02.20
✎
15:26
|
КД 3.0
Обмен между БП 3.0 и КА 2.4 самописный, взята стандартные правила отправки и приёма "Справочник_БанковскиеСчета" и "Справочник_Валюта". Версия формата 1.6. При обмене "Отправить все документы" за период, при создании Банковских счетов в приемнике не тянет "Валюту" и "Текст назначения", только "Владелец", "Ссылка" и "Номер счета". Если же сам банковский счет "зарегистрировать", то тянет недостающие данные "Валюту" и "Текст назначения" Не пойму как передать/принять правильно эти недостающие данные. ------------------------------------------------------------------------------------------ БП 3.0 ------------------------------------------------------------------------------------------ #Область Справочник_БанковскиеСчета_Отправка Процедура ДобавитьПКО_Справочник_БанковскиеСчета_Отправка(ПравилаКонвертации) ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации); ПравилоКонвертации.ИмяПКО = "Справочник_БанковскиеСчета_Отправка"; ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.БанковскиеСчета; ПравилоКонвертации.ОбъектФормата = "Справочник.БанковскиеСчета"; ПравилоКонвертации.ПриОтправкеДанных = "ПКО_Справочник_БанковскиеСчета_Отправка_ПриОтправкеДанных"; СвойстваШапки = ПравилоКонвертации.Свойства; ДобавитьПКС(СвойстваШапки, "Банк", "Банк", , "Справочник_Банки"); ДобавитьПКС(СвойстваШапки, "БанкДляРасчетов", "БанкДляРасчетов", , "Справочник_Банки"); ДобавитьПКС(СвойстваШапки, "ВалютаДенежныхСредств", "ВалютаДенежныхСредств", , "Справочник_Валюты"); ДобавитьПКС(СвойстваШапки, "Наименование", "Наименование"); ДобавитьПКС(СвойстваШапки, "НомерСчета", "НомерСчета"); ДобавитьПКС(СвойстваШапки, "ТекстКорреспондента", "ТекстКорреспондента"); ДобавитьПКС(СвойстваШапки, "ТекстНазначения", "ТекстНазначения"); ДобавитьПКС(СвойстваШапки, "", "Владелец", 1); СвойстваТЧ = ДобавитьПКТЧ(ПравилоКонвертации, "", "ДополнительныеРеквизиты"); ДобавитьПКС(СвойстваТЧ, "", "ЗначениеСвойства", 1); ДобавитьПКС(СвойстваТЧ, "", "Свойство", 1,"Справочник_ДополнительныеРеквизиты"); КонецПроцедуры Процедура ПКО_Справочник_БанковскиеСчета_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки) // Владелец Инструкция = Новый Структура("Значение, ИмяПКО"); Инструкция.Значение = ДанныеИБ.Владелец; Если ТипЗнч(ДанныеИБ.Владелец) = Тип("СправочникСсылка.Контрагенты") Тогда Инструкция.ИмяПКО = "Справочник_Контрагенты_Отправка"; ИначеЕсли ТипЗнч(ДанныеИБ.Владелец) = Тип("СправочникСсылка.Организации") Тогда Инструкция.ИмяПКО = "Справочник_Организации_Отправка"; ИначеЕсли ТипЗнч(ДанныеИБ.Владелец) = Тип("СправочникСсылка.ФизическиеЛица") Тогда Инструкция.ИмяПКО = "Справочник_ФизическиеЛица_Отправка"; КонецЕсли; ДанныеXDTO.КлючевыеСвойства.Вставить("Владелец", Инструкция); ВыгрузитьДополнительныеРеквизитыИСведения(КомпонентыОбмена, ДанныеИБ, ДанныеXDTO); КонецПроцедуры #КонецОбласти #Область Справочник_Валюты Процедура ДобавитьПКО_Справочник_Валюты(ПравилаКонвертации) ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации); ПравилоКонвертации.ИмяПКО = "Справочник_Валюты"; ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.Валюты; ПравилоКонвертации.ОбъектФормата = "Справочник.Валюты"; ПравилоКонвертации.ПриКонвертацииДанныхXDTO = "ПКО_Справочник_Валюты_ПриКонвертацииДанныхXDTO"; ПравилоКонвертации.ПередЗаписьюПолученныхДанных = "ПКО_Справочник_Валюты_ПередЗаписьюПолученныхДанных"; ПравилоКонвертации.ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска"; СвойстваШапки = ПравилоКонвертации.Свойства; ДобавитьПКС(СвойстваШапки, "Код", "Код"); ДобавитьПКС(СвойстваШапки, "Наименование", "Наименование"); ДобавитьПКС(СвойстваШапки, "НаименованиеПолное", "НаименованиеПолное"); ДобавитьПКС(СвойстваШапки, "Наценка", "Наценка"); ДобавитьПКС(СвойстваШапки, "ПараметрыПрописи", "ПараметрыПрописи"); ДобавитьПКС(СвойстваШапки, "СпособУстановкиКурса", "", 1); ДобавитьПКС(СвойстваШапки, "ЗагружаетсяИзИнтернета", "ЗагружаетсяИзИнтернета"); ПравилоКонвертации.ПоляПоиска.Добавить("Код"); ПравилоКонвертации.ПоляПоиска.Добавить("Наименование"); КонецПроцедуры Процедура ПКО_Справочник_Валюты_ПриКонвертацииДанныхXDTO(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена) ПолученныеДанные.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РучнойВвод; КонецПроцедуры Процедура ПКО_Справочник_Валюты_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) Если ДанныеИБ <> Неопределено Тогда // Если валюта уже существует в базе, // то не перезатираем ее данные. ПолученныеДанные = Неопределено; КонецЕсли; КонецПроцедуры #КонецОбласти ---------------------------------------------------------------------------------------------- КА 2.4 ---------------------------------------------------------------------------------------------- #Область Справочник_БанковскиеСчетаКонтрагентов_Получение Процедура ДобавитьПКО_Справочник_БанковскиеСчетаКонтрагентов_Получение(ПравилаКонвертации) ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации); ПравилоКонвертации.ИмяПКО = "Справочник_БанковскиеСчетаКонтрагентов_Получение"; ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.БанковскиеСчетаКонтрагентов; ПравилоКонвертации.ОбъектФормата = "Справочник.БанковскиеСчета"; ПравилоКонвертации.ПриКонвертацииДанныхXDTO = "ПКО_Справочник_БанковскиеСчетаКонтрагентов_Получение_ПриКонвертацииДанныхXDTO"; ПравилоКонвертации.ПередЗаписьюПолученныхДанных = "ПКО_Справочник_БанковскиеСчетаКонтрагентов_Получение_ПередЗаписьюПолученныхДанных"; ПравилоКонвертации.ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска"; СвойстваШапки = ПравилоКонвертации.Свойства; ДобавитьПКС(СвойстваШапки, "Банк", "Банк", , "Справочник_Банки"); ДобавитьПКС(СвойстваШапки, "БанкДляРасчетов", "БанкДляРасчетов", , "Справочник_Банки"); ДобавитьПКС(СвойстваШапки, "ВалютаДенежныхСредств", "", 1); ДобавитьПКС(СвойстваШапки, "Наименование", "Наименование"); ДобавитьПКС(СвойстваШапки, "НомерСчета", "НомерСчета"); ДобавитьПКС(СвойстваШапки, "ТекстКорреспондента", "ТекстКорреспондента"); ДобавитьПКС(СвойстваШапки, "ТекстНазначения", "ТекстНазначения"); ДобавитьПКС(СвойстваШапки, "Владелец", "", 1); ПравилоКонвертации.ПоляПоиска.Добавить("Владелец,НомерСчета"); КонецПроцедуры Процедура ПКО_Справочник_БанковскиеСчетаКонтрагентов_Получение_ПриКонвертацииДанныхXDTO(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена) // Владелец // Выбираем ПКО в зависимости от типа владельца. Если ДанныеXDTO.КлючевыеСвойства.Свойство("Владелец") Тогда Владелец = ДанныеXDTO.КлючевыеСвойства.Владелец; ИмяПКО = "Справочник_Контрагенты_Получение"; Если Найти(Владелец.ТипЗначения, "ФизическоеЛицо") > 0 Тогда ИмяПКО = "Справочник_ФизическиеЛица_Получение"; КонецЕсли; ПолученныеДанные.ДополнительныеСвойства.Вставить( "Владелец", Новый Структура("Значение,ИмяПКО", Владелец, ИмяПКО)); КонецЕсли; ДобавитьВалютуВДопСвойства(ПолученныеДанные, ДанныеXDTO, "ВалютаДенежныхСредств", "ВалютаДенежныхСредств"); ЗагрузитьДополнительныеРеквизиты(ПолученныеДанные, ДанныеXDTO, КомпонентыОбмена); КонецПроцедуры Процедура ПКО_Справочник_БанковскиеСчетаКонтрагентов_Получение_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) Если НЕ ЗначениеЗаполнено(ПолученныеДанные.Наименование) Тогда ПрисвоитьНаименованиеБанковскогоСчета(ПолученныеДанные, ДанныеИБ); КонецЕсли; ЗагрузитьДополнительныеСведения(?(ДанныеИБ = Неопределено, ПолученныеДанные.ПолучитьСсылкуНового(), ДанныеИБ.Ссылка), ПолученныеДанные.ДополнительныеСвойства, КомпонентыОбмена); КонецПроцедуры #КонецОбласти #Область Справочник_Валюты Процедура ДобавитьПКО_Справочник_Валюты(ПравилаКонвертации) ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации); ПравилоКонвертации.ИмяПКО = "Справочник_Валюты"; ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.Валюты; ПравилоКонвертации.ОбъектФормата = "Справочник.Валюты"; ПравилоКонвертации.ПриКонвертацииДанныхXDTO = "ПКО_Справочник_Валюты_ПриКонвертацииДанныхXDTO"; ПравилоКонвертации.ПередЗаписьюПолученныхДанных = "ПКО_Справочник_Валюты_ПередЗаписьюПолученныхДанных"; ПравилоКонвертации.ПослеЗагрузкиВсехДанных = "ОтложеннаяОбработка_Валюты"; ПравилоКонвертации.ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска"; СвойстваШапки = ПравилоКонвертации.Свойства; ДобавитьПКС(СвойстваШапки, "Код", "Код"); ДобавитьПКС(СвойстваШапки, "Наименование", "Наименование"); ДобавитьПКС(СвойстваШапки, "НаименованиеПолное", "НаименованиеПолное"); ДобавитьПКС(СвойстваШапки, "ПараметрыПрописи", "ПараметрыПрописи"); ПравилоКонвертации.ПоляПоиска.Добавить("Код"); КонецПроцедуры Процедура ПКО_Справочник_Валюты_ПриКонвертацииДанныхXDTO(ДанныеXDTO, ПолученныеДанные, КомпонентыОбмена) ПолученныеДанные.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РучнойВвод; КонецПроцедуры Процедура ПКО_Справочник_Валюты_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена) Если ДанныеИБ <> Неопределено И ЗначениеЗаполнено(ДанныеИБ.СпособУстановкиКурса) Тогда ПолученныеДанные.СпособУстановкиКурса = ДанныеИБ.СпособУстановкиКурса; КонецЕсли; КонецПроцедуры #КонецОбласти |
|||
1
spiller26
05.02.20
✎
09:52
|
Может кому пригодиться.
Цитата: "Следует иметь в виду, что в обмене через ED объекты по ссылке не выгружаются полностью, как это было в обмене по правилам КД 2.0. По ссылке выгружаются только ключевые реквизиты объекта, которые необходимы для поиска в базе-приемнике." Так что без регистрации будут только ссылки. |
|||
2
gae
05.02.20
✎
10:37
|
(1) То есть, если сам банковский счет не зарегистрирован к выгрузке, но зарегистрирован документ с этим счетом, то счет все-таки в приемнике создастся, но только с заполнением ключевых реквизитов?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |