|
Сериализация объектов 1С своими руками. XDTO? | ☑ | ||
|---|---|---|---|---|
|
0
AleGol
17.10.11
✎
08:45
|
Пишу web приложение, частично основанное на данных 1С. Для взаимодействия использую web сервисы. Сразу оговорю, что все это мне в новинку, поэтому возможно не знаю некоторых базовых принципов.
У меня получилось связать свое java приложение с 1С и получать строку ответа (пока пробовал только строку указать в качестве возвр. значения. Для начала мне нужно тянуть список подразделений организации со всей иерархией. Хотел уже динамически создавать XML, передавать его и парсить джавой, но понимаю что это не лучший способ (избыточные обработки строк, кодинг в стиле copy-paste). Подумал про встроенную сериализацию ЗначениеВСтрокуВнутр(), применить его к дереву значений, куда выгружена структура подразделений, и парсить уже сериализованную строку. Но это чересчур сложно + при изменении структуры 1С заново приходится писать парсер. Прихожу к мнению, что мне нужен СериализаторXDTO, для каждого объекта, будь то справочник или дерево, реализовать схему XDTO и сереализовывать объекты таким способом. Мне кажется, что ход мыслей правильный, хотелось бы пообщаться с теми, кто это уже проделывал. |
|||
|
1
DmitrO
17.10.11
✎
08:59
|
Ход мыслей не правильный.
Надо создать в 1С веб-сервисы с такими схемами и структурами возвращаемых данных, которые необходимы для веб-приложения. В веб-приложении пользоваться ими. Для получение html результата будет удобно использовать XLT. |
|||
|
2
AleGol
17.10.11
✎
09:23
|
XLT - Excel Template? Я извиняюсь, но это, по-моему, совсем из другой оперы. Если говорить про шаблон html, то я использую jsp страницы.
Ладно, мой случай усложнен иерархией. Допустим я хочу передать из 1С в java одномерный массив, список. Что нужно делать для этого. |
|||
|
3
AleGol
17.10.11
✎
10:21
|
Наверное XSLT, попытаюсь его применять
|
|||
|
4
Asmody
17.10.11
✎
10:51
|
(2) для передачи списка необходимо создать в пакете XDTO новый тип объекта, в него добавить свойство с типом объектов, которые будут помещаться в список, и поставить этому свойству "Максимальное количество"=-1.
Этот тип надо указать как тип возвращаемого значения методу веб-сервиса. заполнять как-то так: ... OrderListType = ФабрикаXDTO.Тип(URI, "OrderList"); orderList = ФабрикаXDTO.Создать(OrderListType); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл order = ШапкаЗаявкиXDTO(Выборка); // заполнение шапки документа ВыборкаСтрок = Выборка.Оборудование.Выбрать(); Пока ВыборкаСтрок.Следующий() Цикл order.items.Добавить(СтрокаОборудованиеXDTO(ВыборкаСтрок, Выборка)); // заполнение строки таб.части и добавление в список строк XDTO КонецЦикла; orderList.order.Добавить(order); // добавление документа в список КонецЦикла; Возврат orderList; |
|||
|
5
DmitrO
17.10.11
✎
13:02
|
(3) да, я имел в виду XSLT (XSL преобразование), сори
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |