...

Создание документа при помощи сценарий

Тема в разделе "Проблемы/ошибки", создана пользователем Andrey765, 21 ноя 2018.

  1. Andrey765

    Andrey765 New Member

    Добрый день, создаю документ в сценарии:

    public virtual bool Create (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
    {
    //Новый документ
    var doc = InterfaceActivator.Create<IshodyaschiyDokument> ();
    //Определяем папку
    doc.Folder = (Folder)FolderManager.Instance.Load (51613);
    //Формируем версию
    var version = InterfaceActivator.Create<DocumentVersion> ();
    version.Document = doc;
    doc.Versions.Add (version);
    //Устанавливаем статус версии - Текущая
    version.Status = DocumentVersionStatus.Current;
    // Прикрепляем файл версии
    version.File = context.FileOutDoc;
    //Задаем название
    doc.Name = context.NameDoc;
    doc.DataOtpravki = context.DatOut;
    doc.VidDokumenta = context.ViewDoc;
    doc.TipDoc = context.TipDoc;
    doc.VOtvetNa = context.VOtvetNa;
    doc.SposobOtpravki = context.WayOut;
    doc.Srochno = context.Quickly;
    doc.Soderzhanie = context.Content;
    doc.Primechanie = context.Note;
    doc.Organizaciya = context.Organization;
    doc.Avtor = context.Avtor;
    doc.Podrazdelenie = context.Subdivision;
    doc.Podpisant = context.Signer;
    doc.Otpravitelj = context.Sender;
    doc.ObschKolList = context.TotalSheets;
    doc.KolPrilozh = context.NumberOfAplications;
    doc.KolListVPrilozh = context.TheNumberOfSheetsInApplication;
    //doc.Kontragent = context.Contractor;
    (связь многие ко многим)
    doc.FIOAdresata = context.FIOAdresata;
    //doc.SsylkiNaDoks = context.LinksOnDoc; (связь многие ко многим)
    //doc.SkanKvitObOtprDok = context.ScanReceiptObOutDoc; (связь многие ко многим)
    //Для формирования названия из шаблона
    //doc.Name = DocumentManager.Instance.GenerateName(doc, null, true);
    //Сохраняем
    doc.Save ();
    // Сопоставляем созданный документ с контекстной переменной процесса
    context.OutDoc = (IshodyaschiyDokument)doc;
    return true;
    }
    Цель - передать переменные из контекста процесса в документ.
    Вешаю данный сценарий на переход от одной операции к другой, но он не срабатывает, если переменные, которые я закомментировал не активны, то переход осуществляется, подскажите как это побороть??
    Я заметил, если связь многие ко многим, то переход из-за этого не осуществляется. Подскажите как решить проблему? Спасибо!
     
  2. svergay

    svergay New Member

    У вас связь многие ко многим это коллекция, вы пытаетесь в переменную контрагент запихать целую коллекцию. Выдает ошибку, пробуйте или context.Contractor.ElementAt(i), где i - индекс элемента, или если элемент один context.Contractorю.FirstOrDefault();
     

Поделиться: