Договоры

Договор и ДС: как связать всё со сметой и объектом.

Простая модель: договор → объект → смета → акт. Что это даёт на уровне аналитики портфеля, и почему доп. соглашения должны быть отдельной сущностью, а не «версией» договора.

ЕО
Елена Орлова
CPO actrix · Продукт
8 МИН ЧТЕНИЯ

§01Модель данных

В actrix используется простая иерархия. Договор привязывается к объекту и к стороне (CLIENT или CONTRACTOR). На договор может приходить одна или несколько смет (для разных пакетов работ). На смету — один или несколько актов выполненных работ.

ОБЪЕКТ (ЖК Северный, к. 3)
└── ДОГОВОР клиентский ДГ-184
    ├── ДС-1, ДС-2, ДС-3 …
    ├── СМЕТА СМ-184/КЛ
    │   ├── КОРРЕКТИРОВКА КР-09
    │   └── АКТЫ КС-2 №1, №2, №3 …
    └── СВЯЗЬ 1:N → ПОДРЯДНЫЕ СМЕТЫ
                    ├── СМ-184/ПД-1 (Подрядчик А)
                    └── СМ-184/ПД-2 (Подрядчик Б)

Эта структура повторяется на подрядной стороне: подрядный договор → подрядная смета → подрядные акты. Связь между сторонами устанавливается на уровне смет (1:N), не на уровне договоров.

§02Зачем ДС — отдельная сущность

Распространённая ошибка — делать «версии договора»: внести правку, сохранить как v2, перевести смету на v2. На первый взгляд удобно. На деле — ломается история.

Доп. соглашение — это самостоятельный документ, у которого есть дата подписания, подписант, основания и собственный маршрут согласования. Если делать «версию договора», эти атрибуты приходится дублировать в договоре, а при отмене ДС — непонятно, какую версию считать актуальной.

В actrix ДС — дочерняя запись договора с собственным жизненным циклом. Договор остаётся неизменным после подписания. Условия договора в каждый момент времени — это «договор + все ДС в статусе APPROVED на эту дату».

§03Аналитика портфеля

Когда договоры привязаны к объектам, а сметы — к договорам, открываются срезы, которых нельзя получить из разрозненных Excel-файлов.

  • По объекту: суммарная клиентская выручка, суммарная подрядная стоимость, маржа, прогресс. Видно, что «ЖК Северный приносит больше маржи, чем ЖК Южный».
  • По клиенту: все договоры с одним заказчиком, средний срок согласования, доля проблемных корректировок. Видно, что «у этого клиента согласования зависают на 14 дней — надо включать ФинДира раньше».
  • По подрядчику: его объём, его маржа, его соблюдение сроков. Видно, что «с Подрядчиком Б у нас в среднем 9% маржи, с Подрядчиком А — 14%».
  • По периоду: что было закрыто за квартал, какая динамика. Видно, что «Q1 2026 закрыли с маржой 22%, Q4 2025 — с 26%».

§04Что проверяет система

На уровне привязки документов actrix следит за несколькими инвариантами.

  1. Сумма всех актов по договору не может превысить сумму договора с учётом всех ДС.
  2. Сторона договора и сторона смет на нём должны совпадать (нельзя на клиентский договор повесить подрядную смету).
  3. Объект договора и объект смет — должны совпадать.
  4. Сумма ДС не может уменьшить сумму договора ниже уже подписанных актов.

Эти проверки идут не на уровне UI, а в business-rules слое сервера. Никакая клиентская изобретательность не даст создать смету, которая нарушит инварианты.

ДОГОВОРЫ ДС ПОРТФЕЛЬ