Как подключить и настроить онлайн-кассу в конфигурации 1С:Торговля и Склад 7.7?

Программист 1С v7.7 Торговля и дистрибуция
← На главную

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

1. Проблема инициализации драйвера (ошибка AddIn.DrvFR)

При попытке подключить обновленный фискальный регистратор (например, доработанные аппараты «Штрих-М» с драйвером версии 4.13 и выше) ТиС 7.7 часто выдает ошибку инициализации внешнего объекта: Не могу создать объект с программным идентификатором AddIn.DrvFR. Выясним причину этой ошибки.

Платформа 1С 7.7 является строго 32-битным (x86) приложением. Если операционная система 64-битная, компонента драйвера может автоматически не зарегистрироваться в реестре для 32-битного окружения. Для исправления ситуации выполним следующие действия:

  1. Убедимся, что установлена 32-битная версия драйвера ККТ.
  2. Запустим командную строку (cmd) от имени Администратора.
  3. Зарегистрируем библиотеку вручную через системную утилиту SysWoW64:
    
    cd C:\Windows\SysWOW64
    regsvr32 "C:\Program Files (x86)\SHTRIH-M\DrvFR 4.13\DrvFR.dll"
    

После успешной регистрации драйвера вызов объекта в коде 1С 7.7 через CreateObject("AddIn.DrvFR") отработает корректно.

2. Базовые настройки фискального регистратора для работы с ТиС 7.7

Проанализируем базовые настройки в таблицах и свойствах ККТ, которые требуются для стабильной работы со старыми обработками обслуживания:

  1. Автоматическое открытие смены: В драйвере фискального регистратора (утилита «Тест драйвера ККТ») перейдем в раздел «Дополнительные параметры» и включим опцию «Автоматически открывать смену при открытии чека» (параметр №12). Это предотвратит ошибки при попытке печати первого чека за день, если смена еще не была открыта отдельной командой.
  2. ФИО и должность кассира: По закону 54-ФЗ чек должен содержать реквизит «Кассир» (тег 1021). Если в торговой точке работают фиксированные кассиры, самый простой вариант — внести их фамилии непосредственно в таблицу кассиров ККТ («Таблица 2: Пароли кассиров») через утилиту драйвера вместо стандартных значений Кассир 1, Кассир 2. При печати чека из 1С будет передаваться пароль соответствующего кассира.

3. Передача обязательных реквизитов (электронный чек, СНО, агентские схемы)

Современные форматы фискальных документов требуют передачи дополнительных реквизитов через структуру TLV (Tag-Length-Value). Рассмотрим, как реализовать передачу этих параметров в коде 1С 7.7:

  1. Электронная почта или телефон покупателя (тег 1008): При отправке электронного чека необходимо передать контактные данные покупателя до фискализации документа:
    
    Объект.CustomerEmail = "client@example.com";
    Объект.FNSendCustomerEmail();
    
  2. Система налогообложения (СНО, тег 1055): Если организация совмещает несколько налоговых режимов (например, УСН и Патент), перед открытием чека требуется явно задать код СНО. В типовых доработанных релизах ТиС (начиная с релиза 7.70.988, где появилась базовая адаптация под онлайн-кассы) или самописных обработках передача кода СНО выполняется установкой соответствующего свойства драйвера перед методом открытия чека.
  3. Агентские схемы и комиссионная торговля: Для комиссионных товаров необходимо разделять выручку принципала и собственное вознаграждение, иначе при расчете налоговая база по УСН будет завышена на всю сумму чека. Для этого в позиции чека передаются признаки агента и ИНН поставщика.

4. Архитектурные подходы к интеграции онлайн-касс с 1С 7.7

В зависимости от сложности доработок типовой конфигурации и требований к торговому процессу выделим три основных способа интеграции:

  1. Обновление типовой конфигурации до актуальных релизов (9.88 и новее): Если конфигурация «Торговля и Склад» не сильно изменена, оптимально обновить типовые механизмы и модули торгового оборудования на официальные релизы 1С, где реализована базовая поддержка 54-ФЗ.
  2. Использование внешнего кассового ПО (Front-Office): Разделение учета на Front-Office (например, Frontol) и Back-Office (1С:ТиС 7.7). В этом случае 1С 7.7 отвечает только за номенклатуру, цены и учет остатков, а вся работа с кассой, маркировкой («Честный ЗНАК») и ФФД ложится на специализированное кассовое рабочее место. Обмен данными выполняется через текстовые файлы или DBF.
  3. Использование промежуточных HTTP-шлюзов (локальных кассовых серверов): На кассовом компьютере устанавливается локальный веб-сервис, принимающий JSON-запросы по REST API. Из 1С 7.7 чек формируется в виде структуры и отправляется через стандартный объект Windows:
    
    HTTP = CreateObject("MSXML2.ServerXMLHTTP");
    HTTP.Open("POST", "http://127.0.0.1:5000/print_check", 0);
    HTTP.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    HTTP.Send(СтрокаJSON);
    
    Этот подход полностью избавляет код 1С 7.7 от низкоуровневой работы с TLV-тегами и версиями драйверов.
← На главную