Имя: Пароль:
1C
1С v8
программно задать значение перечисления исходя из выбора значения другого перечисления
,
0 BazCATilio
 
10.05.20
21:11
всем привет!

  ситуация следующая: на форме два реквизита - наименование и вид. у обоих тип перечисление.

  как программно сделать так, чтобы при выборе, того или иного наименования автоматически подтягивался нужный вид.
  
  простыми словами, чтобы выбрал наименование и как следствие нужный вид.

  создал процедуру при изменении наименования:


&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
    
    Если ЭтаФорма.Элементы.Наименование = "НематериальныеАктивы"  Тогда
        
        ЭтаФорма.Элементы.ВидАктива = Перечисления.ВидыАктивов.Внеоборотные;  // тут хз как писать
        
    КонецЕсли
    
КонецПроцедуры


   подскажите, пожалуйста, куда копать

   p.s. мб что посоветуете годного почитать и т.д.
1 runoff_runoff
 
10.05.20
21:24
попкорн
2 Chameleon1980
 
10.05.20
21:24
и я хз, как писать. условия не описаны
3 LienXo
 
10.05.20
21:28
Ну если "НаКлиенте" то как минимум "ПредопределенноеЗначение("Перечисление...")
4 BazCATilio
 
10.05.20
21:46
(2) к примеру, если наименование = "ОсновныеСредства" Тогда вид ="внеоборотные";
если наименование = "Запасы" Тогда вид ="Оборотные";
5 Chameleon1980
 
10.05.20
22:01
а зачем по наименованию?
сравнивай реквизит формы со значением перечисления через предопределенноезначение
к реквизиту формы обратись просто по имени
6 LienXo
 
10.05.20
22:05
И обрати внимание, что на сервере:

а = перечислениЯ.

на клиенте:

а = предопределенноезначение("перечислениЕ
7 Chameleon1980
 
10.05.20
22:05
(6) конфигуратор подскажет
8 LienXo
 
10.05.20
22:06
(7) если умеешь пользоваться... Хмм, (1) был прав... и пива :)
9 BazCATilio
 
10.05.20
22:17
(5) по имени если пишу ругался.

вот так написал:

    Если ЭтаФорма.Элементы.Наименование = ПредопределенноеЗначение("Перечисление.НаименованияАктивов.НематериальныеАктивы") Тогда
        
        ЭтаФорма.Элементы.ВидАктива = ПредопределенноеЗначение("Перечисление.ВидыАктивов.Внеоборотные");  
        
    КонецЕсли
10 BazCATilio
 
10.05.20
22:18
(6) спасибо
11 BazCATilio
 
10.05.20
22:19
но че-то все-равно не работает.

туплю
12 LienXo
 
10.05.20
22:23
Или

ВидАктива = ПредопределенноеЗначение("Перечисление.ВидыАктивов.Внеоборотные");

или

Объект.ВидАктива = ПредопределенноеЗначение("Перечисление.ВидыАктивов.Внеоборотные");
13 Chameleon1980
 
10.05.20
22:27
это у тебя обработка?
перечисление реквизит обработки?
основной реквизит формы обьект?
тогда через обьект. видактивп
14 Chameleon1980
 
10.05.20
22:28
поищи в дереве реквизитов и обратись
15 BazCATilio
 
10.05.20
22:35
всем большое спасибо!
через объект заработало