Как подключить онлайн-кассу (Штрих-М) к 1С:Торговля и Склад 7.7?

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

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

Вариант 1: Использование штатных обработок и новых драйверов

Рассмотрим самый экономичный путь. Как показывает практика, архитектура драйверов «Штрих-М» сохранила преемственность. Это означает, что старые обработки обслуживания, предназначенные для обычных фискальных регистраторов, могут работать и с онлайн-кассами. Для этого проанализируем следующие шаги:

  1. Обновление драйвера: Необходимо установить актуальную версию драйвера «Штрих-М» (версии 4.14, 4.15 или выше). Драйвер обеспечивает прослойку между 1С и ККТ, поддерживая передачу данных в ОФД.
  2. Регистрация компоненты: Объект AddIn.DRVFR по-прежнему используется для связи. Убедимся, что библиотека DrvFR.dll корректно зарегистрирована в системе.
  3. Минимальная доработка кода: Проанализируем стандартную обработку fr_comm.ert (или аналогичную). В большинстве случаев достаточно обновить методы открытия чека и передачи позиций. Современные онлайн-кассы требуют передачи признака предмета расчета и признака способа расчета (например, «Товар» и «Полный расчет»).

Важно помнить, что при использовании старой логики 1С 7.7 может возникнуть проблема с форматами фискальных данных (ФФД 1.05 или 1.2). Если ваша организация торгует маркированным товаром, этот вариант потребует серьезного вмешательства в код для передачи кода маркировки (Тег 1162).

Вариант 2: Переход на специализированные внешние обработки

Разберем ситуацию, когда стандартных возможностей недостаточно. В сообщениях форума часто упоминаются готовые платные решения (например, от автора Victuan). Это оправдано, когда бюджет позволяет сэкономить время программиста. Рассмотрим, какие преимущества дают такие решения:

Технические детали: работа с драйвером через OLE

Посмотрим, как выглядит пример кода для взаимодействия с драйвером «Штрих-М» напрямую. Выясним причину, почему иногда лучше использовать прямые методы драйвера вместо XML-прокладок. Рассмотрим фрагмент инициализации устройства:


// Создание объекта драйвера
Попытка
    ККТ = СоздатьОбъект("AddIn.DRVFR");
Исключение
    Сообщить("Драйвер Штрих-М не найден!");
    Возврат;
КонецПопытки;

// Установка параметров связи
ККТ.Password = "30"; // Пароль системного администратора по умолчанию
ККТ.ComNumber = 1;   // Номер COM-порта
ККТ.BaudRate = 6;    // Скорость 115200
ККТ.Connect();

Если ККТ.ResultCode <> 0 Тогда
    Сообщить("Ошибка связи: " + ККТ.ResultCodeDescription);
КонецЕсли;

Проанализируем процесс регистрации товара. Для онлайн-касс критически важно передавать ставку НДС и правильные теги. Если мы используем прямой метод Sale(), это может выглядеть так:


ККТ.Quantity = Позиция.Количество;
ККТ.Price = Позиция.Цена;
ККТ.Department = 1;
ККТ.Tax1 = Позиция.СтавкаНДС; // Индекс ставки НДС в таблицах ККТ
ККТ.StringForPrinting = Позиция.Наименование;
ККТ.Sale();

Решение проблемы «Многофирменности»

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

  1. Перед пробитием чека необходимо определить, от какого юридического лица оформляется документ.
  2. В зависимости от фирмы подставляются настройки (номер порта или IP-адрес кассы).
  3. Программа выполняет метод Disconnect() для текущего соединения и заново устанавливает связь с нужным устройством через Connect().

Важный нюанс: Постоянное переподключение может замедлять работу. Профессиональные обработки хранят соответствие Фирма -> ПараметрыККТ и переподключаются только в том случае, если текущая активная касса не совпадает с требуемой.

Округления и налоги (НДС 20%)

Рассмотрим ситуацию с расхождениями в расчетах. 1С 7.7 часто вычисляет НДС «от суммы», в то время как онлайн-касса делает это построчно. Если в документе много строк, итоговый НДС в базе 1С и в чеке ККТ может разойтись на несколько копеек. Чтобы избежать блокировки чека кассой, рекомендуется:

1. Использовать метод распределения скидок «построчно» еще до передачи данных в драйвер.

2. В случае минимальных расхождений (1-2 копейки) корректировать цену последней позиции в чеке, чтобы итоговая сумма совпала с данными 1С.

3. Проанализировать настройки самой кассы (таблицы налогов), чтобы индексы ставок НДС в 1С (0%, 10%, 20%, Без НДС) строго соответствовали индексам в ККТ.

Заключение

Подводя итог, можно сказать: ТиС 7.7 успешно работает со «Штрих-М» в режиме онлайн. Если у вас простая розница без маркировки и сложных скидок, вы можете обойтись обновлением драйверов и небольшой правкой штатных скриптов. Однако для полноценной работы (маркировка, многофирменность, ФФД 1.2) наиболее стабильным и выгодным решением будет внедрение проверенной внешней компоненты. Это обеспечит юридическую чистоту чеков и избавит от постоянных ошибок округления.

← На главную