Почему касса ШТРИХ-М печатает отчеты об открытии и закрытии смены после каждого чека в 1С 10.3?

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

При работе с торговым оборудованием в среде 1С:Предприятие 8 пользователи нередко сталкиваются с аномальным поведением кассовой техники после проведения плановых обновлений прошивки или конфигурации. Одной из наиболее раздражающих и затратных (с точки зрения расхода чековой ленты) проблем является автоматическая печать коротких отчетов об открытии и закрытии смены сразу после пробития каждого фискального чека. Проанализируем ситуацию на примере популярной связки 1С:Управление торговлей 10.3 и контрольно-кассовой техники (ККТ) производства ШТРИХ-М.

Выясним причину некорректного поведения оборудования

Первым делом нам необходимо понять механику взаимодействия программы и кассы. Когда в 1С:Торговля 10.3 нажимается кнопка «Пробить чек», система выполняет последовательность команд через драйвер ККТ. В нормальном режиме 1С запрашивает статус смены. Если смена открыта, пробивается чек. Если закрыта — выдается ошибка или предлагается открыть смену.

Проблема «цикличной» печати отчетов обычно кроется в том, что 1С получает от драйвера неверный статус состояния кассы. Рассмотрим основные факторы, приводящие к этому:

  1. Устаревшая версия драйвера: Использование версии 4.14.x при обновленной прошивке кассы под требования ФФД 1.05 или 1.2.
  2. Несоответствие протоколов: Команды старого драйвера некорректно интерпретируются новым ПО кассы.
  3. Настройки таблиц ККТ: Внутренние параметры аппарата настроены на автоматические действия, которые дублируют команды из 1С.
  4. Ошибки в обработке обслуживания: Внешний файл .epf, отвечающий за связь с драйвером, может содержать устаревшие методы обращения к регистрам.

Шаг 1: Обновление драйвера ШТРИХ-М

Разберем ситуацию с драйвером подробнее. В рассматриваемом случае установлена версия 4.14.0.688. Для современной работы с фискальными накопителями и актуальными прошивками ККТ эта версия считается критически устаревшей. Проанализируем, почему это важно: современные кассы работают по протоколам, которые требуют от драйвера более сложной обработки флагов состояния. Если драйвер «не понимает» ответ кассы о том, что смена уже открыта, 1С может инициировать команду открытия перед каждым документом.

Рекомендация: Перейдем на официальный сайт производителя и скачаем актуальную версию драйвера (на текущий момент это ветки 4.15.x или 5.16/5.17). После установки нового драйвера переподключать ККТ в 1С физически не требуется, однако крайне важно обновить компоненту (библиотеку ShtrihM_ККТ_2.dll или аналогичную) в системных папках 1С или зарегистрировать её в реестре Windows.

Шаг 2: Локализация проблемы через Тест драйвера

Чтобы исключить влияние 1С и понять, виновата ли сама касса, проведем эксперимент. Закроем программу 1С и воспользуемся утилитой «Тест драйвера ККТ». Попробуем пробить произвольный нефискальный документ или чек коррекции. Если при печати через драйвер лишние отчеты не выходят, значит, проблема кроется в логике работы 1С или обработки обслуживания.

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

  1. Зайдем в «Настройка свойств» -> «Таблицы».
  2. Найдем Таблицу №1 «Тип текста». Проверим параметры, связанные с автоматической печатью документов.
  3. Проверим Таблицу №17 «Региональные настройки». В ней есть поля, отвечающие за автоматическое открытие смены при первом чеке и автоматическое обнуление. Установим значения в «0» (выключено), если они активированы.

Шаг 3: Настройка обработки обслуживания в 1С 10.3

В старых конфигурациях, таких как Управление торговлей 10.3, взаимодействие с кассой осуществляется через внешние обработки с расширением .epf. Проанализируем код типичной обработки. В некоторых кастомных решениях программисты могли добавить принудительное закрытие смены для предотвращения ошибок превышения 24-часового лимита.

Рассмотрим фрагмент логики, который может вызывать проблему (примерный алгоритм):


// Пример некорректной логики в обработке обслуживания
РезультатСтатуса = ОбъектДрайвера.ПолучитьСостояниеККМ();
Если РезультатСтатуса.СменаОткрыта Тогда
    // Пробиваем чек
Иначе
    ОбъектДрайвера.ОткрытьСмену();
    // Пробиваем чек
КонецЕсли;

// Ошибка часто кроется здесь: если после чека вызывается 
// метод, который драйвер 4.14 трактует как сигнал к закрытию
ОбъектДрайвера.ЗакрытьСмену(); // Если эта строка срабатывает по условию

Вам необходимо убедиться, что используется актуальная версия обработки ShtrihMFiscalPrinters_v2.epf, которая корректно обрабатывает методы ОткрытьСмену() и НапечататьФискальныйЧек().

Шаг 4: Устранение конфликтов библиотек и тайм-аутов

Иногда проблема возникает из-за того, что после печати чека драйвер теряет связь с ККТ на долю секунды, и 1С воспринимает это как критическую ошибку, пытаясь завершить сеанс работы. Посмотрим на параметры подключения в «Тесте драйвера»:

Также важно проверить наличие файла sm_extension.dll. В новых прошивках ШТРИХ-М этот модуль расширения отвечает за корректную передачу данных в ОФД. Если файл отсутствует или заблокирован антивирусом, драйвер может работать нестабильно, выдавая неверные статусы готовности смены в 1С.

Резюме и план действий

Подводя итог, можно сказать, что ситуация с лишними чеками — это классический конфликт версий ПО. Чтобы решить задачу, выполним следующие действия:

  1. Обновим драйвер до версии не ниже 4.15.
  2. Проверим работу кассы вне 1С через «Тест драйвера». Если лишние чеки есть — правим Таблицы 1 и 17.
  3. Обновим обработку обслуживания в справочнике «Торговое оборудование» в 1С.
  4. Настроим тайм-ауты связи, чтобы исключить программные сбои из-за разрывов соединения.

Следуя этой инструкции, вы сможете не только устранить лишнюю печать, но и обеспечите стабильную работу кассового узла в соответствии с актуальными требованиями законодательства.

← На главную