При использовании программы «1С:Розница 2» в сегменте общественного питания (небольшие кафе, кофейни, буфеты) пользователи часто сталкиваются с необходимостью выдать клиенту предварительный счет (пречек). Клиент делает заказ, отдыхает за столиком, затем просит посчитать его. Кассиру нужно распечатать нефискальный чек с перечнем блюд и итоговой суммой, а сам заказ временно отложить в системе до момента фактической оплаты.
В этой статье мы подробно разберем, почему в типовой конфигурации «1С:Розница 2» нет этой функции «из коробки», какими путями можно решить эту задачу с помощью доработок и какие готовые альтернативы предлагает рынок.
Программа «1С:Розница» изначально проектировалась для классической потоковой торговли по схеме «пришел — выбрал — оплатил — получил чек». С введением жестких требований Федерального закона № 54-ФЗ фирма «1С» планомерно исключила из типовых решений механизмы простой печати нефискальных документов на фискальных регистраторах. Это сделано для минимизации рисков некорректного использования ККТ и сокрытия выручки.
В связи с этим в стандартном Рабочем месте кассира (РМК) функционал работы со столами, заказами и пречеками отсутствует. Однако технически решить эту задачу можно. Рассмотрим основные варианты реализации.
Это наиболее популярный и методологически правильный способ доработки «1С:Розница 2», не снимающий конфигурацию с поддержки. Мы можем создать расширение конфигурации (файл формата .cfe), которое добавит в РМК необходимую логику.
Проанализируем пошагово, как должен работать этот механизм:
ЧекККМ.Отложен (или Отложен с резервом, чтобы зафиксировать ингредиенты или товары на складе).Рассмотрим пример кода на языке 1С, который может использоваться в обработчике нажатия кнопки «Пречек» для создания отложенного чека:
// Пример создания отложенного чека ККМ на основе данных корзины РМК
НовыйЧек = Документы.ЧекККМ.СоздатьДокумент();
НовыйЧек.Дата = ТекущаяДата();
НовыйЧек.СтатусЧека = Перечисления.СтатусыЧековККМ.Отложен;
НовыйЧек.КассаККМ = Объект.КассаККМ;
НовыйЧек.Организация = Объект.Организация;
// Заполняем табличную часть Товары
Для Каждого СтрокаТовара Из Объект.Товары Цикл
НоваяСтрока = НовыйЧек.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовара);
КонецЦикла;
Попытка
НовыйЧек.Записать(РежимЗаписиДокумента.Запись);
// Вызываем процедуру нефискальной печати
ПечатьНефискальногоПречека(НовыйЧек.Ссылка);
Сообщить("Пречек успешно сформирован и отложен.");
Исключение
ВызватьИсключение "Не удалось сохранить отложенный чек: " + ОписаниеОшибки();
КонецПопытки;
Чтобы не задействовать фискальный накопитель ККТ для промежуточных отчетов, можно подключить к рабочему месту обычный недорогой термопринтер чеков (например, работающий по протоколу ESC/POS или через стандартный Windows-драйвер принтера).
Выясним преимущества такого подхода:
ТабличныйДокумент.Напечатать().Если покупка второго принтера нецелесообразна, можно использовать текущую онлайн-кассу для печати пречека. Современные ККТ (АТОЛ, Штрих-М) поддерживают методы построчной печати произвольного текста без открытия фискального чека.
Для реализации этого метода программист должен написать код взаимодействия с драйвером ККТ напрямую через API. Примерная схема работы выглядит так:
PrintText() драйвера.Важное предупреждение: При работе в РМК порт подключения ККТ часто монопольно занят самой системой «1С». Попытка обратиться к кассе напрямую через драйвер во время открытой смены РМК может вызвать ошибку «Порт занят». Разработчику потребуется предусмотреть временное освобождение устройства в коде 1С, что усложняет стабильность решения при обновлениях платформы или драйверов ККТ.
Как справедливо заметили участники обсуждения на форуме, адаптация учетной системы под специфику общепита — процесс трудоемкий. Если вашему клиенту требуются такие функции, как:
то в этом случае гораздо эффективнее использовать специализированные отраслевые решения.
Рассмотрим основные альтернативные варианты:
Таким образом, если бюджет клиента крайне ограничен, оптимальным решением будет создание небольшого расширения для «1С:Розница 2» с использованием отложенных чеков и выводом печати на недорогой принтер чеков. Если же бизнес планирует развиваться, лучше сразу предложить специализированное решение, чтобы избежать бесконечных доработок не предназначенной для общепита конфигурации.