|   |   | 
| 
 | Сериализация по собственному пакету XDTO | ☑ | ||
|---|---|---|---|---|
| 0
    
        Zixxx 12.11.14✎ 11:39 | 
        Можно ли как-то сериализовать объекты по собственному пакету XDTO, например при записи объекта принубильно указать Имя и URI.
 Пробовал создавать фабрику из собственного пакета, далее на основании фабрики создавать сериализатор либо просто делать через собственную фабрику... Сериализатор.ЗаписатьXML(ЗаписьXML, Номенклатура, "CatalogObject.Алт_Номенклатура", "http://www.sc/integrator/current-config") Но всегда ругается что Номенклатура объект не соответствует типу. Видимо потому что тип у объекта номенклатуры всегда определяется из URI http://v8.1c.ru/8.1/data/enterprise/current-config Через ЗаполнитьЗначенияСвойств() делать не хочется, это уже будет не сериализация. Есть у кого какие мысли или решения? | |||
| 1
    
        Zixxx 12.11.14✎ 20:28 | 
        ап     | |||
| 2
    
        tridog 12.11.14✎ 20:37 | 
        (0) Это не так работает.
 а = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("URI", "Type")); и потом можешь работать с объектом а - заполнять значения свойств и т.д. Автоматический марщалинг (СериализаторXTO.Записать...) работает только для типов 1Совских схем. | |||
| 3
    
        Zixxx 12.11.14✎ 20:43 | 
        (2) Это понятно, но не то что требуется, нужно не заполнение а сериализация.
 Если после сериализации по данным можно составить схему и импортировать ее в пакет, почему в дальнейшем нельзя указать через какой именно тип я хочу делать сериализацию | |||
| 4
    
        tridog 12.11.14✎ 20:47 | 
        (3) Просто схемы недостаточно для автоматического маршалинга. Вдруг у тебя в твоей схеме даже свойства Parent нету, куда в таком случае сериализатор должен владельца записывать?     | |||
| 5
    
        Zixxx 12.11.14✎ 20:50 | 
        (4) Пусть будет тоже самое есть обратиться к несуществующему ключу структуры     | |||
| 6
    
        tridog 12.11.14✎ 21:41 | 
        (5) Т.е. ты хочешь сериализацию в свою схему, но только при условии, что своя схема полностью идентична схеме из поставки платформы?     | |||
| 7
    
        Zixxx 13.11.14✎ 12:54 | 
        (6) Дело в том что схема поставки не идентична объекту из поставки     | |||
| 8
    
        Гёдза 13.11.14✎ 12:58 | 
        (5) Мы обсуждаем "пусть будет" или "как есть"?     | |||
| 9
    
        Zixxx 13.11.14✎ 13:06 | 
        (8) Видно же что обсуждаем абсолютно все, сделать нужно как написал в (0)     | |||
| 10
    
        Zixxx 13.11.14✎ 13:09 | 
        (8) Если есть решение пиши как сделать, если нет то обсуждай, только ерунду не пиши     | |||
| 11
    
        tridog 13.11.14✎ 13:22 | 
        (7) Что значит не идентична? Тогда как по твоему сериализатор догадается, в какие поля чего пихать?     | |||
| 12
    
        Zixxx 13.11.14✎ 13:25 | 
        (11) А какое он поле поместить в IsFolder?     | |||
| 13
    
        DmitrO 13.11.14✎ 13:35 | 
        (0)Обратись к разработчикам платформы с требованием добавить в объекты события: ПриXDTOСериализации(ОбъектXDTO), ПриXDTOДесериализации(ОбъектXDTO).
 Скажи мол, так и так или сделаете или я ухожу и всем рассказываю что вы не сделали. :) | |||
| 14
    
        Zixxx 13.11.14✎ 13:36 | 
        (13) :)))     | |||
| 15
    
        tridog 13.11.14✎ 13:40 | 
        (12) ЭтоГруппа в IsFolder. Платформа об этом знает, потому что где-то у ней внутри явно прописано, как сериализовывать объекты встроенного языка в объекты XDTO по платформенным схемам.
 А с твоей схемой как она об этом догадается? | |||
| 16
    
        Serginio1 13.11.14✎ 13:41 | 
        (0) Замени в сериализовавнном тексте пространство имен. И будет тебе счастье     | |||
| 17
    
        DmitrO 13.11.14✎ 13:44 | 
        Ну еще можно предложить использовать XLT преобразование, но по сути своей, и по реализации все равно будет фигня какая-то. )     | |||
| 18
    
        Serginio1 13.11.14✎ 14:12 | 
        (17) По сути это КД нужно писать. Кстати вроде как в КД 3 они по такому пути и пошли 
 http://forum.infostart.ru/forum85/topic119294/ Давно пора. v8: XSD схема программно с нуля. | |||
| 19
    
        Zixxx 13.11.14✎ 15:19 | 
        (15) Я же уже написал как, IsFolder будет в пакете, если не будет то не надо     | |||
| 20
    
        tridog 13.11.14✎ 16:00 | 
        (19) Что значит не надо? Смысл сериализации в том, что после десериализации будет получен эквивалентный объект. Если часть полей включать в серилизацию, а часть не включать - это не сериализация, а проституция какая-то :)
 Кажется в ходе этого обсуждения я примерно понял, чего тебе надо, но СериализаторXDTO не предназначен для такого. Если понял правильно - то проще всего делать сериализацию через штатную схему current-config, а потом в полученном xml менять uri. Чтобы менять нужно было в одном месте - перед записью самих объектов запиши "корневой" элемент, для которого установи для current-config префикс. Тогда в xml явное указание uri будет только в одной сторке - ее и поменяешь) | |||
| 21
    
        Zixxx 13.11.14✎ 16:11 | 
        (20) Ага, думал может есть механизм какой-то     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |