Почему не сохраняются виды оплаты в драйвере ККТ АТОЛ и как исправить ошибку (-199)

Программист 1С v8.3 (Обычные формы) Торговля и дистрибуция
← На главную

При настройке фискальных регистраторов АТОЛ (например, АТОЛ 11Ф) через утилиту «Тест драйвера ККТ» или из параметров оборудования в 1С пользователи часто сталкиваются с ситуацией, когда текстовые наименования видов оплаты (например, замена значения ЭЛЕКТРОННЫМИ на ПЛАТ. КАРТА) не сохраняются. При повторном открытии настроек отображаются исходные значения, а в системе появляется ошибка: (-199) Неизвестная ошибка (Failed to set data for '').

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

Причины возникновения ошибки (-199) и сброса настроек

Проанализируем техническую сторону работы драйверов АТОЛ (в частности, ДТО 8.х):

  1. Ограничение прав доступа к реестру Windows. Ошибка Failed to set data for '' с кодом -199 означает, что приложение не может записать параметры профиля оборудования в системный реестр операционной системы. Драйвер АТОЛ 8-й версии хранит параметры подключений и локальные таблицы оборудования в ветке реестра HKLM\SOFTWARE\WOW6432Node\ATOL\Drivers. При запуске «Теста драйвера ККТ» или 1С в терминальной сессии (RDP) от имени обычного пользователя без прав администратора операция записи в реестр блокируется ОС.
  2. Разделение наименования и числового кода оплаты. В соответствии с требованиями 54-ФЗ и форматом фискальных документов (ФФД) для оператора фискальных данных (ОФД) и налоговой службы не имеет значения текстовое название кнопки или вида оплаты на чеке. Важен исключительно цифровой код формы расчета (тег 1081 «Безналичными»). Текстовые наименования в таблицах ККТ используются только для вывода строки на печать.
  3. Блокировка кассовой смены. Изменение системных таблиц ККТ невозможно, если кассовая смена открыта или в кассе присутствует незавершенный документ. Попытка записи параметров в таком состоянии приводит к ошибке блокировки режима.

Способ 1. Устранение ошибки записи и запуск с правами администратора

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

Разберем порядок действий по шагам:

  1. Закроем кассовую смену на фискальном регистраторе и завершим работу 1С.
  2. Запустим утилиту «Тест драйвера ККТ» или платформу 1С через контекстное меню: «Запуск от имени администратора».
  3. В окне «Тест драйвера ККТ» установим флаг Устройство включено.
  4. Перейдем в раздел «Настройка свойств» -> «Параметры оборудования».
  5. Установим необходимые текстовые наименования видов оплаты (например, для первой позиции укажем наименование для безналичных расчетов) и нажмем кнопку «ОК» (Применить).

Если работа выполняется на терминальном сервере, администратору системы необходимо разово предоставить пользователям права на запись в соответствующую ветку реестра Windows с настройками драйвера АТОЛ.

Способ 2. Управление видом оплаты через свойство TypeClose в коде 1С

В большинстве случаев менять текстовые таблицы внутри самой кассы не требуется. Драйвер ККТ определяет тип совершаемой операции по свойству TypeClose (Тип закрытия чека), которое передается из 1С перед закрытием чека методом Оплата().

Проанализируем соответствие значений свойства TypeClose типам расчета:

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


// Подключение и установка связи с драйвером ККТ
ОбъектДрайвера.УстановитьСвойство("AttrNumber", 1081); // Тег безналичной оплаты
ОбъектДрайвера.УстановитьСвойство("TypeClose", 1);    // 1 - Оплата безналичными / картой
ОбъектДрайвера.УстановитьСвойство("Summ", СуммаОперации);

// Регистрация оплаты в чеке
Результат = ОбъектДрайвера.Оплата();
Если Не Результат Тогда
    ВызватьИсключение ОбъектДрайвера.ОписаниеОшибки;
КонецЕсли;

Если конфигурация (например, «Альфа-Авто» или «1С:Розница») использует готовые механизмы интеграции, достаточно в справочнике эквайринговых терминалов или видов оплат 1С привязать вариант безналичного расчета к элементу с кодом 1. При этом тексты в настройках самого драйвера могут оставаться по умолчанию — чек сформируется корректно с передачей нужного фискального тега в ОФД.

← На главную