При работе кассиров в Рабочем месте кассира (РМК) нередко возникают ситуации, когда из-за опечатки или ошибки ввода сканером пробивается чек на слишком большую сумму. Например, штрихкод случайно попадает в поле «Количество» или кассир ошибается при ручном вводе. Кроме того, лимит суммы чека актуален при расчетах наличными деньгами (ограничение законодательства 100 000 рублей по одному договору между юридическими лицами и ИП).
Рассмотрим, как реализовать ограничение максимальной суммы чека в 1С:Розница 2.2 и актуальных версиях программы программными и штатными средствами.
Чтобы не снимать типовую конфигурацию с поддержки (что особенно важно для обеспечения простоты обновлений), лучшим решением является использование механизмов расширения конфигурации (CFE). Мы перехватываем событие записи документа ЧекККМ и проверяем итоговую сумму операции перед ее выполнением.
Разберем по шагам алгоритм создания доработки:
ЧекККМ и его модуль объекта.ЧекККМ создадим аннотируемую процедуру-обработчик для события ПередЗаписью с аннотацией &Перед.Отказ = Истина и выведем сообщение для кассира.Проанализируем пример кода для модуля объекта документа ЧекККМ в расширении:
&Перед("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
// Устанавливаем максимальный порог суммы чека в рублях
МаксимальнаяСуммаЧека = 10000;
// Проверяем итоговую сумму документа
Если ЭтотОбъект.СуммаДокумента > МаксимальнаяСуммаЧека Тогда
Отказ = Истина;
Общего НазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон("Превышен лимит суммы чека! Максимально допустимая сумма: %1 руб.", МаксимальнаяСуммаЧека)
);
КонецЕсли;
КонецПроцедуры
Важный нюанс при эквайринге: Если в торговой точке используются эквайринговые терминалы с автоматической отправкой суммы, проверку суммы нужно выполнять еще до вызова команды эквайрингового терминала. Если выполнять проверку только в момент проведения документа, денежные средства с карты покупателя могут списаться до того, как 1С заблокирует запись чека.
Важно помнить: расширения конфигурации доступны в версиях PROF и CORP. В Базовых версиях 1С применения расширений с кодом логики ограничено платформой.
Часто проблема слишком больших сумм чеков кроется не в необходимости запретить продажу дорогих товаров, а в человеческом факторе. Для предотвращения ошибок кассира в 1С:Розница 2.2 рекомендуется настроить дополнительные права пользователя:
В современных редакциях (1С:Розница 3.0, 1С:УНФ 3.0 и автономном модуле 1С:РМК) разработчики 1С добавили штатный механизм «Контроль продаж».
С его помощью без написания кода и применения расширений можно настроить правило контроля вида «Лимит суммы в чеке». При активированном правиле система автоматически проверяет сумму позиций перед переходом к оплате и блокирует проведение чеков, если сумма превышает заданный в настройках порог.