{
  "proof": {
    "id": 81,
    "buyerLabel": "Разработка для бухгалтерий и финансовых отделов",
    "deliverableTitle": "Черновик полей счёта с арифметической сверкой",
    "deliverableDescription": "Исходная строка, введённые значения и расхождение показаны вместе для проверки бухгалтером.",
    "pilotInputs": [
      "Обезличенные счета одного формата",
      "Список требуемых полей и формат экспорта",
      "Утверждённые бухгалтером правила округления и сверки"
    ],
    "pilotAcceptance": "Сумма и расхождение воспроизводятся в копейках; ручная сверка не обозначается распознаванием документа.",
    "scenario": {
      "title": "Расхождение 60 рублей в счёте",
      "before": "СЧ-081: 2 шт. × 1000 ₽ = 2000 ₽; учебный НДС 22% = 440 ₽; ожидается 2440 ₽.",
      "conflict": "В строке «Итого» вручную введено 2500 ₽: расхождение +60 ₽.",
      "decision": "Сверить строку с учебным источником и исправить ввод итога на 2440 ₽; оставить отметку проверки бухгалтером.",
      "after": "Расхождение 0 ₽; арифметика совпала, распознавание и юридическая корректность счёта не проверялись."
    }
  },
  "version": "0.4",
  "status": "Проект для согласования",
  "solutionId": 81,
  "slug": "invoice-processing",
  "title": "Разбор входящих счетов",
  "goal": "Проверяйте суммы счетов до переноса в учёт",
  "buyer": "Бухгалтерия или финансовый отдел",
  "system": "Документооборот / учётная система",
  "reviewer": "Исполнитель и согласующий",
  "entities": "Документ, редакция, задача",
  "phases": [
    {
      "title": "Разобрать ваш процесс",
      "description": "Реквизиты и суммы переносят вручную",
      "work": "Сверяем исходные примеры, роли и исключения. Фиксируем один сценарий пилота.",
      "result": "Схема процесса и согласованный состав первой версии."
    },
    {
      "title": "Собрать рабочий прототип",
      "description": "Экран проверки полей",
      "work": "Показываем интерфейс и правила на согласованной выборке. Проверяем неоднозначные случаи с вашей командой.",
      "result": "Проверка дублей"
    },
    {
      "title": "Подключить данные",
      "description": "Обезличенные счета",
      "work": "Сначала проверяем доступные выгрузки и интерфейсы. Если обмен возможен, согласуем поля, направления и права записи.",
      "result": "Подтверждённый способ обмена либо согласованный импорт. Если интерфейса нет — зафиксированное ограничение и решение о следующем шаге."
    },
    {
      "title": "Проверить в работе",
      "description": "Поле связано с фрагментом источника",
      "work": "Проводим контрольные сценарии, обучаем ответственных, передаём документацию и порядок восстановления.",
      "result": "Утверждённая выгрузка"
    }
  ],
  "mapping": [
    {
      "field": "Количество",
      "type": "number",
      "unit": "шт.",
      "example": "2",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Цена без НДС",
      "type": "number",
      "unit": "₽/шт.",
      "example": "1000",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "НДС для примера",
      "type": "number",
      "unit": "%",
      "example": "22",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Итого в документе",
      "type": "number",
      "unit": "₽",
      "example": "2500",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    }
  ],
  "flow": [
    {
      "label": "Ваши исходники",
      "text": "Обезличенные счета"
    },
    {
      "label": "Правила и интерфейс",
      "text": "Проверка сумм и дублей"
    },
    {
      "label": "Проверка сотрудником",
      "text": "Исполнитель и согласующий"
    },
    {
      "label": "Результат в работе",
      "text": "Утверждённая выгрузка"
    }
  ],
  "scope": [
    "Экран проверки полей",
    "Проверка дублей",
    "Утверждённая выгрузка"
  ],
  "inputs": [
    "Обезличенные счета",
    "Правила обязательных полей",
    "Формат выгрузки"
  ],
  "acceptance": [
    "Поле связано с фрагментом источника",
    "Несходящаяся сумма отмечена",
    "Неутверждённый документ не экспортируется"
  ],
  "boundary": "Распознавание не разрешает оплату и не подтверждает благонадёжность контрагента.",
  "budgets": [
    [
      70,
      140
    ],
    [
      220,
      450
    ],
    [
      450,
      900
    ]
  ],
  "group": "data",
  "openQuestions": [
    "В каком виде поступают счета?",
    "Куда нужно передавать проверенные поля?",
    "Какие системы, версии и способы выгрузки используются сейчас?",
    "Кто подтверждает результат и кому разрешено менять правила?"
  ],
  "failureCases": [
    "Неполные или некорректные вводные: показать конкретные поля, не выдавать успешный результат.",
    "Неоднозначное соответствие или редакция: передать ответственному на проверку.",
    "Повторная отправка: исключить повторное создание по согласованному идентификатору.",
    "Недоступный внешний источник: сохранить состояние, показать ошибку и согласованный повтор.",
    "Изменение подтверждённых вводных: новая редакция и повторное подтверждение."
  ],
  "rights": [
    "Просмотр — только разрешённые записи и результаты.",
    "Исполнение — ввод и исправление в пределах назначенных задач.",
    "Согласование — подтверждение результата и возврат с причиной.",
    "Администрирование — пользователи, справочники и версии правил."
  ],
  "custom": "Возможна разработка отдельного решения под уникальный процесс, собственные правила, интерфейсы и инфраструктуру компании."
}