Передача таблицы значений с сервера на клиент в виде массива.

Иногда возникает потребность в передаче таблицы значений с сервера на клиент, но на клиенте не предусмотрен тип "ТаблицаЗначений". Поэтому рекомендую передавать данные таблицы значений в виде массива, который содержит строки таблицы в виде структуры. Образец кода для реализации подобного механизма:
&НаКлиенте
Процедура МояПроцедура()
    МассивСтрок = ПолучитьМассивСтрок();
КонецПроцедуры

&НаСервере
Функция ПолучитьМассивСтрок()

    //добавим таблицу значений и заполним её
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Колонка1");
    Таблица.Колонки.Добавить("Колонка2");
    Таблица.Колонки.Добавить("Колонка3");
    //добавим строки
    НоваяСтрока = Таблица.Добавить();
    НоваяСтрока.Колонка1 = "Данные";
    НоваяСтрока.Колонка2 = 10;
    НоваяСтрока.Колонка3 = Истина;
    НоваяСтрока = Таблица.Добавить();
    НоваяСтрока.Колонка1 = "Данные 1";
    НоваяСтрока.Колонка2 = 20;
    НоваяСтрока.Колонка3 = Ложь;
   
    //создаём массив для передачи
    Массив = Новый Массив;
    //перебираем строки в таблице
    Для Каждого Строка Из Таблица Цикл
        //создаём структуру, которая будем выступать в роли строки таблицы значений
        СтрокаТЗ = Новый Структура;
        //перебираем колонки таблицы для заполнения структуры по именам колонок
        Для Каждого Колонка Из Таблица.Колонки Цикл
            //добавляем данные в структуру
            СтрокаТЗ.Вставить(Колонка.Имя,Строка[Колонка.Имя]);
        КонецЦикла;
        //добавляем структуру в массив
        Массив.Добавить(СтрокаТЗ);
    КонецЦикла;
   
    //возвращаем массив на клиента
    Возврат Массив;
КонецФункции

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.