Обновление конфигурации 1С:Управление торговлей 11 на актуальный релиз часто сопровождается конфликтами с уже установленным торговым оборудованием. Типичная ситуация: учетная система требует новые версии драйверов, а аппаратная часть (кассы на старой платформе 2.5) или банковские терминалы не готовы к работе с обновленными компонентами. В данной статье мы разберем, как сохранить стабильную работу касс АТОЛ на драйверах серии 10.10 и решить проблему «вылетающего» эквайринга Сбербанка.
Рассмотрим ситуацию, когда необходимо обновить УТ 11 до максимально свежего релиза, сохранив при этом драйвер АТОЛ 10.10.0.0. Проблема заключается в том, что свежие версии «Библиотеки подключаемого оборудования» (БПО), встроенные в УТ 11, ориентированы на драйверы версии 10.9 и выше, но с обязательной поддержкой новых методов API. Если кассы работают на старой платформе 2.5 и их прошивка не может быть обновлена в данный момент, прямое обновление драйвера может привести к неработоспособности функций маркировки или печати чеков.
Проанализируем механизм работы справочника ДрайверыОборудования. В новых релизах старые обработки обслуживания могут быть скрыты или помечены как «Снятые с поддержки». Выясним, как обойти это ограничение. Мы можем добавить нужный нам драйвер вручную, не полагаясь на встроенные макеты конфигурации. Для диагностики проблем взаимодействия с оборудованием на этом этапе полезно провести тестирование принтера чеков через различные версии БПО, чтобы убедиться в корректности команд.
Разберем по шагам процесс добавления «своего» драйвера:
ATOL_KKT_10.zip), содержащий необходимые dll и файл манифеста info.xml.Важно помнить: такая «прокладка» между нативным драйвером и 1С может столкнуться с тем, что конфигурация формирует XML CheckPackage в формате, который старая версия драйвера не понимает. В этом случае придется корректировать код формирования XML в модулях интеграции. Если же физическое устройство временно недоступно или вызывает критические ошибки, на этапе отладки выручит эмулятор ККМ для УТ 11.5, позволяющий перенаправить печать на Windows-принтер и имитировать фискальную память.
После обновления платформы и конфигурации пользователи часто сталкиваются с ошибкой: «Не удалось подключить внешнюю компоненту SberAcquiringTerminal на клиенте из хранилища внешних компонент по причине: Компонента отсутствует в списке разрешенных». Проанализируем причины этого поведения. Начиная с версии платформы 8.3.21+, усилены требования безопасности к внешним модулям.
Для решения этой проблемы без радикального изменения настроек безопасности, выполним «глубокую» очистку локального кэша драйверов. После успешного подключения компоненты, для удобства кассиров часто внедряют расширенное управление эквайринговым терминалом, которое добавляет функции сверки итогов и печати контрольной ленты прямо из интерфейса 1С. Рассмотрим алгоритм очистки подробнее:
%APPDATA%\1C\1Cv8\ExtCompT.dll-файлы, относящиеся к эквайрингу (например, SberBankExchange.dll).registry.xml, находящийся в этой же папке. Нам нужно найти узлы <component>, соответствующие проблемным драйверам, и удалить их.Выясним причину, по которой драйвер Сбербанка может не устанавливаться даже после очистки кэша. В современных реалиях многие переходят на 64-битную версию платформы 1С. Однако старые драйверы «1С:Эквайринговые терминалы Сбербанк» зачастую являются 32-битными (x86). Если ваша платформа 1С имеет разрядность x64, она физически не сможет загрузить 32-битную dll.
Посмотрим на два пути решения этой ситуации:
Путь 1: Использование 32-битной платформы. Если бизнес-процессы позволяют, можно переключить запуск 1С на 32-битную версию платформы. В этом случае старые компоненты Сбербанка «подцепятся» мгновенно.
Путь 2: Переход на универсальный драйвер. В новых релизах УТ 11 вместо старой компоненты следует выбирать драйвер «Сбербанк: Эквайринговые терминалы (Универсальный)». Он поддерживает работу с современными 64-битными библиотеками gate.dll и sb_kernel.dll из дистрибутива «Pilot» от Сбербанка. Кроме того, корректная настройка универсального драйвера открывает доступ к расширенным операциям, таким как частичная отмена по эквайрингу, что критично для правильного оформления возвратов в УТ 11.5.
Если ошибка «Компонента отсутствует в списке разрешенных» сохраняется, нам необходимо проверить настройки безопасности самой платформы. Рассмотрим редактирование файла conf.cfg. Мы можем добавить параметр, отключающий блокировку небезопасных расширений, если уверены в источнике компоненты.
// В файле conf.cfg в папке bin платформы (например, C:\Program Files\1cv8\conf)
// Добавляем строку для разрешения загрузки любых компонент
DisableUnsafeExtensionCustomComponents=DEFAULT
Проанализируем ситуацию с использованием программного кода. Иногда требуется принудительно изменить статус драйвера в базе данных, если он помечен как снятый с поддержки. Для этого воспользуемся обработкой «Групповое изменение реквизитов» или напишем небольшой фрагмент кода:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДрайверыОборудования.Ссылка КАК Ссылка
|ИЗ
| Справочник.ДрайверыОборудования КАК ДрайверыОборудования
|ГДЕ
| ДрайверыОборудования.Наименование ПОДОБНО ""%Сбербанк%""";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
ОбъектДрайвера = Результат.Ссылка.ПолучитьОбъект();
// Снимаем флаг снятия с поддержки, если он мешает отображению
ОбъектДрайвера.СнятСПоддержки = Ложь;
ОбъектДрайвера.Записать();
КонецЦикла;
Для обеспечения бесперебойной работы торговой точки при обновлении УТ 11 мы рекомендуем придерживаться следующей стратегии:
ExtCompT и редактирования registry.xml. Это решает до 90% проблем, связанных с «фантомными» ошибками подключения внешних компонент.Применяя эти методы, мы сможем успешно обновить конфигурацию до актуального состояния, сохранив при этом работоспособность парка торгового оборудования.