Приветствуем! При автоматизации торговых процессов в программе 1С:Управление торговлей 11 (УТ 11) многие компании сталкиваются с необходимостью продавать товары не только целиком, но и частями. Типичный пример — аптечная розница (продажа одного блистера из коробки), строительные магазины (продажа одного метра кабеля из бухты) или продажа поштучно упакованных товаров (памперсы, батарейки).
В этой статье мы подробно разберем, можно ли в рамках одной базы настроить систему так, чтобы один штучный товар мог отпускаться дробно, а второй — строго целиком. Мы проанализируем ограничения типового функционала и рассмотрим три практических метода решения этой задачи.
Сразу ответим на главный вопрос автора темы: в стандартной («коробочной») версии 1С:УТ 11 штатно не предусмотрен флаг «Разрешить дробную продажу» в карточке номенклатуры, который мог бы гибко управлять поведением конкретной позиции с базовой единицей измерения шт. Если для товара установлена базовая единица «штука», система технически позволяет ввести дробную часть (например, 0.5) в документах отгрузки, но это часто приводит к путанице, ошибкам пользователей и проблемам при инвентаризации.
Тем не менее, решить эту задачу в 1С:УТ 11 можно. Давайте подробно рассмотрим основные методические и технические подходы.
Рассмотрим наиболее надежный и методологически верный способ, который рекомендуют ведущие специалисты по внедрению 1С. Чтобы избежать появления дробных чисел в регистрах накопления и отчетах, необходимо изменить подход к определению базовой единицы хранения.
Разберем этот подход по шагам:
шт (одна таблетка, одна ампула, одна батарейка).6 (если в блистере 6 таблеток) и упаковку «Коробка» с коэффициентом 60 (если в коробке 10 блистеров).Блистер. Программа автоматически спишет со склада 6 базовых единиц (штук), но в печатной форме и чеке все будет выглядеть корректно. Если клиенту нужна только 1 штука, мы просто выбираем базовую единицу шт.Преимущества метода: Полностью исключаются ошибки округления в регистрах остатков. В базе всегда хранятся целые числа (например, 22 штуки вместо 3.6667 коробки), что гарантирует легкое проведение инвентаризации. Для быстрого заполнения структуры единиц в номенклатуре подойдёт обработка для массового создания индивидуальных упаковок.
Рассмотрим ситуацию, когда компания не готова переводить базовый учет на штуки (например, весь приход от поставщика идет строго в коробках, и менять базовую единицу трудоемко). В таком случае можно пойти от обратного:
шт (которая по факту является коробкой).0.5 (если в коробке 2 блистера) или 0.25 (если их 4).Важное предупреждение! Этот метод отлично работает только в том случае, если вложенность выражается конечной десятичной дробью (например, 1/2 = 0.5, 1/4 = 0.25, 1/5 = 0.2). Если же вам нужно продать 1 блистер из пачки, в которой их 3 (коэффициент 0.3333...) или 6 (коэффициент 0.1666...), система столкнется с бесконечной дробью. При постоянных продажах неизбежно возникнут копейки и погрешности округления в регистре ТоварыНаСкладах, которые придется периодически корректировать ручными операциями или документами списания.
Если дробные продажи происходят несистемно и редко, лучшим решением будет использование стандартного складского контура:
Сборка (разборка) товаров с видом операции «Разборка на комплектующие».Этот способ позволяет четко разделять историю продаж целого и разукомплектованного товара, предотвращая пересортицу.
Если перед вами стоит жесткая задача — запретить менеджерам вручную вводить дробное количество для определенных товаров (чтобы защитить базу от человеческого фактора), можно прибегнуть к небольшой доработке.
Создадим расширение конфигурации и добавим дополнительный реквизит типа Булево в карточку номенклатуры (например, ЗапретитьДробноеКоличество). Далее напишем проверку в модуле менеджера или в процедуре перед записью документов продажи:
&После("ПередЗаписью")
Процедура Расш_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Для Каждого СтрокаТЧ Из ЭтотОбъект.Товары Цикл
// Проверяем наш признак в карточке номенклатуры
Если СтрокаТЧ.Номенклатура.ДополнительныеРеквизиты.Найти("ЗапретитьДробноеКоличество") <> Неопределено Тогда
Если СтрокаТЧ.Количество <> Цел(СтрокаТЧ.Количество) Тогда
Отказ = Истина;
ВызватьИсключение "Для товара " + СтрокаТЧ.Номенклатура.Наименование + " запрещен ввод дробного количества!";
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Такой несложный код полностью заблокирует проведение документов, в которых пользователи попытаются указать нецелое количество для защищенных от дробления позиций. В качестве готовой альтернативы собственной разработке можно использовать расширение для контроля кратности количества в УТ 11.
Проанализируем также влияние законодательства на дробные продажи. В современных реалиях торговли маркированной продукцией (например, парфюмерия, лекарственные препараты) фирма «1С» реализовала полноценную поддержку частичного выбытия маркированного товара.
В актуальных релизах 1С:УТ 11 при пробитии чека ККМ поддерживается передача реквизита «дробное количество маркированного товара» (тег 1291). Система позволяет легально отпустить долю маркированной упаковки через рабочее место кассира (РМК), корректно передав данные в систему «Честный Знак» и рассчитав стоимость доли.
Мы подробно изучили все варианты решения проблемы дробных отгрузок штучного товара в 1С:УТ 11. Подведем итоги:
шт нет.Сборка (разборка) товаров.