Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по работе с Com.DiadocApi

Вопрос по работе с Com.DiadocApi
Я
   Strogg
 
04.03.21 - 16:39
Привет, Коллеги.
Не могу понять, как работает этот зловредный диадок.
Пример беру прямо из примеров на сайте с минимальными различиями.

    DiadocApi = Новый ComОбъект("Diadoc.DiadocClient");
    DiadocApi.ApiClientId = "_нашКлюч_";
    DiadocApi.ServerUrl   = "https://diadoc-api.kontur.ru:443";;
    Certificates = DiadocApi.GetPersonalCertificates();
    
    ОтпечатокСертификата = Certificates.GetItem(0).Thumbprint;
    DiadocConnection = DiadocApi.CreateConnectionByCertificate(ОтпечатокСертификата);
    
    BoxId = "ИмяНашегоЯщика@diadoc.ru";
    Organization = DiadocConnection.GetOrganizationById(BoxId);

    DocumentTask = Organization.GetDocumentsTask();
    DocumentTask.FromDocumentDate = НачалоГода(ТекущаяДата());
    DocumentTask.ToDocumentDate = КонецГода(ТекущаяДата());
    DocumentTask.Category    = "Invoice.OutboundFinished";
    DocumentList = DocumentTask.GetDocuments();
    Сч = 0;
    Пока сч < DocumentList.Count Цикл
         //тут выполняю какие-то действия с документами
Вопрос состоит в том, что Список документов всегда приходит пустым за любой интервал дат.
Соединение создается, отпечаток сертификата тот что надо, Категория документов из документации и строка фильтра построена как надо.
Метод DocumentTask.GetDocuments() отрабатывает без ошибок, но неизменно пустой(

Что я делаю не так?
   Strogg
 
1 - 04.03.21 - 16:48
+ Кстати, в этом же контексте пытаюсь даже использовать метод
Document = Organization.GetDocumentById(IDДокумента) из конкретного сообщения (получаю из сообщения текущей строки на форме), тогда ругается:
invalid string position
   mikecool
 
2 - 04.03.21 - 18:00
у тебя обработка работы с диадоком есть?
   mikecool
 
3 - 04.03.21 - 18:02
+2 правда я на таком уровне не копал
хочешь получить список изменений по документам?
   mikecool
 
4 - 04.03.21 - 18:02
на гитхабе диадока в тематической ветке задавал вопрос?
   mikecool
 
5 - 04.03.21 - 18:04
и кстати - а чего не напрямую через http запрос?
   John D
 
6 - 04.03.21 - 19:09
Вообще странно.
И GetDocuments(), и GetDocumentById() работают как часы. Откуда берешь IDДокумента?

И еще - без указания DocumentTask.Category пробовал?
   mikecool
 
7 - 04.03.21 - 19:35
ИД документа Диадок включает в себя messageid и нуид документа
в 1с хранится в виде 64 разрядного значения
   Strogg
 
8 - 04.03.21 - 20:13
(2) (3)  мне надо сохранить весь документооборот по завершенный инвойсам. После того, как получу список документов сохраню в виде зтп архива. Да, в модуле диадока и высмотрел этот saveallcontentasync()
(6) без указания категории ругается на то, что фильтр недозаполнен
(7) о! Я беру id из сообщения, из соответствующего реквизита. Это что за ид? И где взять второй?
   mikecool
 
9 - 04.03.21 - 22:55
(8) при встройке модуля диадоку в конфигурацию ве идентификаторы идут как доп свойства
   mikecool
 
10 - 04.03.21 - 22:57
+9 ИДДокументаДиадок, ИДСчетФактураДиадок и какой то еще
вот они - два гуида в 64ричном представлении, в обработке есть функции преобразования туда и обратно
   Strogg
 
11 - 05.03.21 - 09:32
(10) спасибо. Только у нас модуль диадока не встроен, и встраивать его не будут. У нас есть только модуль EDI. Там есть справочник сообщений, где есть реквизит ID сообщения. КАк раз его я и брал
   Strogg
 
12 - 05.03.21 - 10:25
Блин, открыл сообщение через редактор реквизитов, у него оказывается в ТЧ Дополнительных реквизитов есть еще два гуида: OriginalId и BoxId. Щас буду играться с ними. (9) Спасибо еще  раз за на_водку)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.