Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Редактирование программно добавленной колонки в табличном поле

Редактирование программно добавленной колонки в табличном поле
Я
   SalBas
 
23.12.21 - 21:56
Здравствуйте!

Создаю программно табличное поле и в него добавляю поле.
Колонка в табличном поле появляется, но в ячейку этой колонки ничего нельзя забить.
У неё свойство "Только просмотр" равно ложь.
Уже всё проверил. Не понимаю, что не хватает этой колонке.


ИмяТабличногоПоля = "Товары" + строка.Поставщик;
Элемент = ЭтаФорма.ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), ИмяТабличногоПоля, Истина, ЭлементыФормы.ОсновнаяПанель);
Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Право, Панель,ГраницаЭлементаУправления.Право);        
Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель,ГраницаЭлементаУправления.Низ);        
Элемент.Лево = 5;
Элемент.Верх = ПромежутокВерх;
Элемент.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина - 15;
Элемент.Высота = ЭлементыФормы.ОсновнаяПанель.Высота - ПромежутокВерх - 25;    

Элемент.Значение = строка.Товары;        
Элемент.СоздатьКолонки();        
Элемент.Колонки.Отметка.Видимость = Ложь;
Элемент.Колонки.ИдСтроки.Видимость = Ложь;
Элемент.Колонки.ИдПоставщика.Видимость = Ложь;        

Для Каждого реквизитыТовар Из строка.ПараметрыТоваров Цикл    
        //Создание колонки табличного поля
    ЭлементыФормы[ИмяТабличногоПоля].Значение.Колонки.Добавить(реквизитыТовар.ИмяРеквизита, Новый ОписаниеТипов("Строка"));
    
    КолонкаТабличногоПоля = ЭлементыФормы[ИмяТабличногоПоля].Колонки.Добавить(реквизитыТовар.ИмяРеквизита);
    КолонкаТабличногоПоля.Данные = реквизитыТовар.ИмяРеквизита;            
    КолонкаТабличногоПоля.УстановитьЭлементУправления(Тип("ПолеВвода"));
    КолонкаТабличногоПоля.ТекстШапки = реквизитыТовар.name;
    //КолонкаТабличногоПоля.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Строка");
КонецЦикла;
   hhhh
 
1 - 23.12.21 - 23:59
(0) колонка же у тебя ни к каким данным не привязана, вычисляется на лету. Конечно, никакие данные в нее не вобьешь. Их негде сохранять.
   youalex
 
2 - 24.12.21 - 01:27
(0) у самого ТП проверь доступность/просмотр
   SalBas
 
3 - 24.12.21 - 02:56
(1) Я сделал переделал процедуру.

Вот в этой строке 
Элемент.Значение = строка.Товары; 

"строка.Товары" является таблицей значений (источником данных). Я добавил в неё колонки, которые мне были нужны, и потом уже присваиваю эту таблицу как значение табличного поля и связка с данными тогда появляется.

До этого я создавал программно колонку и пытался в свойстве "Данные" этой колонки что-то указать, но 1С ругалась на то, что не верный путь к данным.

(2) Я не посмотрел на свойство "Только просмотр" табличного поля. У него значение было Истина. Я даже не знал, что если программно создавать табличное поле, то ТолькоПросмотр будет по умолчанию равно Истина.

Всем спасибо за помощь! Всё получилось у меня.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.