Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как сериализовать документ по Правилам выгрузки?

Как сериализовать документ по Правилам выгрузки?
Я
   PaulMuller
 
24.04.19 - 16:04
Стала задачка сравнивать документы в разных базах по Com соединению. Для этого сериализирую фабрикой XDTO документ в источнике и приемнике. Между базами настроен обмен по правилам, следовательно сериализированный объект на базе источнике НУЖНО сериализовать с применением правил конвертации. Ну или как то-так.

Вот так вот получаю строки:

        SB_XMLWriter         = SourceBase.NewObject("XMLWriter");
    SB_XDTOSerializer     = SourceBase.NewObject("XDTOSerializer",SourceBase.XDTOFactory);
    SB_XMLWriter.SetString();
    SB_XDTOSerializer.WriteXML(SB_XMLWriter, SourceBaseElementObject);
    SB_RESULT             = SB_XMLWriter.Close();    
    
// Тута нужно не просто оригинал документа сериализовать, а пережевать его правилами конвертации, а потом сериализовать
    RB_XMLWriter        = new XMLWriter;
    RB_XDTOSerializer      = new XDTOSerializer(XDTOFactory);
    RB_XMLWriter.SetString();
    RB_XDTOSerializer.WriteXML(RB_XMLWriter, ReceiverBaseElementObject);
    RB_RESULT             = RB_XMLWriter.Close();
    
Правила перед выгрузкой меняют суммы, валюты, и на данный момент сравнение без учета правил показывают что эти поля отличаются. Поэтому нужно пережевать этот объект правилами обмена.

Есть вариант создавать файл выгрузки универсальной обработкой обмена и с него вытаскивать готовенький XMLузел, но есть хотелка не прибегать к привязке к этой обработке, по возможности, и сделать "красивее", лаконичнее.

Внимание вопросы:

1) Правила конвертации можно использовать только в среде УниверсальногоОбменаДаннымиХМЛ или есть еще как-то?
2) Может кто использовал экспортные процедуры УниверсальногоОбменаДаннымиХМЛ для частных задач?
3) Может есть какие-то другие программные ресурсы для подобных задач, или подходы к ним?
4)  Помогите советом в общем. Совсем не знаю с какой стороны подойти к решению. Гуглить такое сложновато, по ключевым словам кидает совсем другого характера статьи.
 
 
   Ёпрст
 
1 - 24.04.19 - 16:27
слит данные из этих баз в одну общую и там делать консолидированный отчет
   PaulMuller
 
2 - 24.04.19 - 16:43
(1) Базы очень разные, так просто это не сделать, в частности сравнение нужно для тестирования обмена, если собирать эти данные на второй базе делая обмен, то сравнение будет некорректным, + вторая база закрытая для изменений.
   PaulMuller
 
3 - 24.04.19 - 16:45
Мне бы просто способ посмотреть какой объект(после применений правил выгрузки) отправляется на вторую базу и какой пришел в итоге.
   Ёпрст
 
4 - 24.04.19 - 16:55
(3) дык в режиме отладки проверяй свои правила обмена
   PaulMuller
 
5 - 24.04.19 - 17:15
(4) Ну окей, правила обмена проверил, все гут. Завтра сотрудник скажет "Некоторые документы мигрировали без ПТУ" и что-бы найти подобные документы нужно сравнить базы. Или еще, на второй базе поменяли документ, а потом во время миграции он затрет измененные данные на второй базе, а этой обработкой можно такое отследить заранее.
   fisher
 
6 - 24.04.19 - 17:17
ИМХО, или самому копать 2) или ждать того, кто это уже делал.
   PaulMuller
 
7 - 24.04.19 - 17:19
(4) Многое в обмене зависит не только от самих правил, а и от прав пользователей, разными проверками запрета периодов миграции и проведения документов.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует