ДеревоЗначений в реквизит формы
По теме из базы знаний
- Сохранение произвольных значений реквизитов объекта в реквизите формы
- Управляемая форма 1С 8.2 (8.3) – работа с деревом значений и таблицей значений. Часть I (Основы)
- Вывод Таблицы Значений или Дерева Значений на экран управляемой формы без объявления колонок в реквизитах формы
- Программный интерфейс для доработки форм
- Подсветка недействительных пользователей в форме "Группа доступа"
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
на сервере выполняешь
естественно, колонки исходного дерева и реквизита формы должны совпадать.
на форме "ДеревоЗначений" с типом "ДеревоЗначений" и колонками "имя" и "значение", получаю в переменную ДеревоЗнч разные зн
на сервере выполняешь
ЗначениеВРеквизитФормы(ДеревоЗапросов, "Отчет.ДеревоЗапросов");
естественно, колонки исходного дерева и реквизита формы должны совпадать.
(3) Тогда придется деревянный реквизит формы создавать программно и элемент формы для его отображения тоже (колонки тоже генерить программно).
Тогда сможете опять же программно перед каждой заливкой нового дерева сначала перестроить структуру реквизита и элемента формы под структуру нового дерева.
Тогда сможете опять же программно перед каждой заливкой нового дерева сначала перестроить структуру реквизита и элемента формы под структуру нового дерева.
(4) просто встречал чтение XML файла
может можно по аналогии
Процедура ПрочитатьXMLПоТегам(XMLФайл, ТекущийНаборСтрок)
Пока XMLФайл.Прочитать() Цикл
Если XMLФайл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
НоваяСтрока = ТекущийНаборСтрок.Добавить();
НоваяСтрока.Имя = XMLФайл.Имя;
НоваяСтрока.Значение = "";
Пока XMLФайл.ПрочитатьАтрибут() Цикл
НоваяСтрокаАтрибут = НоваяСтрока.Строки.Добавить();
НоваяСтрокаАтрибут.Имя = XMLФайл.Имя;
НоваяСтрокаАтрибут.Значение = СокрЛП(XMLФайл.Значение);
КонецЦикла;
ПрочитатьXMLПоТегам(XMLФайл, НоваяСтрока.Строки);
ИначеЕсли XMLФайл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Возврат;
ИначеЕсли XMLФайл.ТипУзла = ТипУзлаXML.Текст Тогда
ТекущийНаборСтрок.Родитель.Значение = СокрЛП(XMLФайл.Значение);
Иначе
Сообщить("Тип узла: " + XMLФайл.ТипУзла + " НЕ ОБРАБОТАН", СтатусСообщения.Важное);
Конецесли;
КонецЦикла;
КонецПроцедуры
Показатьможет можно по аналогии
(3) тогда как сказал herfis
анализируем колонки исходного дерева, и программно создаем реквизиты дерева на форме.
примерно так.
после этого, создаем элементы формы и связываем их с реквизитам
типа такого
естественно, процедуры и имена у тебя свои все будут.
анализируем колонки исходного дерева, и программно создаем реквизиты дерева на форме.
примерно так.
МассивРеквизитов = Новый Массив;
Если ТаблицаПараметры.Колонки.Найти(ИмяКолонки) = Неопределено Тогда
ТаблицаПараметры.Колонки.Добавить(ИмяКолонки, Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки()));
МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяКолонки, Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки()), "ПараметрыСвязи", ИмяКолонки));
КонецЕсли;
ИзменитьРеквизиты(МассивРеквизитов);
Показатьпосле этого, создаем элементы формы и связываем их с реквизитам
типа такого
ИмяТаблицы = "ПараметрыСвязи"+ИмяКолонки;
Если Элементы.Найти(ИмяТаблицы) = Неопределено тогда
Если ИмяГруппы<>неопределено тогда
// Передали имя группы, то пендюрим в нее
ИмяГруппировки = "ПараметрыСвязи"+ИмяГруппы;
Если Элементы.Найти(ИмяГруппировки) = неопределено тогда
НовыйЭлементГруппа = Элементы.Добавить(ИмяГруппировки, Тип("ГруппаФормы"), Элементы.ПараметрыСвязи);
НовыйЭлементГруппа = ВидГруппыФормы.ГруппаКолонок;
КонецЕсли;
НовыйЭлемент = Элементы.Добавить(ИмяТаблицы, Тип("ПолеФормы"), Элементы[ИмяГруппировки]);//Элементы.ПараметрыСвязи);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПараметрыСвязи." + ИмяКолонки;
Иначе
НовыйЭлемент = Элементы.Добавить(ИмяТаблицы, Тип("ПолеФормы"), Элементы.ПараметрыСвязи);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = "ПараметрыСвязи." + ИмяКолонки;
КонецЕсли;
КонецЕсли;
Показатьестественно, процедуры и имена у тебя свои все будут.
(7)
и как это должно на форме отображаться ?
Все зависит от того что внутри структуры. В принципе на форме есть вариант выбора "произвольный", но мутабельные объекты ты все равно на форму не затащишь. Возможно что-то возможно сериализовать.
Тут уже думай сам, как ты все это обыгрывать будешь, или может пойти каким то другим путем.
сегда являются структурами, все от
и как это должно на форме отображаться ?
Все зависит от того что внутри структуры. В принципе на форме есть вариант выбора "произвольный", но мутабельные объекты ты все равно на форму не затащишь. Возможно что-то возможно сериализовать.
Тут уже думай сам, как ты все это обыгрывать будешь, или может пойти каким то другим путем.
попробую ещё сконкретизировать задачу, есть данные с типом структура, и количество вложенностей структур в структуру я не знаю, эти данные мне нужно перенести в дерево значений, пока бьюсь над задачей, как сделать универсальный механизм по преоьразованию структуры в дерево значений,
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)