Имя: Пароль:
1C
1С v8
При выборе в одном справочнике, при создании скрывались варианты выбора в другом
0 s13x
 
01.02.22
16:15
Уважаемые программисты, нужна ваша помощь.
В общем, есть 2 справочника Контрагенты и ДоговорыКонтрагентов. Есть такое условие: Тип договора не должен противоречить значению стандартного реквизита "Владелец", например, договор с видом "Прочее" не может быть заключен с контрагентом с типом "Клиент". Т.е. Если "Владелец"(договора) = "Клиент", значит и договор может быть создан только "СКлиентом". Не понимаю как это можно решить.
Порпобовал так, ничего не происходит:

&НаКлиенте
Процедура ВидДоговораПриИзменении(Элемент)
        
   Если Объект.Владелец = ПредопределенноеЗначение("Перечисление.ТипыКонтрагентов.Клиент") Тогда  
   Объект.ВидДоговора = ("Перечисление.ВидыДоговоров.СКлиентом");
   КонецЕсли;
  
КонецПроцедуры

С скд никак не разберусь(
1 pechkin
 
01.02.22
16:17
владелец договора - это контргент, а не перечисление
2 s13x
 
01.02.22
19:20
&НаСервере
Процедура ПриИзмененииВидДоговораНаСервере()

    Если Объект.Владелец.ТипКонтрагента = ПредопределенноеЗначение("Перечисление.ТипыКонтрагентов.Клиент") Тогда  
        Объект.ВидДоговора = ПредопределенноеЗначение("Перечисление.ВидыДоговоров.СКлиентом");
    КонецЕсли;

    
КонецПроцедуры

Попробовал так, ничего не получилось
3 МихаилМ
 
01.02.22
19:57
(0) Сколько у Вас регистраций на этом форуме?
4 s13x
 
01.02.22
20:11
Первый раз зарегистрировался, а что? Если есть похожие темы, буду благодарен за ссылку.
5 hhhh
 
01.02.22
20:47
(2) ПредопределенноеЗначение это на клиенте пишут

на сервере пишите просто Перечисления.ТипыКонтрагентов.Клиент

(4) а откуда вызывается эта ваша процедура ПриИзмененииВидДоговораНаСервере() ?? Может она просто ниоткуда не вызывается?
6 Мимохожий Однако
 
01.02.22
22:10
(3) ОФФ "Имя им - Легион" ))
7 Михаил Козлов
 
01.02.22
23:13
В типовых ограничение вида договора по флагам контрагента сделано. Можно подсмотреть.