При настройке торгового оборудования, а именно эквайринговых терминалов Сбербанка в программе 1С:Розница, системные администраторы часто сталкиваются с ошибкой: «Тест не пройден. Ошибка при загрузке gate.dll. Проверьте корректность пути к дистрибутиву». Разберем по шагам, почему возникает эта проблема и как ее правильно решить. Мы проанализируем ситуацию комплексно: от разрядности платформы до скрытых настроек прав в операционной системе Windows.
Первое, на что необходимо обратить внимание — это разрядность установленной платформы 1С:Предприятие. Давайте выясним причину: большинство драйверов и библиотек для работы с эквайринговым оборудованием Сбербанка на данный момент скомпилированы под 32-битную архитектуру. Полноценных 64-битных драйверов (включая OLE/COM-объекты) для этих целей часто не поставляется.
Если вы используете 64-битную платформу 1С, прокладка Native API (внешняя компонента 1С) не сможет корректно обратиться к 32-битным драйверам банка. Поэтому настоятельно рекомендуем для рабочих мест кассиров (РМК) устанавливать 32-разрядную версию платформы 1С. Это снимает огромный пласт проблем с совместимостью торгового оборудования.
Рассмотрим подробнее механизм регистрации библиотек. Многие пользователи совершают ошибку, начиная хаотично копировать файлы gate.dll, sb_kernel.dll и sbrfcom.dll в папку bin платформы 1С или пытаясь зарегистрировать их все подряд командой regsvr32. Делать этого не нужно!
Библиотеки gate.dll и sb_kernel.dll не являются COM-объектами. Если вы попытаетесь их зарегистрировать, Windows выдаст ошибку о том, что точка входа (DllRegisterServer) не найдена. Это нормальное поведение. Регистрировать в реестре операционной системы нужно только библиотеку sbrfcom.dll (а в некоторых версиях дистрибутива еще и sbrf.dll).
Если вы уже пробовали регистрировать файлы в разных папках, проанализируем ситуацию: в реестре могла возникнуть путаница путей. Давайте очистим старые регистрации и зарегистрируем компоненту правильно. Запустите командную строку (cmd) от имени Администратора и выполните следующий скрипт (предполагается, что драйверы Сбербанка лежат в папке C:\sc552):
cd C:\sc552\
regsvr32 -u SBRF.dll
regsvr32 -u SBRFCOM.dll
regsvr32 "C:\sc552\SBRF.dll"
regsvr32 "C:\sc552\SBRFCOM.dll"
После успешной регистрации обязательно перезагрузите компьютер, чтобы изменения в реестре применились корректно.
Если библиотеки зарегистрированы, но 1С всё равно выдает ошибку, разберем вопрос прав доступа. Установки обычных «полных прав» на папку sc552 или pilot_nt бывает недостаточно из-за вмешательства механизма Контроля учетных записей (UAC) в Windows 10 и выше.
C:\sc552 или C:\pilot_nt).Также рекомендуется временно отключить UAC (перевести ползунок в самое нижнее положение «Не уведомлять») для проверки, не блокирует ли защитник Windows вызов внешней компоненты из 1С.
Теперь посмотрим на настройки внутри самой базы 1С:Розница. Часто возникает ситуация, когда в настройках подключаемого оборудования 1С упорно подставляет дефолтный путь (например, C:\SBERBANK\PILOT_NT\) и сбрасывает ваш путь (например, C:\sc552\) при попытке его сохранить. В итоге драйвер ищет файл gate.dll не там, где он реально находится.
Это известная особенность работы Библиотеки подключаемого оборудования (БПО). Чтобы решить эту проблему, выполним следующие действия:
C:\sc552\, а не просто C:\sc552. Если слеша нет, 1С некорректно склеивает путь с именем файла, в результате чего обращается по несуществующему пути вида C:\sc552gate.dll.Если все вышеперечисленные шаги не помогли, давайте проверим кэш внешних компонент 1С. В момент установки драйвера из макета, 1С распаковывает файлы в скрытый системный каталог профиля пользователя.
Перейдите в папку: %APPDATA%\1C\1Cv8\ExtCompT\ (обычно это путь вида C:\Users\Имя_пользователя\AppData\Roaming\1C\1Cv8\ExtCompT\). Найдите там файлы, связанные со Сбербанком (например, архивы вида SberAcquiringTerminalNative_1_0_2_2), и удалите их. После этого 1С при следующем запуске попытается инициализировать компоненту заново.
Также проблема может крыться в устаревшем обработчике драйвера в самой конфигурации 1С:Розница. Для корректной работы с современным ПО Сбербанка (которое сейчас устанавливается в папки C:\pilot_nt или C:\sc552) необходим актуальный драйвер 1С:Эквайринговые терминалы Сбербанк 2.Х (рекомендуются версии 2.7.5.2 и выше). Обновите внешнюю компоненту эквайринга в справочнике драйверов оборудования 1С, скачав актуальную версию с официального портала ИТС.
Выполнив все эти шаги последовательно, вы гарантированно устраните ошибку загрузки gate.dll и обеспечите стабильную связь между 1С и эквайринговым терминалом.