|
Динамическая таблица значений (управляемая форма) | ☑ | ||
---|---|---|---|---|
0
Uzumaki
22.05.13
✎
18:15
|
Добрый день всем!
Приступил к изучению режима управляемого приложения и вот первая проблема которую не смог решить на пару с гуглом. Создал внешнюю обработку для отладки запросов, то есть на форме многострочное текстовое поле, результатирующая таблица и кнопка выполнить. В качестве типа результатирующей таблицы выбирал динамический список и таблицу значений. В обоих случаях всё проходит без ошибок, однако, данные на форме не обновляются. Можно через удаление/добавление колонок (чтобы обновлялась таблица), однако, тогда придется парсить текст запроса, а это как бы изобретение велосипеда. Вопрос, в какую сторону копать, чтобы обновлять реквизит на форме не имея представления о структуре таблицы данных? |
|||
1
lapinio
22.05.13
✎
18:19
|
Динамический список не обновляется?
|
|||
2
lapinio
22.05.13
✎
18:23
|
Какой то велосипед. Есть консоль запросов зачем свою писать не понятно. Если динамический список, у него есть свойство текст запроса туда любой текст добавляешь и все ок.
|
|||
3
Uzumaki
22.05.13
✎
18:31
|
Динамический список не обновляется.
За консоль запросов спасибо, я на диске ИТС я нашел только для обычного приложения. |
|||
4
lapinio
22.05.13
✎
18:46
|
1) В дополнительных параметрах запуска написать /RunModeOrdinaryApplication и открыть эту консоль
2) Вставить в конфу консоль и поставить свойство открывать обычные формы в уФ 3) Скачать консоль для УФ 4)ОповеститьОбИзменении команда для динамического списка |
|||
5
Mitriy
22.05.13
✎
18:46
|
консоль не имеет смысла городить в управляемом интерфейсе, потому что конструктор запроса все равно доступен только в толстом клиенте... а в толстом клиенте и обычные формы работают в управляемом приложении...
|
|||
6
Uzumaki
22.05.13
✎
18:55
|
(4) ОповеститьОбИзменении - это немного не то. Допустим, если текст запроса "ВЫБРАТЬ 1 КАК ОДИН". Нет у динамического списка основной таблицы.
(5) Мне конструктор запроса не интересен, только текст. |
|||
7
Mitriy
22.05.13
✎
18:57
|
(6) ты конечно не поверишь, но динамическому списку основная таблица не нужна...
|
|||
8
Uzumaki
22.05.13
✎
19:09
|
(7) я охотно верю, но вот из описания:
Уведомления не влияют на динамические списки, у которых не задана основная таблица. Реквизит обязательный, что туда пихать? |
|||
9
Mitriy
22.05.13
✎
19:15
|
ничего не пихай...
|
|||
10
Uzumaki
22.05.13
✎
19:44
|
(9) Спасибо, не буду...
Я так понимаю, динамический список не может автоматически менять набор реквизитов-колонок после смены текста? Потому что запрос "ВЫБРАТЬ 1 КАК ПОЛЕ1" после указания в конфигураторе добавляет колонку ПОЛЕ1, после открытия формы в тонком клиенте в результатирующей таблице появляется строка с значением 1. При этом меняем программно текст запроса, допустим, на "ВЫБРАТЬ Ссылка КАК ПОЛЕ1 ИЗ Справочник.Любой" - все работает. Но тут же "ВЫБРАТЬ Ссылка КАК ПОЛЕ2 ИЗ Справочник.Любой" - не проходит, остается пустая таблица с одной колонкой ПОЛЕ1. |
|||
11
Uzumaki
23.05.13
✎
12:57
|
Решил проблему так:
&НаСервере Процедура ВыполнитьЗапросНаСервере(ТекстЗапроса) Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; ТЗ = Запрос.Выполнить().Выгрузить(); МассивУдаляемыхРеквизитов = ЭтаФорма.ПолучитьРеквизиты("РезультатирующаяТаблица"); МассивИменУдаляемыхРеквизитов = Новый Массив; Для Каждого Реквизит Из МассивУдаляемыхРеквизитов Цикл Элементы.Удалить(Элементы.Найти(Реквизит.Имя)); МассивИменУдаляемыхРеквизитов.Добавить("РезультатирующаяТаблица." + Реквизит.Имя); КонецЦикла; МассивДобавляемыхРеквизитов = Новый Массив; Для Каждого Колонка Из ТЗ.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "РезультатирующаяТаблица", Колонка.Имя)); КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов, МассивИменУдаляемыхРеквизитов); Для Каждого Колонка Из ТЗ.Колонки Цикл Элемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), Элементы.РезультатирующаяТаблица); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПутьКДанным = "РезультатирующаяТаблица." + Колонка.Имя; КонецЦикла; ЭтаФорма.РезультатирующаяТаблица.Загрузить(ТЗ); КонецПроцедуры Через динамический список не получилось. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |