Как настроить работу Штрих-М с 1С 7.7 под формат фискальных данных ФФД 1.05

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

Переход на формат фискальных данных (ФФД) 1.05 на платформе 1С 7.7 часто вызывает сложности у разработчиков из-за почтенного возраста системы и необходимости использовать современные методы драйвера. Основная задача заключается в передаче новых обязательных реквизитов, таких как ИНН кассира, признак предмета расчета и признак способа расчета. В этой статье мы подробно разберем, как адаптировать программный код и настроить кассовый аппарат Штрих-М для корректной работы.

Разбор основных требований ФФД 1.05

Для начала проанализируем, какие именно параметры стали обязательными в ФФД 1.05 и как они соотносятся с терминами драйвера ККТ:

  1. ИНН кассира (Тег 1203) — должен передаваться для идентификации лица, осуществившего расчет.
  2. Признак способа расчета (Тег 1214) — например, "Полный расчет", "Предоплата", "Аванс". В 1С 7.7 чаще всего используется значение 4 (Полный расчет).
  3. Признак предмета расчета (Тег 1212) — тип того, что продаем: "Товар" (1), "Услуга" (4), "Работа" (3) и т.д.
  4. Система налогообложения (СНО) — должна соответствовать той, что указана при регистрации ККТ.

Обновление драйвера и устранение ошибки Поле агрегатного объекта не обнаружено

Выясним причину распространенной ошибки, когда 1С не видит методы FNSendTag или FNCloseCheckEx. Это происходит из-за использования старой версии библиотеки DrvFR.dll. Для работы с ФФД 1.05 нам потребуется драйвер версии не ниже 4.14.

Рассмотрим порядок действий для обновления:

  1. Скачиваем дистрибутив драйвера Штрих-М (например, версию 4.14 или 4.15).
  2. Извлекаем файлы из папки Bin (обычно это C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin).
  3. Копируем все файлы (особенно DrvFR.dll и файлы заголовков) в каталог информационной базы 1С или в каталог установки платформы (папка Bin).
  4. Регистрируем новую библиотеку в системе через командную строку: regsvr32 "путь_к_файлу\DrvFR.dll".

Программная реализация печати чека в 1С 7.7

Теперь проанализируем пример кода, который позволяет передать все необходимые теги. Важно соблюдать последовательность: сначала передаются теги, относящиеся к позиции, затем вызывается метод продажи.

Рассмотрим фрагмент кода для регистрации операции с учетом ФФД 1.05:


// Пример передачи ИНН продавца (кассира) перед открытием или в процессе чека
Если СокрЛП(ИННПродавца) <> "" Тогда
    FR.TagNumber = 1203; // Номер тега ИНН кассира
    FR.TagType = 7;      // Тип тега - строка
    FR.TagValueStr = СокрЛП(ИННПродавца);
    FR.FNSendTag();      // Отправка тега в ФН
КонецЕсли;

// Регистрация позиции
FR.Password = Password;
FR.Quantity = 1;
FR.Price = Сумма;
FR.Department = 1;

// Установка признаков ФФД 1.05 для позиции
FR.PaymentTypeSign = 4; // Признак способа расчета: Полный расчет
FR.PaymentItemSign = 4; // Признак предмета расчета: Услуга (или 1 для товара)
FR.TaxType = 2;         // Тип налога (согласно настройкам в таблицах ККТ)

FR.Sale(); // Вызов метода продажи

Обратите внимание на использование метода FNCloseCheckEx(). В новых версиях драйвера именно он отвечает за корректное закрытие чека с передачей всех накопленных данных в фискальный накопитель.


Процедура ЗакрытьЧек()
    FR.Password = Password;
    FR.Summ1 = Сумма; // Оплата наличными
    FR.Summ2 = 0;     // Оплата безналичными
    
    // Вместо старого CloseCheck используем расширенный метод
    FR.FNCloseCheckEx(); 
КонецПроцедуры

Настройка параметров через таблицы ККТ

Многие параметры, которые не меняются от чека к чеку, проще один раз настроить в самом аппарате через Тест драйвера ККТ. Это разгрузит код 1С и снизит вероятность ошибок связи.

Разберем, где искать нужные настройки:

Решение проблемы с отправкой чеков в ОФД

Если чеки печатаются, но не уходят в ОФД, причина обычно не в коде 1С, а в настройках связи кассы с интернетом. Проанализируем два основных способа решения:

Способ 1: Использование интерфейса Ethernet или Wi-Fi

Если у кассы есть физический разъем Ethernet, подключите её напрямую к роутеру. В настройках через Тест драйвера (Таблица 21) установите использование статического IP или DHCP. В этом случае касса будет отправлять данные автономно.

Способ 2: Настройка RNDIS (через USB-кабель)

Если касса подключена к компьютеру через USB, необходимо настроить службу обмена данными (RNDIS). Посмотрим на этапы настройки:

  1. В таблицах ККТ (Сетевые интерфейсы) включите режим RNDIS.
  2. На компьютере в сетевых подключениях появится новое устройство (Shtrih-M).
  3. В свойствах вашего основного интернет-подключения разрешите "Общий доступ к интернету" для этого нового устройства.
  4. Проверьте в Тесте драйвера на вкладке "ФН" -> "ОФД", что количество неотправленных документов начало уменьшаться.

Важные замечания по методам драйвера

Рассмотрим разницу между методами Sale и FNOperation. Хотя Sale все еще работает, компания Штрих-М рекомендует переходить на использование FNOperation для полной совместимости с ФФД 1.05 и выше. Этот метод изначально спроектирован под работу с признаками способа и предмета расчета, что делает код более прозрачным.

Также выясним, почему касса может издавать звуковой сигнал ("бип") при печати (как в сообщении 42). Обычно это сигнализирует о попытке записи в таблицу или передаче тега в момент, когда чек еще не открыт. Убедитесь, что метод OpenCheck() вызывается успешно до того, как вы начнете передавать FNSendTag().

Подводя итог, можно сказать, что связка 1С 7.7 и современного оборудования Штрих-М вполне жизнеспособна. Главное — следить за актуальностью DrvFR.dll и корректно передавать структуру тегов, требуемую законодательством.

← На главную