Контур · подготовка к спеке

Контур: материалы к старту

Всё, что есть по проекту, на одной странице: суть ТЗ, схемы, экраны, план работ и вопросы, которые надо закрыть до написания спеки. Открытые решения собраны во втором разделе — с него удобно начинать созвон.

ТЗ «Контур» ред. 2.7 · 10.11.2026 Пакет для Multica 1.1 · KTR-00…19 Прототип v165 Постановка: Любовь Елагина, центр аналитики
01

Суть за минуту

Контур собирает в одном месте деньги, часы, FTE, сроки и приёмку по каждому проекту и по портфелю. Данные приходят из 1С ДО, 1С БИТ Финанс и Сферы. Если данных нет, Контур так и пишет — «Нет данных», а не 0.

Проекты

Портфель и карточка

Портфель, реестр СВП, карточка из 9 вкладок: обзор, план и факт, результаты, команда, финансы, управление, риски, статус-отчёты, логи.

Бюджетирование

Свод и программа

План и факт денег и FTE по трём стримам, производственная программа на год, нормы часов.

Отчёты

Стандартные и управленческие

Утилизация, выручка, долг, сроки; управленческий раздел с переходом от сигнала к источнику.

Команда

Кадровый модуль

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

Входит

  • Ручное создание проекта руководителем стрима
  • Карточка в Сфере по кнопке и раз в сутки, обратно — сводные часы
  • Договоры из 1С ДО; акты, счета, оплаты из 1С БИТ Финанс
  • Бюджет с согласованием, P&L, приёмка бизнес-результатов
  • Права на сервере для 4 ролей, журнал, выгрузки Excel/PDF/CSV

Не входит

  • Задачи, канбан и учёт времени — остаются в Сфере
  • Кабинеты заказчика и сотрудника, договорное оформление
  • Форматы и API интеграций — отдельное ТЗ
  • Валюты, налоги, зарплата, согласование трудозатрат
  • Маржа как показатель (RPT-04)
Главный принцип расчётов

Различать три случая: неизвестное значение, подтверждённый ноль и известную часть неполного итога. Пропуск в данных никогда не превращается в 0, а неизвестная прибыль не называется ни прибылью, ни убытком.

02

Вопросы на созвон

Собраны из ТЗ 2.7, пакета 1.1 и сверки с тем, что уже работает. Сверху — то, без чего спеку не начать.

Архитектура и источники

A1

Контур — новое приложение или развитие стаффинга?

ТЗ называет кадровый модуль «действующим модулем Контура». В реальности это отдельный сервис staffing.loodsen.ru, и его ADR-0007 описывает Контур как внешнюю платформу с границей через API, без общих таблиц.

Решают: владелец продукта, техлид · влияет на всё
A2

Откуда факт часов: Сфера или Time?

ТЗ берёт сводные часы из Сферы по ID карточки. Стаффинг уже читает списания напрямую из Time (GET /logs), а у Сферы есть ещё свой отчёт по elapsed time. Нужен один источник, иначе цифры разойдутся.

Решают: владелец продукта, команда Сферы
A3

Кто мастер проекта и когда он меняется?

По ТЗ проект создаётся в Контуре и уходит в Сферу. Сейчас мастер — рабочая группа Сферы с PROJECT=Y, и стаффинг читает проекты оттуда (Q-13). Нужны дата переключения и правило для уже существующих групп Сферы.

Решают: владелец продукта, Сфера, стаффинг
A4

Есть ли доступ к 1С БИТ Финанс?

Интеграции с БИТ Финанс нет ни в одном нашем репозитории. Договоры 1С сейчас пушит в смарт-процесс «Договоры» Сферы (24 поля, GUID). Нужно понять: Контур читает договоры из Сферы или напрямую из 1С ДО, и кто даёт тестовый доступ к обеим 1С.

Решают: финансы, ИТ 1С · самый длинный срок
A5

Как договор связан с проектом?

В Сфере прямой связи нет: договор → сделка → рабочая группа. ТЗ хочет прямой выбор договора в паспорте проекта, один договор на несколько проектов. Ключ связи 1С ДО ↔ 1С БИТ Финанс не определён (решение владельца № 4 отложено).

Решают: финансы, аналитика

Роли и доступ

R1

Откуда берутся стримы и роли?

Сущности «стрим» и ролей финансиста, руководителя стрима и руководителя компании нет ни в Сфере, ни в стаффинге. В стаффинге есть только pm, rm, viewCost и admin. Q-14 предлагает схему: руководитель практики → rm, РП → pm, остальные — чтение отчётов.

Решают: владелец продукта
R2

Кто нажимает «Отправить в Сферу» и кто переводит в «Планирование»?

В пакете роли для кнопки прямо не согласованы. В ТЗ не сказано, кто переводит проект из «Запланировано» в «Планирование», хотя от этого зависит обмен со Сферой.

Решает: Любовь Елагина
R3

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

В стаффинге расходная ставка закрыта флагом viewCost, источник — ручной ввод (живой 1С нет, Q-04). В Контуре P&L видят все четыре роли. Нужна граница видимости.

Решают: финансы, HR

Правила и расчёты

C1

Какие пороги загрузки правильные?

KPI-46: ниже 80% — красный. KPI-47: 70–80% — только предупреждение, критично ниже 70%. Зелёный — только ровно 100%, то есть 99,9% уже жёлтый.

Решает: Любовь Елагина
C2

Даёт ли Сфера часы по месяцам?

Гарантирован только итог по проекту. Без помесячных данных большая часть графиков FTE, часов и утилизации покажет «Нет данных». Откуда стоимость труда и в каком разрезе — тоже не решено (решение № 5 → № 3).

Решают: аналитика, команда Сферы
C3

Одна норма часов или две?

Бюджетный FTE считается от фиксированных 176 ч, ёмкость и расход команды — от настраиваемой нормы. В стаффинге уже есть персональная норма H с вычетом отсутствий. Какие «будние дни» брать — производственный календарь РФ или пн–пт?

Решает: Любовь Елагина
C4

Где мастер доходных ставок?

Сейчас ставки лежат в трёх местах: ldsn_project_user_rates Сферы, сметы ldsn_estimates, снимок R в назначении стаффинга. ТЗ добавляет четвёртое — «Доходные ставки по ролям» в Финансах проекта.

Решают: финансы, аналитика
C5

Что с общим договором, отклонённым бюджетом и закрытием периода?

Деление сумм общего договора отложено (KTR-08 — только исследование, карточки на реализацию нет). Статуса «бюджет отклонён» нет. Процедура закрытия периода, удаление проекта и смена стрима не описаны.

Решают: финансы, Любовь Елагина

Организация работ

O1

Что войдёт в первый релиз?

В пакете 20 карточек и критический путь из 11 шагов, но нет сроков, оценок и приоритетов между группами. Предлагаю MVP: права, паспорт, команда через стаффинг, часы, план-график, обзор и портфель. Финансы — когда будет доступ к 1С.

Решают: все
O2

Где код и стенды?

Нужен доступ к коду прототипа v165, иначе нельзя выполнить KTR-00 (сверка требований с кодом). Нужны репозиторий, окружения и общий UI-кит (Q-12: стек хоста для Module Federation).

Решают: техлид
O3

Кто принимает работу?

В пакете сказано только «назначенный человек». Нужны ревьюер по каждой группе и владелец сквозной приёмки KTR-19 (матрица AT-01…39).

Решают: владелец продукта
03

Потоки данных

Слева — схема из ТЗ 2.7. Справа — как это ляжет на системы, которые уже работают.

Схема из ТЗ: 1С ДО передаёт договоры в Контур, 1С БИТ Финанс — акты, оплаты и счета; Контур создаёт карточку в Сфере, Сфера возвращает свой ID и план и факт часов ТЗ 2.7, раздел 12. Общий договор на несколько проектов — на согласовании.
flowchart TB
  subgraph src["Источники"]
    DO["1С ДО
договоры"] BIT["1С БИТ Финанс
акты, счета, оплаты"]:::gap TIME["Time
списания часов"] end subgraph sph["Сфера (Битрикс24)"] GRP["Рабочая группа
PROJECT=Y"] DOG["Смарт-процесс
«Договоры»"] RATE["Доходные ставки
ldsn_project_user_rates"] end subgraph kt["Контур"] CARD["Карточка проекта"]:::new FIN["Финансы, бюджет, P&L"]:::new REP["Портфель и отчёты"]:::new end STF["Стаффинг
заявки, назначения, FTE"] DO -- "push по GUID (есть)" --> DOG DO -. "по ТЗ: напрямую" .-> CARD BIT -. "нет интеграции" .-> FIN CARD -. "по ТЗ: создаёт карточку" .-> GRP GRP -- "проекты (есть)" --> STF TIME -- "/logs (есть)" --> STF TIME -. "по ТЗ: через Сферу" .-> GRP GRP -. "сводные часы" .-> CARD RATE -- "ставки R (есть)" --> STF STF -. "события /events (REQ-042, отложено)" .-> FIN CARD --> FIN --> REP classDef new fill:#e2f2ef,stroke:#0e7a6d,color:#16283f classDef gap fill:#fbe7e5,stroke:#b3261e,color:#16283f
сплошная стрелка — работает сейчаспунктир — по ТЗ, ещё не сделаноновое в Контуредоступа нет
04

Что уже есть

Стаффинг и Сфера уже закрывают часть Контура. Таблица ниже — кандидаты в мастер для каждой сущности.

staffing.loodsen.ru

Стаффинг (ресурсное планирование)

  • NestJS + Postgres, UI на Vue 3 встраивается через Module Federation: mount(el, ctx)
  • Заявки, назначения с FTE по дням, доходная R и снимок расходной C, отсутствия, календарь, персональная норма H
  • Проекты и люди — копия из Сферы, часы — из Time
  • Роли: pm, rm, viewCost, admin; вход из вкладки Сферы или через Keycloak
  • ADR-0007: стаффинг — этап «Команда и ресурсы» Контура; заделы под интеграцию отложены (REQ-041…048)
Битрикс24

Сфера

  • Проект — рабочая группа: тип, категория, код проекта, режим проверки времени
  • Договоры: 1С пушит в смарт-процесс «Договоры», 24 поля, upsert по GUID
  • Связь с проектом только через сделку: договор → сделка → группа
  • В сделке — суммы по ЦФО и даты актов и оплат 1…12; есть сметы с ролями и ставками
  • Бюджета проекта, P&L и 1С БИТ Финанс нет
СущностьПо ТЗ 2.7Сейчас на делеЧто решить
ПроектКонтур, создаёт руководитель стримаРабочая группа Сферы; стаффинг читает еёДата переключения мастера, судьба старых групп
Договор1С ДО → Контур1С → смарт-процесс Сферы по GUIDЧитать из Сферы или из 1С ДО
Акты, счета, оплаты1С БИТ Финанс → Контурнет нигдеДоступ, контракт, ключ связи с 1С ДО
ЧасыСфера, сводно по проектуTime /logs; часть списаний в карантинеОдин источник и разрез по месяцам
Стоимость трудаСфера, отдельная суммаНе считается; C — ручной ввод в стаффингеИсточник и период
Сотрудники, назначения, FTEКадровый модуль КонтураСтаффинг (мастер заявок и назначений)Встраивание и события стаффинга
Доходные ставкиФинансы проекта, по ролямСфера + сметы + снимок в стаффингеОдин мастер
Стримы, роли3 стрима, 4 ролинет нигдеСправочник и сопоставление ролей (Q-14)
Бюджет, P&L, риски, приёмкаКонтурНетСтроится с нуля
05

Роли и права

Права проверяются на сервере сразу по роли, набору проектов, состоянию объекта и версии — для экрана, прямой ссылки, выгрузки и вложения.

видит свои проекты

РП

Ведёт план-график, результаты и риски, готовит бюджет и передаёт на проверку, запускает и закрывает проект.

финансовый периметр

Финансист

Утверждает бюджет, правит первичные затраты, сверяет документы 1С. Управленческих отчётов не видит.

свои стримы

Руководитель стрима

Создаёт проект и назначает РП, согласует приёмку, ведёт реестр СВП и нормы часов.

вся компания

Руководитель компании

Сводный контроль, разрешает плановый убыток, принимает статус-отчёты.

ДействиеРПФинансистРук. стримаРук. компании
Просмотр вкладок и выгрузкисвоипериметрсвои стримывсе
План-график и результатыизменятьчитатьизменять*читать
Ручное создание проектанетнетданет
Назначение РПнетнетданет
План и прогноз месяцададачитатьчитать
Передать бюджет на проверкуданетнетнет
Утвердить бюджетнетданетнет
Разрешить плановый убытокнетнетнетда
Первичные затратычитатьизменятьчитатьчитать
Отправить подтверждение приёмкиданетнетнет
Согласовать подтверждение приёмкинетнетданет
Реестр СВП и его Excelнетнетданет
Управленческие суммы P&Lдададада
Нормы часовнетнетдада
Управленческая отчётностьданетдада

Матрица — ТЗ 2.7, раздел 1. * Решение владельца № 1 из пакета 1.1: план-график правит РП и руководитель закреплённого стрима; в ТЗ у руководителя стрима было «читать».

06

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

Основные сущности и связи по ТЗ 2.7, разделы 3 и 12. Связь документа с проектом хранится отдельно от самого документа.

flowchart TB
  STREAM["Стрим
LZ · LS · LP"] CONTRACT["Договор
1С ДО"] FINDOC["Акт · счёт · платёж
1С БИТ Финанс"]:::gap MAPPING["Сопоставление
документ ↔ проект, с историей"] PROJECT(["Проект"]):::core SPHERECARD["Карточка Сферы
1 к 1, ключ — ID Контура"] HOURS["Поставка часов
итог или период"] EMPLOYEE["Сотрудник"] ASSIGN["Назначение · FTE
стаффинг"] subgraph mgmt["Управление"] PLANVER["Версия плана-графика
первая — baseline"] --> MILESTONE["Этап · веха"] RESULT["Бизнес-результат"] --> ACCEPT["Запрос приёмки
1–3 файла"] RISK["Риск"] STATUSREP["Статус-отчёт ПК"] end subgraph money["Деньги"] BUDGET["Версия бюджета
снимки"] COST["Затрата · доп. статья"] PROGCELL["Ячейка программы
месяц × FTE"] end STREAM -- "код в стриме" --> PROJECT CONTRACT -- "один на несколько" --> PROJECT CONTRACT --> FINDOC --> MAPPING --> PROJECT PROJECT --> SPHERECARD --> HOURS EMPLOYEE --> ASSIGN --> PROJECT PROJECT --> mgmt PROJECT --> money classDef core fill:#172b45,stroke:#172b45,color:#ffffff,font-weight:700 classDef gap fill:#fbe7e5,stroke:#b3261e,color:#16283f

Плюс: коды-псевдонимы проекта, прогноз месяца, запрос изменения, история стадий, журнал событий (неизменяемый), нормы календаря, доходные ставки ролей.

07

Статусы и процессы

Стадия проекта, статус бюджета и статус приёмки хранятся раздельно. Архив — отдельный признак, а не стадия.

Схемы шире экрана — листайте вбок.

stateDiagram-v2
  direction TB
  state "Запланировано" as p0
  state "Планирование" as p1
  state "Выполнение" as p2
  state "Приёмка" as p3
  state "Закрыт" as p4
  [*] --> p0 : рук. стрима создаёт
  p0 --> p1 : кто? (R2)
  p1 --> p2 : РП, бюджет утверждён
  p2 --> p3 : РП передаёт
  p3 --> p4 : РП, чек-лист выполнен
    

Стадия проекта. В «Планировании» проект уходит в Сферу.

stateDiagram-v2
  direction LR
  state "Черновик" as b0
  state "На проверке" as b1
  state "Утверждён" as b2
  [*] --> b0
  b0 --> b1 : РП передаёт
  b1 --> b2 : финансист
  b1 --> b1 : не прошёл, статуса «отклонён» нет
  b2 --> b0 : правка ручной базы или статьи
    

Бюджет. Плановый убыток требует разрешения руководителя компании до утверждения.

stateDiagram-v2
  direction LR
  state "Готов" as r0
  state "На согласовании у рук. стрима" as r1
  state "Принято заказчиком" as r2
  state "Отклонено с причиной" as r3
  [*] --> r0 : РП отмечает
  r0 --> r1 : РП, 1–3 файла
  r1 --> r2 : согласовать
  r1 --> r3 : отклонить
  r3 --> r1 : новый запрос
    

Приёмка бизнес-результата. Смена версии результата делает запрос неактуальным.

stateDiagram-v2
  direction LR
  state "Ожидает отправки" as s0
  state "Отправлено" as s1
  state "Создано в Сфере" as s2
  state "Ошибка обмена" as s3
  [*] --> s0 : кнопка или сутки
  s0 --> s1
  s1 --> s2 : ID и ссылка
  s1 --> s3
  s3 --> s0 : повторить
    

Обмен со Сферой. Внешний ключ — ID Контура; один проект — одна карточка.

Чек-лист закрытия проекта (CLS-01)

Вехи плана-графика завершены · профильная проверка пройдена · итоговый результат принят · есть закрывающие документы · команда освобождена · финансовый факт полон.

08

Расчёты

Деньги — до копеек, события — в UTC, срезы — по МСК. Деньги показываются накопленно за проект, FTE — за период, долг — на дату среза.

ПоказательФормулаПравило
Плановая прибыльДп − РпМинус — только с разрешения руководителя компании
Плановый расход командыΣ FTE × норма × ставкаПо назначениям и расходным ставкам
Документальный доходΣ подписанных актовТолько сопоставленных с проектом, по дате подписи
Фактический расходстоимость труда + первичные затратыСтоимость труда из часов не выводится
Фактическая прибыльДф − РфТолько если обе суммы известны
Дебиторская задолженностьΣ max(0, обязательство − оплаты)Счёт и акт по одному обязательству не удваиваются
Отклонение часов(ф − п) ÷ п × 100При нулевом плане процента нет
Бюджетный FTEчасы ÷ норма периодаНорма 176 ч × доля будних дней месяца
Утилизациячасы ÷ ёмкость × 100Ёмкость 0 — утилизация неизвестна
Контрольный примерДаноОжидается
Часыплан 3 000 ч, факт 5 000 ч+2 000 ч, +66,7%
Факт без детализацииСфера дала только итогпомесячный факт неизвестен
Фактический расходтруд 10 000 ₽ + затраты 2 000 ₽12 000 ₽
FTE и утилизацияфакт 24 ч, норма 80 ч, ёмкость 32 ч0,3 FTE и 75%
Границы загрузки79,99 / 80 / 99,99 / 100 / 100,01%красный, жёлтый, жёлтый, зелёный, перегрузка
Долгобязательство 120 000 ₽, оплата 80 000 ₽40 000 ₽
Ручной P&Lбаза 30 000 ₽ + статья 3 000 ₽33 000 ₽; при базе 0 — 3 000 ₽
Производственная программа1,25 и 0,75 FTE, остальное пусто≥ 2 FTE-месяца; после нулей: пик 1,25, людей 2

Здоровье проекта

Красный убыток по полному факту, перерасход полного плана, просроченный долг, веха с задержкой более 7 дней, работы коммерческого проекта без контрактации.

Жёлтый прочие отклонения, высокий риск, неполные данные. Зелёный данных достаточно, сигналов нет.

09

Экраны M01–M10

Макеты из пакета 1.1 на демо-проекте LZ0012. Нажмите на картинку, чтобы открыть крупно.

Демо-числа M07 и M09 не сходятся: известная прибыль 50 000 ₽ получается от управленческого дохода 130 000 ₽, а не от документального 120 000 ₽. Для приёмки нужен выверенный набор данных.

10

План работ KTR-00…19

Граф зависимостей без транзитивных стрелок. Красным — критический путь, пунктир — условные зависимости.

flowchart TB
  K00["00 Сверка с v165"] --> K01["01 Права 4 ролей"] --> K02["02 Паспорт, стадии"]
  K02 --> K03["03 Команда, стаффинг"]
  K02 --> K04["04 Договоры 1С ДО"]
  K02 --> K05["05 Карточка в Сфере"]
  K02 --> K09["09 План-график"]
  K02 --> K10["10 Результаты, приёмка"]
  K05 --> K06["06 Часы из Сферы"]
  K04 --> K07["07 1С БИТ Финанс"]
  K07 --> K08["08 Общий договор"]:::hold
  K09 --> K11["11 Риски, закрытие"]
  K10 --> K11
  K03 --> K12["12 Общие расчёты"]
  K06 --> K12
  K09 --> K12
  K07 --> K13["13 Финансы, P&L"]
  K12 --> K13
  K13 --> K14["14 Согласование бюджета"]
  K14 --> K15["15 Свод, программа"]
  K13 --> K16["16 Портфель, обзор"]
  K16 --> K17["17 Отчёты"]
  K10 --> K18["18 Выгрузки"]
  K15 --> K18
  K17 --> K18
  K11 --> K19["19 Сквозная приёмка"]
  K18 --> K19
  K08 -.-> K13
  K13 -.-> K11
  K14 -.-> K11
  classDef crit fill:#fbe7e5,stroke:#b3261e,color:#16283f
  classDef hold fill:#fdf2dc,stroke:#9a5b06,color:#16283f,stroke-dasharray:4 3
  class K00,K01,K02,K05,K06,K12,K13,K14,K15,K18,K19 crit
  
ГруппаKTRСутьЭкранБлокер
A. Основа00Сверить прототип v165 с ТЗ, список решений—Нужен код v165
01Права 4 ролей на сервере, история с рольювсеR1
02Ручное создание, коды LZ/LS/LP, стадииM04R2
03Команда через действующий кадровый модульM05A1
B. Интеграции04Договоры из 1С ДО, один договор — несколько проектовM04A4, A5
05Карточка в Сфере: кнопка и раз в суткиM04техконтракт (№ 3)
06Часы и стоимость труда из СферыM02, M03A2, C2
07Акты, оплаты, счета из 1С БИТ ФинансM07A4
08Сопоставление по общему договору — исследованиеM07отложено (№ 4)
C. Управление09План-график, baseline, отклонения сроковM03—
10Бизнес-результаты и приёмка через РПM06—
11Риски, статус-отчёты ПК, изменения, закрытиеM10—
D. Финансы12Единый расчётный слой: часы, FTE, ёмкость, срокиM02–M09C3
13Финансовые показатели, P&L, ручные базыM07C4
14Согласование бюджета, разрешение убыткаM07, M08C5
15Бюджетный свод и производственная программаM08—
E. Портфель16Портфель, обзор, правила здоровьяM01, M02—
17Отчёты и раскрытие показателейM09—
18Выгрузки Excel, PDF, CSVM06, M08, M09формы §8
19Сквозная приёмка, матрица AT-01…39всеO3
Решения владельца продукта из пакета 1.1
№СтатусРешение
1принятоПлан-график правят РП и руководитель закреплённого стрима, остальные читают в своём периметре
2принятоВ Сферу — кнопкой и раз в сутки, через один процесс и один внешний ключ
3отложеноПоля, ключи, форматы, время суточного задания, доступ к тестовым системам
4отложеноКлюч связи двух 1С, распределение общего договора, полномочия; до решения суммы остаются на договоре
5принятоСтоимость труда приходит из Сферы отдельной суммой
6принятоЗоны загрузки: <80% красный, 80–100% жёлтый, ровно 100% зелёный, >100% перегрузка
11

Реестр KPI-01…47

Приложение B пакета 1.1. Подтверждённый ноль — значение, пропуск — отдельный признак.

12

Глоссарий

СтримНаправление: проекты (LZ), сервисные услуги (LS), продукты (LP). У каждого своя нумерация кодов.
РПРуководитель проекта, продукта или сервиса.
Реестр СВПРеестр проектов руководителя стрима с выгрузкой в Excel. Расшифровки в ТЗ нет.
Статус-отчёт ПКПериодический отчёт РП с 6 индикаторами здоровья. Расшифровки «ПК» в ТЗ нет.
BaselineПервая отправленная заказчику версия плана-графика.
Бизнес-результатРезультат для заказчика со сроками, плановой суммой и моделью актирования.
FTE / FTE-месяцЧасы ÷ норма периода / единица производственной программы.
ЁмкостьДоступные часы с учётом занятости и отсутствий.
Документальный фактФакт по документам 1С БИТ Финанс.
Ручная базаУправленческая сумма плана или факта P&L с основанием; заменяет автоматическую.
Первичные затратыПрочие затраты в базе факта расхода; правит финансист. Источник в ТЗ не назван.
Дп / Дф / Рп / РфПлановый и фактический доход, плановый и фактический расход.
FIX / T&MФиксированная цена / время и материалы.
R / C / HВ стаффинге: доходная ставка, расходная ставка, персональная норма часов.