Как авторизоваться в системе Диадок

Для работы с системой Диадок необходимо:

  • загрузить внешнюю компоненту
  • создать соединение с сервером Диадок
  • создать контекст работы с организацией

Как загрузить внешнюю компоненту

Загрузка AddIn компоненты

//Загрузка внешней компоненты
ИмяФайла = "C:\Temp\AddInDiadocAPI.dll";
ЗагрузитьВнешнююКомпоненту(ИмяФайла);

//Создание объекта DiadocInvoiceAPI
DiadocApi_ = Новый("AddIn.DiadocInvoiceAPI");
DiadocApi  = DiadocApi_.CreateObject();

//Задаем параметры подлючения к серверу
DiadocApi.ApiClientId = КлючРазработчика;
DiadocApi.ServerUrl   = "https://diadoc-api.kontur.ru:443";

Загрузка COM компоненты

//создаем корневой элемент COM-объекта
DiadocApi = Новый ComОбъект("Diadoc.DiadocClient");

//Задаем параметры подлючения к серверу
DiadocApi.ApiClientId = КлючРазработчика;
DiadocApi.ServerUrl   = "https://diadoc-api.kontur.ru:443";

В случае, когда режим запуска 1С не позволяет запуск внешних компонент, использующих технологию COM, (например, на стороне сервера 1С), необходимо использовать сборку компоненты, которая реализована в виде классического COM-объекта. Перед использованием компоненты нужно зарегистрировать файл DiadocComApi.dll с помощью команды regsvr32

В случае запуска компоненты 64-битным приложением, необходимо использовать 64-битную сборку компоненты

Ключ разработчика представляет собой последовательность символов, идентифицирующий разработчика интеграционного решения. Оставить заявку на ключ

Как создать соединение и авторизоваться

Для вызовов методов сервера Диадок необходимо авторизоваться и получить объект соединения. Соединение следует создавать на каждый сеанс работы. Явно освобождать ресурсы после окончания работы с этим объектом не нужно.

//Получение списка сертификатов
Certificates = DiadocApi.GetPersonalCertificates();

//Создание соединения
ОтпечатокСертификата = Certificates.GetItem(0).Thumbprint;
DiadocConnection = DiadocApi.CreateConnectionByCertificate(ОтпечатокСертификата);

Как создать контекст работы с организацией

Все действия с документами: отправка, получение, подписание и т.д. - выполняются в контексте организации, к которой пользователь имеет права доступа в системе Диадок. Для работы с контекстом организации предназначен объект Organization. Получить его можно одним из двух способов:

Получение контекста организации по идентификатору

BoxId = "8fd0af8abe934c7091b5ccd476ef1cb5@diadoc.ru";
Organization = DiadocConnection.GetOrganizationById(BoxId);

Получение всех доступных пользователю организаций

// Получение списка организаций
OrganizationList = DiadocConnection.GetOrganizationList();
Ц = 0;
Пока Ц < OrganizationList.Count() Цикл
    // Получение конкретной организации
    Organization = OrganizationList.GetItem(ц);
    Сообщить(Organization.Name);
    Ц = Ц + 1;
КонецЦикла;