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

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

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

Метод 1: Использование документов «Заказ покупателя» (Стандартный путь)

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

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

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

Метод 2: Создание предварительного документа «Чек ККМ» вне РМК

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

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

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

Важный нюанс: В типовой УТ 10.3 при открытии формы документа ЧекККМ система может выдать ошибку, если к рабочему месту не подключено торговое оборудование. Для обхода этого момента можно подключить «Эмулятор фискального регистратора» на рабочих местах менеджеров. Тогда документ будет проводиться в базе, но реальный чек не выйдет.

Метод 3: Доработка интерфейса РМК (Программный путь)

Если бизнес-процесс требует, чтобы менеджер работал именно в упрощенном интерфейсе РМК, нам придется применить «напильник». Выясним, что именно нужно изменить в коде.

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

Проанализируем примерный код, который можно добавить на новую кнопку «Сохранить без пробития» в форму РМК:


Процедура КнопкаСохранитьБезПробитияНажатие(Элемент)
    // 1. Формируем объект документа ЧекККМ из данных на форме РМК
    НовыйЧек = Документы.ЧекККМ.СоздатьДокумент();
    НовыйЧек.Дата = ТекущаяДата();
    НовыйЧек.Склад = СкладМенеджера;
    НовыйЧек.Организация = ОрганизацияПоУмолчанию;
    
    // 2. Переносим товары из табличной части РМК
    Для Каждого СтрокаТовара Из ТаблицаТоваровРМК Цикл
        НоваяСтрока = НовыйЧек.Товары.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовара);
    КонецЦикла;
    
    // 3. Записываем документ без проведения и фискализации
    Попытка
        НовыйЧек.Записать(РежимЗаписиДокумента.Запись);
        Сообщить("Чек успешно сохранен для оплаты кассиром. Номер: " + НовыйЧек.Номер);
        
        // 4. Очищаем форму РМК для нового клиента
        ОчиститьФормуРМК();
    Исключение
        Предупреждение("Ошибка при сохранении чека: " + ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

После такой доработки менеджер сможет «сбрасывать» набитые корзины в базу, а кассир будет их подбирать. Чтобы кассиру было удобно, в форму РМК кассира следует добавить кнопку «Выбрать отложенный чек», которая будет открывать список документов ЧекККМ со статусом «Не пробит».

Метод 4: Система «Отложенных чеков» через сетевой каталог

В некоторых версиях обработок РМК для УТ 10.3 реализован механизм откладывания чеков во внешние файлы (формат .xml или внутрибазовое хранилище). Рассмотрим, как заставить это работать на разных ПК:

  1. В настройках торгового оборудования или в константах устанавливается путь к общему сетевому каталогу.
  2. Когда менеджер нажимает «Отложить чек», программа создает файл в этой папке.
  3. Кассир на своем рабочем месте нажимает «Продолжить чек», и система сканирует общую папку, предлагая список доступных файлов.

Этот способ позволяет избежать лишних записей в таблицу документов ЧекККМ до момента реальной продажи, что экономит место в базе и уменьшает количество «мусорных» (брошенных) документов. Однако он требует стабильного сетевого соединения между компьютерами.

Рекомендации по реализации

Выясним, какой путь выбрать именно вам:

Подводя итог, можно сказать, что хотя штатное РМК в «Управлении торговлей 10.3» и кажется жестко привязанным к кассе, гибкость платформы «1С:Предприятие 8» позволяет обойти это ограничение через использование заказов или небольшую корректировку кода обработки обслуживания.

← На главную