[ELMA3] Приведение типа Контрагента к Юридическому лицу
В системе ELMA существует два типа объекта Контрагент: Физическое лицо и Юридическое лицо – отличающиеся набором свойств. В некоторых случаях требуется проверка Контрагента на принадлежность к типу Юридическое лицо, например, когда в процессе, где используется Контрагент, нужно получить доступ к реквизитам Юридического лица.
Контрагент и Юридическое лицо связаны по идентификатору. Рассмотрим пример сценария для получения КПП.
Пример сценария без использования PublicAPI
Контекстные переменные:
- context.Kontragent – переменная Контрагент типа Контрагент;
- context.KPP – переменная КПП типа Строка.
Для работы сценария необходимо подключить сборку:
Elewise.ELMA.CRM
Пространство имен:
1 2 | using EleWise.ELMA.CRM.Models; using EleWise.ELMA.Extensions; |
1 2 3 4 5 | if (context.Kontragent!= null && context.Kontragent.CastAsRealType() is ContractorLegal) { var cl = context.Kontragent.CastAsRealType() as ContractorLegal; context.KPP=cl.KPP; } |
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
Внимание!
Сценарий, указанный ниже, приводит к формированию лишнего запроса к базе данных, поэтому использовать его рекомендуется лишь в тех случаях, когда другие варианты не работают.
Контекстные переменные:
- context.Klient – переменная Клиент типа Контрагент;
- context.KPP – переменная КПП типа Строка.
Пространство имен:
1 | using EleWise.ELMA.API; |
Текст сценария:
1 2 3 4 5 | var cl = PublicAPI.CRM.Contractor.ContractorLegal.LoadOrNull(context.Klient.Id); if (cl != null ) { context.KPP = cl.KPP; } |