Данная функция работала при создании исходящего из входящего по кнопке на панели инструментов входящего.
Имя ссылки, передаваемое в функцию, должно существовать в справочнике ссылок.
using System;
using DocsVision.BackOffice.CardLib.CardDefs;
using DocsVision.Platform.ObjectModel;
using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Services;
using Docsvision.DocumentsManagement;
using DocsVision.Platform.ObjectModel.Search;
/// <summary>
/// В список ссылок документа добавляет связанный документ
/// </summary>
/// <param name="document">карточка документа в который добавляется ссылка на другую карточку</param>
/// <param name="addeddocument">карточка добавляемого документа в качестве ссылки в карточку другого документа</param>
/// <param name="LinkName">Имя связи из справочника ссылок</param>
private void CreateRefInCard(Document document, Document addeddocument, string LinkName)
{
IReferenceListService referenceService = CardControl.ObjectContext.GetService<IReferenceListService>();
ReferenceList referenceList;
if (document.MainInfo.ReferenceList == null)
{
referenceList = referenceService.CreateReferenceList();
CardControl.ObjectContext.SaveObject(referenceList);
document.MainInfo.ReferenceList = referenceList;
}
else
{
referenceList = document.MainInfo.ReferenceList;
}
LinksLinkType linkType = CardControl.ObjectContext.FindObject<LinksLinkType>(new QueryObject("LinkName", LinkName));
Guid CardTypeID = CardControl.Session.CardManager.GetCardData(CardControl.ObjectContext.GetObjectRef(addeddocument).Id).Type.Id;
referenceService.CreateReference(referenceList, linkType, CardControl.ObjectContext.GetObjectRef(addeddocument).Id, CardTypeID, false);
CardControl.ObjectContext.AcceptChanges();
}
Имя ссылки, передаваемое в функцию, должно существовать в справочнике ссылок.
using System;
using DocsVision.BackOffice.CardLib.CardDefs;
using DocsVision.Platform.ObjectModel;
using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Services;
using Docsvision.DocumentsManagement;
using DocsVision.Platform.ObjectModel.Search;
/// <summary>
/// В список ссылок документа добавляет связанный документ
/// </summary>
/// <param name="document">карточка документа в который добавляется ссылка на другую карточку</param>
/// <param name="addeddocument">карточка добавляемого документа в качестве ссылки в карточку другого документа</param>
/// <param name="LinkName">Имя связи из справочника ссылок</param>
private void CreateRefInCard(Document document, Document addeddocument, string LinkName)
{
IReferenceListService referenceService = CardControl.ObjectContext.GetService<IReferenceListService>();
ReferenceList referenceList;
if (document.MainInfo.ReferenceList == null)
{
referenceList = referenceService.CreateReferenceList();
CardControl.ObjectContext.SaveObject(referenceList);
document.MainInfo.ReferenceList = referenceList;
}
else
{
referenceList = document.MainInfo.ReferenceList;
}
LinksLinkType linkType = CardControl.ObjectContext.FindObject<LinksLinkType>(new QueryObject("LinkName", LinkName));
Guid CardTypeID = CardControl.Session.CardManager.GetCardData(CardControl.ObjectContext.GetObjectRef(addeddocument).Id).Type.Id;
referenceService.CreateReference(referenceList, linkType, CardControl.ObjectContext.GetObjectRef(addeddocument).Id, CardTypeID, false);
CardControl.ObjectContext.AcceptChanges();
}