Имя: Пароль:
1C
 
программная установка типа реквизита на вид одного из справочников
0 falselight
 
25.10.16
13:00
На форме документа есть реквизит типа перечисление.
2 значения. Как программно устанавливать тип другого поля,
в зависимости от выбранного перечисления типа одного или
другого справочника?
1 Ёпрст
 
гуру
25.10.16
13:08
ПривыбореПеречисления устанваливай тип
2 mehfk
 
25.10.16
13:09
Автору поможет только живительная эвтаназия.
3 falselight
 
25.10.16
13:22
(1) я имел ввиду как задавать тип реквизита программно, какой код будет примерно
4 Ёпрст
 
гуру
25.10.16
13:30
тип того

ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.Организации");
ЭлементыФормы.Организация.ОграничениеТипа = ОписаниеТипа;
ЭлементыФормы.Организация.Значение = .... ОписаниеТипа.ПривестиЗначение();
ЭлементыФормы.ВыбиратьТип = Ложь;
5 falselight
 
25.10.16
14:01
(4) это так обязательно?????
6 Ёпрст
 
гуру
25.10.16
14:01
нет
7 Альбатрос
 
25.10.16
14:02
(5) можешь просто написать: тип того
8 falselight
 
25.10.16
14:02
(6) ну а можно так как то задавать
если это то
значение = тип справочник такой то ?
9 falselight
 
25.10.16
14:03
(7) можете по синтаксису привести пример?
10 Альбатрос
 
25.10.16
14:06
(9) Тебе в (4) чем не пример?
11 Fragster
 
гуру
25.10.16
14:06
снять галочку "выбирать тип" и присваивать пустое значение нужного типа
12 torgm
 
25.10.16
14:13
(8) значение = Справочники.Организации.ПустаяСсылка()
Так хотел?
13 falselight
 
25.10.16
14:15
(12) ну то есть так будет присваивать тип справочника такого то реквизиту?!
(11) попробую
(10) это нужно задавать для каждого справочника???? Там для одного задано
14 Альбатрос
 
25.10.16
14:16
(13) Задавть нужно в зависимости от товего перечисления, ты ж сам так сказал. Вариант (12) тоже рабочий, по-своему...
15 falselight
 
25.10.16
15:07
(12) так почему то не работает. Какого типа должен быть реквизит, которому нужно задать тип?

&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)
    УстановитьТипРеквизита(Объект.ВидОперации);
КонецПроцедуры
//
&НаСервере
Процедура УстановитьТипРеквизита(ВидОперации)
    Если Объект.ВидОперации = Перечисления.ВидОперации.Личные Тогда
        Объект.РаботникПрофессия = Справочники.Сотрудники.ПустаяСсылка();     
    Иначе
        Объект.РаботникПрофессия = Справочники.Профессии.ПустаяСсылка();
    КонецЕсли;  
КонецПроцедуры
16 Fragster
 
гуру
25.10.16
15:13
(15) составного
17 falselight
 
25.10.16
15:18
(9) пример нужен для управляемого приложения, интерфейс такси
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.