Имя: Пароль:
1C
1С v8
Как изменить тип реквизита табличной части?
0 squall84
 
31.07.20
15:09
1с УПП, обычные формы.
В табличной части есть колонка у которой составной тип данных.
По условию мне нужно программно установить определенный тип, чтобы пользователь при некоторых условиях не выбирал тип, а сразу открывался нужный справочник для выбора элемента.
Делаю так:
Массив = Новый Массив();
Массив.Добавить(Тип("СправочникСсылка.ОсновныеСредства"));
ОписаниеТипа = Новый ОписаниеТипов(Массив);
ЭлементыФормы.СписокОС.Колонки.ОсновноеСредство.ЭлементУправления.ОграничениеТипа = ОписаниеТипа;
//До этого момента все работает.
Но при выборе в ячейке все равно запрашивает тип, хотя и выбрать можно только один указанный мною.

Пробовал:
ЭлементыФормы.СписокОС.Колонки.ОсновноеСредство.ЭлементУправления.ВыбиратьТип=Ложь
Это не катит, поскольку тогда вообще ничего не происходит при выборе в ячейке.

Если написать:
ЭлементыФормы.СписокОС.Колонки.ОсновноеСредство=ОписаниеТипа.ПривестиЗначение(ЭлементыФормы.СписокОС.Колонки.ОсновноеСредство);
Тоже ничего не происходит. Как я понимаю я привожу значение элементу формы, а мне нужно привести значение именно колонке таблицы значений. Не пойму, как это сделать.
1 RomanYS
 
31.07.20
15:11
(0) Нужно присвоить значению (не элементу формы или ещё чему) пустую ссылку нужного типа
2 squall84
 
31.07.20
15:21
(1) Я могу это сделать если у меня уже есть строки. Но на данном этапе у меня еще нет строк. Мне нечему присваивать. Нужно получить доступ к реквизиту табличной части.
3 acht
 
31.07.20
15:22
(2) Делай это при начале редактирования
4 squall84
 
31.07.20
15:25
(3) Спасибо. Хороший вариант. Как-то не подумал.
5 RomanYS
 
31.07.20
15:25
(3) +1
(2) нечему присваивать - нечего выбирать
6 squall84
 
31.07.20
15:33
(5) Я хотел сделать, как с обычным реквизитом на форме. Там мы присваиваем тип элементу формы, а затем приводим значение самому реквизиту  объекта. И до нового открытия документа этот реквизит будет нужного типа.