Как настроить печать чека из РМК напрямую без выбора формы и предварительного просмотра

Программист 1С:Розница Торговля и дистрибуция
← На главную

В процессе работы кассира в «1С:Розница 2.1» (особенно в Рабочем месте кассира — РМК) критически важна скорость обслуживания. Каждое лишнее окно, требующее нажатия кнопки или выбора макета, замедляет процесс и увеличивает очереди. Распространенная проблема — появление окна выбора между «Товарным чеком» и «Товарным чеком на принтер документов», а также последующее окно предварительного просмотра.

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

Выясняем причины появления окна выбора печатных форм

Проанализируем ситуацию: программа предлагает выбор только в том случае, если она «видит» несколько альтернативных способов выполнить задачу. В контексте печати из РМК это может происходить по следующим причинам:

  1. Дублирование оборудования: В разделе Подключаемое оборудование создано несколько логических устройств для одного физического принтера (например, один настроен как «Принтер чеков», а другой как «Принтер документов»).
  2. Назначение нескольких макетов: Для одного документа (Чек ККМ) в справочнике Макеты печати назначено два или более «активных» шаблона.
  3. Настройки прав и интерфейса: В профиле РМК включены опции, инициирующие одновременную печать и фискального чека, и товарного чека.

Решение 1: Настройка через подключаемое оборудование

Первым делом проверим состав оборудования. Перейдем в меню Администрирование — Подключаемое оборудование. Посмотрим на список устройств:

Решение 2: Оптимизация макетов в «Настройках РМК»

Разберем, как программа определяет, какой макет использовать. Перейдем в Продажи — Настройки РМК. Выберем используемый интерфейс и проанализируем настройки:

В разделе «Интерфейс» есть параметры управления поведением кассира. Проверим наличие галочки Печатать товарный чек при пробитии чека ККМ. Если ваша цель — печать только одного чека, эта настройка может провоцировать вызов дополнительного окна. Также важно зайти в справочник Хранилище шаблонов и убедиться, что для принтера чеков выбран один конкретный шаблон по умолчанию.

Решение 3: Использование внешних печатных форм (для Базовых версий)

Для пользователей базовой версии, где нельзя «допилить» конфигурацию, оптимальным решением станет использование внешней печатной формы. Этот механизм позволяет изменить логику печати, не затрагивая ядро программы.

Рассмотрим алгоритм действий программиста:

  1. Создаем внешнюю печатную форму для объекта Документ.ЧекККМ.
  2. В модуле обработки переопределяем команду печати. Вместо стандартного метода Показать(), который вызывает окно просмотра, используем метод Напечатать().
  3. В параметрах печати жестко прописываем ИмяМакета, чтобы исключить стадию выбора.

Пример программной реализации логики вывода на печать без диалогов:


// В модуле внешней печатной формы
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    // Устанавливаем признак немедленной печати
    ПараметрыВывода.ДоступнаПечатьПоУмолчанию = Истина;
    
    // Формируем табличный документ
    ТабДок = СформироватьПечатнуюФорму(МассивОбъектов[0]);
    
    // Отправляем сразу на принтер, минуя окно просмотра
    ТабДок.Напечатать(РежимИспользованияПринтера.ИспользоватьНастройкиПринтера);
    
КонецПроцедуры

Решение 4: Использование расширений конфигурации

Если версия платформы «1С:Предприятие» выше 8.3.12, даже в базовых версиях можно использовать расширения (.cfe). Это современный и безопасный способ кастомизации. Рассмотрим, как реализовать перехват печати через расширение.

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


&Вместо("ОпределитьИмяМакетаПечати")
Функция Расш1_ОпределитьИмяМакетаПечати(ДанныеЧека)
    // Вместо вызова окна выбора возвращаем имя нашего основного макета
    Возврат "ТоварныйЧек"; 
КонецФункции

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

Решение 5: Настройка принтера в операционной системе

Иногда причина кроется в настройках самой Windows. Разберем ситуацию, когда 1С «зависает» на моменте передачи данных в очередь печати:

Подведем итоги

Мы проанализировали несколько способов избавления от лишних окон. Для быстрого решения без программирования проверьте дублирующееся оборудование и настройки макетов по умолчанию в профиле РМК. Если вы работаете с базовой версией и настройки не помогают — используйте внешнюю печатную форму или расширение. Эти методы позволяют автоматизировать процесс, экономя время кассира и повышая качество обслуживания клиентов.

← На главную