|
УФ в ОФ 1с8.3 УПП Ø (rphosts 15.04.2016 05:00) | ☑ | ||
---|---|---|---|---|
0
Casper211
14.04.16
✎
14:52
|
Доброго дня. Підскажіть будь ласка як переробити з управляемой формы в звичайну форму. Мені треба преобразование дерева значений в таблицу значений и обратно. Была необходимость в документе, выводить информацию в виде дерева и хранить ее в табличных частях документа.
Я нашел вот такое: "Дерево значений в таблицу значений Дано: дерево значений (2 колонки) и таблица значений (4 колонки). Две дополнительные колонки в таблице значений нужны для обратного преобразования, если оно не требуется то и колонки не нужны. Код выглядит так:" &НаСервере Процедура ВТЗНаСервере() тДерево = РеквизитФормыВЗначение("Дерево"); тТаблица = РеквизитФормыВЗначение("Таблица"); ПреобразоватьВТЗРекурсия(тДерево, тТаблица, Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")); тДерево.Строки.Очистить(); ЗначениеВРеквизитФормы(тТаблица, "Таблица"); ЗначениеВРеквизитФормы(тДерево, "Дерево"); КонецПроцедуры &НаСервере Процедура ПреобразоватьВТЗРекурсия(тДерево, тТаблица, ГУИД) Для Каждого тСтр Из тДерево.Строки Цикл нСтр = тТаблица.Добавить(); нСтр.Колонка1 = тСтр.Колонка1; нСтр.Колонка2 = тСтр.Колонка2; нСтр.Родитель = ГУИД; нСтр.ГУИД = Новый УникальныйИдентификатор(); Если тСтр.Строки.Количество()>0 Тогда ПреобразоватьВТЗРекурсия(тСтр, тТаблица, нСтр.ГУИД); КонецЕсли; КонецЦикла; КонецПроцедуры Таблица значений в дерево значений Обратное преобразование производится при помощи двух лишних колонок («ГУИД» и «Родитель») если из таблицы значений была удалена какая-то строка, то все подчиненные ей строки также будут удалены. Код выглядит так: &НаСервере Процедура ВДЗНаСервере() тДерево = РеквизитФормыВЗначение("Дерево"); тТаблица = РеквизитФормыВЗначение("Таблица"); ПреобразоватьВДЗРекурсия(тДерево, тТаблица, Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")); тТаблица.Очистить(); ЗначениеВРеквизитФормы(тТаблица, "Таблица"); ЗначениеВРеквизитФормы(тДерево, "Дерево"); КонецПроцедуры &НаСервере Процедура ПреобразоватьВДЗРекурсия(тДерево, тТаблица, ГУИД) тПоиск = Новый Структура("Родитель", ГУИД); тМассив = тТаблица.НайтиСтроки(тПоиск); Для Каждого тСтр Из тМассив Цикл нСтр = тДерево.Строки.Добавить(); нСтр.Колонка1 = тСтр.Колонка1; нСтр.Колонка2 = тСтр.Колонка2; ПреобразоватьВДЗРекурсия(нСтр, тТаблица, тСтр.ГУИД); КонецЦикла; КонецПроцедуры Я подумал может как-то переделать в ОФ. Подскажите пожалуйста, или может вы уже сделали такое, поделитесь опытом. Спасибо. Работу приведенного выше кода можно посмотреть в маленькой обработке. http://1c-programmer-blog.ru/wp-content/uploads/2015/03/DZTZ.rar |
|||
1
Casper211
14.04.16
✎
14:53
|
Извините, не то скопировал.
"Здравствуйте. Подскажите пожалуйста как переделать с управляемой формы в обычную форму. Мне надо преобразование дерева значений в таблицу значений и обратно. Была необходимость в документе, выводить информацию в виде дерева и хранить ее в табличных частях документа." |
|||
2
dimaldinho
14.04.16
✎
15:00
|
(0) Я подумал может как-то переделать в ОФ
1. Убрать директивы компиляции: &НаСервере 2. готово |
|||
3
dimaldinho
14.04.16
✎
15:00
|
РеквизитФормыВЗначение+ЗначениеВРеквизитФормы - и вот это убрать
|
|||
4
Casper211
14.04.16
✎
15:01
|
(3) Спасибо за подсказку, я сейчас попробую
|
|||
5
Casper211
14.04.16
✎
23:03
|
(3) Все получилось. Благодарю вас
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |