Как исправить ошибку «Требуется внешняя компонента VPN-key-TLS для 1С:Предприятия 8» при обмене со Сбербанком?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Финансы и профессиональные услуги
← На главную

При работе с сервисом 1С:ДиректБанк пользователи часто сталкиваются с ситуацией, когда после очередного обновления конфигурации (например, «1С:Бухгалтерия предприятия 3.0») привычная отправка платежных поручений в Сбербанк прерывается ошибкой. Программа сообщает, что для прямого обмена требуется внешняя компонента "VPN-key-TLS для 1С:Предприятия 8", и указывает на то, что она не загружена. Рассмотрим подробно, почему возникает этот «ребус» и как его решить самостоятельно, не дожидаясь исправительных релизов от разработчиков. Для подробного анализа причин ошибок взаимодействия с банком можно использовать инструмент для диагностики обмена через 1С:ДиректБанк.

Проанализируем причину возникновения ошибки

Основная причина кроется в механизме хранения внешних компонент внутри типовых конфигураций. Библиотека для связи со Сбербанком (обычно это файлы с именами типа 1CSBRFServiceProxyWin32.dll) встроена в макеты обработки ОбменСБанками. Проанализируем ситуацию: при обновлении 1С система заменяет старые макеты новыми. Если в дистрибутив обновления по ошибке была включена устаревшая версия компоненты (например, 1.2.7.0 вместо необходимой 1.2.9.1), ДиректБанк перестает работать, так как сервер Сбербанка требует использования актуальных протоколов безопасности.

Также важно учитывать разрядность платформы. Если вы перешли на 64-битный клиент 1С, а компонента в макете осталась только 32-битной, загрузка не произойдет. Выясним, как восстановить работоспособность системы через ручное управление компонентами.

Способ 1: Ручная установка компоненты через справочник «Внешние компоненты»

Это наиболее эффективный и современный способ, который позволяет «перебить» настройки, зашитые в коде конфигурации. Начиная с последних версий БСП (Библиотеки стандартных подсистем), 1С умеет приоритетно использовать компоненты, загруженные непосредственно в информационную базу.

Рассмотрим шаги по реализации этого метода:

  1. Скачаем архив с актуальной компонентой. Официальный архив от Сбербанка обычно содержит два файла: для 32-битных систем (Win32) и для 64-битных (Win64). Нам необходимо убедиться, что у нас есть оба варианта.
  2. В режиме «1С:Предприятие» перейдем в меню «Сервис и настройки» (кнопка в правом верхнем углу) — «Функции для технического специалиста» (в старых версиях — «Все функции»).
  3. В открывшемся списке найдем раздел «Справочники» и выберем пункт «Внешние компоненты».
  4. Нажмем кнопку «Создать». В форме создания компоненты выберем вариант «Из файла на данном компьютере» и укажем путь к скачанному ZIP-архиву (программа сама распознает нужные DLL внутри архива).
  5. Проверим, что версия компоненты соответствует 1.2.9.1 или выше.
  6. Запишем и закроем карточку. Перезапустим 1С для инициализации изменений.

Способ 2: Замена компоненты в макете через Конфигуратор

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

  1. Откроем Конфигуратор и найдем в дереве объектов ветку «Обработки».
  2. Найдем обработку ОбменСБанками. Развернем ее и перейдем в раздел «Макеты».
  3. Найдем макет с именем SBRFServiceProxy. Кликнем по нему правой кнопкой мыши.
  4. Выберем пункт «Загрузить из файла...» и укажем путь к новой версии компоненты (в формате ZIP).
  5. Сохраним конфигурацию базы данных (клавиша F7).

После этих действий программа при попытке подключения к Сбербанку будет извлекать из своих недр уже обновленную библиотеку.

Техническая доработка кода при ошибках аутентификации

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

Рассмотрим пример кода, который исправляет проблему некорректной передачи подписи соли:


// В процедуре ПровестиАутентификациюПослеПолученияФродПараметровСбербанк
// Заменим стандартный вызов на очищенный от спецсимволов

ПодписьСоли = СтрЗаменить(СтрЗаменить(ДополнительныеПараметры.ПодписьСоли, Символы.ПС, ""), Символы.ВК, "");

ДополнительныеПараметры.ПодключаемыйМодуль1С.НачатьВызовАутентификация(
    Оповещение,
    ДополнительныеПараметры.ИдентификаторСессии, 
    ПодписьСоли, 
    ДополнительныеПараметры.СтрокаФрод,
    ИдентификаторСессии, 
    КодВозврата
);

Этот фрагмент кода гарантирует, что компонента VPN-key-TLS получит «чистую» строку без невидимых символов Символы.ПС (перевод строки) и Символы.ВК (возврат каретки), которые могут добавляться платформой автоматически.

Работа с кэшем внешних компонент

Иногда даже после правильной установки компоненты 1С продолжает «видеть» старую версию. Это происходит из-за того, что DLL-файлы кэшируются в локальных папках пользователя Windows. Выясним причину и устраним ее:

  1. Закроем все сеансы 1С на компьютере.
  2. Перейдем в каталог %AppData%\1C\1Cv8\ExtCompT\ (эту строку можно вставить прямо в адресную строку проводника).
  3. Проанализируем содержимое: здесь хранятся распакованные библиотеки. Удалим содержимое этой папки.
  4. Найдем файл registry.xml в этой же папке. Его также можно удалить или очистить, чтобы 1С заново зарегистрировала компоненту при следующем запуске.

Важный момент: Если вы используете клиент-серверный вариант работы, убедитесь, что разрядность сервера 1С также учитывается, если вызовы ДиректБанка происходят на стороне сервера (хотя аутентификация в Сбербанке обычно клиентская).

Особенности для пользователей без токена (SMS-подтверждение)

Некоторые пользователи ошибочно полагают, что компонента VPN-key-TLS нужна только для аппаратных ключей (токенов). Проанализируем ситуацию: данная библиотека выполняет роль криптографического шлюза (TLS-прокси). Она создает защищенный туннель между вашей 1С и банковским шлюзом UPG. Даже если вы подтверждаете платежи через SMS, само соединение должно быть зашифровано именно этой компонентой. Поэтому установка актуальной версии 1.2.9.1 обязательна для всех видов авторизации в Сбербанк Бизнес Онлайн через ДиректБанк.

Подводя итог, можно сказать, что решение проблемы «незагруженной компоненты» сводится к контролю актуальности файлов в справочнике Внешние компоненты и очистке локального кэша. Использование актуальной библиотеки гарантирует стабильный обмен документами без необходимости ручного импорта файлов в интернет-банк. При необходимости получать банковские данные без использования прямого обмена подойдёт инструмент для автоматической загрузки выписок Сбербанка в 1С:Бухгалтерию 3.0.

← На главную