Сценарии для работы с документами в карточке контрагента

В данной статье рассматриваются варианты работы с документами в карточке контрагента в сценариях.

Примеры сценариев с использованием PublicAPI

Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарии, указанные ниже, актуальны для версий системы ELMA до 3.12.1 включительно.

Контекстные переменные:

  • context.Kontragent - переменная типа Контрагент;
  • context.Kontragent2 - переменная типа Контрагент;
  • context.Dokument - переменная типа Документ.

1. Сценарий для добавления документа в карточку контрагента

Пространство имен:

using EleWise.ELMA.API;

Текст сценария:

var att = PublicAPI.CRM.Objects.CRMAttachment.Create();
att.Contractor = context.Kontragent;
att.Documents.Add(context.Dokument);
att.Save();

2. Сценарий для удаления документов компании

Текст сценария:

var links = PublicAPI.CRM.Objects.CRMAttachment.Filter().Contractor(context.Kontragent).Find().ToList();
links.ForEach(l =>{PublicAPI.CRM.Objects.CRMAttachment.Delete(l);});

3. Сценарий для переноса документов из карточки компании, к которой они привязаны, в другую компанию

Текст сценария:

var links = PublicAPI.CRM.Objects.CRMAttachment.Filter().Contractor(context.Kontragent).Find().ToList();
links.ForEach(l => {l.Contractor = context.Kontragent2;});

Примеры сценариев без использования PublicAPI

Список контекстных переменных:

  • context.Kompaniya1 - переменная типа Контрагент;
  • context.Kompaniya2 - переменная типа Контрагент;
  • context.Dokument - переменная типа Документ.

Для работы сценариев необходимо подключить сборки:

EleWise.ELMA.CRM;
EleWise.ELMA.Documents;
EleWise.ELMA.Documents.Docflow;

Пространства имен:

using EleWise.ELMA.CRM;
using EleWise.ELMA.CRM.Managers;
using EleWise.ELMA.CRM.Models;
using EleWise.ELMA.Documents;
using EleWise.ELMA.Documents.Docflow;
using EleWise.ELMA.Model.Services;

1. Сценарий для добавления документа в карточку контрагента

var att = CrmAttachmentManager.Instance.Create(); // создание связи
att.Contractor = context.Kompaniya1; // определение Контрагента
att.Documents.Add(context.Dokument); // добавление документа
att.Save(); // сохранение привязки

2. Сценарий для удаления документов компании

//поиск связей для конкретных компаний
var links = CrmAttachmentManager.Instance.Find(l => l.Contractor == context.Kompaniya1);
//удаление связей с документами
links.ForEach(l => {
    CrmAttachmentManager.Instance.Delete(l); });

3. Сценарий для переноса документов из карточки компании, к которой они привязаны, в другую компанию

//поиск связей для конкретных компаний
var links = CrmAttachmentManager.Instance.Find(l => l.Contractor == context.Kompaniya1);
//переписывание найденных связей на другого контрагента
links.ForEach(l => {
    l.Contractor = context.Kompaniya2;});}