Формули цін
Коли ціни рахуються з чогось — «роздріб мінус десять відсотків», «собівартість плюс націнка» — їх не обов'язково вести руками. Правило записують формулою, вписують формулу в прейскурант, і обслуговування «Порахувати ціни товарів» саме заповнює реєстр «Ціни» — хоч на п'ять товарів, хоч на п'ять тисяч.
Де шукати: Модулі → Ціни → Регістри → Формули цін
Реєстр живе в модулі Ціни.
Розбір на прикладі

Формула RRP-10 з демо-бази будує оптові ціни з роздрібних. Читається картка так: взяти базове значення, помножити на «% коригування», додати «Дод. суму 1», округлити до знаків з «Округлення» і додати «Дод. суму 2». Саме в такому порядку: перша сума потрапляє під округлення, друга додається після нього.
- «Основувати значення на» — звідки береться база: «собівартості», «відпускній ціні» чи «ціні останньої покупки» з картки товару, або «з прейскуранта» — тоді поруч вказують, з якого. Тут база — прейскурант RRP.
- «% коригування» — скільки відсотків від бази становитиме результат: 90 — мінус десять відсотків, 110 — плюс десять, 100 — без зміни.
- «Округлення» — кількість знаків після коми: 2 — до копійок, 0 — до цілих, а від'ємне число округлює вліво: −1 — до десятків, −2 — до сотень. Рівна половина завжди йде вгору: 31,5 → 32, 45 → 50 при −1.
Свердло по плитці коштує в RRP 78,00. Формула RRP-10: 90 % → 70,20, округлення до цілих → 70, «Дод. суму 2» −0,01 → 69,99. Так одним правилом виходять «психологічні» цінники: у оптовому прейскуранті демо-бази всі ціни оснастки закінчуються на ,99.
Права колонка — «Якщо ціну по прейскуранту не знайдено» — потрібна лише базі «з прейскуранта»: що робити з товаром, якого в базовому прейскуранті немає. Три виходи: «Не додавати ціну», «Додав. ціну з нул. знач.» або «Викор. альт. формулу». У RRP-10 обрано третій: дюбелів немає в RRP, тож їхню оптову ціну добудовує запасна формула COST+25 — собівартість плюс чверть: 28,00 → 35,00.

Де формула працює
Сама по собі формула нічого не рахує — її вписують у матрицю прейскуранта:

Кожен рядок матриці — правило «кому яка формула»: цінова група (рядок 1: вся оснастка за RRP-10), конкретний товар (рядок 2: дриль за COST+25) або порожній рядок з самою лише формулою — тоді правило поширюється на всі товари. Правило для конкретного товару сильніше за групове: спершу розраховуються групи, потім точкові рядки перекривають їх.
Перетворює правила на числа обслуговування «Порахувати ціни товарів» у модулі «Ціни». Його можна звузити параметрами — один прейскурант, одна цінова група чи один товар. Результат лягає в «Ціни»: наявні рядки оновлюються, відсутні створюються. Ціни, які формулам не підпорядковані, перерахунок не чіпає. Якщо прейскурант у валюті, базу перерахунок переводить у його валюту за курсом на сьогодні (собівартість і відпускну ціну — з базової валюти, ціну останньої покупки — з валюти покупки, ціну іншого прейскуранта — з його валюти); курсу немає — база лишається без перерахунку.
Порядок роботи
1. Створити формулу
Код, коментар, база, відсоток. Для бази «з прейскуранта» — ще й поведінка «якщо ціну не знайдено».
Базу обирайте обов'язково: картку без вибраного «Основувати значення на» система збереже, але перерахунок за такою формулою нічого не порахує — товарам без ціни вона не зʼявиться, а наявні ціни лишаться такими, як були. Те саме — для бази «з прейскуранта» без вибраного варіанта в «Якщо ціну по прейскуранту не знайдено»: товарам, яких немає в базовому прейскуранті, ціна не зʼявиться.
2. Вписати правила в прейскурант
У матриці прейскуранта: рядок на цінову групу, на товар або один порожній рядок «на всіх» — і код формули в кожному.
3. Запустити перерахунок
Обслуговування «Порахувати ціни товарів», за потреби — з обмеженням по прейскуранту. Перевірити результат у реєстрі «Ціни».
Часті ситуації
Написав у «% коригування» 10, чекав мінус десять відсотків — а ціни впали в десять разів. Поле означає не знижку, а частку бази в результаті: мінус десять відсотків — це 90.
Навіщо дві додаткові суми? «Дод. суму 1» додається до округлення, «Дод. суму 2» — після. Цінник 69,99 будують саме другою: округлити до цілих і відняти копійку.
Запустив перерахунок — нічого не змінилось. Перевірте рядок матриці: чи існує формула з таким кодом і чи стоять товари в цій ціновій групі. І базу: якщо вона «з прейскуранта», а товару там немає при виборі «Не додавати ціну» — рядок ціни й не з'явиться.
Чи можна округлити до гривні чи до десятків? Так: «Округлення» 0 — до цілих, −1 — до десятків. Від'ємні значення округлюють ліворуч від коми.
Формула не видаляється: «Запис реєстру «Формули цін» використовується в: Прейскуранти!» Запис можна видалити, лише поки його код не стоїть у жодному рядку матриці прейскуранта і жодна інша формула не бере його альтернативною (тоді відмова закінчується «Формули цін!»). Видалена, формула лишила б у прейскуранті код, що ні до чого не веде: прейскурант уже не зберегти, а перерахунок такий рядок мовчки пропустить — ціна лишиться старою. Спершу приберіть код із рядків прейскуранта або впишіть туди іншу формулу. Формула, вказана альтернативною сама собі, тримає себе: перемкніть «Викор. альт. формулу» на інший варіант і приберіть код поруч — тоді вона видалиться.
Довідник полів
| Поле | Опис |
|---|---|
| Код, Коментар | Ім'я формули; кодом вона вписується в матрицю прейскуранта |
| % коригування | Скільки відсотків від бази становитиме результат (90 = мінус 10 %) |
| Дод. суму 1 | Додається до бази перед округленням |
| Округлення | Кількість знаків після коми; від'ємне — до десятків, сотень |
| Дод. суму 2 | Додається після округлення (типовий вжиток — −0,01 для цін на ,99) |
| Основувати значення на | База: собівартість, відпускна ціна, ціна останньої покупки або інший прейскурант |
| Поле біля «з прейскуранта» | Код базового прейскуранта |
| Якщо ціну по прейскуранту не знайдено | Не додавати ціну / додати нульову / використати альтернативну формулу |
| Поле біля «Викор. альт. формулу» | Код запасної формули для товарів, яких немає в базовому прейскуранті |