|
Управляемая форма. Программно добавить строки в дереве | ☑ | ||
---|---|---|---|---|
0
Pasha
23.12.11
✎
19:13
|
Есть форма с деревом значений. Содержит в себе номенклатуру. И надо, чтобы по нажатии кнопочки формировались вложенные строки с комплектующими этой номенклатуры...
Никак не соображу, в каком месте соединить текущую строку и результат запроса, результатами которого заполню вложенные строки... |
|||
1
vmv
23.12.11
✎
20:45
|
в командной панели дерева формы - это очевидно, отдыхать тебе надо
|
|||
2
EvgeniuXP
23.12.11
✎
21:09
|
текущая строка это идентификатор, а не ссылка - различие с 8.1.
|
|||
3
Pasha
26.12.11
✎
17:02
|
(1) Хамить только не надо...
Вопрос наверное надо так сформулировать... Это можно сделать только на сервере, предварительно выгрузив в дерево значений, добавив в него все что надо и потом опять загрузив в форму... Или можно все таки просто добавить сразу строки на форме, заполнив их данными запроса... Но у меня естественно ругается на возращаемые данные, так как они в режиме клиента не перевариваются |
|||
4
vmv
26.12.11
✎
17:32
|
(3) можно и нужно на сервере, но наглядней на клитете если добавление не напрягает.
Нужно найти узел и ЭФД = Узел.ПодчиненныеЭлементы().Добавить() - это синтаксис для клиента и ЭлементаФормыДерево без всяких загрузок, т.е. модификация на лету ИЛИ СтрокаДЗ = Узел.ПодчиненныеЭлементы().Добавить() - это синтаксис для сервера и СтрокиДерваЗначений с послежующей загрузкой в форму модифицированного дерева |
|||
5
vmv
26.12.11
✎
17:33
|
СтрокаДЗ = Узел.Добавить() - так
|
|||
6
vmv
26.12.11
✎
17:35
|
если речь вообще о запросе, то его нужно поместить в динамический список и получать дерево сразу по вложениям в папки номеклатуры саму номеклатуру и т.д.
без всякой возни с заполнением дерева самостоятельно |
|||
7
Pasha
26.12.11
✎
19:04
|
(6) В данном случае дерево делается именно вручную. Такой типа конструктор некоей системы... Но некоторые позиции имеют комплектующие, и надо чтобы создав строчку с комплектом, юзер нажал кнопку и автоматически на основнии запроса к регистру "Комплектующие" добавились подчиненные строки с комплектующими... В толстом клиенте все элементарно, а тут вот беда... Строка у меня на клиенте, а результат запроса на сервере получается... Вот и не пойму, как их подружить :(
|
|||
8
vmv
26.12.11
✎
19:11
|
(7) если не хочешь все делать на сервере, с выполнением
ЗначениеВРеквизитФормы() то выход одни и практически уже стандартный // Функция СтрокаТаблицыЗначенийВСтруктуру создает // структуру со свойствами, как колонки таблицы // значений передаваемой строки // и устанавливает этим свойствам значения // из строки таблицы значений // // Параметры: // СтрокаТаблицыЗначений - СтрокаТаблицыЗначений // // ВозвращаемоеЗначение: // Структура // Функция СтрокаКоллекцииВСтруктуру(СтрокаТаблицыЗначений) Экспорт Структура = Новый Структура; Для каждого Колонка Из СтрокаТаблицыЗначений.Владелец().Колонки Цикл Структура.Вставить(Колонка.Имя, СтрокаТаблицыЗначений[Колонка.Имя]); КонецЦикла; Возврат Структура; КонецФункции передавай между клиентом и сервером состав свойств строки как структуру - это работает и на тонком и в типовых юзают усиленно |
|||
9
vmv
26.12.11
✎
19:12
|
В струкутуре должны быть примитивные значения реквизитов( строка, число...ссылка) допустимо описание типа, но никаких объектов и типов
|
|||
10
Pasha
26.12.11
✎
19:12
|
(8) Ага... Кажется то, что надо... Спасибо
|
|||
11
Pasha
26.12.11
✎
19:16
|
у меня УТ 11 как кладбище знаний (11,0,4,6)...но там нет таких механизмов
|
|||
12
vmv
26.12.11
✎
19:17
|
однако Дерево и Тз как и их строки на клиенте в чистом виде недоступны, а вот
из ЭлементаФормыКоллекции можно в чистом тонком вытажишь структуру свойств и отправить на сервер вообщем идея ясна - подменяй все что не лезет на сервер или клиент структурами, а там ЗаполнитьЗнаяениеСвойств(ТвояСтрока, ПереданнаяСтруктура) Структура неплохол стыкуется по ключам с дуругими совершенно не родственными с ней объектами, если не стыкуется, то перебором установить из нее значения куда надо. все |
|||
13
Pasha
11.01.12
✎
16:37
|
Тэкс, купив книжку по управляемому интерфейсу понял, что все надо делать, выгружая реквизит формы в значение....
Но столкнулся со следующей бедой. Дерево я выгрузил, запомнил идентификатор текущей строки, все что надо добавил, загрузил обратно... Но спозиционироваться (по методике в книжке)на той же строке не выходит из-за того что индекс у нее стал больше в два раза... Как с этим бороться? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |