Имя: Пароль:
1C
1С v8
Для ячейки табличного документа установить элемент управления "ПолеВвода"
,
0 ac13
 
08.02.22
16:25
На управляемых формах для ячеек табличного документа нельзя установить элемент управления "ПолеВвода" и добавить режим выбора из списка?
Хочу для первой строки табличного документа сделать выпадающие списки.

Для НомерКолонки = 1 по КоличествоКолонок Цикл
    ТекущаяОбласть = ТабличныйДокумент.Область("R1C" + Строка(НомерКолонки ));
    ТекущаяОбласть.СодержитЗначение = Истина;    
    ТекущаяОбласть.ТипЗначения = Новый ОписаниеТипов("Строка");
    ТекущаяОбласть.ЭлементУправления.УстановитьЭлементУправления(Тип("ПолеВвода"));
    ТекущаяОбласть.Защита = Ложь;
КонецЦикла;

получаю ошибку: Тип не определен (ПолеВвода)
Да и в свойствах ячеек не вижу ничего подобного.
1 ac13
 
08.02.22
16:26
Только для таблицы значений?
2 vicof
 
08.02.22
16:29
ТекущаяОбласть.УстановитьЭлементУправления(Тип("ПолеВвода")); не?
3 ac13
 
08.02.22
16:31
(2) в тексте первого сообщения ошибка.
да, я делаю так:
ТекущаяОбласть.УстановитьЭлементУправления(Тип("ПолеВвода"));
и получаю ошибку: Тип не определен (ПолеВвода)
для ячейки табличного документа такой тип недоступен
4 vicof
 
08.02.22
16:35
//задаем нужный тип с помощью объекта "ОписаниеТипов"
МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип("Булево"));
ОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
...
ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область("R5C3").СодержитЗначение = Истина; //указываем, что в ячейке будет значение
ПолеТабДок.Область("R5C3").ТипЗначения = ОписаниеТиповБулево; //указываем ранее заданный тип
ПолеТабДок.Область("R5C3").Значение = СпрНоменклатура.Услуга; //значение типа "Булево" из справочника
//а теперь указываем, что в ячейке будет отображаться флажок
ПолеТабДок.Область("R5C3").УстановитьЭлементУправления(Тип("Флажок"));
5 ac13
 
08.02.22
16:43
(4) спасибо, это работает на обычных формах, а вот на управляемых проблема

написал так:

МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип("Булево"));
ОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
        
ТабличныйДокумент.Область("R1C1").СодержитЗначение = Истина;
ТабличныйДокумент.Область("R1C1").ТипЗначения = ОписаниеТиповБулево;
ТабличныйДокумент.Область("R1C1").УстановитьЭлементУправления(Тип("Флажок"));

ошибка та же - Тип не определен (Флажок)
6 ac13
 
08.02.22
16:44
склоняюсь к тому, что на УФ элементы управления ячеек табличного документа сильно ограничили
7 vicof
 
08.02.22
16:49
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
УстановитьЭлементУправления (SetControl)

Доступность:
Сервер, толстый клиент, внешнее соединение.
8 ac13
 
08.02.22
16:50
(7) да, можно установить например Тип("РисунокТабличногоДокумента")
а вот "ПолеВвода" и др. типы элементов управления недоступны
9 ac13
 
08.02.22
16:55
по теме отбой, выпадающий список без вариантов в табличном документе :)
10 ДедМорроз
 
08.02.22
20:58
Так это,создаваемые элементы - это ПолеФормы,а уже потом ему Вмд поле ввода присобачить - разве не так?
11 acanta
 
09.02.22
01:49
На табличном документе есть обработка событий (на какой ячейке что нажали?).
12 Тихий омут
 
09.02.22
02:25
Да, с элементами управления в табдоке вендор опять лукавит, нормально это не работает.
Флажок так вообще не работает - во всяком случае, мне не удалось его победить, пришлось делать костыль через расшифровку.
Но.
Если поиграться со свойством ячейки (области табдока) "Содержит значение" и внимательно пощупать свойства ячейки и макета, выбирая подраздел (или как это правильно называется, хз) палитры свойств ячейки макета в конфигураторе (в самом верху палитры свойств ячейки есть выпадающий список со значениями - "Макет, "Ячейки", и, если установлен флажок "Содержит значение", ещё и "Поле ввода"), то вполне можно организовать хотя бы мал мала приличный выбор ссылочных типов. Плюс доступно хоть и куцее, но программное управление этим непомерным бохатсвом... Делал на базе этого ввод данных в табдок на УФ.