|
Не работает РеквизитФормыВЗначение/ЗначениеВРеквизитФормы ? Колонки ТаблицыЗначений | ☑ | ||
---|---|---|---|---|
0
klimbna
26.12.17
✎
10:03
|
Приветствую!
Необходимо использовать ТаблицуЗначений во внешней обработке. Для этого в Реквизитах обработки завожу реквизит "ТаблицаИзДокумента" В модуле формы: //Создаю колонку и записываю одну строку &НаСервере Процедура СоздатьТаблицу() ТаблицаИД = РеквизитФормыВЗначение("Объект.ТаблицаИзДокумента"); ТаблицаИД.Колонки.Добавить("ЧасыЯ1"); СтрокаТИД=ТаблицаИД.Добавить(); СтрокаТИД.ЧасыЯ1=8; ЗначениеВРеквизитФормы(ТаблицаИД, "Объект.ТаблицаИзДокумента"); //-/Проверяю хранение объекта &НаСервере Функция ПроверитСуществование() ТаблицаИД = РеквизитФормыВЗначение("Объект.ТаблицаИзДокумента"); Сообщить("Заполнил "+ТипЗнч(ТаблицаИД)+" колонок "+ТаблицаИД.Колонки.Количество()+" строк "+ТаблицаИД.Количество()); Сообщить("Значение "+ТаблицаИД[0].ЧасыЯ1); КонецФункции Функция возвращает: Заполнил Таблица значений колонок 0 строк 1 Поле объекта не обнаружено ЧасыЯ1 Получается строки в таблице можно создать - а колонки нет? У Объект.ТаблицаИзДокумента нет "свойства" Колонки. Как тогда создать Колонки реквизита Объекта с типом ТаблицаЗначений? p.s. платформа 8.3.10.2561 Управляемая Форма |
|||
1
Buster007
26.12.17
✎
10:07
|
потому что надо создавать колонки реквизита формы, а не таблицы значений
|
|||
2
Рэйв
26.12.17
✎
10:25
|
(0)>Получается строки в таблице можно создать - а колонки нет?
В реквизите формы ТЗ ты при создании вроде должен добавить фиксированное количество колонок с которыми будешь работать |
|||
3
klimbna
26.12.17
✎
10:57
|
(1) Не могу найти как программно создать. И на клиенте?
Элементы.ТабличнаяЧастьТест.Колонки - не на клиенте не на сервере не работает... |
|||
4
klimbna
26.12.17
✎
11:29
|
(3) Нашел пример
&НаСервере Процедура СформироватьКолонкиТаблицы(ТаблицаРезультат) // Удалим колонки таблицы перед обновление Таблица = РеквизитФормыВЗначение("ДанныеТаблицы"); МассивРеквизитов = Новый Массив; Для Каждого Колонка Из Таблица.Колонки Цикл МассивРеквизитов.Добавить("ДанныеТаблицы." + Колонка.Имя); КонецЦикла; // Вторым параметром передаем то что нужно удалить // Первым параметром то что нужно создать ИзменитьРеквизиты(,МассивРеквизитов); // Теперь удаляем таблицу с формы ЭлементТаблица = Элементы.Найти("ДанныеТаблицы"); Если ЭлементТаблица <> Неопределено Тогда Элементы.Удалить(ЭлементТаблица); КонецЕсли; // И добавляем ее заново ЭлементТаблица=Элементы.Добавить("ДанныеТаблицы", Тип("ТаблицаФормы")); ЭлементТаблица.ПутьКДанным = "ДанныеТаблицы"; ЭлементТаблица.Отображение = ОтображениеТаблицы.Список; // Создаем реквизиты таблицы значений МассивРеквизитов.Очистить(); Для Каждого Колонка ИЗ ТаблицаРезультат.Колонки Цикл МассивТипов = Новый Массив; МассивТипов.Добавить(Колонка.ТипЗначения); НоваяКолонка = Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(МассивТипов), "ДанныеТаблицы"); МассивРеквизитов.Добавить(НоваяКолонка); КонецЦикла; // Первый параметр, это то что нужно создать ИзменитьРеквизиты(МассивРеквизитов); ЗначениеВРеквизитФормы(ТаблицаРезультат, "ДанныеТаблицы"); // Создаем на форме элементы управления // Т.е. выводим таблицу значений и ее колонки ЭлементТЗ = Элементы.ДанныеТаблицы; Для Каждого Колонка ИЗ ТаблицаРезультат.Колонки Цикл НовыйЭлементФормы = Элементы.Добавить("ДанныеТаблицы" + Колонка.Имя, Тип("ПолеФормы"), ЭлементТЗ); НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлементФормы.ПутьКДанным = "ДанныеТаблицы." + Колонка.Имя; КонецЦикла; КонецПроцедуры Вопрос можно считать закрытым |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |