# IDiadocService Чтобы получить указанный сервис, необходимо реализовать следующий код: ```C# var service = Locator.GetServiceNotNull(); ``` Описание свойств и методов сервиса:

namespace ITino.ELMA.Documents.Diadoc.Services

```C# /// /// Сервис работы с Диадок /// public interface IDiadocService { /// /// Сервис инициализирован и авторизован /// bool Initialized { get; } /// /// Отключить интеграцию /// void Shutdown(); /// /// Ожидание операции по отправке документа в Диадок /// bool WaitSendingOps { get; set; } /// /// Получить информацию о контрагенте по ИНН /// /// /// /// // ReSharper disable once InconsistentNaming IEnumerable GetContractorInfoByINN(string inn, string kpp = null); /// /// Получить информацию о контрагенте /// /// /// IEnumerable GetContractorInfo(IContractor contractor); /// /// Получить свою организацию по контрагенту /// /// /// Organization GetOwnContractorInfo(IContractor contractor); /// /// Получить контрагента если он есть в активном списке /// /// /// /// Organization GetContractorInList(IContractor owner, IContractor contractor); /// /// Получить контрагента по ящику если он есть в списке /// /// /// /// IContractor GetContractorInList(IContractor owner, string boxId); /// /// Получить контрагента и статус списка для нашей организации /// /// /// /// Counteragent GetContractorInfoForTab(Organization org, IContractor contractor); /// /// Получить данные организации по ящику /// /// /// Organization GetOrganizationByBox(string boxId); /// /// Можно ли отправить документ /// /// /// /// EODiadocCanSendStatus CanSendDocument(IContractor owner, IContractor contractor); /// /// Получить список документов по фильтру /// /// /// /// /// /// /// DocumentList GetDocuments(IContractor owner, string filterCategory, DateTime? lastCheck, string alterIndexKey = null, int? count = null); /// /// Получить данные о документе в Диадоке /// /// /// Document GetDocument(ICODiadocDocument entity); /// /// Получить данные о документе в Диадоке /// Document GetDocument(string boxId, string messageId, string documentId); /// /// Получить строковое содержимое сущности /// /// /// /// /// string GetEntityContentString(string boxId, string messageId, string entityId); /// /// Получить содержимое сущности /// /// /// /// /// byte[] GetEntityContent(string boxId, string messageId, string entityId); /// /// Сериализовать данные формализованного документа /// /// /// object SerializeData(Document doc); /// /// Получить сообщение по документу /// /// /// Message GetMessage(ICODiadocDocument entity); /// /// Генерация печатной формы документа /// /// /// BinaryFile GeneratePrintForm(ICODiadocDocument entity); /// /// Сформировать документооборот целиком /// /// /// BinaryFile GenerateDocumentZip(ICODiadocDocument entity); /// /// Получить информацию о подписи /// /// /// Наша подпись /// SignatureInfo GetSignatureInfo(ICODiadocDocument entity, bool own = true); /// /// Получить сущность по идентификатору /// /// /// /// Entity GetEntity(ICODiadocDocument entity, string entityId); /// /// Получить информацию об отказе в подписании /// /// /// SignatureRejectionInfo ParseSignatureRejectionXml(ICODiadocDocument entity); /// /// Получить информацию об отказе в подписании /// /// /// /// /// SignatureRejectionInfo ParseSignatureRejectionXml(string boxId, string messageId, string entityId); /// /// Получить информацию о запросе на аннулирование /// /// /// RevocationRequestInfo ParseRevocationRequestXml(ICODiadocDocument entity); /// /// Получить последнее событие для ящика /// /// /// BoxEvent GetLastEvent(string boxId); /// /// Получить новые события для ящика /// /// /// /// BoxEventList GetNewEvents(string boxId, string lastEventId); /// /// Получить подразделения для ящика /// /// /// DepartmentList GetDepartments(string boxId); /// /// Получить сотрудников для подразделения /// /// /// /// IEnumerable GetEmployees(string boxId, string departmentId); /// /// Отправить не формализованный документ /// /// Документ /// Ящик отправителя /// Ящик получателя /// Подразделение /// Сотрудник /// Требуется подпись контрагента /// Комментарий /// DiadocMessageResult SendNonformalized(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc, Guid? departmentId = null, Guid? userId = null, bool needRecipientSignature = true, string comment = null); /// /// Отправить счет /// /// Документ /// Ящик отправителя /// Ящик получателя /// Номер счета /// Дата счета /// Сумма /// НДС, если есть /// Подразделение /// Сотрудник /// Комментарий DiadocMessageResult SendProformaInvoice(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc, string docNumber, DateTime docDate, Money total, Money? vat = null, Guid? departmentId = null, Guid? userId = null, string comment = null); /// /// Отправить договор /// /// Ящик отправителя /// Ящик получателя /// Документ /// Номер договора /// Дата договора /// Тип договора /// Цена договора,если есть /// Подразделение /// Сотрудник /// Комментарий /// DiadocMessageResult SendContract(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc, string docNumber, DateTime docDate, string contractType, Money? contractPrice = null, Guid? departmentId = null, Guid? userId = null, string comment = null); /// /// Отправить дополнительное соглашение /// /// Ящик отправителя /// Ящик получателя /// Документ /// Номер ДС /// Дата ДС /// Номер договора /// Дата договора /// Тип договора /// Цена ДС, если есть /// Подразделение /// Сотрудник /// Комментарий /// DiadocMessageResult SendSupplementaryAgreement(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc, string docNumber, DateTime docDate, string contractNumber, DateTime contractDate, string contractType = "", Money? total = null, Guid? departmentId = null, Guid? userId = null, string comment = null); /// /// Отправить протокол согласования цены /// /// Ящик отправителя /// Ящик получателя /// Документ /// Номер ДС /// Дата ДС /// Подразделение /// Сотрудник /// Комментарий /// DiadocMessageResult SendPriceListAgreement(string fromBoxId, string toBoxId, EleWise.ELMA.Documents.Models.IDocument doc, string docNumber, DateTime docDate, Guid? departmentId = null, Guid? userId = null, string comment = null); } ```