Задание: Сделать импорт/экспорт данных контрагента/адресов и средств связи с контактной информацией
Сделано: работает импорт/экспорт контрагентов, импорт адресов, телефонов, емайлов, веб
Проблема: не могу экспортировать Адреса. Пишет "Экспорт детали не закончен". Смотрел эту тему: https://community.terrasoft.ua/forum/topic/7046 - мало помогло.
тип прописал в функции OnBeforeRecordExport(Param, Dataset, Select1C)
Нравится
Значение полей "Поле родителя в 1С" и "Поле родителя в TSCRM" такие же как у вас на скрине.
Я экспорт адресов реализовывал вручную скриптом, на событии OnAfterRecordExport сущности "Контрагенты":
пс: у меня там еще используется план обмена, поэтому на строки где встречается "ОбменДанными" не обращайте внимание.
//удалить все адреса и средства связи var ci1C = Param.Obj1C.РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); ci1C.Отбор.Объект.Установить(Select1C.Ссылка); ci1C.ОбменДанными.Получатели.АвтоЗаполнение = false; ci1C.Записать(); //Адреса var AccountID = Dataset('ID'); var ds = Services.GetNewItemByUSI('ds_AccountAddress'); ApplyDatasetFilter(ds, 'AccountID', AccountID, true); ds.Open(); while(!ds.IsEOF) { var ci1CMain = Param.Obj1C.РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); var ci1C = ci1CMain.Добавить(); ci1C.Объект = Select1C.Ссылка; var met=Param.Obj1C.Метаданные.Перечисления.Найти("ТипыКонтактнойИнформации"); var meta=met.ЗначенияПеречисления.Найти('Адрес'); var metalink = Param.Obj1C.Перечисления.ТипыКонтактнойИнформации[meta.Имя]; ci1C.Тип = metalink; var AdrTypeID = ds('KLADRAddressTypeID'); var AdrTypeUID1C = GetDatasetFieldValueByID('ds_AddressType', AdrTypeID, 'UID1C'); var AddressType1CLink; if(!IsEmptyValue(AdrTypeUID1C)) { AddressType1CLink = GetObjectLinkByUID( Param.Obj1C.Справочники.ВидыКонтактнойИнформации, AdrTypeUID1C, Param); ci1C.Вид = !AddressType1CLink.Пустая() ? AddressType1CLink : null; ci1C.Представление = ds('KLADRAddress'); ci1C.Поле1 = ds('KLADRAddressZIP'); ci1C.Поле2 = ds('KLADRAddressSubject'); ci1C.Поле3 = ds('KLADRAddressRegion'); ci1C.Поле4 = ds('KLADRAddressDistrictCenter'); ci1C.Поле5 = ds('KLADRAddressCity'); ci1C.Поле6 = ds('KLADRAddressStreet'); ci1C.Поле7 = ds('KLADRAddressHouse'); ci1C.Поле8 = ds('KLADRAddressCase'); ci1C.Поле9 = ds('KLADRAddressFlat'); ci1CMain.ОбменДанными.Получатели.АвтоЗаполнение = false; ci1CMain.Записать(false); } ds.GotoNext(); } ds.Close(); //средства связи