Как настроить печать чеков на два устройства в 1С:Розница 3.0 с разделением товаров

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

В розничной торговле и общепите часто возникает задача: при оформлении продажи необходимо не только выдать покупателю фискальный чек, но и отправить заказ на кухню или склад. Рассмотрим ситуацию, когда основным устройством является ККТ, а дополнительным — чековый принтер (например, Xprinter XP-N160II), на котором должны печататься только определенные позиции номенклатуры (блюда, подлежащие приготовлению).

В этой статье мы проанализируем возможности программы 1С:Розница 3.0 (и её архитектурного близнеца 1С:УНФ 3.0), разберем стандартные настройки и предложим техническое решение для автоматизации процесса фильтрации товаров.

Стандартные возможности РМК: Дублирование чека

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

Проанализируем шаги для включения этой функции:

  1. Перейдем в раздел Продажи — Настройки — РМК.
  2. В настройках используемого рабочего места найдем раздел, отвечающий за подключаемое оборудование.
  3. При подключенном и настроенном принтере чеков (не путать с ККТ) можно установить флаг автоматической печати копии чека.
  4. В этом случае после успешного пробития фискального чека на ККТ, система автоматически отправит точно такой же документ на принтер чеков.

Важное ограничение: Как было отмечено в ходе обсуждения, типовой функционал не позволяет «отфильтровать» тело чека. На второй принтер выйдет абсолютно всё, что было в чеке, включая пакеты, сопутствующие товары и услуги, которые повару на кухне не интересны.

Использование механизмов сервисной печати и групп печати

Для более тонкой настройки в 1С:Розница 3.0 предусмотрен механизм «Печатных узлов» и «Групп печати». Этот функционал позволяет распределять товары по разным принтерам в зависимости от их категории.

Рассмотрим алгоритм настройки:

  1. В справочнике Номенклатура или в Категориях номенклатуры необходимо указать соответствующую группу печати.
  2. В настройках подключаемого оборудования создаются две записи: одна для ККТ, другая для принтера чеков (например, через драйвер 1С:Принтер чеков).
  3. Система позволяет привязать разные группы печати к разным устройствам.

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

Реализация фильтрации товаров через расширение (для программиста)

Если стандартного дублирования недостаточно и требуется именно выборка товаров, лучшим решением будет создание расширения. Основная идея заключается в перехвате события успешного пробития чека и последующей отправке задания на принтер чеков.

Разберем логику реализации по шагам:

Шаг 1. Добавление признака фильтрации. В карточку номенклатуры или категорию добавляется дополнительный реквизит типа Булево (например, ПечататьНаКухне).

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

Шаг 3. Формирование и отправка макета. Ниже приведен примерный фрагмент кода, который иллюстрирует логику отбора товаров и отправку на печать:


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

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

Технические нюансы подключения принтера Xprinter

При использовании WiFi-моделей принтеров (таких как Xprinter XP-N160II) крайне важно правильно настроить сетевое взаимодействие в 1С:

Альтернативные безбумажные варианты

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

  1. Telegram-боты: Вместо печати на Xprinter, расширение может отправлять список блюд в Telegram-канал повара. Это экономит бумагу и позволяет повару отмечать готовность блюд.
  2. Монитор повара: В 1С:Розница 3.0 есть встроенные возможности для работы с заказами. Если бизнес-процесс позволяет сначала создавать Заказ покупателя, то позиции автоматически появятся в специализированном интерфейсе «Кухонный монитор».

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

← На главную