7.
ZLENKO
398
17.03.12 09:40
Сейчас в теме
() В Рознице 1.0 перед ее внедрением пришлось переписать практически все что планировалось использовать. Обмен с управленческой базой на УПП был одним из "узких" моментов, т.к. и скорость не утраивала и на объемных документах установки цен он просто "падал" с ошибкой нехватки памяти. Технология XDTO предположительно должна была дать скорость сериалзации и десереализации и возможность обмена между конфигурациями разной структуры (но весьма сильно похожей). Около недели ушло на понимание самой технологии и как ее использовать в конкретной конфигурации. Был использован типовой механизм обмена, т.к. там много полезных механизмов типа "Монитор обмена", но заменена транспортная часть на XDTO. Труднее всего оказалось заставить две разные базы обмениваться, т.е. совместить их пространства имен. Разработчики из 1С не захотели обсуждать эту тему, т.к. это "нетиповое" применение механизма XDTO. Вобщем на скрещивание "ежиков с удавами" ушла еще неделя. Сериализация реализуется по сути одной командой, а вот с десериализацей пришлось помучиться т.к. та стройная схема, которая была в голове не сработала (сейчас уже не помню в чем именно там была проблема). Код десериализации получился не такой "красивый" как предполагалось, ну да то бог с ним - главное чтоб работал надежно. Вобщем еще две недели на разработку и тестирование. Но в самом конце постигло разочарование - данные составных типов сериализуются как AnyType и при десериализации пришлось вставить "толстый костыль" - определение типа с жестко зашитым именем принимаемых метаданных в зависимости от имени реквизита. Именно это и остановило создать отдельное коммерческое решение на базе этой разработки. На самом деле обидно - решение очень удачное по скрости и надежности, достаточно универсальное. Честно говоря не смотрел в последних релизах 8.2 (14 и 15) - может там проблема сериализации составного типа уже решена, но думаю вряд ли.