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

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

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

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

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

  • context.Contractor- переменная типа Контрагент;
  • context.Contractor2 - переменная типа Контрагент;
  • context.Document - переменная типа Документ.

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

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

using EleWise.ELMA.API;

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

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

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

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

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

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

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

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

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

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

  • context.Company1 - переменная типа Контрагент;
  • context.Company2 - переменная типа Контрагент;
  • context.Document - переменная типа Документ.

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

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.Company1; // определение Контрагента
att.Documents.Add(context.Document); // добавление документа
att.Save(); // сохранение привязки

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

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

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

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