В производстве мебели, особенно хромированной или мягкой, часто возникает задача гибкого расчета стоимости изделия в зависимости от множества факторов: категории ткани, наличия декоративной отделки (отстрочки) или изменения габаритных размеров (например, увеличение кухонного угла). Если вести такой учет «вручную» или в Excel, риск ошибки менеджера возрастает, а контроль маржинальности становится практически невозможным. Рассмотрим, как реализовать автоматический расчет в 1С:Управление нашей фирмой (УНФ), используя штатные инструменты и минимальное программирование.
Разберем ситуацию, когда одна и та же модель стула может иметь разную цену в зависимости от категории ткани. Создавать отдельную номенклатуру под каждую ткань — путь к захламлению справочника. Правильнее использовать механизм Характеристики с дополнительными реквизитами. Проанализируем, как это настроить:
Такой подход позволит нам не только видеть остатки в разрезе тканей, но и выводить в отчетах информацию о том, сколько стульев какой категории было продано. Для этого в настройках отчета «Продажи» достаточно добавить группировку по доп. реквизиту характеристики.
Чтобы менеджеру не приходилось вручную менять цену в заказе, настроим Вид цены, который рассчитывается по формуле. В 1С:УНФ реализован конструктор формул, позволяющий обращаться к данным характеристик. Рассмотрим пример настройки расчетной цены:
Предположим, у нас есть «Базовая цена» стула (каркас без обивки). Продажная цена должна вычисляться автоматически. Мы можем прописать алгоритм прямо в справочнике Виды цен. Формула может выглядеть следующим образом (в синтаксисе конструктора УНФ):
[БазоваяЦена] +
Выбор
Когда [Характеристика.КатегорияТкани] = "Категория 2" Тогда 400
Когда [Характеристика.КатегорияТкани] = "Категория 3" Тогда 800
Иначе 0
Конец +
Выбор
Когда [Характеристика.Отстрочка] = Истина Тогда 150
Иначе 0
Конец
При выборе такой цены в Заказе покупателя программа автоматически подтянет нужную сумму, как только менеджер выберет конкретную характеристику изделия. Это полностью исключает «человеческий фактор» и попытки менеджера занизить цену.
Для кухонных углов задача усложняется: цена растет пропорционально изменению размера (например, +300 рублей за каждые 100 мм превышения стандарта). Выясним, как автоматизировать этот расчет. Проанализируем использование числового реквизита «Длина» в характеристике.
Если мы добавим в характеристику реквизит «Длина», то в формуле цены сможем использовать математические операции. Например:
Цена = БазоваяЦена + ((Характеристика.Длина - 1000) / 100 * 300)
Где 1000 — это стандартная длина в миллиметрах. Таким образом, при вводе длины 1300 мм, программа автоматически добавит 900 рублей к стоимости. Этот метод позволяет обрабатывать даже самые специфические запросы клиентов без создания сотен новых позиций в прайс-листе.
Хотя на начальном этапе внедрения можно обойтись только формулами цен, для полноценного производственного учета рекомендуется использовать Параметрические спецификации. Разберем, в чем их преимущество для руководителя. Параметрическая спецификация позволяет рассчитывать не только цену, но и плановый расход материалов на основе характеристик.
Например, расход ткани может зависеть от длины кухонного угла. В спецификации мы можем указать формулу для материала «Ткань»: Количество = (Характеристика.Длина / 1000) * НормаНаМетр. Это позволит системе автоматически списывать нужное количество материалов со склада и рассчитывать точную себестоимость заказа еще до начала производства.
Чтобы выполнить требование руководителя — видеть, не занижена ли цена, — воспользуемся штатным инструментом Калькуляция заказа, который находится непосредственно в документе Заказ покупателя. Рассмотрим порядок действий:
Важный момент: если менеджер вручную изменит цену в заказе, рентабельность в калькуляции сразу «покраснеет» или уменьшится, что станет сигналом для проверки. Это позволяет контролировать прибыльность каждого конкретного стула или дивана без формирования сложных отчетов.
Если стандартного конструктора формул не хватает (например, когда логика наценок зависит от сложных перекрестных условий), можно прибегнуть к расширению конфигурации. Вместо использования опасных методов Вычислить() или Выполнить(), лучше реализовать логику в модуле менеджера или через подписки на события. Посмотрим на пример упрощенного кода для расчета наценки в расширении:
// Пример логики для расчета цены в заказе
Процедура РассчитатьЦенуПоХарактеристике(СтрокаЗаказа)
БазоваяЦена = СтрокаЗаказа.Номенклатура.БазоваяЦена;
Категория = СтрокаЗаказа.Характеристика.КатегорияТкани;
Если Категория = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("3 категория") Тогда
Наценка = 800;
ИначеЕсли Категория = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("2 категория") Тогда
Наценка = 400;
Иначе
Наценка = 0;
КонецЕсли;
СтрокаЗаказа.Цена = БазоваяЦена + Наценка;
КонецПроцедуры
Однако стоит помнить, что в последних версиях 1С:УНФ 3.0 (и последних релизах 1.6) функционал Настройки ценообразования настолько богат, что подобные доработки требуются крайне редко. Мы рекомендуем сначала максимально использовать возможности динамических цен и дополнительных реквизитов.
Подводя итог, для автоматизации мебельного заказа по требованиям руководителя, выполним следующие шаги:
Такой подход позволит системе развиваться органично: от простого управления ценой к точному расчету производственных затрат через параметрические спецификации.