Имя: Пароль:
 
1C
 
Как в табличном поле интерактивно открыть справочник?
0 Галахад
 
09.03.21
12:33
СписокТипов = Новый Массив;
    СписокТипов.Добавить("СправочникСсылка.ААА");
    
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("ААА", Новый ОписаниеТипов(СписокТипов));
    Таблица.Колонки.Добавить("БББ", Новый ОписаниеТипов("СправочникСсылка.ААА"));

    ЭлементыФормы.ТабличноеПоле.Значение = Таблица;
    ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
1 Галахад
 
09.03.21
12:35
Если описание типов массив - при выделении, выделяется строка.
Если описание типов справочник - при выделении можно его открыть.
2 mistеr
 
09.03.21
12:35
(0) Указать для колонки поле ввода, добавить кнопку открытия в поле.
3 Галахад
 
09.03.21
12:36
(2) Как?
4 mistеr
 
09.03.21
12:48
(3) КолонкаТабличногоПоля.УстановитьЭлементУправления
5 Галахад
 
09.03.21
13:21
(4) Вот так не взлетело.

    Кол = ЭлементыФормы.ТабличноеПоле.Колонки["ААА"];
    Кол.УстановитьЭлементУправления(Тип("ПолеВвода"));
    Кол.ЭлементУправления.КнопкаОткрытия = Истина;

При открытии открывается строка, а не справочник.

Но все равно, спасибо.
6 Галахад
 
09.03.21
13:22
Вопрос решил другим способом. Обошелся без массива типов.
7 mistеr
 
09.03.21
13:22
(5) Значит в колонке ТЗ у тебя строка, а не ссылка. Решай проблему при заполнении ТЗ.
8 Галахад
 
09.03.21
13:26
(7) Нет. Заполняю колонки "ААА" и "БББ" одинаково.
В отладчике вижу, что в строке элементы одинаковые.
А на форме поведение разное.
9 Галахад
 
09.03.21
13:30
Собственно и проверить не трудно. На ОФ положить "ТабличноеПоле". И выполнить код:

    СписокТипов = Новый Массив;
    СписокТипов.Добавить("СправочникСсылка.Пользователи");
    
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("ААА", Новый ОписаниеТипов(СписокТипов));
    Таблица.Колонки.Добавить("БББ", Новый ОписаниеТипов("СправочникСсылка.Пользователи"));
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 10
    |    Пользователи.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Пользователи КАК Пользователи";
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        НовСтр = Таблица.Добавить();
        НовСтр.ААА = Выборка.Ссылка;
        НовСтр.БББ = Выборка.Ссылка;
    КонецЦикла;
    
    ЭлементыФормы.ТабличноеПоле.Значение = Таблица;
    ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
    
    Кол = ЭлементыФормы.ТабличноеПоле.Колонки["ААА"];
    Кол.УстановитьЭлементУправления(Тип("ПолеВвода"));
    Кол.ЭлементУправления.КнопкаОткрытия = Истина;
    
    Кол = ЭлементыФормы.ТабличноеПоле.Колонки["БББ"];
    Кол.УстановитьЭлементУправления(Тип("ПолеВвода"));
    Кол.ЭлементУправления.КнопкаОткрытия = Истина;
10 Kondarat
 
09.03.21
13:45
СписокТипов.Добавить(Тип("СправочникСсылка.Пользователи"));
11 Галахад
 
09.03.21
13:47
(10) Вот жеж... Спасибо!