Как автоматизировать расчет стоимости мебели по категориям ткани и габаритам в 1С:УНФ

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Промышленность, строительство и АПК
← На главную

В производстве мебели, особенно хромированной или мягкой, часто возникает задача гибкого расчета стоимости изделия в зависимости от множества факторов: категории ткани, наличия декоративной отделки (отстрочки) или изменения габаритных размеров (например, увеличение кухонного угла). Если вести такой учет «вручную» или в Excel, риск ошибки менеджера возрастает, а контроль маржинальности становится практически невозможным. Рассмотрим, как реализовать автоматический расчет в 1С:Управление нашей фирмой (УНФ), используя штатные инструменты и минимальное программирование.

Использование характеристик и дополнительных реквизитов

Разберем ситуацию, когда одна и та же модель стула может иметь разную цену в зависимости от категории ткани. Создавать отдельную номенклатуру под каждую ткань — путь к захламлению справочника. Правильнее использовать механизм Характеристики с дополнительными реквизитами. Проанализируем, как это настроить:

  1. В карточке категории номенклатуры (например, «Стулья») включим использование характеристик.
  2. Добавим Дополнительные реквизиты для характеристик: «Категория ткани» (список: 1 категория, 2 категория, 3 категория) и «Наличие отстрочки» (булево).
  3. Для каждого реквизита можно указать числовое значение наценки, которое мы позже используем в формулах.

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

Автоматизация ценообразования через динамические формулы

Чтобы менеджеру не приходилось вручную менять цену в заказе, настроим Вид цены, который рассчитывается по формуле. В 1С:УНФ реализован конструктор формул, позволяющий обращаться к данным характеристик. Рассмотрим пример настройки расчетной цены:

Предположим, у нас есть «Базовая цена» стула (каркас без обивки). Продажная цена должна вычисляться автоматически. Мы можем прописать алгоритм прямо в справочнике Виды цен. Формула может выглядеть следующим образом (в синтаксисе конструктора УНФ):


[БазоваяЦена] + 
Выбор 
    Когда [Характеристика.КатегорияТкани] = "Категория 2" Тогда 400 
    Когда [Характеристика.КатегорияТкани] = "Категория 3" Тогда 800 
    Иначе 0 
Конец + 
Выбор 
    Когда [Характеристика.Отстрочка] = Истина Тогда 150 
    Иначе 0 
Конец

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

Учет нестандартных размеров и габаритов

Для кухонных углов задача усложняется: цена растет пропорционально изменению размера (например, +300 рублей за каждые 100 мм превышения стандарта). Выясним, как автоматизировать этот расчет. Проанализируем использование числового реквизита «Длина» в характеристике.

Если мы добавим в характеристику реквизит «Длина», то в формуле цены сможем использовать математические операции. Например:

Цена = БазоваяЦена + ((Характеристика.Длина - 1000) / 100 * 300)

Где 1000 — это стандартная длина в миллиметрах. Таким образом, при вводе длины 1300 мм, программа автоматически добавит 900 рублей к стоимости. Этот метод позволяет обрабатывать даже самые специфические запросы клиентов без создания сотен новых позиций в прайс-листе.

Параметрические спецификации как инструмент будущего

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

Например, расход ткани может зависеть от длины кухонного угла. В спецификации мы можем указать формулу для материала «Ткань»: Количество = (Характеристика.Длина / 1000) * НормаНаМетр. Это позволит системе автоматически списывать нужное количество материалов со склада и рассчитывать точную себестоимость заказа еще до начала производства.

Контроль маржинальности через «Калькуляцию заказа»

Чтобы выполнить требование руководителя — видеть, не занижена ли цена, — воспользуемся штатным инструментом Калькуляция заказа, который находится непосредственно в документе Заказ покупателя. Рассмотрим порядок действий:

  1. Менеджер заполняет состав заказа и выбирает характеристики.
  2. На вкладке «Калькуляция» нажимаем кнопку «Рассчитать».
  3. Программа сопоставляет продажную цену (рассчитанную по нашим формулам) с плановой себестоимостью (материалы + работы).
  4. Руководитель видит колонки «Маржа» и «Рентабельность».

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

Программная реализация сложных расчетов

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


// Пример логики для расчета цены в заказе
Процедура РассчитатьЦенуПоХарактеристике(СтрокаЗаказа)
    БазоваяЦена = СтрокаЗаказа.Номенклатура.БазоваяЦена;
    Категория = СтрокаЗаказа.Характеристика.КатегорияТкани;
    
    Если Категория = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("3 категория") Тогда
        Наценка = 800;
    ИначеЕсли Категория = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("2 категория") Тогда
        Наценка = 400;
    Иначе
        Наценка = 0;
    КонецЕсли;
    
    СтрокаЗаказа.Цена = БазоваяЦена + Наценка;
КонецПроцедуры

Однако стоит помнить, что в последних версиях 1С:УНФ 3.0 (и последних релизах 1.6) функционал Настройки ценообразования настолько богат, что подобные доработки требуются крайне редко. Мы рекомендуем сначала максимально использовать возможности динамических цен и дополнительных реквизитов.

Резюме для реализации задачи

Подводя итог, для автоматизации мебельного заказа по требованиям руководителя, выполним следующие шаги:

Такой подход позволит системе развиваться органично: от простого управления ценой к точному расчету производственных затрат через параметрические спецификации.

← На главную