В процессе эксплуатации системы 1С:Управление торговлей редакции 10.3, особенно в связке с кассовым оборудованием Штрих-М на терминальном сервере, администраторы и программисты часто сталкиваются с ситуацией, когда торговое оборудование корректно функционирует у одного пользователя (например, администратора), но выдает критическую ошибку «Ошибка получения обработки обслуживания» у всех остальных. Рассмотрим детально, почему это происходит, как проанализировать систему и какие шаги предпринять для устранения этой неисправности.
Для начала разберем, как 1С взаимодействует с кассой. В старых редакциях, использующих обычные формы, механизм подключения торгового оборудования (ТО) завязан на справочник «Обработки обслуживания». Сама обработка — это файл формата .epf, который может храниться либо во внешней папке на диске, либо непосредственно внутри информационной базы.
Когда пользователь пытается выполнить операцию (например, открыть смену или пробить чек), система выполняет следующие действия:
TEMP на сервере.Если на любом из этих этапов происходит сбой — прав доступа, отсутствия файла или некорректного кода — система выдает стандартное сообщение об ошибке получения обработки. Проанализируем возможные причины подробнее.
Как показывает практика и реальные случаи с форумов, иногда причиной становится «человеческий фактор». В процессе доработки конфигурации или самой обработки обслуживания сторонние специалисты могут вшить проверку на конкретного пользователя. Рассмотрим пример кода, который может привести к подобному поведению:
Функция ПолучитьОбъектДрайвера()
ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
Если ТекущийПользователь.Наименование <> "Администратор" Тогда
// Ошибка возникнет только у обычных пользователей
Возврат Неопределено;
КонецЕсли;
// ... логика инициализации драйвера
КонецФункции
Выясним причину: если один пользователь работает, а другие — созданные копированием — нет, необходимо открыть обработку обслуживания в Конфигураторе и через глобальный поиск проверить наличие жестких привязок к именам пользователей, ролям или конкретным путям. Это самая «коварная» причина, так как она не диагностируется системными средствами.
На операционных системах семейства Windows Server 2008/2012 права пользователей сильно ограничены в целях безопасности. Проанализируем ситуацию с папкой TEMP. 1С требует возможности записи и чтения в каталоге %USERPROFILE%\AppData\Local\Temp.
Разберем по шагам проверку прав:
.epf.DrShtrih.dll) должен быть зарегистрирован под администратором через команду regsvr32.Важно помнить, что в 64-битных системах 32-битные драйверы должны регистрироваться в ветке SysWOW64. Если 1С запущена в 32-битном режиме (что стандартно для УТ 10.3), она ищет COM-объект именно там. Если у обычных пользователей нет прав на чтение веток реестра HKEY_CLASSES_ROOT\CLSID, инициализация драйвера внутри обработки обслуживания завершится неудачей.
В УТ 10.3 настройки торгового оборудования привязаны к Рабочему месту. В терминальном сеансе имя компьютера может определяться динамически. Проанализируем справочник «Рабочие места» (Сервис — Торговое оборудование — Подключение и настройка торгового оборудования).
Посмотрим на настройки: если для каждого нового сеанса создается новое рабочее место, то настройки кассы для него будут пустыми. Убедимся, что:
Если вы используете платформу 1С:Предприятие 8.3 для запуска старой конфигурации УТ 10.3, вступает в силу механизм «Защиты от опасных действий». Несмотря на то, что это обычные формы, платформа может блокировать запуск внешних обработок.
Рассмотрим, как это отключить для конкретных пользователей:
Даже если в коде базы стоит программное отключение, индивидуальные настройки профиля пользователя могут перекрывать эти значения.
Для окончательного выяснения причины рекомендуем выполнить следующие действия:
Local\1C и Roaming\1C в профиле пользователя Windows.МенеджерОборудования.ПолучитьОбработкуОбслуживания() (или аналогичной в модуле ТО). Проверьте, в какой именно момент возвращается Ложь или Неопределено.Подводя итог, можно сказать, что ошибка чаще всего кроется либо в правах доступа к файловой системе сервера, либо в специфических проверках внутри кода самой обработки, которые были добавлены ранее для ограничения функционала. Системный подход к проверке каждого этапа загрузки обработки позволит быстро восстановить работу кассового узла.