Как в «1С:Розница» запретить продажу штучного товара дробным количеством?

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

В процессе работы в розничной торговле часто возникает ситуация, когда кассир по ошибке или из-за некорректных настроек вводит в чеке дробное количество для товаров, которые должны продаваться исключительно поштучно. Например, система позволяет пробить 1.34 упаковки молока или 0.5 плитки шоколада. Это приводит к пересортице, ошибкам в инвентаризации и некорректному расчету остатков. В данной статье мы подробно разберем, как ограничить такую возможность с помощью типовых средств конфигурации «1С:Розница», а также рассмотрим альтернативные способы решения задачи.

Способ 1: Использование типовой настройки «Проверять дробное количество»

Проанализируем самый простой и эффективный метод, предусмотренный разработчиками системы. В конфигурации «1С:Розница» (начиная с версии 2.2) существует специальный механизм контроля кратности единиц измерения. Рассмотрим, как его активировать.

Для включения проверки выполним следующие действия:

  1. Перейдем в раздел Администрирование, далее выберем пункт Настройки номенклатуры.
  2. В открывшемся окне найдем опцию Проверять дробное количество и установим соответствующий флаг.
  3. Сохраним настройки.

Однако важно понимать, как именно работает эта «галочка». Проверка осуществляется в связке с классификатором единиц измерения (ОКЕИ). Выясним причину, по которой настройка может не сработать: если в справочнике ЕдиницыИзмерения для единицы «шт» (штука) указано количество десятичных знаков больше нуля, система продолжит пропускать дробные значения. Поэтому обязательно проверим настройки самой единицы измерения и убедимся, что точность установлена в значение «0».

Способ 2: Настройка типов номенклатуры и категорий

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

В этом случае в настройках Типа номенклатуры или Категории номенклатуры необходимо четко указать признак «Весовой» или «Штучный». Если товар помечен как штучный, система автоматически начнет контролировать ввод данных в Рабочем месте кассира (РМК). При попытке ручного ввода дробного числа программа выдаст предупреждение и не позволит добавить строку в чек.

Способ 3: Ограничение прав кассира и запрет редактирования чека

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

Для настройки выполним следующие шаги:

  1. Перейдем в Администрирование — Настройки пользователей и прав — Дополнительные настройки пользователя.
  2. В настройках РМК найдем пункт Запрет редактирования строк чека или Разрешить редактирование количества (в зависимости от версии формулировка может меняться).
  3. Снимем разрешение на редактирование количества.

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

Способ 4: Программное решение через доработку формы РМК

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

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


// Пример логики в обработчике изменения количества
Процедура ТоварыКоличествоПриИзменении(Элемент)
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
    Если ТекущаяСтрока <> Неопределено Тогда
        // Проверяем, является ли единица измерения штучной
        Если ТекущаяСтрока.Номенклатура.ЕдиницаИзмерения.Наименование = "шт" Тогда
            Если ТекущаяСтрока.Количество <> Цел(ТекущаяСтрока.Количество) Тогда
                ТекущаяСтрока.Количество = Цел(ТекущаяСтрока.Количество) + 1;
                Сообщить("Для штучного товара количество округлено до целого!");
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Такой подход позволяет сохранить возможность ручного ввода, но корректирует ошибки пользователя «на лету».

Особенности настройки для 1С:ERP и 1С:Управление торговлей 11

Выясним, как обстоят дела в более сложных системах. В конфигурациях 1С:ERP и 1С:УТ 11 нет прямой галочки в настройках РМК, аналогичной «Рознице». Здесь контроль реализуется через следующие механизмы:

Влияние штрихкодов и скидок на дробное количество

Иногда дробное число появляется в чеке «само по себе». Проанализируем две скрытые причины:

1. Весовые штрихкоды: Если на штучный товар по ошибке наклеен шрихкод, начинающийся с префикса весового товара (например, 21...29), система при сканировании попытается выделить из него вес. Это приведет к тому, что в чеке появится дробное значение. Проверьте настройки в разделе Администрирование — Штрихкодирование.

2. Распределение скидок: При применении сложных автоматических скидок (например, «3 по цене 2») общая сумма скидки может распределяться по строкам так, что возникают «виртуальные» доли стоимости. Чтобы этого избежать, в настройках распределения скидок обязательно устанавливайте параметры округления суммы до целых копеек, а кратность товара — до целых единиц.

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

← На главную