1С тонкий клиент таблица значений

Многие спрашиваю, как передать тз с сервера на клиент – ниже несколько вариантов как это можно реализовать:

Через ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр

Через реквизит Формы

Через Временное хранилище

Через обычный возврат

Пробуйте и пишите в комментариях как делаете это Вы

Похожие FAQ

Еще в этой же категории

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

Olivvver
10.11.2017 06:10
Комментарий: 2

Для платформы 8.3 будет работать вариант с ЗначениеВРеквизитФормы() и ТЗ на форме

Raiser_ZX
28.05.2016 10:40
Комментарий: 1

Правильно ли я понимаю, что вернуть выборку на тонкий клиент вообще шансов нет никаких?

Допустим, есть управляемая форма, вызываемая из обработки. Надо заполнить табличную часть на этой форме. Соответственно на сервере запускаем запрос, результат запроса нужно каким-то образом вернуть на форму. Я пытаюсь вернуть таблицу значений.

В итоге получается, что:

1. Обычный возврат не работает, выкидывает ошибку XDTO.

2. ЗначениеИзСтрокиВнутр – на тонком клиенте недоступно.

3. Табличная часть формы на сервере недоступна.

Для начала, давайте разберемся, для чего это нужно!? Например, требуется передать таблицу значений с клиента на сервер, либо передать ее из одной базы в другую без написания сложных правил обмена.

На помощь придут 3 простых способа:

Способ 1: использование ЗначениеВСтрокуВнутр()

Самый простой и быстрый способ — использовать функцию ЗначениеВСтрокуВнутр(), встроенную в платформу. На одной стороне (стороне отправки) мы упаковываем данные во внутренний формат:

Читайте также:  Четырехугольник авсд параллелограмм тогда из определения

На другой (приемной) стороне, мы распаковываем полученные данные:

и продолжаем с ними работу, как будто никуда не передавали.

Способ 2: использование сериализации XML

На платформе 1С:Предприятие 8 большинство типов значений сериализуются (м.б. представлены в строковом виде). Таблица значений — не исключение. На стороне отправки мы упаковываем данные в формат XML:

Дальше мы можем сохранить полученную строку в файле, отправить по почте и все что заблагорассудится. На приемной стороне достаточно будет распаковать эти данные:

Способ 3: использование временного хранилища

Механизм временного хранилища предназначен для передачи некоторых значений мутабельного типа между клиентом и сервером (как туда, так и обратно). На стороне отправки мы помещаем данные во временное хранилище и передаем на приемный конец только адрес во временном хранилище:

На приемной стороне достаточно будет получить эти данные из временного хранилища по адресу:

До появления управляемых форм при работе с данными, особенно в 1С 7.7, использовалась таблица значений. Как же сейчас использовать таблицу значений в тонком клиенте 1с.

Если почитать справку к объекту Таблица значений, то мы видим, что он доступен только для: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Действительно в тонком клиенте его нельзя использовать т.к. клиентское приложение (в том числе и веб-клиент) о таком объекте не знают. Выходом из положения может послужить массив структур. Используя такое сочетание можно пользоваться данными как таблицей значений.

Кратко о массиве структур

Начнем со структуры. Структура это коллекция пар Ключ-Значение

"НомерСтроки" 1 "Номенклатура" Табурет "Цена"

если представить таблицу изображенную выше следующим образом: все ключи записать сверху, а значения под ними, то у нас получится строка похожая на строку таблицы значений

Читайте также:  Шумодав в реальном времени
"НомерСтроки" "Номенклатура" "Цена" 1 Табурет 25

Массив это коллекция содержащая значения подобно списку

Значение1
Значение2
Значение3

В нашем случае каждая строка массива будет содержать не просто значение, а структуру. Все структуры массива будут содержать одинаковые ключи

Структура1
Структура2
Структура3

Работа с массивом структур аналогична работе с таблицей значений

Пример функции преобразующей Таблицу значений в массив структур

Весь код функции исполняется на сервере, т.к. мы помним, что на клиенте нет такого объекта ТаблицаЗначений

В типовых конфигурациях такой функционал существует

В типовых конфигурациях в которых встроена БСП(Библиотека Стандартных Подсистем) в общем модуле "ОбщегоНазначения" есть функция "ТаблицаЗначенийВМассив", хотя возможно от версии БСП название метода и его расположение может быть другим

Оцените статью
Добавить комментарий

Adblock detector