|
1с контур.Диадок версия 4.16 документ отправлен, а как узнать через 1С что он отправлен? | ☑ | ||
---|---|---|---|---|
0
evorle145
27.07.22
✎
11:21
|
Бухгалтер отправил через этот модуль документ, а как мне в собрать отчет, что отправлено, а что нет?
Предыдущая версия диадока к каждому отправленному документу прикрепляла в регистр сведений "доп сведения" некие файлы (протоколы отправки или вроде того), а этот новый модуль ничего не прикрепляет... |
|||
1
Bigbro
27.07.22
✎
11:26
|
возможно стоит обратиться через API Диадока на их сервер и запросить статус документа.
|
|||
2
rozer76
27.07.22
✎
11:51
|
у себя так и сделал - регламент который долбит АПИ, кста и состояние маркировки из ЧЗ можно получать также если марки отправили по ЭДО
|
|||
3
evorle145
27.07.22
✎
11:51
|
(1) обратился в службу поддержки.. говорят делать через комментарий...
|
|||
4
evorle145
27.07.22
✎
11:52
|
(2) а можно пример кода? или хоть как к этому подступиться?
|
|||
5
rozer76
27.07.22
✎
11:52
|
(3) еще можно в ПМ "подключаемом модуле" по событию писать куда нужно, ну чтобы основной модуль не ломать
|
|||
6
evorle145
27.07.22
✎
11:53
|
(5) Как это по событию? то есть добавить в этот модуль свой кусок кода? но ведь он же автоматически обновляется... все же затрется, как я понимаю...
|
|||
7
rozer76
27.07.22
✎
11:55
|
(6) в ПМ
// После отправки пакета в ДД, когда пакету и документам присвоены ID Функция ПослеОтправкиПакета(Параметры) //http://1c-pro-docs.diadoc.ru/ru/latest/func/pm/Posle_Otpravki_Paketa.html Пакет = Параметры.Пакет; //+++//roz//2021-11-12 [] Для каждого ОтправляемыйДокумент из Пакет.Документы Цикл УстановитьСтатусПроверкиДокументов(ОтправляемыйДокумент.Документ1С); Если ТипЗнч(ОтправляемыйДокумент.Документ1С)= Тип("ДокументСсылка.СчетФактураВыданный") Тогда ДокументОснование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОтправляемыйДокумент.Документ1С,"ДокументОснование"); УстановитьСтатусПроверкиДокументов(ДокументОснование); КонецЕсли; КонецЦикла; //---//roz//2021-11-12 Возврат Истина; КонецФункции |
|||
8
rozer76
27.07.22
✎
11:57
|
(4) примерно так
Функция ПолучитьСтатусГИСМТДокументаПоAPIДиадок(Гуид, boxId, ПредставлениеДокумента) СтатусГИСМТ = ""; ddauth_api_client = "БЛА-БЛА-БЛА"; ТекущийПользователь = Пользователи.ТекущийПользователь(); УстановитьПривилегированныйРежим(Истина); ЛогинЭДОДиадок = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийПользователь , "ЛогинЭДОДиадок"); ПарольЭДОДиадок = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТекущийПользователь , "ПарольЭДОДиадок"); УстановитьПривилегированныйРежим(Ложь); messageId = Лев(Гуид,36); entityId = СтрЗаменить(Гуид,messageId,""); Если ЗначениеЗаполнено(entityId) Тогда Попытка АдресРесурса = "/Authenticate?login="+ЛогинЭДОДиадок+"&password="+ПарольЭДОДиадок; АдресСайта = "diadoc-api.kontur.ru"; HTTPЗапрос2 = Новый HTTPЗапрос; HTTPЗапрос2.Заголовки.Вставить("POST "+АдресРесурса+" HTTP/1.1"); HTTPЗапрос2.Заголовки.Вставить("Host", "diadoc-api.kontur.ru"); HTTPЗапрос2.Заголовки.Вставить("Content-Length", 0); HTTPЗапрос2.Заголовки.Вставить("Authorization", "DiadocAuth ddauth_api_client_id="+ddauth_api_client); HTTPЗапрос2.АдресРесурса = АдресРесурса; Соединение1 = Новый HTTPСоединение(АдресСайта,,,, , ,Новый ЗащищенноеСоединениеOpenSSL(),Ложь); ФайлРезультата = ПолучитьИмяВременногоФайла(); Соединение1.ОтправитьДляОбработки(HTTPЗапрос2,ФайлРезультата); Ответ = Новый ТекстовыйДокумент(); Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8); Токен = Ответ.ПолучитьТекст(); АдресСайта = "diadoc-api.kontur.ru/V3/GetDocument?boxId="+boxId+"&messageId="+messageId+"&entityId="+entityId; HTTPЗапрос2 = Новый HTTPЗапрос; HTTPЗапрос2.Заголовки.Вставить("GET /V4/GetDocument HTTP/1.1"); HTTPЗапрос2.Заголовки.Вставить("Host", "diadoc-api.kontur.ru"); HTTPЗапрос2.Заголовки.Вставить("Accept", "application/json"); HTTPЗапрос2.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8"); HTTPЗапрос2.Заголовки.Вставить("Authorization", "DiadocAuth ddauth_api_client_id="+ddauth_api_client+",ddauth_token="+Токен); Соединение1 = Новый HTTPСоединение(АдресСайта,,,, , ,Новый ЗащищенноеСоединениеOpenSSL(),Ложь); ОтветHTTP = Соединение1.Получить(HTTPЗапрос2); ОтветJSON = ОтветHTTP.ПолучитьТелоКакСтроку(); ОтветСтруктура = мПрочитатьJSON(ОтветJSON); Для каждого LastOuterDocflow Из ОтветСтруктура.LastOuterDocflows Цикл OuterDocflow = LastOuterDocflow.OuterDocflow; Если OuterDocflow.DocflowNamedId = "TtGis" Тогда СтатусГИСМТ = OuterDocflow.Status.Type; Прервать; КонецЕсли; КонецЦикла; Исключение ОписаниеИсключения = СтрШаблон(НСтр("ru = 'Ошибка работы с ЭДО %1: %2'"), ПредставлениеДокумента, КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); Если ВызовИзФормы Тогда ВызватьИсключение ОписаниеИсключения; КонецЕсли; ОповеститьОбОшибке(ОписаниеИсключения, Истина); Возврат ""; КонецПопытки; КонецЕсли; Возврат СтатусГИСМТ; КонецФункции |
|||
9
rozer76
27.07.22
✎
11:59
|
(6) >> но ведь он же автоматически обновляется
я про ПМ - это не затрется ) это внешняя обработка которую можно указать в настройках основного модуля - сам пилишь кастом свой на любое почти событие диадока |
|||
10
evorle145
27.07.22
✎
12:04
|
(9) аа.. то есть туда можно добавить подключаемый модуль... или даже подключаемую обработку! не знал... это интересный вариант..
(8) спасибо! пробую разобраться |
|||
11
rozer76
27.07.22
✎
12:16
|
(10) кури про ПМ , вот пример https://infostart.ru/1c/articles/1247892/
|
|||
12
Mort
27.07.22
✎
12:20
|
Модуль диадок это клиника. Лучше бы сделали удобную открытую библиотеку для работы с их API. Внедрение диадока во вменяемой конторе выглядит так: запустили модуль, поблевали, написали свои обращения к API.
|
|||
13
rozer76
27.07.22
✎
12:27
|
(12) нуу, почти.. я универсальный модуль раскрячил вдоль и поперек ибо много не реализовано, например "интеркампани", слабая поддержка ЧЗ. А АПИ описано давно https://developer.kontur.ru/docs/diadoc-api/index.html. Но писать самим ЭДО это такое себе ...
|
|||
14
unknown181538
31.07.22
✎
15:15
|
(8) Вот это круть! Я думал, реализовать регламент очень сложно, и придется автоматическое подключение сертификата делать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |