Как подключить онлайн-кассу к 1С:Управление торговлей 11.0 и печатать чеки с номенклатурой?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При переходе на требования Федерального закона № 54-ФЗ пользователи и разработчики конфигурации «1С:Управление торговлей» редакции 11.0 сталкиваются с серьезным техническим ограничением: типовые механизмы программы изначально не рассчитаны на работу с современными онлайн-кассами (ФФД 1.05 и 1.2) и потоварную фискализацию при приеме наличных или безналичных оплат.

В старых версиях системы чек пробивался непосредственно из документа Приходный кассовый ордер (ПКО) без передачи товарного состава. Разберем правовые требования к чекам, выясним, почему старые схемы больше не работают, и подробно рассмотрим технические способы решения задачи подключения кассы (например, Атол 55Ф) к 1С:УТ 11.0.

Требования законодательства (54-ФЗ) к составу чека

Проанализируем ключевые моменты статьи 4.7 Федерального закона № 54-ФЗ, регулирующие состав реквизитов кассового чека:

  1. Запрет обобщенных названий: Формулировки «Товар в ассортименте», свободные строки или чеки без позиций являются прямым нарушением закона. За это предусмотрены штрафные санкции со стороны налоговых органов. Чек обязан содержать конкретное наименование товара (тег 1030), количество (тег 1023), цену за единицу (тег 1079), итоговую стоимость (тег 1043) и ставку НДС (тег 1199).
  2. Чеки без номенклатуры допустимы только при авансе: Единственная ситуация, когда список товаров не печатается, — внесение предоплаты или аванса, если на момент внесения средств точный перечень отгружаемых позиций определить невозможно. В таком случае в чеке реквизитом признака способа расчета передается «Аванс» или «Предоплата», а при фактической передаче товара обязательно формируется второй чек с признаком «Полный расчет» и перечнем номенклатуры.
  3. Источник данных в 1С: Так как в типовом документе ПриходныйКассовыйОрдер отсутствует табличная часть с товарами, состав номенклатуры для чека необходимо считывать из связанного документа-основания (РеализацияТоваровУслуг или ЗаказКлиента). Если основание не заполнено, чек может быть фискализирован только с признаком авансового платежа.

Вариант 1. Прямая печать через драйвер ККТ (Внешняя обработка)

Наиболее быстрый путь для УТ 11.0 без внесения масштабных правок в типовую конфигурацию — написание внешней обработки или расширения, которое взаимодействует напрямую с объектом драйвера производителя фискального регистратора (например, «Атол: Драйвер ККТ 10.х» через COM-соединение или NativeAPI).

Разберем алгоритм работы такой обработки по шагам:

  1. Подключение к драйверу через создание COM-объекта AddIn.Fptr10.
  2. Открытие фискального чека методом драйвера.
  3. Поиск документа-основания для текущего ПКО (например, документа РеализацияТоваровУслуг).
  4. Обход табличной части Товары и передача каждой строки номенклатуры в кассу.
  5. Регистрация итоговой суммы платежа и закрытие фискального документа.

Посмотрим на пример структуры кода для работы с драйвером ККТ через COM-объект:


Драйвер = Новый COMОбъект("AddIn.Fptr10");
Драйвер.open();

// Открываем чек на приход (тип чека 1)
Драйвер.setParam(1022, 1); // Тег типа чека (Приход)
Драйвер.openReceipt();

// Получаем основание из ПКО
ДокументОснование = ОбъектПКО.ДокументОснование;

Если ЗначениеЗаполнено(ДокументОснование) И ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    Для Каждого Стр Из ДокументОснование.Товары Цикл
        // Передаем параметры товарной позиции
        Драйвер.setParam(1030, СокрЛП(Стр.Номенклатура.Наименование)); // Наименование
        Драйвер.setParam(1079, Стр.Цена);                              // Цена
        Драйвер.setParam(1023, Стр.Количество);                        // Количество
        Драйвер.setParam(1043, Стр.Сумма);                             // Сумма
        Драйвер.registration();
    КонецЦикла;
КонецЕсли;

// Оплата наличными (тип оплаты 0)
Драйвер.setParam(1031, ОбъектПКО.СуммаДокумента);
Драйвер.closeReceipt();
Драйвер.close();

Вариант 2. Внедрение Библиотеки подключаемого оборудования (БПО)

Альтернативный путь — интеграция в конфигурацию подсистемы БПО от фирмы «1С». Однако здесь есть важное архитектурное ограничение: актуальные версии БПО требуют режима совместимости платформы «1С:Предприятие 8.3» не ниже версии 8.3.8–8.3.12, тогда как исходная УТ 11.0 функционирует в режиме совместимости с 8.2.

Если выбран данный способ, последовательность действий следующая:

  1. Скачать с сайта поддержки пользователей «1С» конфигурацию «1С:Библиотека подключаемого оборудования».
  2. Повысить режим совместимости конфигурации в свойствах корня конфигурации до требуемого версией БПО.
  3. Объединить конфигурацию с объектами БПО (справочники оборудования, общие модули управления кассовыми аппаратами).
  4. В режиме отладки исправить синтаксические ошибки и методы, поведение которых изменилось при смене режима совместимости.
  5. Подключить кассу через справочник ПодключаемоеОборудование, используя сертифицированный драйвер производителя.

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

Если режим совместимости менять нельзя, а прямая работа с COM-объектом затруднена архитектурой клиент-серверной сети, эффективным решением выступает локальный веб-сервис печати чеков. На компьютере, к которому физически подключен фискальный регистратор, разворачивается служба (веб-сервер), принимающая JSON-команды.

Из 1С отправляется HTTP-запрос:


HTTPСоединение = Новый HTTPСоединение("127.0.0.1", 5000);
HTTPЗапрос = Новый HTTPЗапрос("/api/v1/printCheck");
HTTPЗапрос.УстановитьТелоИзСтроки(ТекстJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Этот подход обеспечивает полную изоляцию платформы 1С от драйверов кассы и исключает зависимость от разрядности клиента (32/64-бит).

Вариант 4. Штатное обновление конфигурации

Самым надежным и поддерживаемым решением в долгосрочной перспективе является последовательное обновление конфигурации: УТ 11.0 → УТ 11.1 → УТ 11.2 → УТ 11.3 → УТ 11.4 / 11.5.

В актуальных версиях программы реализована встроенная поддержка всех стандартов ФФД, автоматический расчет предоплат, формирование чеков коррекции, отправка электронных чеков по SMS/Email и интеграция с системами маркировки «Честный Знак».

← На главную