Переход на новые форматы фискальных данных и необходимость совершения онлайн-платежей часто вынуждают пользователей старых конфигураций 1С (таких как «Комплексная автоматизация 1.1» или «Управление торговлей 10.3») обновлять торговое оборудование и сопутствующее программное обеспечение. Одной из наиболее частых проблем при таком переходе является корректная установка и интеграция драйверов торгового оборудования АТОЛ 9-й версии (ДТО 9) со старыми версиями платформы «1С:Предприятие 8».
В данной статье мы подробно разберем, как правильно установить АТОЛ ДТО 9 в операционной системе Windows, как «подружить» его со старой базой 1С на обычных формах, а также рассмотрим два эффективных способа отключения печати нежелательных строк скидок на кассовом аппарате АТОЛ FPrint-22ПТК.
---
При работе со старыми конфигурациями 1С ключевым моментом является разрядность используемой платформы «1С:Предприятие». В подавляющем большинстве случаев для работы КА 1.1 или УТ 10.3 применяется 32-битный клиент 1С (даже если сама операционная система Windows является 64-битной). Следовательно, для успешной интеграции нам потребуется установить строго **32-битную версию драйвера ККТ АТОЛ**.
Выясним причину, почему это важно: 32-битное приложение 1С физически не сможет загрузить 64-битную динамическую библиотеку драйвера ККТ. Поэтому, загружая дистрибутив, обязательно выбирайте версию для архитектуры x86 (32-бит).
Рассмотрим по шагам процесс установки драйвера версии 9.12.1 (данная версия является наиболее стабильной и часто используемой для интеграции со старыми обработками обслуживания):
Драйверы_торгового_оборудования_9_12_1.zip.installer (в некоторых версиях дистрибутивов он может называться install).Drivers9-KKT-9.12.1.6236-windows32-setup.exe.C:\Program Files (x86)\ATOL\Drivers9\).---
После того как драйвер успешно установлен в операционную систему, нам необходимо сделать так, чтобы платформа 1С «увидела» его и могла использовать для печати чеков. Очень часто при попытке подключить устройство в меню «Подключение и настройка торгового оборудования» возникает ошибка: «Установка драйвера "АТОЛ: ККТ с передачей данных в ОФД (54-ФЗ) 9.х" не завершена».
Проанализируем ситуацию: это происходит из-за того, что встроенная в конфигурацию 1С компонента старой версии пытается обратиться к библиотекам драйвера, но не находит соответствия версий. В ДТО 9 компоненты АТОЛ написаны по технологии **Native 1C**. Их не требуется регистрировать в реестре через утилиту regsvr32. Платформа 1С загружает их самостоятельно прямо из справочника драйверов базы данных.
Для того чтобы решить эту проблему, выполним следующие действия:
C:\Program Files (x86)\ATOL\Drivers9\KKT\1Cv83\ (или аналогичный каталог для версии 1Cv82 в зависимости от используемой платформы).ATOL_KKT_9.zip. Это и есть актуальный контейнер с интеграционной компонентой.ATOL_KKT_9.zip. Платформа распакует его и сохранит во внутреннее хранилище информационной базы.После этого вы можете настраивать фискальный регистратор стандартным способом: укажите порт подключения (USB или COM), скорость обмена данными и выполните тест устройства. Касса должна успешно ответить на запрос системы.
---
При переходе на онлайн-платежи и новые версии драйверов пользователи часто сталкиваются с тем, что кассовый аппарат начинает принудительно выводить на чековую ленту строки со скидками. Это увеличивает расход бумаги и часто путает покупателей, если скидка уже учтена в конечной цене товара. Избавиться от печати скидок можно двумя способами: аппаратным и программным.
Этот способ самый простой, так как он не требует изменения программного кода 1С. Мы запретим кассовому аппарату анализировать и выводить скидки на уровне самого железа.
C:\Program Files (x86)\ATOL\Drivers9\KKT\bin\fptr_t.exe.Скидки/время, Правила округления и скидок или находиться внутри раздела Печать).Если аппаратное отключение не помогло (например, если кассовое ПО 1С принудительно шлет команду печати текстовой строки со скидкой), проблему необходимо решать внутри кода внешней обработки обслуживания ККТ (файла с расширением .epf).
Разберем по шагам, почему касса печатает скидку. По умолчанию старые алгоритмы 1С передают в метод ККТ три параметра: ЦенаБезСкидки, Количество и СуммаСкидки. Получив эти данные, процессор ККТ самостоятельно вычисляет процент скидки, уменьшает итоговую цену позиции и печатает подстрочник с размером скидки.
Чтобы избежать этого, программисту 1С необходимо изменить логику заполнения параметров при отправке строки чека в ККТ. Мы должны передавать в кассу **сразу конечную цену товара (уже с учетом скидки)**, а саму скидку передавать равной нулю.
Рассмотрим пример кода. В старых обработках обслуживания (например, для работы по ФЗ-54) за вывод строки чека обычно отвечает функция НапечататьСтрокуШаблона() или метод ДобавитьПозицию(). Исходный код мог выглядеть следующим образом:
// Исходный вариант передачи параметров в ККТ
ЦенаБезСкидки = СтрокаТовара.Цена;
СуммаСкидки = СтрокаТовара.СуммаСкидки;
Количество = СтрокаТовара.Количество;
// Касса сама рассчитает скидку и напечатает ее в чеке
Результат = ОбъектДрайвера.ДобавитьПозицию(ИмяТовара, ЦенаБезСкидки, Количество, СуммаСкидки);
Для того чтобы убрать упоминание скидки из чека и исключить её печать, перепишем этот фрагмент кода следующим образом:
// Корректный вариант: рассчитываем чистую цену единицы товара с учетом скидки в 1С
// и передаем её в ККТ как базовую цену без скидок
Если СтрокаТовара.Количество <> 0 Тогда
// Вычисляем фактическую цену за одну единицу с учетом всех скидок
ЧистаяЦена = (СтрокаТовара.Сумма) / СтрокаТовара.Количество;
Иначе
ЧистаяЦена = СтрокаТовара.Цена;
КонецЕсли;
// Округляем до двух знаков после запятой для избежания проблем с копейками
ЧистаяЦена = Окр(ЧистаяЦена, 2);
Количество = СтрокаТовара.Количество;
СуммаСкидкиДляККТ = 0; // Передаем нулевую скидку
// Касса видит обычную продажу товара по чистой цене и не печатает лишних строк
Результат = ОбъектДрайвера.ДобавитьПозицию(ИмяТовара, ЧистаяЦена, Количество, СуммаСкидкиДляККТ);
Проанализируем этот код: передавая в ККТ ЧистаяЦена (которая является результатом деления итоговой суммы в 1С на количество товара) и отправляя СуммаСкидкиДляККТ = 0, мы гарантируем, что кассовый аппарат напечатает чистую и понятную строку продажи. При этом общая сумма чека в 1С и на фискальном накопителе сойдется копейка в копейку, а неэстетичные строки со скидками навсегда исчезнут из чековой ленты.
Используя предложенные инструкции, вы сможете успешно перевести вашу конфигурацию «1С:Комплексная автоматизация 1.1» на работу с ДТО 9-й версии и гибко настроить внешний вид печатных форм фискальных документов под требования вашего бизнеса.