Почему в 1С:УНФ слетают драйвера ККТ АТОЛ на старую версию и как это исправить?

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

При работе со специальным торговым оборудованием в среде 1С часто возникает крайне неприятная ситуация: вы устанавливаете актуальную версию драйвера ККТ (например, АТOЛ 10.6.0), проводите успешное тестирование, печатаете чеки со всеми необходимыми реквизитами (включая ИНН и наименование покупателя), но на следующий день или при выполнении определенных операций обнаруживаете, что настройки сбросились, а версия драйвера откатилась назад (например, до устаревшей 10.4.4). В результате новые обязательные реквизиты перестают выводиться на печать, нарушая требования законодательства.

Особенно часто этот эффект проявляется в терминальных средах (RDP) и активируется при попытке пробить чек из документов, отличных от привычного Рабочего места кассира (РМК) — например, из документа Поступление на счет при оформлении безналичных оплат. В этой статье мы подробно разберем, почему происходит такой автоматический откат драйверов, как устроена архитектура взаимодействия 1С с торговым оборудованием и как навсегда решить эту проблему.

Выясняем причину: почему 1С принудительно «откатывает» версию драйвера

Для того чтобы эффективно устранить неисправность, нам необходимо детально проанализировать механизм работы 1С с внешними компонентами. Взаимодействие платформы 1С с кассовыми аппаратами АТОЛ строится на базе двухкомпонентной архитектуры:

  1. Локальный драйвер ККТ (системный). Это полноценное программное обеспечение от производителя оборудования (в нашем случае — АТОЛ Драйвер ККТ 10.x), которое устанавливается непосредственно в операционную систему Windows. Оно включает в себя службы, низкоуровневые библиотеки и утилиту «Тест драйвера ККТ».
  2. Интеграционная компонента (внешняя компонента 1С). Это специализированный файл библиотеки (обычно с расширением .dll), который выступает в роли «переводчика» между платформой 1С и локальным системным драйвером. Данная компонента хранится непосредственно внутри базы данных 1С в справочнике ДрайверыОборудования в виде двоичного макета.

Когда вы выполняете установку драйвера через интерфейс 1С, система обращается к справочнику драйверов, берет встроенный макет интеграционной компоненты и распаковывает его в локальную папку пользователя на сервере или компьютере. Путь к этой папке обычно выглядит так:

C:\Users\[ИмяПользователя]\AppData\Roaming\1C\1cv8\ExtCompT\

Суть конфликта заключается в следующем: если в самой конфигурации 1С (в БПО — Библиотеке подключаемого оборудования) зарегистрирован макет старой версии (например, 10.4.4), а локально на компьютере вы установили версию 10.6.0, то при определенных условиях система обнаружит это несоответствие. Платформа 1С считает встроенный макет «эталонным». Как только происходит повторная инициализация оборудования (например, при печати чека из фонового задания, под другим пользователем или из нетипичного документа вроде Поступление на счет), 1С принудительно перезаписывает локальный файл библиотеки в папке ExtCompT старой версией из своего макета. Происходит тихий откат драйвера.

Почему триггером становится документ «Поступление на счет»?

Давайте проанализируем ситуацию с документом Поступление на счет. При проведении оплаты картой или безналичным расчетом закон требует пробития чека с признаком «Безналичные». Печать чека из этого документа часто инициирует создание нового сеанса подключения к кассе. Если на сервере терминалов (RDP) настроено совместное использование портов или пользователи работают в режиме многосеансовости, система может динамически переопределить рабочее место.

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

Пошаговая инструкция по решению проблемы

Чтобы решить проблему окончательно, нам потребуется синхронизировать версии интеграционной компоненты в базе данных 1С и локально установленного драйвера в операционной системе, а также правильно настроить права доступа в терминальной среде.

Шаг 1. Обновление интеграционного компонента внутри базы 1С

Первым делом необходимо заменить устаревший встроенный макет в информационной базе актуальным файлом от АТОЛ.

  1. Запустите 1С:УНФ в режиме «Предприятие» под пользователем с правами администратора.
  2. Перейдите в раздел Администрирование, далее выберите пункт Подключаемое оборудование.
  3. Откройте справочник Драйверы оборудования.
  4. Найдите в списке используемый драйвер. Обычно он называется «АТOЛ:ККТ с передачей данных в ОФД 10.Х».
  5. Откройте карточку этого драйвера и нажмите кнопку Функции (или ссылку «Посмотреть параметры», в зависимости от версии БПО), затем выберите действие Загрузить драйвер из файла.
  6. Вам необходимо указать ZIP-архив с актуальной компонентой. Где его взять? При установке локального драйвера АТОЛ 10.6.0 этот архив автоматически распаковывается в системную директорию. Ищите его по пути:
    C:\Program Files\ATOL\Drivers10\KKT\1Cv83\ATOL_KKT_10.zip (для 64-битных систем) или в папке аналогичного драйвера в Program Files (x86).
  7. После выбора архива нажмите Записать и закрыть. Теперь «эталоном» для базы 1С станет версия 10.6.0, и она больше не будет пытаться откатить файлы к версии 10.4.4.

Шаг 2. Полная очистка локального кэша внешних компонент

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

  1. Завершите все активные сеансы пользователей 1С на сервере (особенно терминальные RDP-сессии).
  2. Зайдите на сервер под учетной записью администратора.
  3. Перейдите в каталог профиля пользователя:
    C:\Users\[Имя_Пользователя]\AppData\Roaming\1C\1cv8\ExtCompT\
    Важно: данную операцию необходимо проделать для каждого пользователя, который имеет доступ к работе с кассовым аппаратом.
  4. Полностью удалите все файлы из папки ExtCompT (включая библиотеки с именами вроде Atol*.dll и конфигурационный файл registry.xml). Не бойтесь удалять — при следующем запуске 1С автоматически воссоздаст эти файлы, взяв их из обновленного нами макета базы данных.

Шаг 3. Устранение конфликтов разрядности (32-bit и 64-bit)

В терминальной среде RDP часто возникает конфликт разрядности платформы 1С и драйверов торгового оборудования. Если серверная часть или клиентское приложение 1С работает под 64-битной платформой, а драйвер АТОЛ установлен только 32-битный, система не сможет корректно инициализировать внешнюю компоненту. Пытаясь исправить ошибку, БПО может запустить процедуру автовосстановления и откатить драйвер к старой «стабильной» версии.

Решение: при установке драйверов АТОЛ на сервере обязательно выбирайте установку как 32-битной (x86), так и 64-битной (x64) версий технологической платформы драйвера. Это гарантирует, что любой сеанс 1С, независимо от его разрядности, найдет подходящую системную библиотеку.

Шаг 4. Настройка права доступа и изоляции сессий в RDP

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

Рекомендуется соблюдать следующие правила настройки RDP:

Выполнив эти шаги, мы добьемся стабильной работы торгового оборудования. Версия драйвера зафиксируется на актуальной отметке 10.6.0, реквизиты ИНН и наименования покупателя будут печататься корректно, а вызовы печати чеков из документов Поступление на счет больше не будут вызывать критических сбоев и нежелательных откатов системы.

← На главную