Как организовать работу с онлайн-кассой в 1С 7.7?

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Переход на применение контрольно-кассовой техники в соответствии с требованиями закона 54-ФЗ ставит перед пользователями и разработчиками систем на платформе 1С:Предприятие 7.7 непростую задачу. В отличие от современных решений на платформе 8.3, в конфигурациях 7.7 отсутствует типовая «Библиотека подключаемого оборудования» (БПО), а чеки теперь обязаны содержать полный перечень номенклатурных позиций, ставок НДС, признаков расчета и контактных данных покупателя.

Разберем основные практические подходы, позволяющие фискализировать операции при ведении товарного и бухгалтерского учета в 1С 7.7.

Вариант 1. Прямое подключение ККТ через COM-драйверы производителей (АТОЛ, ШТРИХ-М)

Самый прозрачный и быстрый для кассира вариант — отправка чека на фискальный регистратор непосредственно из документа конфигурации 1С 7.7 (например, из документа РасходнаяНакладная или ПриходныйКассовыйОрдер).

Для этого используется COM/OLE-интерфейс драйверов торгового оборудования. Разберем ключевые особенности такой интеграции:

  1. Разрядность драйвера: Платформа 1С 7.7 является исключительно 32-разрядным (x86) приложением. При установке пакета драйверов (например, АТОЛ DTO 10 или драйвера ККТ от ШТРИХ-М) необходимо регистрировать именно 32-битные библиотеки в операционной системе.
  2. Формирование фискальных реквизитов: Согласно форматам фискальных данных (ФФД), в каждую позицию чека необходимо передавать:
    1. Наименование товара (тег 1030);
    2. Количество и цену за единицу (теги 1023, 1079);
    3. Ставку НДС (тег 1199);
    4. Признак способа расчета (тег 1214 — например, полный расчет, аванс, кредит);
    5. Признак предмета расчета (тег 1212 — товар, услуга, платеж);
    6. Контакты покупателя (тег 1008 — телефон или e-mail) при запросе электронного чека.

Посмотрим на пример структуры вызова 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();
КонецЕсли;

Вариант 2. Использование 1С 8.3 как шлюза фискализации

Если на предприятии уже имеется любая конфигурация на платформе 1С 8.3 (например, 1С:Бухгалтерия предприятия версии ПРОФ/КОРП или 1С:Розница), в которой касса уже штатно подключена через Библиотеку подключаемого оборудования, можно использовать «восьмерку» исключительно в качестве сервиса печати.

Рассмотрим два сценария реализации этой схемы:

  1. Фоновый вызов через OLE/COM-соединение: Из 1С 7.7 в момент проведения кассового документа создается COM-подключение к информационной базе 1С 8.3 через V83.COMConnector. Параметры чека (табличная часть с номенклатурой, суммами и признаками оплаты) передаются в экспортную функцию общего модуля базы 1С 8.3, которая с помощью встроенных механизмов БПО пробивает чек на физическом фискальном регистраторе.
  2. Пакетная выгрузка данных: Обработкой из 1С 7.7 формируется файл обмена (XML/JSON/DBF) с перечнем номенклатуры и чеков, который загружается в 1С:Розницу или 1С:Бухгалтерию для пакетной печати чеков кассиром. Обратите внимание, что функционал работы с торговым оборудованием в базовых версиях БП и Розницы не имеет программных ограничений по сравнению с ПРОФ-версиями, что позволяет использовать даже базовые поставки.

Вариант 3. Использование локального веб-сервера печати чеков

Для исключения проблем с COM-библиотеками и разрядностью операционных систем часто применяется архитектура микросервиса. На рабочем компьютере кассира запускается специализированный локальный веб-сервер (драйвер с HTTP-интерфейсом или готовое промежуточное ПО фискализации).

Проанализируем алгоритм работы:

  1. 1С 7.7 формирует строку с описанием чека в формате JSON или XML.
  2. С помощью встроенного в Windows OLE-объекта MSXML2.ServerXMLHTTP или WinHttp.WinHttpRequest.5.1 выполняется отправка HTTP POST-запроса на локальный порт (например, http://localhost:5000/api/v1/receipt).
  3. Сервер печати разбирает запрос, взаимодействует с ККТ и возвращает в 1С 7.7 статус фискализации (номер фискального документа, ФПД и признак успешной печати).

Вариант 4. Автономные кассы с возможностью загрузки номенклатуры

Если объем кассовых операций минимален и приобретение стационарного фискального регистратора с постоянным подключением к ПК нецелесообразно, можно использовать кнопочные автономные кассовые аппараты (например, линейки Меркурий, АМС и др.).

Выясним особенности работы с такими аппаратами:

  1. Загрузка базы товаров: В автономную кассу предварительно загружается справочник товаров с кодами и штрихкодами (через USB-флешку, SD-карту или специальную утилиту по сети).
  2. Пробитие чека: Кассир вводит с клавиатуры аппарата код товара (PLU) или считывает штрихкод сканером, подключенным напрямую к кассе, указывает цену и закрывает чек.
  3. Выгрузка отчетов: По окончании смены данные о продажах могут быть выгружены на внешний накопитель для последующего отражения проводок в 1С 7.7.

Выбор варианта зависит от интенсивности кассовых операций: при постоянных продажах оптимально прямое подключение ФР через 32-битный COM-драйвер производителя или шлюз 1С 8.3, а при единичных операциях на производстве — использование автономной кассы с периодической загрузкой номенклатуры.

← На главную