Переход на новые версии Универсального транспортного модуля (УТМ) ЕГАИС часто сопровождается техническими сбоями в работе учетных систем. Одним из наиболее проблемных периодов стало внедрение версии УТМ 3.0.8, которое вызвало массовый отказ интеграции с конфигурацией 1С:Розница 2.2.9.19. Пользователи столкнулись с невозможностью получить код ФСРАР, зависанием транспортных служб при использовании ключей Рутокен и критическими багами в последующих обновлениях 1С.
В данной статье мы подробно проанализируем причины возникновения этих неисправностей и разберем по шагам все проверенные способы их устранения — от ручной настройки сопоставления данных до низкоуровневого конфигурирования библиотек криптографии.
При попытке установить связь с УТМ 3.0.8 из конфигурации 1С:Розница 2.2.9.19 система выдает критическую ошибку. Выясним причину этого поведения.
Разработчики ФСРАР в версии УТМ 3.0.8 изменили внутреннюю структуру и HTML-верстку главной (домашней) страницы веб-интерфейса модуля, расположенной по адресу http://localhost:8080/. Платформа 1С забирает уникальный идентификатор организации (FSRAR ID) методом парсинга этой веб-страницы. Так как регулярные выражения в коде версии 2.2.9.19 были жестко привязаны к тегам старого интерфейса УТМ 2.1.6, парсер 1С выдает ошибку, сообщая, что связь отсутствует.
Если мы не можем обновить конфигурацию 1С (например, из-за наличия кастомизированного кода или сопутствующих багов релиза 2.2.9.20), мы можем настроить обмен в обход автоматического парсинга. Рассмотрим, как это сделать вручную:
http://localhost:8080/ и скопируем наш уникальный идентификатор FSRAR ID (двенадцатизначный числовой код).localhost:8080) и укажем наш код ФСРАР.Важный нюанс: При сохранении настроек программа попытается выполнить тест связи и выдаст предупреждение об ошибке. Мы должны проигнорировать это сообщение. Поскольку сам транспортный контур обмена документами (отправка XML-пакетов через API) в УТМ не изменился, отправка и получение ТТН будут работать корректно, несмотря на статус "Нет связи" в интерфейсе настроек.
Если ручная привязка организации не помогает или требуется обеспечить максимально стабильную работу без изменения бизнес-процессов, мы можем временно вернуться к использованию УТМ 2.1.6. Однако по умолчанию служба обновления УТМ (Transport-Updater) при первом же обращении к серверам ФСРАР принудительно скачает и установит версию 3.0.8.
Чтобы зафиксировать рабочую версию УТМ 2.1.6, выполним следующие действия по блокировке апдейтера:
C:\UTM\updater\conf\.updater.properties и откроем его с помощью текстового редактора (например, Блокнота) с правами администратора.#) в самом начале следующих строк:
#update.properties.address=http://...
#update.address=http://...
Сохраним изменения в файле и запустим службы УТМ. Теперь модуль обновления не сможет связаться с сервером загрузки, и система продолжит стабильно работать на версии 2.1.6.
Внимание: Этот метод является временным решением. В декабре 2018 года ФСРАР обновил корневые сертификаты удостоверяющего центра. УТМ версий ниже 3.0.8 без ручной замены файлов библиотек шифрования в каталогах /transporter/lib/ и /updater/lib/ полностью теряет возможность обмениваться данными с серверами ЕГАИС. Рассматривайте этот метод только как краткосрочную меру для подготовки полноценного обновления учетных систем.
Для исправления проблемы совместимости с УТМ 3.0.8 компания 1С выпустила релиз 2.2.9.20. Однако при обновлении на него пользователи торгового оборудования АТОЛ столкнулись с критической ошибкой при выгрузке отчетов о продажах: Поле объекта не обнаружено.
Проанализируем причину этой проблемы. В релизе 2.2.9.20 разработчики добавили новый механизм взаимодействия со смарт-терминалами «1С:Эвотор Офлайн». При этом в общем модуле офлайн-обмена процедура загрузки данных из ККМ НачатьЗагрузкуДанныхИзККМ стала выполнять некорректную проверку признака первой загрузки. При работе со сторонним оборудованием (в частности, с кассами под управлением Frontol через драйвер АТОЛ:ККМ Офлайн) эта проверка вызывала аварийное завершение работы программы.
Если вам критически важно работать в релизе 2.2.9.20 с рабочим обменом АТОЛ, выполните одно из следующих действий:
.cfe), которое замещает сбойную процедуру общего модуля обмена и отключает принудительную проверку признака Эвотор для ККМ других производителей.НачатьЗагрузкуДанныхИзККМ и закомментируйте блок кода, обращающийся к свойствам объекта Эвотор, которые отсутствуют у оборудования АТОЛ.При переходе на УТМ 3.0.8 пользователи аппаратных ключей Рутокен ЭЦП 2.0 часто сталкиваются с тем, что служба транспорта не запускается, а в логах фиксируется ошибка: CKR_USER_ALREADY_LOGGED_IN (пользователь уже авторизован).
Эта техническая проблема вызвана тем, что службы Transporter и Agent в составе УТМ 3.0.8 начинают параллельно отправлять запросы к криптографической библиотеке PKCS#11 аппаратного ключа. Библиотека rtPKCS11ECP.dll от Рутокен не поддерживает одновременное открытие нескольких сессий авторизации с одинаковыми параметрами безопасности от разных системных процессов, что приводит к взаимной блокировке.
Для устранения этой проблемы применим метод разделения криптографических потоков через создание виртуальной копии (реплики) библиотеки:
C:\Windows\SysWOW64\, для 32-разрядных — C:\Windows\System32\.rtPKCS11ECP.dll.rtPKCS11ECP-replica.dll.C:\UTM\transporter\conf\.transport.properties и отредактируем параметры путей к библиотекам PKCS#11. Пропишем для ГОСТ-подписи использование реплики, а для RSA — оригинальный файл:
gost.pkcs11.library.path=C:\\Windows\\System32\\rtPKCS11ECP-replica.dll
rsa.library.path=C:\\Windows\\System32\\rtPKCS11ECP.dll
Примечание: Если у вас установлена 64-битная операционная система Windows, пути должны указывать на каталог SysWOW64:
gost.pkcs11.library.path=C:\\Windows\\SysWOW64\\rtPKCS11ECP-replica.dll
rsa.library.path=C:\\Windows\\SysWOW64\\rtPKCS11ECP.dll
Аналогичные изменения при необходимости внесем в конфигурационные файлы агента УТМ (C:\UTM\agent\conf\agent.properties). После этого перезапустим операционную систему. Разделение обращений служб к разным физическим копиям библиотеки PKCS#11 полностью решает проблему блокировки авторизации ключа.
Рассмотрим ситуацию, когда при работе на стыке версий Розницы и УТМ пользователь случайно отправил в ЕГАИС акт отказа от накладной (ТТН), после чего документ в 1С принял статус «Отменен», а сама запись пропала из активного рабочего списка входящих документов.
Для восстановления процесса и приемки алкоголя на баланс выполним следующие шаги:
RequestRepealWB). Поставщик со своей стороны должен подтвердить этот запрос в своем личном кабинете или учетной системе. После подтверждения поставщиком накладная в системе ЕГАИС вернется в статус «Проведена» (ожидает подтверждения получателем).curl.exe, которая позволяет отправлять прямые HTTP-запросы к веб-серверу УТМ.http://localhost:8080/opt/out. Найдем в списке XML-документ с типом Ticket и скопируем его идентификатор (например, Ticket/11800).
curl -X DELETE http://localhost:8080/opt/out/Ticket/11800
После удаления блокирующего тикета из очереди УТМ запустим обмен в 1С повторно. Ошибка исчезнет, конфигурация успешно обновит статусы документов, и мы сможем штатно подтвердить восстановленную накладную.