|
(8.2) Таблица значений в управляемом приложении | ☑ | ||
|---|---|---|---|---|
|
0
klis
25.07.11
✎
13:00
|
Добрый день.
Сегодня довелось таки столкнуться с управляемыми формами и никак ума не приложу, на них реализовать следующий механизм: 1. Пользователь вводит некие параметры поиска (например, часть номера и дату документа). 2. Мы при основываясь на этих параметрах пытаемся при помощи запроса найти объекты БД, и: 2а. если по заданным параметрам объекты не обнаружены, выдаем сообщение; 2б. если найден один объект, производим с ним дальнейшие действия; 2в. если объектов найдено несколько, предлагаем пользователю выбрать конкретный (например, таблица документов с колонками "Представление", "Номер" и "Дата") и после выбора производим с ним дальнейшие действия; Затык на этапе "после запроса": 1) как правильно вернуть с сервера на клиент таблицу значений и 2) позволить пользователю интерактивно выбрать конкретную строку из нее в управляемом приложении? Спасибо. |
|||
|
1
Smallrat
25.07.11
✎
13:11
|
1) ЗначениеВРеквизитФормы(ТЗ, "ТаблицаДокументов");
Где "ТаблицаДокументов" - это реквизит формы типа таблица значений с нужными колонками. 2) На форму вынести элемент типа "Таблица" для реквизита формы "ТаблицаДокументов". Дальше вариантов много - например прикрутить команду, вот например вариант для множественного выделения ВыделенныеСтроки = Элементы.ТаблицаДокументов.ВыделенныеСтроки; Если ВыделенныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; Для Каждого Стр Из ВыделенныеСтроки Цикл ДанныеСтроки = Элементы.ТаблицаДокументов.ДанныеСтроки(Стр); ....... КонецЦикла; |
|||
|
2
MikleV
25.07.11
✎
13:11
|
1. Не надо возвращать таблицу, надо заполнять её на сервере и отображать на клиенте.
2. ответ в п.1 |
|||
|
3
klis
07.08.11
✎
14:47
|
А как реализовать такую схему?
Имеем обработку с таб. частью и две управляемые формы на ней. Из первой формы открываем модально вторую, во второй при помощи запроса заполняем на сервере таб. часть обработки: &НаКлиенте Процедура ЗаполнитьТабЧасть(Команда) ЗаполнитьТабЧастьНаСервере(); Закрыть(КодВозвратаДиалога.ОК); КонецПроцедуры &НаСервере Процедура ЗаполнитьТабЧастьНаСервере() Запрос = Новый Запрос; Запрос.Текст = "<...>"; РезультатЗапроса = Запрос.Выполнить(); МойОбъект = РеквизитФормыВЗначение("Объект"); МойОбъект.ДокументыДляВыбора.Загрузить(РезультатЗапроса.Выгрузить()); ЗначениеВРеквизитФормы(МойОбъект, "Объект"); КонецПроцедуры Как в первой форме "увидеть" измененную табличную часть?! |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |