Практика программирования на платформах 7.7, 8.0, 8.1 и 8.2 (обычные формы) приучила многих из нас к широкому применению объектов ТаблицаЗначений. При переводе старых разработок на управляемые форы регулярно встает вопрос изменения алгоритмов из-за невозможности использования их на стороне клиента Могу предложить способ, как достаточно легко обойти часть ограничений Несмотря на то,что то для объекта ТаблицаЗначений определена Доступность: "Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). ", известно - "может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTable" Используем возможность сериализации. На сервере таблицу значений опишем, получим соответствующий ей XML, передадим его как строку (или файл) на клиента, там заполним данные (почти так же как заполняли их в старых приложениях, в обычных формах), вернем на сервер и "в одно касание" получим обратно таблицу значений через СериализаторXDTO
Схема работы 1. В процедуре "НаСервере" создаем пустую таблицу значений нужной нам структуры
2. Сериализуем ее в XDTO и полученный XML возвращаем на клиента
3. "НаКлиенте" работаем с XML - по полученному с сервера XML (шаблону) формируем новый xml : 3.1 Шапка (заголовок и описания столбцов) та же
3.2 В цикле заполняем данные строк таблицы
3.3 Завершаем запись XML c данными
3.4 корректируем структуру XML (к моему большому сожалению, иначе пока не получилось )
Может быть, кто-нибудь подскажет, как без этого обойтись и заставить СериализаторXDTO.ЗаписатьXML сразу создавать записи вида <Value xsi:type="xs:string">1</Value> в то время как сейчас 1С мне возвращает <xsi:Value xsi:type="xs:string">1</xsi:Value> что потом не может быть прочитано в XDTO 4. Полученный таким образом XML передаем на сервер и там получаем из него требуемую таблицу значений
Источник: http://infostart.ru/public/504776/ |
|
|
|
Просмотров: 538 | |
Всего комментариев: 0 | |