|   |   | 
| 
 | КД 3, ошибки проверки данных XDTO, и вообще, правильно ли выбран инструмент? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Morluginn 21.08.19✎ 13:18 | 
        Заранее извините за многословность, Конвертация данных 3.0 - технология для меня новая, пока "с выпученными глазами"...
 Есть задача собрать данные из 4-5 баз БП в пустую БП КОРП (разовая загрузка). Все конфигурации версии 3.0.71.89 (и БП, и КОРП), платформа 8.3.12.1685. Делал всё по статье: http://catalog.mista.ru/public/695523/ Исправлял обе обработки (MD83Exp.epf, Выгрузка правил синхронизации.epf) и обработку "ЗагрузкаПравилСинхронизацииИзФайлов" внутри КД как там написано, вроде всё заработало. Результат приделывал упомянутым там же методом "подключить расширение, которое полностью подменяет общий модуль с правилами", тоже вроде получилось. Получилось расширение, в котором три общих модуля (два своих, и один заимствованный), и один заимствованный план обмена. Свой модуль "ED_МенеджерОбменаЧерезУниверсальныйФормат" содержит то, что копируется из КД по кнопке "Сохранить модуль менеджера обмена" в КД. В Предприятии настраивал через "Администрирование" - "Синхронизация данных", через файлы в папке на сервере. Собственно всё, что я менял в стандартных правилах обмена, это поставил у всех справочников "По полям поиска" вместо "Сначала по УИД, потом по полям поиска", чтобы уменьшить задвоения. Кстати, логично ли это? Результат: огромная куча ошибок в журнале регистрации при попытке сделать выгрузку, и общая неудача. Ошибки, похоже, однотипные, примерно так: Направление: Отправка. ПОД: Документ_ПлатежноеПоручение_Отправка. ПКО: Документ_ПлатежноеПоручение_Отправка. Объект: Документ объект: Платежное поручение, Платежное поручение КПП-000246 от 31.07.2013 13:26:02 (e1cib/data/Документ.ПлатежноеПоручение?ref=b139441ea13d687411e2fab7f7a5ff2f). {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(912)}: Ошибка формирования объекта XDTO: Тип свойства <ОбщееСоставноеСвойство>. Имя свойства: <РеквизитыПлатежаБюджет>. {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(912)}: Ошибка формирования объекта XDTO: Тип свойства <ОбычноеСвойство>. Имя свойства: <ПоказательДаты>. {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(836)}: Ошибка при вызове метода контекста (Создать) ЗначениеXDTO = ФабрикаXDTO.Создать(Свойство.Тип, ЗначениеСвойства); по причине: Несоответствие типов XDTO по причине: Ошибка проверки данных XDTO: Значение: '01.01.0001' не соответствует простому типу: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Не понимаю, что за "ПоказательДаты" с пустой датой, и где это вообще искать... Ну, и ещё вопрос: для решения задачи я верный инструмент выбрал? Была мысль написать обработку с нуля через OLE, но выгрузка разовая, а справочников и документов несколько десятков как минимум, уж больно трудоёмко показалось. Есть ещё способы решения? | |||
| 1
    
        novichok79 21.08.19✎ 13:23 | 
        какой-то из реквизитов типа дата в поручении пустой, а по правилам выгрузки он пустым не должен быть, наверное бухгалтер его не указывает.
 далее - не формируется пакет XML к выгрузке и загрузка падает. {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(912)}: Ошибка формирования объекта XDTO: Тип свойства <ОбщееСоставноеСвойство>. Имя свойства: <РеквизитыПлатежаБюджет>. {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(912)}: Ошибка формирования объекта XDTO: Тип свойства <ОбычноеСвойство>. Имя свойства: <ПоказательДаты>. | |||
| 2
    
        Cyberhawk 21.08.19✎ 13:26 | 
        Разовая консолидация, да еще и между практически идентичными конфигурациями - КД 2 сам бог велел     | |||
| 3
    
        novichok79 21.08.19✎ 13:35 | 
        ну вот открыл старую БП, документ "ПлатежноеПоручение", реквизит в шапке "ПоказательДаты" есть.     | |||
| 4
    
        Morluginn 21.08.19✎ 13:48 | 
        (1) Спасибо! Вижу реквизит "ПоказательДаты" у Платежного поручения, и это строка. Сейчас попробую поискать все доки, где пусто...
 (2) А не будет ли там той же самой проблемы? Хотя... Наверное, можно попытаться тупо игнорировать этот реквизит, хоть в КД2, хоть в КД3? | |||
| 5
    
        Cyberhawk 21.08.19✎ 13:50 | 
        (4) "не будет ли там той же самой проблемы?" // Все твои проблемы из-за использования тонн кода обвязки БСП. С обработкой универсального обмена никаких проблем в принципе быть не может, кроме собственно фокусирования на правилах конвертации, но в твоем случае и они только сглаживают различия, а не вставляют палки в колеса.     | |||
| 6
    
        Morluginn 21.08.19✎ 15:02 | 
        Нашёл ещё Счета с пустыми Контрагентами, на которых тоже ругнулось.
 У меня вопрос: как проще всего запретить выгрузку непроведённых документов в моей ситуации? Желательно, скопом всех. Возможно, это решит проблему... | |||
| 7
    
        unregistered 21.08.19✎ 15:06 | 
        (0) >> КД 3 ... правильно ли выбран инструмент?
 >> (разовая загрузка) Дальше даже не читал и не вникал. Для разовой выгрузки однозначно КД 2. | |||
| 8
    
        unregistered 21.08.19✎ 15:08 | 
        + к (7) Причем где-то даже читал эту рекомендацию от 1С. Типа EnterpriseData - это для настроек серьёзных обменов на регулярной и долговременной основе, а для разового обмена - не ипите мозг и берите КД2.     | |||
| 9
    
        Morluginn 21.08.19✎ 16:32 | 
        (7) ОК, спасибо, понял.
 Но всё же, (6)? | |||
| 10
    
        Morluginn 21.08.19✎ 19:43 | 
        Где-то я затупил... Разыскал Платёжные поручения с пустым ПоказательДаты (их несколько десятков было, все непроведённые), просто записал туда "01.01.1000". На форме узла обмена сделал "зарегистрировать" со всеми флажками, выгружаю — ситуация та же самая, синхронизация не удалась, в журнале регистрации кучка тех же самых сообщений про ПоказательДаты.     | |||
| 11
    
        Morluginn 21.08.19✎ 19:54 | 
        И там почему-то опять "01.01.0001", а не "01.01.1000".     | |||
| 12
    
        Morluginn 21.08.19✎ 19:55 | 
        В журнале, имею в виду.     | |||
| 13
    
        Morluginn 21.08.19✎ 20:00 | 
        Наверное, не все нашёл... А какие строки, кроме "", по умолчанию преобразуются в пустую дату?     | |||
| 14
    
        Morluginn 22.08.19✎ 07:48 | 
        Тупняк был в том, что оно хочет "0" в этом поле, а была ещё пачка платёжек, где стояло буквально "01.01.0001", а не пустая строка. Получается, разночтения между работой типовых конфигурациий и созданными для них же правилами обмена.
 Документы вроде перенеслись, но не перенеслась учётная политика, из-за этого много чего не провелось. В целом, от КД3 крайне негативные впечатления — по сути, нерабочая вещь. Начиная с того, что всё нужно править только для того, чтобы оно просто запустилось, не говоря уж о работе. | |||
| 15
    
        Morluginn 22.08.19✎ 07:59 | 
        Возможность (6) не нашёл.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |