Листинг

Листинг

Regal Porodilov
&НаСервере
Процедура ПрочитатьДвоичныеДанныеОтвета(ДвоичныеДанныеОтвета)
            ИмяФайла = ПолучитьИмяВременногоФайла("tgm");
            ДвоичныеДанныеОтвета.Записать(ИмяФайла);
            ДеревоЗн = Новый ДеревоЗначений();
            //{Для версии 1С 8.3.6 и выше
            ЧтениеJSON = Новый ЧтениеJSON();
            ЧтениеJSON.ОткрытьФайл(ИмяФайла);
            СформироватьДерево(ДеревоЗн, ДеревоЗн, ЧтениеJSON);
            ЧтениеJSON.Закрыть();
            //}

            //Создание колонок Реквизита формы типа ДанныеФормыДерево
            Если ЭтаФорма.Элементы.Дерево.ПодчиненныеЭлементы.Количество() = 0 Тогда
                МассивДобавляемыхРеквизитов = Новый Массив;
                Для Каждого Колонка Из ДеревоЗн.Колонки Цикл
                    МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево"));
                        КонецЦикла;
                        ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
            КонецЕсли;
            ////
    // Преобразование объекта прикладного типа ДеревоЗначений
    // в реквизит управляемой формы (данные формы)
    ЗначениеВРеквизитФормы(ДеревоЗн, "Дерево");
            //Создание колонок элемента формы типа ТаблицаФормы для отображения дерева
            //которое для наглядности разместили на форме дерево сообщений
            Если ЭтаФорма.Элементы.Дерево.ПодчиненныеЭлементы.Количество() = 0 Тогда
                Для Каждого Колонка Из ДеревоЗн.Колонки Цикл
                    НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), Элементы.Дерево);
                    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
                    НовыйЭлемент.ПутьКДанным = "Дерево." + Колонка.Имя;
                        КонецЦикла;
            КонецЕсли;
            ////
            ЗаполнитьРС(ДеревоЗн);
КонецПроцедуры