В торговой деятельности часто возникает ситуация, когда цена за единицу товара зависит от того, в какой упаковке он приобретается. Классический пример — кирпич: при покупке поштучно цена составляет 25 рублей за штуку, а при покупке целым поддоном цена в пересчете на штуку снижается до 20 рублей. В типовых конфигурациях 1С (УТ 11.5, КА 2.5, ERP 2.5) старых версий цена всегда жестко привязана к базовой единице хранения, а стоимость упаковки рассчитывается автоматически через коэффициент. Однако современные версии программы позволяют решить эту задачу элегантно и без доработок.
Разберем подробно, как настроить систему для автоматического подбора нужной цены в зависимости от выбранной единицы измерения.
Это основной и наиболее правильный метод, заложенный разработчиками «1С». В версии 11.5.7 и выше появилась новая архитектура ценообразования (версия 2.5), которая позволяет устанавливать цены в разрезе упаковок.
Проанализируем порядок действий для перехода и настройки:
Установка цен номенклатуры (используя помощник установки цен) выберем наш товар (например, «Кирпич»). Теперь система позволит нам не просто указать одну цену, а выбрать способ задания цены: Для каждой упаковки отдельно.Рассмотрим, что происходит в документе продажи (Заказ клиента или Реализация товаров и услуг). Как только менеджер выбирает номенклатуру «Кирпич» и указывает единицу измерения «шт», система подставляет цену 25 руб. Если менеджер меняет единицу измерения на «Поддон», программа автоматически пересчитывает общую сумму и подставляет цену 6160 руб., что соответствует 20 рублям за штуку. Это исключает риск ошибок персонала и ручных правок.
Если переход на «Ценообразование 2.5» по каким-то причинам невозможен, проанализируем альтернативный вариант через систему лояльности. Мы можем оставить базовую цену 25 руб. за штуку, но настроить автоматическую скидку, которая будет срабатывать только при выборе упаковки «Поддон».
Выполним следующие шаги по настройке:
Рассмотрим нюансы этого метода: В печатных формах (например, в Счете на оплату) клиент увидит базовую цену 25 руб. и сумму скидки. Если бизнес-процесс требует, чтобы в колонке «Цена» сразу стояло значение 6160 руб. за поддон без упоминания скидок, то данный метод может не подойти.
Рассмотрим ситуацию, когда менеджеры работают с разными категориями цен. Мы можем создать два вида цен: «Розничная (шт)» и «Оптовая (упаковки)».
Посмотрим на логику реализации:
Однако, как справедливо замечено в обсуждении, этот способ увеличивает количество ручных действий и риск «косяков» персонала. Поэтому мы рекомендуем автоматизировать этот процесс через Типовые соглашения, где можно указать разные виды цен для разных условий закупки, но это потребует разделения документов на «розничные» и «оптовые».
При работе с упаковками важно обеспечить корректность складских остатков и расчетов. Выясним, как предотвратить продажу дробного количества упаковок, если, например, кирпич на поддонах затянут пленкой и его нельзя делить.
В карточке Упаковки номенклатуры необходимо установить флаг «Неделимая». Проанализируем последствия:
Для более продвинутой автоматизации можно использовать небольшое расширение, которое будет пересчитывать базовые единицы в упаковки. Рассмотрим пример логики такого кода (в ознакомительных целях для разработчика):
// Пример логики автоматической подстановки цены при изменении упаковки
Процедура ТЧТоварыУпаковкаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.Товары.ТекущиеДанные;
Если ЗначениеЗаполнено(СтрокаТаблицы.Упаковка) Тогда
// Вызов серверного метода для получения цены именно для этой упаковки
ЦенаУпаковки = ЦенообразованиеВызовСервера.ПолучитьЦенуНоменклатуры(
СтрокаТаблицы.Номенклатура,
СтрокаТаблицы.Упаковка,
Объект.Дата
);
СтрокаТаблицы.Цена = ЦенаУпаковки;
КонецЕсли;
КонецПроцедуры
Подведем итог: Для реализации разных цен на единицы измерения в 1С:УТ 11.5 наиболее эффективным решением является переход на Ценообразование 2.5. Это позволяет хранить цены в явном виде для каждой упаковки, обеспечивает автоматическую подстановку в документы и минимизирует человеческий фактор. Если переход на новую версию временно невозможен, используйте механизм автоматических скидок с условием «за упаковку».