Имя: Пароль:
1C
1С v8
КД 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) не нашёл.