При работе с торговым оборудованием в 1С:Розница 2.3 часто возникают задачи, выходящие за рамки стандартного процесса продажи. К ним относятся обучение новых сотрудников ("тренировочные чеки"), печать копий уже пробитых документов или формирование внутренних нефискальных счетов. Стандартная логика Библиотеки подключаемого оборудования (БПО) в 1С жестко ориентирована на соблюдение 54-ФЗ, что затрудняет выполнение таких операций. В данной статье мы разберем, как обойти эти ограничения, используя технические возможности драйверов Атол и встроенные инструменты платформы.
Если основной целью является обучение кассиров работе в интерфейсе РМК (рабочее место кассира) без реального расхода чековой ленты и записи данных в фискальную память, рассмотрим самый безопасный и простой способ — использование эмулятора.
Проанализируем шаги по его настройке:
В этом режиме кассир сможет проходить весь цикл продажи: подбор товара, выбор оплаты, нажатие кнопки "Пробить чек". Вместо реальной печати на Атоле, 1С выведет форму чека на экран. Это полностью снимает риски случайной фискализации учебных операций. Если же необходимо тренировать сотрудников на реальном аппарате без записи в ФН, можно использовать расширение для пробития нефискальных чеков на кассе ККМ в учебных целях.
Когда необходимо распечатать нефискальный документ на реальном устройстве (например, слип-чек или информационный документ), стандартные методы БПО (такие как ФискализироватьЧек) нам не подойдут. Выясним, как взаимодействовать с драйвером напрямую.
Для реализации этой задачи нам потребуется обратиться к объекту драйвера AddIn.Atol_KKT_10. Основное отличие заключается в том, что мы не открываем фискальный чек методами openReceipt, а используем методы печати произвольного текста. Рассмотрим пример кода для формирования нефискального документа:
// Инициализация драйвера
Драйвер = Новый COMОбъект("AddIn.Atol_KKT_10");
Драйвер.setSingleSetting(Драйвер.LIBFPTR_SETTING_MODEL, Строка(Драйвер.LIBFPTR_MODEL_ATOL_AUTO));
Драйвер.setSingleSetting(Драйвер.LIBFPTR_SETTING_PORT, Строка(Драйвер.LIBFPTR_PORT_USB));
Драйвер.applySingleSettings();
Драйвер.open(); // Устанавливаем связь с ККТ
Если Драйвер.isOpened() Тогда
// Формируем текстовые строки
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "=== НЕФИСКАЛЬНЫЙ ДОКУМЕНТ ===");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGN_CENTER);
Драйвер.printText();
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "Товар: Учебный курс 1С");
Драйвер.printText();
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "Цена: 1000.00 руб.");
Драйвер.printText();
// Команда отрезки (если поддерживается моделью)
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_CUT_TYPE, Драйвер.LIBFPTR_CUT_PARTIAL);
Драйвер.cut();
КонецЕсли;
Драйвер.close();
Важно помнить: при печати таким способом в памяти Фискального Накопителя (ФН) запись не создается, счетчики выручки в ККТ не изменяются. Однако, чтобы избежать проблем с проверяющими органами, в начале и конце такого "чека" обязательно следует выводить крупным шрифтом надпись "НЕФИСКАЛЬНЫЙ ДОКУМЕНТ".
Рассмотрим ситуацию, когда чек уже был пробит, и клиенту требуется его дубликат. В современных моделях Атол существует возможность повторной печати документа из памяти ККТ по номеру Фискального Документа (ФД).
Проанализируем алгоритм действий:
// Пример команды для печати документа из архива ФН
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_DOCUMENT_NUMBER, НомерФД);
Драйвер.printDocumentByNumber();
Посмотрим на особенности этого метода: на распечатанном чеке автоматически появится надпись "КОПИЯ" или "ПОВТОР". Это штатная функция прошивки Атол, которая гарантирует, что копия не будет выдана за оригинал при возврате товара. Если же вам нужно напечатать копию в собственном дизайне, придется использовать метод печати текста, описанный в Варианте 2, предварительно собрав данные о товарах из документа 1С.
В типовой конфигурации 1С:Розница 2.3 логика печати зашита глубоко в модулях БПО. Если мы хотим добавить кнопку "Напечатать нефискальную копию" прямо в РМК, нам придется внести изменения в код или создать расширение. Проанализируем, где именно искать точки входа:
Основная логика сосредоточена в общем модуле МенеджерОборудованияВызовСервера или в обработках обслуживания драйверов. Чтобы не нарушать целостность конфигурации, рекомендуем создать Внешнюю обработку, которая будет подключаться к ККТ напрямую через API драйвера. Это позволит избежать сложностей при обновлении программы. Для решения этой задачи без самостоятельной разработки подойдёт расширение для проведения чека ККМ в РМК в обход фискализации.
Разберем важный момент, упомянутый в обсуждениях: попытка выдать нефискальный чек за реальный является нарушением законодательства (54-ФЗ и ст. 199 УК РФ).
Чтобы обезопасить бизнес, следуйте правилам:
Подводя итог, отметим: техническая возможность печати без записи в ФН на Атолах есть и реализуется через методы printText драйвера DTO 10. Однако для полноценного обучения и разработки лучше использовать штатные эмуляторы 1С, что гарантирует сохранность данных и отсутствие ошибок в учете.