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