При работе в интерфейсе РМК (Рабочее место кассира) в программе «1С:Розница 2.3» пользователи часто сталкиваются с ситуацией, когда открытие смены и печать X-отчета (отчета без гашения) проходят успешно, но при попытке пробить чек система выдает ошибку: «Чек не напечатан на устройстве для печати чеков. Описание ошибки: Нет доступных ККТ для фискализации чека». Ситуация осложняется тем, что под одной учетной записью Windows всё работает корректно, а под другой — нет. Разберем подробно причины возникновения этой проблемы и способы её решения.
В платформе «1С:Предприятие 8.3» настройки торгового оборудования жестко привязаны к справочнику РабочиеМеста. Это критически важный момент для понимания архитектуры системы. Рассмотрим, как это работает: когда пользователь заходит в базу, 1С определяет его «Рабочее место» на основании связки «Имя компьютера + Имя пользователя Windows».
Проанализируем ситуацию: если кассир зашел под новой системной учетной записью, 1С создает в справочнике РабочиеМеста новую запись. При этом все настройки подключаемого оборудования (ККТ, сканеры, эквайринг) остались привязаны к старому рабочему месту. Выясним, почему тогда печатается X-отчет? Дело в том, что в некоторых версиях конфигураций функции запроса состояния кассы и печати нефискального текста могут обращаться к драйверу напрямую, в то время как процедура фискализации чека требует строгой проверки соответствия кассы, организации и рабочего места в настройках текущего сеанса.
Чтобы исправить это, выполним следующие шаги:
Современные драйверы ККТ (особенно АТОЛ и Штрих-М) часто устанавливают свои компоненты в локальные папки пользователя. Рассмотрим техническую сторону: 1С хранит внешние компоненты в директории %AppData%\Roaming\1C\1cv8\ExtCompT. Если у нового пользователя Windows ограничены права на запись в эту папку или на выполнение библиотек (DLL), то инициализация фискальных методов драйвера не произойдет.
Проанализируем ситуацию с правами доступа. Даже если пользователь не является локальным администратором, у него должны быть полные права на свою ветку реестра и вышеуказанную папку. Посмотрим, как это проверить:
Попробуем запустить 1С от имени администратора под «проблемным» пользователем. Если чек пробился — проблема в правах доступа к файловой системе или портам (COM-портам). Также рекомендуется проверить, установлена ли основная ветка драйверов (например, ДТО 10 от АТОЛ) «для всех пользователей» системы.
Если в 1С ведется учет по нескольким организациям или магазинам, ошибка «Нет доступных ККТ» может означать, что система не нашла кассу, которой «разрешено» пробивать чеки для данной конкретной организации. Разберем по шагам настройку распределения:
Если в чеке присутствуют товары разных организаций, а касса настроена только на одну, или если в карточке самого оборудования (в справочнике ПодключаемоеОборудование) жестко указана организация, не совпадающая с организацией в документе «Чек», система выдаст ошибку отсутствия доступных устройств.
Для касс АТОЛ 30Ф и аналогичных моделей передача данных в ОФД часто идет через службу EoU. Эта служба занимает один из двух виртуальных COM-портов, создаваемых кассой. Выясним причину конфликта: если под одной учетной записью служба запущена и «держит» порт, а под другой учетной записью 1С пытается инициализировать соединение в монопольном режиме, может возникнуть программный сбой. При этом простые команды (запрос состояния для X-отчета) могут проскакивать, а сложные пакеты данных для фискализации блокироваться драйвером из-за нестабильной связи.
Для диагностики выполним проверку через утилиту «Тест драйвера ККТ»:
// Пример логики проверки связи, которую выполняет система перед фискализацией
Результат = ОбъектДрайвера.УстановитьПараметр("Port", НомерПорта);
Результат = ОбъектДрайвера.УстановитьПараметр("BaudRate", 115200);
Результат = ОбъектДрайвера.Соединение();
Если Результат <> 0 Тогда
Сообщить("Ошибка инициализации ККТ: " + ОбъектДрайвера.ОписаниеОшибки);
КонецЕсли;
Подведем итог и составим алгоритм действий, чтобы окончательно устранить ошибку:
КассыККМ и в ней выбрано актуальное оборудование.ExtCompT текущего пользователя.Соблюдение этих шагов позволяет в 99% случаев решить проблему «плавающей» ошибки доступа к ККТ без необходимости постоянной смены учетных записей.