|
Управляемая форма. Нет данных реквизита. | ☑ | ||
---|---|---|---|---|
0
kiabs
11.02.14
✎
14:09
|
Есть обработка, у обработки реквизит - таблица значений.
На управляемой форме размещаю элемент формы (ПутьКДанным = Объект.МояТаблица). При нажатии кнопки на форме процедура обращается к процедуре модуля обработки где циклом происходит заполнение Реквизита МояТаблица. Смотрю под отладчиком, он заполнен как мне надо, но элемент формы пустой!! Тоесть под отладчиком я вижу, что в Объект.МояТаблица содержит значения, а на форме ничего не отображается. Как побороть? PS^ только начал осваивать УФ. |
|||
1
kiabs
11.02.14
✎
14:20
|
Такою ощущение, что реквизит формы и реквизит объекта живут отдельно.
|
|||
2
Maxus43
11.02.14
✎
14:22
|
без кода тут не понять
|
|||
3
GROOVY
11.02.14
✎
14:23
|
Колонки надо программно нарисовать.
|
|||
4
kiabs
11.02.14
✎
14:24
|
Модуль формы
&НаКлиенте Процедура НачатьЗаполнениеАнкеты(Команда) ПолучитьВопросыАнкеты(); КонецПроцедуры &НаСервере Процедура ПолучитьВопросыАнкеты() ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); ОбработкаОбъект.ПолучитьВопросы(); КонецПроцедуры |
|||
5
GROOVY
11.02.14
✎
14:24
|
И "сформироватьКолонки()" тут не прокатит.
|
|||
6
andreymongol82
11.02.14
✎
14:24
|
(1) Совершенно верно.
Надо в УФ сделать что-то вроде МойОБъект = РеквизитФормыВЗначение("Объект","ТутТип") ТЗ = мойОбъект.СформироватьЧтоТОТам() ЗначениеВРеквизитФормы(ля-ля-ля) |
|||
7
GROOVY
11.02.14
✎
14:24
|
(4) Нафига тут конвертация данных формы?
|
|||
8
kiabs
11.02.14
✎
14:24
|
модуль объекта
Вопросы.Очистить(); Пока Выборка.Следующий() Цикл нСтр = Вопросы.Добавить(); нСтр.Вопрос = Выборка.Вопрос; КонецЦикла; |
|||
9
kiabs
11.02.14
✎
14:25
|
(7) Что бы обратится к экспортной процедуре объекта.
|
|||
10
Maxus43
11.02.14
✎
14:25
|
(8) динамический список не катит? надо именно свою левую ТЗ?
|
|||
11
kiabs
11.02.14
✎
14:26
|
(10) Именно ее, там долбанутые запрос от сторонних разработчиков.
|
|||
12
GROOVY
11.02.14
✎
14:26
|
(9) А зачем это в модуле объекта описывать? Хотя, ладно. Вам нужно колонки нарисовать...
|
|||
13
kiabs
11.02.14
✎
14:27
|
(12) Так колонки уже сами обавились, когда я реквизит объекта на форму перетащил.
|
|||
14
GROOVY
11.02.14
✎
14:31
|
(13) А с данными они как-то связаны?
|
|||
15
kiabs
11.02.14
✎
14:32
|
(14) Да, путьКданным указан правильно.
|
|||
16
andreymongol82
11.02.14
✎
14:33
|
(13) Да елки...
Модульную процедуру переделываем в функцию. Возвращаем ТЗ. ТЗ Загружаем или вообще значениеВРеквизитФормы, если колонки совпадают. |
|||
17
kiabs
11.02.14
✎
14:35
|
(6)(16) Спасибо!!! Взлетело!
ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); ОбработкаОбъект.ПолучитьВопросы(); ЗначениеВРеквизитФормы(ОбработкаОбъект.Вопросы, Объект.Вопросы"); |
|||
18
kiabs
11.02.14
✎
14:35
|
Опечатка
ЗначениеВРеквизитФормы(ОбработкаОбъект.Вопросы, "Объект.Вопросы"); |
|||
19
andreymongol82
11.02.14
✎
14:36
|
(17) Ну или так. Развели тут ))). Обычная ошибка при начале работы с УФ )))
|
|||
20
Morales
11.02.14
✎
14:56
|
Или так, уже было на форуме:
// ПРИМЕЧАНИЕ: // Эту процедуру можно разместить в общем модуле, для дальнейшего вызова из любого места // Для отображения таблицы необходиом чтобы на форме предварительно был создан реквизит типа "таблица значений", // и чтобы он был размещен среди элементов формы (по аналогии, как в этой форме) // // ОПИСАНИЕ: // Создает и отображает на управляемой форме (8.2) таблицу значений, переданную в качестве параметра // Дополнительно может подключить обработчики событий для таблицы // // ПАРАМЕТРЫ: // УФ - управляемая форма, на которую нужно вывести ТЗ // ТЗ - таблица значений, которую нужно отобразить на форме // ТЗОбработчиковСобытий - таблица со структурой данных, описывающих обработчики событий. Не обязательна. // Процедура обработки события должна именоваться как <ИмяЭлемента + ИмяСобытия> &НаСервере Процедура ВывестиТаблицуНаФорму(УФ, ИмяТЗНаФорме, Знач ТЗ, ТЗОбработчиковСобытий = Неопределено) Экспорт // СОЗДАНИЕ РЕКВИЗИТОВ ФОРМЫ МассивДобавляемыхРеквизитов = Новый Массив; Для Каждого Колонка Из ТЗ.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,ИмяТЗНаФорме ,Колонка.Заголовок)); КонецЦикла; МассивУдаляемыхРеквизитов = УФ.ПолучитьРеквизиты(ИмяТЗНаФорме); МассивИменУдаляемыхРеквизитов = Новый Массив; Для каждого Элемент Из МассивУдаляемыхРеквизитов Цикл МассивИменУдаляемыхРеквизитов.Добавить(ИмяТЗНаФорме + "." + Элемент.Имя); КонецЦикла; УФ.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивИменУдаляемыхРеквизитов); // СОЗДАНИЕ ЭЛЕМЕНТОВ ФОРМЫ Для каждого Элемент Из МассивУдаляемыхРеквизитов Цикл УдаляемыйЭлемент = УФ.Элементы.Найти(ИмяТЗНаФорме + Элемент.Имя); УФ.Элементы.Удалить(УдаляемыйЭлемент); КонецЦикла; Для Каждого Колонка Из ТЗ.Колонки Цикл НоваяКолонка = УФ.Элементы.Добавить(ИмяТЗНаФорме + Колонка.Имя, Тип("ПолеФормы"), УФ.Элементы[ИмяТЗНаФорме]); НоваяКолонка.Заголовок = Колонка.Заголовок; НоваяКолонка.ПутьКДанным = ИмяТЗНаФорме + "." + Колонка.Имя; НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе; КонецЦикла; УФ[ИмяТЗНаФорме].Загрузить(ТЗ); // Привязка обработчиков событий Если ТЗОбработчиковСобытий = Неопределено Тогда Возврат; КонецЕсли; Для Каждого Строка Из ТЗОбработчиковСобытий Цикл УФ.Элементы[Строка.ИмяЭлемента].УстановитьДействие(Строка.ИмяСобытия, Строка.ИмяЭлемента + Строка.ИмяСобытия); КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |