<< Click to Display Table of Contents >> Обмен с контрагентами > Настройка обмена с контрагентами Рекомендации по устранению ошибок обмена с контрагентами |
При обмене с контрагентами могут возникать ошибки, например при синхронизации контрагентов, загрузке или отправке документов в сервис обмена.
Примеры ошибок:
После согласования и подписания универсального передаточного документа (УПД) в нашей организации сотрудник отправил его контрагенту через сервис обмена Диадок. При отправке возникла ошибка вида: «Данные в запросе имеют неверный формат или отсутствуют обязательные параметры». Решение 1.Выгрузите документ в формате XML. 2.Проверьте документ на корректность формата. Для этого можно использовать страницу сайта Диадок: https://www.diadoc.ru/docs/forms/validation-xml. 3.Если при проверке возникли ошибки, скорректируйте документ в учетной системе. Затем заново проверьте его. 4.Если проверка завершилась успешно, импортируйте документ в Directum RX и повторно запустите согласование по регламенту. После согласования и подписания отправьте документ контрагенту. |
Предположим, что контрагент отправил документ из сервиса Диадок нашей организации в Directum RX. Входящее сообщение по этому документу попало в список необработанных в справочнике Элементы очереди синхронизации сообщений. Такое могло произойти, если контрагент не синхронизирован с нашей организацией. Решение 1.Убедитесь, что задания на обработку конфликтов синхронизации контрагентов выполнены. 2.Проверьте, что фоновый процесс «Электронный обмен. Синхронизация контрагентов» запущен и выполняется регулярно. Если фоновый процесс отключен, запустите его. 3.Устраните все ошибки в журнале событий фонового процесса, опираясь на тексты ошибок. 4.Дождитесь успешной синхронизации контрагентов и через 30 минут проверьте, загрузилось ли сообщение. Если сообщение по-прежнему не загружается, повторно запустите полную синхронизацию контрагентов: 1.Проверьте последнюю дату синхронизации контрагентов. Для этого выполните запрос к базе данных: select * from sungero_docflow_params where Key='LastBoxSyncDate_<ИД_абонентского_ящика_нашей_организации>' 2.Обнулите дату синхронизации с помощью запроса: update Sungero_Docflow_Params 3.Запустите фоновый процесс «Электронный обмен. Синхронизация контрагентов». В результате все контрагенты указанного абонентского ящика синхронизируются. 4.Проверьте, что обмен с нужными организациями установился, и сообщение загрузилось. 5.Выполните все задания на решение конфликтов синхронизации, если они есть. При необходимости аналогично синхронизируйте контрагентов для других абонентских ящиков наших организаций. |
Документы перестали загружаться в Directum RX и отправляться в сервис обмена. При выполнении фонового процесса «Электронный обмен. Получение сообщений» в лог-файле сервиса асинхронных событий (Worker) возникает ошибка «401 unauthorized», а в лог-файле сервиса хранилищ – «Signature validation failed. Unable to match key». Причиной возникновения ошибок может быть разное значение параметра DATA_PROTECTION_CERTIFICATE_THUMBPRINT в конфигурационных файлах системы. При поступлении документа из сервиса обмена в его обработке участвует сервис асинхронных событий. После успешной обработки документ заносится в сервис хранилищ. При подключении к сервисам используется сертификат Data protection, указанный в параметре. Так как он различается в конфигурационных файлах сервиса Worker и сервиса хранилищ, то возникают ошибки. Решение 1.На всех серверах проверьте, что в конфигурационных файлах системы значение параметра DATA_PROTECTION_CERTIFICATE_THUMBPRINT одинаковое. Также проверьте, что в параметре DATA_PROTECTION_CERTIFICATE_FILE_PASSWORD задан одинаковый пароль для этого сертификата. Если значения различаются, скорректируйте их. 2.Убедитесь, что сертификат расположен в папке, путь до которой задан в параметре DATA_PROTECTION_CERTIFICATE_FILE. Если на одном из серверов по указанному пути нет сертификата, то добавьте его с другого сервера или создайте самостоятельно с помощью команды: do generate_data_protection_cert_from_config ./do.sh generate_data_protection_cert_from_config В результате сертификат сгенерируется из параметра DATA_PROTECTION_CERTIFICATE_FILE с паролем, указанным в DATA_PROTECTION_CERTIFICATE_FILE_PASSWORD. |
Предположим, что после согласования с контрагентом документы выгружаются на проверку для Федеральной налоговой службы (ФНС). Если экспортировать каждый документ отдельно, то выгрузка работает корректно. При массовой выгрузке возникает ошибка. При выгрузке создается ZIP-архив. Для формирования архива нужен доступ к файловому хранилищу, чтобы получить содержимое документов. Если доступа к файловому хранилищу нет, то в лог-файле сервиса хранилищ фиксируется сообщение об ошибке, например: {"t":"2023-03-22 14:30:15.594+03:00","pid":"55813+22","tr":"45181586-c8fd3d","l":"Error","lg":"GlobalExceptionExtensions","mt":"Command update failed: not authorized on Sungero_StorageService to execute command { update: \"ZipStatusInfo\", ordered: true, $db: \"Sungero_StorageService\", lsid: { id: UUID(\"5bf35a66-023с-362f-d6c3-66f47343255a\") } }.","ex":{"type":"MongoDB.Driver.MongoCommandException" … } В примере видно, что ошибка связана с настройкой MongoDB, и сервис не может подключиться в базе данных Sungero_StorageService. Решение Выдайте права пользователю, от имени которого идет подключение к СУБД MongoDB, на базу данных Sungero_StorageService. Для этого: 1.Запустите Mongo Shell и создайте пользователя, который будет использоваться в строке подключения к MongoDB, если он еще не создан. 2.Выполните команду для назначения прав пользователю на БД Sungero_StorageService: db.grantRolesToUser('userMongo', [{ role: "readWrite", db: "Sungero_StorageService"}]) 3.Вместо userMongo укажите созданного пользователя. 4.Запустите массовую выгрузку документов. Убедитесь, что ошибка больше не возникает. |
© Компания Directum, 2024 |