Вход | Регистрация


Не работает РеквизитФормыВЗначение/ЗначениеВРеквизитФормы ? Колонки ТаблицыЗначений

Не работает РеквизитФормыВЗначение/ЗначениеВРеквизитФормы ? Колонки ТаблицыЗначений
Я
   klimbna
 
26.12.17 - 10:03
Приветствую!
Необходимо использовать ТаблицуЗначений во внешней обработке.
Для этого в Реквизитах обработки завожу реквизит "ТаблицаИзДокумента"
В модуле формы:
//Создаю колонку и записываю одну строку

&НаСервере
Процедура СоздатьТаблицу()
ТаблицаИД = РеквизитФормыВЗначение("Объект.ТаблицаИзДокумента");
ТаблицаИД.Колонки.Добавить("ЧасыЯ1");
СтрокаТИД=ТаблицаИД.Добавить();    
    СтрокаТИД.ЧасыЯ1=8;
    ЗначениеВРеквизитФормы(ТаблицаИД, "Объект.ТаблицаИзДокумента");

//-/Проверяю хранение объекта

&НаСервере 
Функция    ПроверитСуществование()
    ТаблицаИД = РеквизитФормыВЗначение("Объект.ТаблицаИзДокумента");
Сообщить("Заполнил "+ТипЗнч(ТаблицаИД)+" колонок "+ТаблицаИД.Колонки.Количество()+" строк "+ТаблицаИД.Количество());    
    Сообщить("Значение "+ТаблицаИД[0].ЧасыЯ1);
КонецФункции

Функция возвращает: Заполнил Таблица значений колонок 0 строк 1
Поле объекта не обнаружено ЧасыЯ1
Получается строки в таблице можно создать - а колонки нет?
У Объект.ТаблицаИзДокумента нет "свойства" Колонки.
Как тогда создать Колонки реквизита Объекта с типом ТаблицаЗначений?

p.s. платформа 8.3.10.2561 Управляемая Форма
 
 
   Buster007
 
1 - 26.12.17 - 10:07
потому что надо создавать колонки реквизита формы, а не таблицы значений
   Рэйв
 
2 - 26.12.17 - 10:25
(0)>Получается строки в таблице можно создать - а колонки нет?

В реквизите формы ТЗ ты при создании вроде должен добавить фиксированное количество колонок с которыми будешь работать
   klimbna
 
3 - 26.12.17 - 10:57
(1) Не могу найти как программно создать. И на клиенте?
Элементы.ТабличнаяЧастьТест.Колонки - не на клиенте не на сервере не работает...
   klimbna
 
4 - 26.12.17 - 11:29
(3) Нашел пример
&НаСервере
Процедура СформироватьКолонкиТаблицы(ТаблицаРезультат)
    // Удалим колонки таблицы перед обновление

    Таблица = РеквизитФормыВЗначение("ДанныеТаблицы");
    МассивРеквизитов = Новый Массив;

    Для Каждого Колонка Из Таблица.Колонки Цикл
        МассивРеквизитов.Добавить("ДанныеТаблицы." + Колонка.Имя);        
    КонецЦикла;
    // Вторым параметром передаем то что нужно удалить

    // Первым параметром то что нужно создать

    ИзменитьРеквизиты(,МассивРеквизитов);
    
    // Теперь удаляем таблицу с формы

    ЭлементТаблица = Элементы.Найти("ДанныеТаблицы");
    Если ЭлементТаблица <> Неопределено Тогда
        Элементы.Удалить(ЭлементТаблица);        
    КонецЕсли;     
    // И добавляем ее заново

    ЭлементТаблица=Элементы.Добавить("ДанныеТаблицы", Тип("ТаблицаФормы"));
    ЭлементТаблица.ПутьКДанным = "ДанныеТаблицы";
    ЭлементТаблица.Отображение = ОтображениеТаблицы.Список;   

    // Создаем реквизиты таблицы значений

    МассивРеквизитов.Очистить();
    Для Каждого Колонка ИЗ ТаблицаРезультат.Колонки Цикл
        МассивТипов = Новый Массив;
        МассивТипов.Добавить(Колонка.ТипЗначения);
        НоваяКолонка = Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(МассивТипов), "ДанныеТаблицы");
        МассивРеквизитов.Добавить(НоваяКолонка);
    КонецЦикла;
    // Первый параметр, это то что нужно создать

    ИзменитьРеквизиты(МассивРеквизитов);  
    ЗначениеВРеквизитФормы(ТаблицаРезультат, "ДанныеТаблицы");
    
    // Создаем на форме элементы управления

    // Т.е. выводим таблицу значений и ее колонки

    ЭлементТЗ = Элементы.ДанныеТаблицы;
    Для Каждого Колонка ИЗ ТаблицаРезультат.Колонки Цикл
        НовыйЭлементФормы = Элементы.Добавить("ДанныеТаблицы" + Колонка.Имя,
                                                Тип("ПолеФормы"), ЭлементТЗ);
        НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлементФормы.ПутьКДанным = "ДанныеТаблицы." + Колонка.Имя;
    КонецЦикла;
КонецПроцедуры

Вопрос можно считать закрытым

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует