Для начала, давайте разберемся, для чего это нужно!? Например, требуется передать таблицу значений с клиента на сервер, либо передать ее из одной базы в другую без написания сложных правил обмена.
На помощь придут 3 простых способа:
Способ 1: использование ЗначениеВСтрокуВнутр()
Самый простой и быстрый способ — использовать функцию ЗначениеВСтрокуВнутр(), встроенную в платформу. На одной стороне (стороне отправки) мы упаковываем данные во внутренний формат:
тзВнутр = ЗначениеВСтрокуВнутр(тз);
На другой (приемной) стороне, мы распаковываем полученные данные:
тз = ЗначениеИзСтрокиВнутр(тзВнутр);
и продолжаем с ними работу, как будто никуда не передавали.
Способ 2: использование сериализации XML
На платформе 1С:Предприятие 8 большинство типов значений сериализуются (м.б. представлены в строковом виде). Таблица значений — не исключение. На стороне отправки мы упаковываем данные в формат XML:
//Создать объект записи в XML ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); //конвертация таблицы значений СериализаторXDTO.ЗаписатьXML(ЗаписьXML, тз); ДанныеСтр = ЗаписьXML.Закрыть();
Дальше мы можем сохранить полученную строку в файле, отправить по почте и все что заблагорассудится. На приемной стороне достаточно будет распаковать эти данные:
//Создаем объект чтения из XML ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ДанныеСтр); //Читаем таблицу значений из XML тз = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
Способ 3: использование временного хранилища
Механизм временного хранилища предназначен для передачи некоторых значений мутабельного типа между клиентом и сервером (как туда, так и обратно). На стороне отправки мы помещаем данные во временное хранилище и передаем на приемный конец только адрес во временном хранилище:
//помещаем данные и получим адрес АдресХранилща= ПоместитьВоВременноеХранилище(тз); //передаем полученный адрес серверу МодульВызовСервера.ВыполнитьОбработку(АдресХранилща);
На приемной стороне достаточно будет получить эти данные из временного хранилища по адресу:
тз = ПолучитьИзВременногоХранилища(АдресХранилща);
Поделиться страницей в соц.сетях