Как удалить или заменить внешнюю компоненту в 1С:Управление торговлей при работе с Честным знаком

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с маркировкой табачной продукции и другими товарными группами в системе «Честный знак» пользователи 1С:Управление торговлей (УТ) 11.4 часто сталкиваются с техническими сбоями при подписании документов. Одной из наиболее распространенных проблем является ошибка «Удаленный узел не прошел проверку». Зачастую она вызвана некорректной работой внешней компоненты XMLdsign, которая обновляется вместе с релизом конфигурации. В этой статье мы подробно разберем, как принудительно удалить регистрацию внешней компоненты, заменить её на рабочую версию и настроить окружение сервера для стабильной работы TLS-соединения. Для быстрого устранения этой проблемы можно использовать расширение для исправления ошибки компоненты подписания в УТ 11.4.

Понимание механизма работы NativeAPI

Прежде чем приступать к активным действиям, проанализируем ситуацию с технической точки зрения. Современные компоненты 1С, такие как XMLdsign, используют технологию NativeAPI. В отличие от старых COM-компонент, они не регистрируются в системном реестре Windows через утилиту regsvr32. Следовательно, попытки найти записи о них в HKEY_CLASSES_ROOT или удалить их стандартными консольными командами не принесут результата.

Система 1С работает с такими компонентами следующим образом: при вызове метода ПодключитьВнешнююКомпоненту() платформа ищет библиотеку в специальном локальном кэше. Если её там нет, она извлекает её из макета конфигурации или справочника внешних компонент и сохраняет во временную папку пользователя. Поэтому для «дерегистрации» нам необходимо очистить физические файлы в кэш-директориях.

Шаг 1. Очистка кэша внешних компонент на стороне клиента

Рассмотрим порядок действий для локального компьютера пользователя. Если вы используете файловый вариант базы или работаете в режиме толстого/тонкого клиента, компонента сохраняется в профиле операционной системы.

Выясним точное местоположение файлов. Обычно это путь:

%AppData%\Roaming\1C\1cv8\ExtCompT\

Для удаления выполним следующие действия:

  1. Полностью закроем все запущенные сеансы 1С:Предприятие.
  2. Перейдем в указанную папку через проводник или командную строку.
  3. Найдем файлы, в названии которых встречается XMLdsign или идентификаторы, указанные в манифесте компоненты.
  4. Удалим эти файлы, а также содержимое папки %LocalAppdata%\Temp\v8_*, где могут храниться временные копии библиотек.

Шаг 2. Очистка кэша на стороне сервера (для серверных баз)

Проанализируем ситуацию, когда база работает в клиент-серверном варианте. В этом случае проверка подписи и взаимодействие с API «Честного знака» часто происходит на стороне сервера (в фоновых заданиях или серверных модулях). Это означает, что компонента регистрируется в профиле того пользователя, от имени которого запущена служба 1C:Enterprise 8 Server Agent.

Посмотрим, как найти эти файлы на сервере:

  1. Определим под каким пользователем работает служба 1С. Обычно это USR1CV8.
  2. Перейдем по пути: C:\Users\USR1CV8\AppData\Roaming\1C\1cv8\ExtCompT\.
  3. Важный нюанс: перед удалением файлов необходимо остановить службу сервера 1С, иначе операционная система может заблокировать доступ к библиотекам, так как они загружены в оперативную память процессом rphost.
  4. Если служба работает от имени Local System, проверьте пути в системных профилях: C:\Windows\System32\config\systemprofile\AppData\Roaming\1C....

Шаг 3. Замена компоненты в справочнике конфигурации

Даже если мы очистим кэш, при следующем запуске 1С снова подтянет «проблемную» компоненту из базы данных. Чтобы этого избежать, нам нужно заменить саму версию библиотеки, которая хранится в конфигурации.

Выясним, где именно в вашей версии УТ хранится компонента. В современных релизах это справочник «Общие внешние компоненты» (или аналогичный регистр сведений). Проанализируем алгоритм замены:

  1. Откроем 1С в режиме «Предприятие» под правами администратора.
  2. Перейдем в функции для технического специалиста и найдем справочник «Внешние компоненты».
  3. Найдем запись для XMLdsign.
  4. Загрузим в карточку компоненты файл (архив) из заведомо рабочего релиза (например, из УТ 11.4.12.67, как советовали участники обсуждения).
  5. Сохраним изменения. Теперь при вызове метода УстановитьВнешнююКомпоненту() система принудительно обновит файлы в локальных папках пользователей актуальной (старой рабочей) версией.

Если программная логика требует явного обновления, можно использовать следующий код в обработке обновления или при инициализации системы:


// Принудительная установка компоненты из макета
Результат = УстановитьВнешнююКомпоненту("ОбщийМакет.КомпонентаXMLDSig");
Если Результат Тогда
    ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаXMLDSig", "XMLDSig", ТипВнешнейКомпоненты.Native);
КонецЕсли;

Шаг 4. Устранение ошибки «Удаленный узел не прошел проверку»

Разберем ситуацию глубже: часто проблема кроется не только в версии компоненты, но и в настройках криптографии на сервере. Ошибка проверки узла сигнализирует о сбое в установке защищенного TLS-соединения.

Проанализируем основные причины и способы их устранения:

Резюме по решению проблемы

Подводя итог, для успешного отката версии внешней компоненты и исправления ошибок взаимодействия с ИС МП, мы рекомендуем действовать по следующему чек-листу:

  1. Остановите службу сервера 1С.
  2. Очистите содержимое папок ExtCompT в профилях пользователей и сервисного аккаунта 1С.
  3. Замените бинарный файл компоненты в справочнике внешних компонент или в макете конфигурации на версию из стабильного релиза.
  4. Обновите КриптоПро CSP до актуальной 5-й версии на сервере и всех рабочих станциях.
  5. Проверьте наличие и срок действия корневых сертификатов в системном хранилище сервера.
  6. Запустите службу сервера и проверьте работоспособность обмена.

Следование этой структуре позволит гарантированно избавиться от «зависших» версий библиотек и восстановить процесс приемки и проверки табачной продукции в 1С:Управление торговлей. Для решения других технических вопросов при работе с маркировкой пригодится сборник готовых практических решений по интеграции 1С с Честным знаком.

← На главную