Как исправить ошибку получения обработки обслуживания при закрытии кассовой смены в 1С:Управление торговлей 10.3?

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

В работе с торговым оборудованием в конфигурации 1С:Управление торговлей 10.3 нередко возникают ситуации, когда штатные механизмы программы перестают взаимодействовать с фискальным регистратором. Одной из самых неприятных ошибок является сообщение «Ошибка получения обработки обслуживания» при попытке закрыть кассовую смену. Это блокирует работу кассира и может привести к расхождениям между данными в учетной системе и фактическим состоянием кассового аппарата.

В рамках данной статьи мы подробно разберем, почему возникает эта ошибка, как принудительно закрыть смену на стороне кассы и как восстановить работоспособность 1С, чтобы продолжить продажи.

Разберем причины возникновения ошибки

Прежде чем переходить к активным действиям, нам необходимо понять механику взаимодействия 1С с кассой. В УТ 10.3 связь осуществляется через внешние файлы обработок (обычно с расширением .epf). Ошибка «Ошибка получения обработки обслуживания» сигнализирует о том, что система не смогла инициализировать этот файл или создать программный объект драйвера.

Проанализируем основные факторы, приводящие к сбою:

  1. Рассинхронизация идентификаторов (UUID): Каждое подключенное устройство имеет уникальный внутренний код. Если оборудование переподключалось или удалялось из справочника «Торговое оборудование», старые документы (например, открытая кассовая смена) продолжают ссылаться на старый ID, который теперь помечен как «Устройство было удалено».
  2. Проблемы с регистрацией библиотек: Драйверы ККМ (например, для «Штрих-М») требуют наличия в системе зарегистрированных компонентов, таких как ShtrihM_CashCore.dll. Если регистрация «слетела» после обновления Windows или антивирусной проверки, 1С не сможет запустить обработку.
  3. Доступность файла обработки: В настройках торгового оборудования указан путь к файлу .epf. Если этот файл был удален, перемещен или у пользователя 1С пропали права доступа к сетевой папке, где он хранится, возникнет обсуждаемая ошибка.
  4. Физическая нестабильность связи: Нестабильное соединение через USB-to-COM переходники или низкие таймауты в настройках драйвера приводят к тому, что 1С «теряет» кассу в момент обращения.

Шаг 1: Принудительное закрытие смены через драйвер ККМ

Если 1С отказывается закрывать смену, нам нужно сделать это напрямую через утилиту производителя. Это критически важно, так как кассовая смена по закону не может длиться более 24 часов. Рассмотрим процесс на примере оборудования Штрих-М, так как именно оно фигурировало в обращении пользователя.

Выполним следующие действия:

  1. Закроем программу 1С, чтобы освободить COM-порт, который может быть занят системой.
  2. Запустим утилиту «Тест драйвера ККМ» (обычно она находится в меню Пуск — Штрих-М).
  3. Нажмем кнопку «Настройка свойств» и проверим связь с кассой. Если связь установлена, переходим к работе.
  4. Перейдем на закладку «03. Отчеты».
  5. В списке типов отчетов выберем «Суточный отчет с гашением» (или нажмем кнопку «Снять отчет с гашением»).

После этого кассовый аппарат распечатает Z-отчет, и смена на фискальном накопителе будет официально закрыта. Однако в 1С документ КассоваяСмена всё еще будет иметь статус «Открыта». Нам нужно это исправить.

Шаг 2: Корректировка статуса смены в 1С

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

Рассмотрим ситуацию, когда нам нужно изменить статус документа вручную. Для этого мы можем воспользоваться встроенной обработкой «Групповая обработка справочников и документов»:

  1. Откроем обработку через меню «Сервис» — «Универсальные механизмы».
  2. Выберем тип объекта «Документы» и добавим в список КассоваяСмена.
  3. Настроим отбор по нужному нам документу (например, по дате или номеру).
  4. В поле «Действие» выберем «Изменить реквизит» и найдем реквизит Статус (или СтатусКассовойСмены).
  5. Установим значение «Закрыта» и выполним обработку.

Если вы обладаете навыками программирования, эту задачу можно решить коротким фрагментом кода во внешней обработке или консоли кода:


Выборка = Документы.КассоваяСмена.Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.Статус = Перечисления.СтатусыКассовыхСмен.Открыта Тогда
        ОбъектСмены = Выборка.ПолучитьОбъект();
        ОбъектСмены.Статус = Перечисления.СтатусыКассовыхСмен.Закрыта;
        ОбъектСмены.ДатаЗакрытия = ТекущаяДата();
        ОбъектСмены.Записать();
        Сообщить("Смена № " + Выборка.Номер + " успешно закрыта программно.");
    КонецЕсли;
КонецЦикла;

Шаг 3: Исправление настроек торгового оборудования

Теперь выясним причину сообщения «Устройство было удалено» в реквизитах смены. Это происходит из-за того, что текущий документ привязан к ссылке на запись в справочнике ТорговоеОборудование, которая была либо удалена, либо заменена новой.

Чтобы восстановить корректную работу, проанализируем следующие моменты:

Шаг 4: Регистрация драйверов и системные настройки

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

1. Регистрация COM-объекта. Откройте командную строку от имени администратора и выполните регистрацию основной библиотеки драйвера. Для Штрих-М команда может выглядеть так:

regsvr32 "C:\Program Files (x86)\Shtrih-M\Drivers8\ShtrihM_CashCore.dll"

2. Настройка электропитания. В Windows есть функция экономии энергии, которая может отключать питание USB-портов. Проанализируем настройки в Диспетчере устройств: найдите «Корневой USB-концентратор», зайдите в свойства и на вкладке «Управление электропитанием» снимите галочку «Разрешить отключение этого устройства для экономии энергии».

3. Кэш 1С. Иногда 1С хранит старые пути к обработкам в локальном кэше пользователя. Попробуйте удалить базу из списка запусков 1С и добавить её заново. Это очистит временные файлы и может восстановить связь с торговым оборудованием.

Резюме

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

  1. Закройте смену физически через Тест драйвера ККМ.
  2. Принудительно измените статус документа КассоваяСмена в 1С на «Закрыта».
  3. Проверьте актуальность обработки обслуживания (файла .epf) и корректность привязки оборудования в настройках.
  4. Увеличьте таймауты связи и проверьте регистрацию системных библиотек драйвера.

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

← На главную