При настройке фискальных регистраторов АТОЛ (например, АТОЛ 11Ф) через утилиту «Тест драйвера ККТ» или из параметров оборудования в 1С пользователи часто сталкиваются с ситуацией, когда текстовые наименования видов оплаты (например, замена значения ЭЛЕКТРОННЫМИ на ПЛАТ. КАРТА) не сохраняются. При повторном открытии настроек отображаются исходные значения, а в системе появляется ошибка: (-199) Неизвестная ошибка (Failed to set data for '').
В этой статье мы разберем причины такого поведения оборудования, выясним, почему возникает ошибка сохранения данных, и рассмотрим правильные варианты настройки безналичного расчета.
Проанализируем техническую сторону работы драйверов АТОЛ (в частности, ДТО 8.х):
Failed to set data for '' с кодом -199 означает, что приложение не может записать параметры профиля оборудования в системный реестр операционной системы. Драйвер АТОЛ 8-й версии хранит параметры подключений и локальные таблицы оборудования в ветке реестра HKLM\SOFTWARE\WOW6432Node\ATOL\Drivers. При запуске «Теста драйвера ККТ» или 1С в терминальной сессии (RDP) от имени обычного пользователя без прав администратора операция записи в реестр блокируется ОС.Чтобы физически сохранить изменения в свойствах драйвера или таблицах ККТ, необходимо предоставить программе доступ на запись в системный реестр.
Разберем порядок действий по шагам:
Устройство включено.Если работа выполняется на терминальном сервере, администратору системы необходимо разово предоставить пользователям права на запись в соответствующую ветку реестра Windows с настройками драйвера АТОЛ.
В большинстве случаев менять текстовые таблицы внутри самой кассы не требуется. Драйвер ККТ определяет тип совершаемой операции по свойству TypeClose (Тип закрытия чека), которое передается из 1С перед закрытием чека методом Оплата().
Проанализируем соответствие значений свойства TypeClose типам расчета:
0 — наличными;1 — электронными / платежной картой (тип оплаты 1);2..7 — дополнительные типы оплаты (аванс, кредит и др.).При программном формировании чека из 1С перед вызовом метода оплаты устанавливается соответствующий тип закрытия. Рассмотрим пример кода на языке 1С:
// Подключение и установка связи с драйвером ККТ
ОбъектДрайвера.УстановитьСвойство("AttrNumber", 1081); // Тег безналичной оплаты
ОбъектДрайвера.УстановитьСвойство("TypeClose", 1); // 1 - Оплата безналичными / картой
ОбъектДрайвера.УстановитьСвойство("Summ", СуммаОперации);
// Регистрация оплаты в чеке
Результат = ОбъектДрайвера.Оплата();
Если Не Результат Тогда
ВызватьИсключение ОбъектДрайвера.ОписаниеОшибки;
КонецЕсли;
Если конфигурация (например, «Альфа-Авто» или «1С:Розница») использует готовые механизмы интеграции, достаточно в справочнике эквайринговых терминалов или видов оплат 1С привязать вариант безналичного расчета к элементу с кодом 1. При этом тексты в настройках самого драйвера могут оставаться по умолчанию — чек сформируется корректно с передачей нужного фискального тега в ОФД.