Ситуация, когда стабильно работающая годами конфигурация 1С:Управление торговлей, редакция 10.2 сталкивается с необходимостью внедрения современного оборудования, — не редкость. Основная сложность заключается в том, что версия 10.2 выпускалась задолго до вступления в силу закона 54-ФЗ об онлайн-кассах. В этой статье мы подробно разберем, как «подружить» современную ККТ АТОЛ FPrint-22ПТК с «древней» версией программы, проанализируем возможные стратегии и выясним технические нюансы реализации.
Разберем ситуацию: при попытке добавить новое оборудование в 1С 10.2 в списке доступных типов устройств отсутствуют «ККТ с передачей данных». Программа предлагает только «Фискальный регистратор», «ККМ Off-Line» и «ККМ On-Line». Выбор любого из этих пунктов не решает проблему, так как современные драйверы АТОЛ ожидают передачи специфических реквизитов (ИНН кассира, система налогообложения, адрес ОФД), о которых старая конфигурация просто не знает.
Более того, механизмы работы с торговым оборудованием в версии 10.2 часто жестко ограничены списком встроенных обработок обслуживания, и добавить новую внешнюю обработку напрямую через интерфейс бывает невозможно.
Рассмотрим наиболее надежный, но трудоемкий способ — перенос объектов из более современной конфигурации, например УТ 10.3 (начиная с релизов 10.3.49 и выше), где поддержка онлайн-касс реализована в полном объеме.
Проанализируем шаги, которые необходимо предпринять программисту:
ПомощникНастройкиТорговогоОборудования. При его копировании система потянет за собой связи: общие модули, справочники (например, «ТорговоеОборудование») и перечисления.Этот метод превращает вашу 10.2 в гибридную систему, способную работать с любым современным оборудованием через стандартные обработки обслуживания формата .epf.
Если полная модернизация кажется избыточной, мы можем пойти путем прямого обращения к драйверу ККТ через COM-объект. Современный драйвер АТОЛ 10.х (DTO 10) предоставляет мощный API, который можно вызвать непосредственно из кода 1С.
Посмотрим на пример логики, которую можно реализовать во внешней обработке или прямо в модуле печати чека:
// Пример инициализации драйвера АТОЛ 10 через COM
Драйвер = Новый COMОбъект("AddIn.AtolDeviceControl_v10");
Драйвер.setSingleSetting(Драйвер.LIBFPTR_SETTING_MODEL, Строка(Драйвер.LIBFPTR_MODEL_ATOL_22PTK));
Драйвер.setSingleSetting(Драйвер.LIBFPTR_SETTING_PORT, Строка(Драйвер.LIBFPTR_PORT_COM));
Драйвер.setSingleSetting(Драйвер.LIBFPTR_SETTING_COM_PORT, "COM3");
Драйвер.applySingleSettings();
Драйвер.open();
Если НЕ Драйвер.isOpened() Тогда
Сообщить("Ошибка подключения к кассе: " + Драйвер.errorDescription());
Возврат;
КонецЕсли;
// Начало регистрации чека
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_CHECK_TYPE, Драйвер.LIBFPTR_RT_SELL);
Драйвер.openCheck();
// Регистрация позиции
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_COMMODITY_NAME, "Товар тестовый");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PRICE, 100);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_QUANTITY, 1);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TAX_ID, Драйвер.LIBFPTR_TAX_NO); // Без НДС
Драйвер.registration();
// Оплата и закрытие
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PAYMENT_TYPE, Драйвер.LIBFPTR_PT_CASH);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PAYMENT_SUM, 100);
Драйвер.payment();
Дriver.closeCheck();
Драйвер.close();
Важный момент: При работе с 32-битной платформой 1С необходимо регистрировать в системе именно 32-битную версию драйвера АТОЛ, иначе создание объекта AddIn.AtolDeviceControl завершится ошибкой.
Для минимизации изменений в коде 1С можно рассмотреть вариант с использованием «прослойки». Программы типа KkmServer позволяют абстрагироваться от сложности протоколов АТОЛ. В этом случае 1С отправляет простой HTTP-запрос (JSON) локальному серверу, который сам занимается печатью чека и контролем параметров ОФД.
Преимущества данного подхода:
При подключении АТОЛ FPrint-22ПТК к старой системе выясним важную деталь: версию протокола обмена. В современных кассах АТОЛ по умолчанию используется Протокол 5.0. Однако старые обработки обслуживания (если вы пытаетесь адаптировать ATOL_KKT.epf от ранних версий 10.3) могут требовать Протокол 2.4. Переключить его можно в утилите «Тест драйвера ККТ» в разделе «Параметры ККТ» -> «Работа с ККТ».
Также не забудьте про следующие обязательные реквизиты, которые нужно передать в чек, чтобы не нарушить 54-ФЗ:
Подключение АТОЛ 22ПТК к 1С 10.2 — задача решаемая, но требующая участия программиста. Мы рекомендуем путь частичного обновления конфигурации (перенос объектов из 10.3), так как это обеспечит наиболее стабильную работу и соответствие законодательству в долгосрочной перспективе. Если же требуется «быстрое» решение для пробития простых чеков, оптимальным будет использование DTO 10 через COM-соединение или использование KkmServer.
Помните, что использование старой версии 1С накладывает риски некорректного формирования тегов для ОФД, поэтому после внедрения обязательно проверьте в личном кабинете ОФД, все ли реквизиты чека отображаются корректно.