[ELMA3] Сценарии для работы с документами в карточке контрагента
В данной статье рассматриваются варианты работы с документами в карточке контрагента в сценариях.
Примеры сценариев с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарии, указанные ниже, актуальны для версий системы ELMA до 3.15.38 включительно.
Контекстные переменные:
- 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;});}