Налоги в IMS2 — бизнес-логика и руководство по справочникам
Документ для специалистов, отвечающих за справочники (бухгалтер, администратор
системы). Рядовой пользователь при вводе документа с налогами не работает —
всё настраивается один раз здесь и дальше применяется автоматически.
1. Главное правило: приход — вручную, расход — автоматически
| Тип документа | Как определяется налог |
|---|---|
| Приход | Вводится вручную оператором в доп.суммах документа (Charges → Taxes), по факту из накладной поставщика. Система его не считает и не проверяет. |
| Расход / Продажа | Считается автоматически при проведении документа. Оператор ничего не вводит. |
Почему так: сумма налога в приходной накладной — это то, что выставил
поставщик; менять её нельзя, даже если она "выглядит неправильно" (так решили
бухгалтера) — вводится как есть. А при продаже/расходе налог — это наша
обязанность его правильно посчитать, поэтому здесь работает автоматика.
Если для расходного документа автоматика ничего не насчитала — значит, для
задействованных товаров/операции налоги в справочниках не настроены (см. §3).
Это не ошибка системы, а незаполненный справочник.
2. Откуда берутся налоговые ставки
Три справочника участвуют в расчёте:
Товар ──▶ Товарная группа ──▶┐
├──▶ Ставка налога
Документ ──▶ Операция ──▶┘
2.1. Приоритет: операция важнее товарной группы
Для каждой строки документа берутся до 3 налогов, слот за слотом (1-й, 2-й, 3-й):
- Если у операции документа для этого слота указан код налога —
используется он. - Если у операции слот пуст — используется код налога из товарной
группы этой строки.
Пример: обычная продажа (операция "Sale") не имеет своих налогов настроенных —
используется налог товарной группы (например, "Standard Goods" → 20% VAT).
Операция "Export Sale" имеет явно настроенный слот 1 = "0% Export" — тогда
экспортная продажа идёт без налога, даже если у товара обычная налоговая
группа с VAT.
2.2. Ставка налога зависит от даты документа
Справочник ставок хранит периоды действия — при изменении ставки
старая запись не удаляется, а закрывается датой окончания, и добавляется новая.
Расчёт всегда берёт ту ставку, которая действовала на дату документа,
а не текущую — поэтому исторические документы не "переезжают" на новую
ставку задним числом.
3. Как читать три ключевых поля налога
| Поле | Вопрос | Значения |
|---|---|---|
| Calc Level | На каком уровне считать? | 0 = построчно (на каждой строке товара отдельно, потом сумма), 1 = по документу целиком (один раз на общий итог) |
| Apply Order | В каком порядке считать относительно других налогов? | целое число — меньше применяется раньше |
| Base | От какой суммы считать? | 0 = от исходной суммы (без учёта других налогов), 1 = от (исходная сумма + уже посчитанные налоги с меньшим Apply Order) — налог на налог |
Примеры расчёта
Пример А — простой VAT (одна ставка, ЕС/большинство стран)
Товар: 100.00, налог "VAT 20%": Calc Level=0 (построчно), Apply Order=1, Base=0.
Шаг 1: VAT 20% от 100.00 = 20.00
Итого налога: 20.00
Пример Б — GST + QST (Канада, налог на налог)
Строка: 100.00. Настроено 2 налога товарной группы:
- слот 1 = "GST 5%": Apply Order=1, Base=0 (от исходной суммы)
- слот 2 = "QST 9.975%": Apply Order=2, Base=1 (от суммы с учётом GST)
Шаг 1: GST 5% от 100.00 = 5.00
Шаг 2: QST 9.975% от (100.00+5.00)=105.00 = 10.47
Итого налога: 15.47
Пример В — акциз построчно + общий налог по документу
Документ с двумя строками: подакцизный товар 50.00 и обычный товар 30.00.
- "Excise 10%" (только у подакцизного товара): Calc Level=0 (построчно), Apply Order=1, Base=0
- "Sales Tax 8%" (у операции документа): Calc Level=1 (по документу), Apply Order=2, Base=0 (считается от суммы строк, налог на налог здесь не нужен)
Шаг 1 (по строке "Excise"): 10% от 50.00 = 5.00
Шаг 2 (по документу "Sales Tax"): 8% от (50.00+30.00)=80.00 = 6.40
Итого налога: 11.40
Пример Г — экспорт без налога (переопределение операцией)
Товар с обычной группой "Standard Goods" (VAT 20%), но операция документа —
"Export Sale" со слотом 1 = "Export 0%".
Операция переопределяет товарную группу → используется "Export 0%"
Шаг 1: Export 0% от 100.00 = 0.00
Итого налога: 0.00
4. Руководство: как заполнить справочники
Ставки налогов («Taxes») и налоговые группы («Category of Goods») —
обычные справочники, открываются через Directory (F9) → выбрать нужное
имя из списка (универсальный редактор, тот же для всех справочников — см.
docs/manual/24_directory.md). Вид операции — единственный из трёх, у
которого есть отдельная кнопка на панели Tools, минуя общее меню
Directory (см. docs/manual/13_tools_overview.md).
4.1. Directory → Taxes — завести новый налог
- New → заполнить:
- Код налога — число, придумываете сами, должен быть уникален среди
активных налогов — при следующих периодах того же налога
переиспользуется тот же код, см. ниже - Название — например, "VAT 20%", "GST", "Export 0%"
- Ставка — в % (поддерживаются дробные — 9.975)
- Calc Level / Apply Order / Base — см. §3
- Valid From — дата начала действия
- Valid To — оставить пустым (это текущий действующий период)
- Код счёта — если ведётся бухгалтерия (можно не заполнять)
4.2. Directory → Taxes — изменить ставку существующего налога
Не редактируйте старую запись напрямую — так вы потеряете, какая ставка
действовала раньше (сломается расчёт для старых документов). Порядок:
- Найти текущую активную запись налога (Valid To — пусто).
- Проставить ей Valid To = день перед вступлением новой ставки в силу.
- Создать новую запись (New) с тем же кодом налога, новой ставкой,
новым Valid From (день вступления в силу), Valid To — пусто.
Старая запись остаётся в справочнике навсегда — это история, не мусор.
4.3. Directory → Category of Goods — привязать налог к товарной группе
- Открыть (или создать) группу.
- В полях для трёх налоговых слотов нажать "..." — откроется список
налогов, выбрать нужный. Если налогов несколько (tax-on-tax) — заполнить
несколько слотов, порядок между собой определяется полем Apply Order
самого налога (§3), а не порядком слотов здесь. - Товары привязываются к группе через карточку товара (поле налоговой группы).
4.4. Tools → Operations — переопределить налог для операции
Используется, когда конкретный вид операции должен всегда считаться
особым образом, независимо от товара (экспорт, услуги без налога, спецставка
и т.п.):
- Открыть операцию (например, "Export Sale").
- В полях Kd N1 / Kd N2 / Kd N3 — выбрать налог(и), которые должны
применяться для ЭТОЙ операции. - Если слот оставить пустым (0) — для этого слота будет использована
товарная группа строки (никакого переопределения).
5. Проверка расчёта — отчёт "как посчитан налог"
По любому проведённому документу можно получить пошаговую раскладку расчёта
(без необходимости верить системе на слово) — та же логика, что в примерах
§3, но для конкретного документа: каждый шаг с именем налога, уровнем, базой,
ставкой и суммой. Обращаться к разработчику/через отчёт в интерфейсе (F5 в
соответствующем разделе), если нужно объяснить бухгалтеру, откуда взялась
цифра в конкретном документе.
6. Итоговый чек-лист при настройке нового налога
- [ ] Есть запись в Directory → Taxes с правильной ставкой и Valid From
- [ ] Указан Calc Level (построчно/по документу)
- [ ] Указан Apply Order, если налог участвует в цепочке с другими
- [ ] Указан Base, если это налог "поверх" другого налога
- [ ] Налог привязан либо к Tax Group товара, либо к Operation
документа (или к обоим — операция победит) - [ ] Проверено на тестовом расходном документе через отчёт "как посчитан налог"