logo

[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;
}