Переход на применение контрольно-кассовой техники в соответствии с требованиями закона 54-ФЗ ставит перед пользователями и разработчиками систем на платформе 1С:Предприятие 7.7 непростую задачу. В отличие от современных решений на платформе 8.3, в конфигурациях 7.7 отсутствует типовая «Библиотека подключаемого оборудования» (БПО), а чеки теперь обязаны содержать полный перечень номенклатурных позиций, ставок НДС, признаков расчета и контактных данных покупателя.
Разберем основные практические подходы, позволяющие фискализировать операции при ведении товарного и бухгалтерского учета в 1С 7.7.
Самый прозрачный и быстрый для кассира вариант — отправка чека на фискальный регистратор непосредственно из документа конфигурации 1С 7.7 (например, из документа РасходнаяНакладная или ПриходныйКассовыйОрдер).
Для этого используется COM/OLE-интерфейс драйверов торгового оборудования. Разберем ключевые особенности такой интеграции:
Посмотрим на пример структуры вызова COM-объекта драйвера ККТ для открытия смены и пробития чека из 1С 7.7:
// Пример взаимодействия с COM-объектом драйвера ККТ в 1С 7.7
Драйвер = СоздатьОбъект("AddIn.Fptr10");
Если Драйвер.open() = 0 Тогда
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_REPORT_TYPE, Драйвер.LIBFPTR_RT_OPEN_SHIFT);
Драйвер.openShift();
// Открытие фискального чека прихода
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_RECEIPT_TYPE, Драйвер.LIBFPTR_RT_SELL);
Драйвер.openReceipt();
// Регистрация товарной позиции
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_COMMODITY_NAME, "Продукция собственного производства");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PRICE, 1500.00);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_QUANTITY, 1.000);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TAX_TYPE, Драйвер.LIBFPTR_TAX_VAT20);
Драйвер.registration();
// Закрытие чека с оплатой наличными
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PAYMENT_TYPE, Драйвер.LIBFPTR_PT_CASH);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PAYMENT_SUM, 1500.00);
Драйвер.closeReceipt();
КонецЕсли;
Если на предприятии уже имеется любая конфигурация на платформе 1С 8.3 (например, 1С:Бухгалтерия предприятия версии ПРОФ/КОРП или 1С:Розница), в которой касса уже штатно подключена через Библиотеку подключаемого оборудования, можно использовать «восьмерку» исключительно в качестве сервиса печати.
Рассмотрим два сценария реализации этой схемы:
V83.COMConnector. Параметры чека (табличная часть с номенклатурой, суммами и признаками оплаты) передаются в экспортную функцию общего модуля базы 1С 8.3, которая с помощью встроенных механизмов БПО пробивает чек на физическом фискальном регистраторе.Для исключения проблем с COM-библиотеками и разрядностью операционных систем часто применяется архитектура микросервиса. На рабочем компьютере кассира запускается специализированный локальный веб-сервер (драйвер с HTTP-интерфейсом или готовое промежуточное ПО фискализации).
Проанализируем алгоритм работы:
MSXML2.ServerXMLHTTP или WinHttp.WinHttpRequest.5.1 выполняется отправка HTTP POST-запроса на локальный порт (например, http://localhost:5000/api/v1/receipt).Если объем кассовых операций минимален и приобретение стационарного фискального регистратора с постоянным подключением к ПК нецелесообразно, можно использовать кнопочные автономные кассовые аппараты (например, линейки Меркурий, АМС и др.).
Выясним особенности работы с такими аппаратами:
Выбор варианта зависит от интенсивности кассовых операций: при постоянных продажах оптимально прямое подключение ФР через 32-битный COM-драйвер производителя или шлюз 1С 8.3, а при единичных операциях на производстве — использование автономной кассы с периодической загрузкой номенклатуры.