Все разделы документации ↓

Конструктор формул

Формула отвечает на вопрос «сколько материала заказать». Она берёт данные заказа — площадь деталей, количество по спецификации, фасады — умножает на норму расхода и выдаёт количество. Собирается формула мышкой, писать код не нужно.

Где найти

Путь в меню: Снабжение → Формулы расчёта. Нужно право «Конструкторы шаблонов и формул» (21604).

Библиотека формул расчёта

Формула начинает работать только после того, как её выберут в колонке шаблона заявки (источник «Формула»).

Главное правило

Формула считает каждый заказ отдельно. Затем количества складываются по ключу объединения шаблона, и только потом применяются округление, кратность и минимум — один раз на строку заявки.

2,2 + 2,1 = 4,3 → при кратности 1 кг это 5 кг, а не 3 + 3 = 6 кг.

Если округлить нужно именно промежуточный результат внутри расчёта — для этого есть отдельный узел «Округление» в дереве.

Библиотека формул

В списке у каждой формулы видно:

  • название и номер текущей версии (v3);
  • отметку «отключена», если формула выключена;
  • отметку «ссылок: N», если формула ссылается на другие формулы;
  • описание;
  • саму формулу человеческим текстом — чтобы не открывать редактор ради проверки нормы расхода;
  • строку «Итог:» — как округляется результат.

Галка «Показывать отключённые формулы» добавляет в список выключенные.

Как создать формулу

  1. Нажмите «+ Новая формула».
  2. В блоке «Основное» заполните «Название» (например, «Эмаль») и «Описание» — зачем формула нужна, чтобы через полгода не гадать.
  3. Соберите расчёт (см. ниже).
  4. Задайте настройки версии: округление, шаг кратности, минимум, единицу.
  5. Проверьте формулу на тестовых данных.
  6. Нажмите «Создать формулу».

Собрать по образцу

Самый быстрый путь — кнопка «Собрать по образцу». Готовые заготовки:

ОбразецДля чего
Площадь × норма × стороныРасход эмали: площадь деталей участка, норма на м², число окрашиваемых сторон
Процент от другой формулыОтвердитель 25 % от эмали, разбавитель 12 %
Количество спецификации × нормаМатериал, который расходуется пропорционально количеству позиции
Листы: площадь ÷ площадь листаЦелые листы ЛДСП: делим площадь на площадь листа и округляем вверх
Фасады: количество × нормаРасход на фасады — м² или штуки, смотря как заведён фасад
С нуляПустое число, дальше собираете дерево сами

После выбора образца остаётся подставить свои числа. Если расчёт уже собран, система переспросит: образец заменяет дерево целиком.

Как собрать расчёт вручную

Расчёт — это дерево блоков. Наверху страницы всегда видна строка «Итоговая формула» — та же формула словами.

У каждого блока четыре действия:

  • Тип — заменить блок другим (вложенные значения сохраняются, где это осмысленно);
  • Обернуть — текущее значение станет частью новой операции (× 2, 25 % от…, округлить);
  • Убрать — снять обёртку, оставив вложенное значение;
  • Удалить — убрать значение; у арифметики операция схлопывается в соседний операнд. У самого верхнего блока кнопка называется «Очистить».

Типы блоков:

ГруппаБлокЧто делает
ЗначенияПеременнаяДанные заказа: площадь деталей, количество спецификации, фасады — с фильтром
ЗначенияЧислоФиксированное число: 2 стороны, 0,12 кг/м²
ЗначенияИменованная константаЧисло с именем, например «Норма расхода» — его видно отдельным полем при проверке формулы
ЗначенияДругая формулаРезультат другой формулы библиотеки: отвердитель считает от эмали
ЗначенияТекстСтрока для сравнений вида «единица = шт»
ОперацииАрифметикаСложение, вычитание, умножение, деление
ОперацииПроцент от«25 % от …» — самый частый вид сопутствующих материалов
ПравилаОкруглениеПромежуточное округление внутри расчёта
ПравилаМинимумНе меньше указанного числа
ПравилаКратностьВверх до кратного шагу: мешок 25 кг, бухта, канистра
ПравилаПеревод единицмм → м, г → кг. Разные величины (кг → м) не переводятся
ЛогикаСравнениеСравнение двух значений: результат 1 (да) или 0 (нет)
ЛогикаУсловиеЕсли условие выполнено — одно значение, иначе другое

Переменные: откуда берутся данные

Нажмите на блок «Переменная» — откроется окно выбора.

«Откуда берём данные» — три области:

  • Спецификация — сама позиция спецификации: количество, чистое количество, единица, артикул, наименование, категория.
  • Детали — агрегаты по деталям заказа: площадь (м²), количество деталей, строк деталировки, суммарная длина и ширина, периметр, длина кромки, количество окромлённых сторон, количество сторон, минимальная, максимальная и средняя толщина.
  • Фасады — фасады заказа: площадь (м²), число фасадов, строк фасадов, цвет, система цвета, материал.

Единица измерения поля подписана прямо в списке — так видно, что площадь приходит в м², а толщина в мм.

«Фильтр выборки» сужает данные:

  • Материал — берём только детали или фасады с таким материалом; галка «Точное совпадение названия» требует полного совпадения, иначе достаточно вхождения части названия.
  • Для деталей: Участок, Направление, Толщина от / до (границы включительно).
  • Для фасадов: Система цвета (Имя / Текст / RAL) и Цвет.

Пустой фильтр означает «берём всё, что есть в заказе».

Ссылки на другие формулы и запрет циклов

Блок «Другая формула» подставляет результат формулы из библиотеки — так отвердитель считается от эмали. Саму себя формула выбрать не может.

Если получится кольцо («Эмаль → Отвердитель → Эмаль»), система откажется сохранять и покажет цепочку: «Циклическая зависимость формул: …». Проверка идёт и до отправки, и на сервере.

Настройки версии

ПолеЧто задаёт
Округление итогаБез округления, Вверх, Вниз, Математическое, Кратно шагу
Шаг кратностиМешок 25 кг, лист, упаковка, канистра, бухта
Минимальное количествоМеньше этого поставщик не отгружает
Единица измеренияВ чём считается результат

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

Эти правила срабатывают один раз — к сумме по всем заказам.

Проверить формулу

Блок «Проверка формулы» прогоняет расчёт на тестовых данных.

  1. По умолчанию источников два («Заказ 12345» и «Заказ 21345») — так сразу видно и сумму, и итог. Кнопка «+ ещё источник» добавляет третий.
  2. Заполните данные источников: позицию спецификации, детали (длина, ширина, толщина, количество, материал, участок, направление), фасады (материал, система цвета, цвет, единица, количество). Показываются только те блоки, которые формула действительно использует.
  3. Если в формуле есть именованные константы, их значения можно подставить в блоке «Именованные константы».
  4. Если формула ссылается на другие формулы, в блоке «Значения других формул» можно подставить готовое число. Пустое поле означает, что формула будет посчитана по-настоящему, на тех же тестовых данных.
  5. Нажмите «Проверить формулу».

В результате по каждому источнику показаны шаги расчёта и точное значение, ниже — «Сумма по источникам (до округления)», применённое правило и «Итого в заявку».

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

Версии: почему старые заявки не «плывут»

Правка расчёта создаёт новую версию формулы — поэтому кнопка называется «Сохранить как новую версию». Старые версии никуда не деваются.

Строка сформированной заявки помнит, по какой версии её посчитали, и остаётся с ней навсегда. Меняйте норму расхода спокойно: уже отправленные поставщику заявки не изменятся.

Кнопка «Показать версии» внизу редактора выводит все версии: номер, дату, автора, текст формулы и правило округления. Текущая версия помечена.

Версия создаётся только при изменении самого расчёта или настроек округления. Правка названия и описания новую версию не плодит.

Отключение и удаление

Кнопка «Отключить» выключает формулу: она перестаёт предлагаться в шаблонах, но продолжает считать уже сформированные заявки. Если на формулу не ссылаются ни заявки, ни другие формулы, она удаляется полностью; иначе система просто выключит её — это защита от «потерянных» ссылок.

Частые ошибки

  • «Соберите расчёт — дерево пустое». Начните с образца или добавьте хотя бы одно значение.
  • «У переменной не выбрано поле» / «У ссылки не выбрана формула» / «У именованной константы нет имени». Незаполненные блоки дерева.
  • «Для округления "кратно шагу" задайте шаг больше нуля», «У кратности шаг должен быть больше нуля», «У перевода единиц не заданы единицы» — незаполненные настройки правил.
  • «Циклическая зависимость формул». Разорвите кольцо ссылок.
  • Предупреждение о единицах в расчёте строки. Единица формулы и единица колонки шаблона несовместимы (например, кг и м). Заявка всё равно сформируется, но значение останется непересчитанным — приведите единицы в соответствие.
  • Формула есть, а количество не считается. Формула не выбрана ни в одной колонке шаблона поставщика либо колонка-формула стоит не первой.

Дальше