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

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

После обновления конфигурации 1С:Розница до версии 2.3.9.23 многие пользователи столкнулись с неприятным поведением системы: при каждой попытке пробить чек по платежной карте программа выводит окно «Выберите устройство для печати». Это происходит даже в тех случаях, когда в настройках эквайрингового терминала жестко закреплено конкретное оборудование. В этой статье мы подробно разберем причины этой ошибки и рассмотрим способы ее устранения — от официальных исправлений до технических «костылей» через расширение конфигурации.

Анализ проблемы и причины возникновения

Разберем ситуацию: до обновления (например, на релизе 2.3.8.27) печать слип-чеков происходила автоматически на принтер, указанный в карточке эквайрингового терминала. После перехода на 2.3.9.23 и выше, система «забывает» эти настройки. Продавцу приходится вручную выбирать устройство из списка при каждой продаже, что существенно замедляет работу на кассе, особенно при большом потоке покупателей.

Проанализируем техническую сторону вопроса. Проблема официально зарегистрирована фирмой 1С под номером 00-00377098. Причина кроется в глубокой переработке механизмов Библиотеки стандартных подсистем (БСП) и Библиотеки подключаемого оборудования (БПО). Разработчики реализовали новую логику распределения печати, которая позволяет отправлять фискальный чек на ККТ, а нефискальные документы (слип-чеки) — на другие принтеры. Однако в коде возникла коллизия: функция поиска подключенного устройства перестала корректно считывать настройки из справочника ЭквайринговыеТерминалы. Вместо того чтобы взять идентификатор устройства из базы, система получает неопределенное значение и, перестраховываясь, выводит диалоговое окно пользователю.

Решение 1: Установка официального патча

Самый правильный и безопасный способ решения — установка официального исправления от фирмы 1С. Для исправления ошибки 00-00377098 был выпущен патч под кодом EF_00_00377098. Рассмотрим последовательность действий для его установки:

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Выберем пункт Обновление программы — Установка обновлений и исправлений (патчей).
  3. Если база находится на поддержке и есть доступ к порталу 1С:ИТС, система предложит загрузить патч автоматически. Если нет — скачаем файл патча с портала вручную и укажем путь к нему.
  4. После установки потребуется перезагрузка сеанса 1С.

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

Решение 2: Программное исправление через расширение

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

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

Для исправления создадим расширение и перехватим процедуру ПередПечатьюСлипЧека (или аналогичную, отвечающую за выбор устройства в зависимости от версии БПО). Нам нужно принудительно указать системе, какое устройство использовать, минуя этап вызова диалогового окна. Рассмотрим пример логики, которую можно реализовать в расширении:


&Вместо("ПолучитьУстройствоДляПечати")
Функция ИмяРасширения_ПолучитьУстройствоДляПечати(НастройкиЭквайринга)
    
    // Если в настройках эквайринга уже указано конкретное устройство,
    // возвращаем его сразу, не открывая окно выбора.
    Если ЗначениеЗаполнено(НастройкиЭквайринга.УстройствоПечати) Тогда
        Возврат НастройкиЭквайринга.УстройствоПечати;
    КонецЕсли;
    
    // Если устройство не определено, вызываем стандартную логику
    Возврат ПродолжитьВызов(НастройкиЭквайринга);
    
КонецФункции

Обратите внимание: конкретные имена процедур могут меняться от релиза к релизу. Рекомендуется использовать глобальный поиск по конфигурации строки «Выберите устройство для печати», чтобы найти точку вызова формы ФормаВыбораУстройстваДляПечати.

Нюансы работы с несколькими организациями (ИП и ООО)

Ситуация осложняется, когда на одном рабочем месте (РМК) работают две организации, например, ИП и ООО, и у каждой свой фискальный регистратор. В версии 2.3.9 механизм распределения выручки может некорректно сопоставлять идентификатор устройства эквайринга с активным сеансом ККТ.

Разберем, как это работает: при оплате картой программа пытается определить, к какому «Рабочему месту» привязано оборудование. Если настройки Рабочего места кассира (РМК) содержат дублирующиеся записи или если драйвер оборудования не поддерживает Native-API, 1С может «потерять» связь с конкретным принтером. В этом случае полезно выполнить следующие шаги:

  1. Зайти в справочник Подключаемое оборудование.
  2. Временно удалить карточку эквайрингового терминала и создать ее заново, внимательно выбрав Рабочее место.
  3. В справочнике Эквайринговые терминалы перевыбрать устройство печати для каждой организации.

Проблема со сверкой итогов при закрытии смены

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

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

Рекомендации по настройке драйверов

Проанализируем влияние платформы и драйверов. Ошибка часто проявляется на платформе 8.3.18.1520 и ниже. Специалисты рекомендуют использовать версию платформы не ниже 8.3.21 и обновлять драйверы торгового оборудования до последних актуальных версий от производителей (Атол, Штрих-М и др.). Старые драйверы могут некорректно возвращать массив доступных устройств, что провоцирует 1С на открытие окна выбора.

Подведем итог: если вы столкнулись с навязчивым окном «Выберите устройство для печати», первым делом проверьте наличие патча EF_00_00377098. Если патч не помог, проанализируйте настройки Эквайринговых терминалов и при необходимости скорректируйте код в модуле МенеджерОборудованияКлиент через расширение, заставив систему использовать настройки из справочника напрямую.

← На главную