Перейти к содержимому

Ревизии листа и история загрузок

Что это и зачем

Главная единица учёта в рабочей документации — лист, а не документ. У листа есть ревизии — последовательные версии файла листа, которые автор загружает по мере доработки. Документ при этом — просто папка, объединяющая листы одной темы; своих ревизий и своего lifecycle у документа нет.

Этой страницей пользуются:

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

Как это устроено

Ключевые понятия:

  • Лист — позиция в реестре проекта. Имеет постоянный внутренний идентификатор, который не меняется ни при каких загрузках, переименованиях файлов или переутверждениях. Это «логическая страница» — например, «КР-3, лист 4 — Общие данные».
  • Ревизия листа — состояние одной страницы листа в одной загрузке. У листа ревизии последовательно нумеруются: ревизия 1, ревизия 2, ревизия 3. В каждый момент у листа есть одна текущая ревизия — последняя успешно загруженная.
  • Пакет загрузки автора — рабочая единица одной отправки на проверку. Когда автор загружает PDF на проверку, для каждой страницы, которую валидатор сопоставит с листом реестра, создаётся новая ревизия соответствующего листа. Пакет проходит этапы валидации, согласования и утверждения. По завершении он закрывается, но ревизии листов остаются в системе как часть истории каждого листа.
  • Документ — папка для группировки листов в реестре. У документа нет своих ревизий, нет «текущей версии документа», нет общего статуса. Когда говорят «состояние документа», это всегда производное от состояний его листов.

Получается такая картина: один документ → много листов → у каждого листа сквозная история ревизий, которая может не совпадать с историей ревизий других листов того же документа.

Как обычно работают

Первая загрузка документа:

  1. Автор отправляет PDF из, например, 10 страниц → валидатор сопоставляет страницы с листами реестра.
  2. Для каждого сопоставленного листа создаётся ревизия 1.
  3. Эта ревизия проходит маршрут (валидация → согласование → утверждение) и каждый лист получает свой статус публикации.

Повторная загрузка (исправления):

  1. Автор отправляет новый PDF — например, только 3 страницы с правками по тем листам, к которым были замечания.
  2. Валидатор сопоставляет эти 3 страницы с соответствующими листами реестра. По ним создаются ревизии 2 (или 3 — следующая по счёту у каждого листа).
  3. Листы, которых нет в новом PDF, остаются на прошлой ревизии и в прошлом статусе — их новый цикл вообще не касается. Это штатное поведение, не пропуск.
  4. Пакет проходит маршрут заново — но только по тем листам, для которых были созданы новые ревизии.

Какая ревизия используется на стройке

В каждый момент у листа есть одна текущая ревизия — последняя успешно загруженная. Именно она физически «живёт на стройке» через штамп QR: распечатка с QR ведёт на этот лист в его актуальном состоянии.

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

«Актуальная» в разговоре может означать (подробнее о статусах и метке «Можно использовать» — единый словарь):

  • актуальная для просмотра — текущая ревизия листа (то, что физически открывается по QR);
  • актуальная для работы — ревизия листа, по которой прямо сейчас идёт согласование (может ещё не быть утверждена, тогда «на стройке» — предыдущая опубликованная);
  • последнее утверждённое состояние — последняя ревизия листа, по которой утверждающий принял положительное решение.

Применительно к документу слова «актуальная версия документа» в листоцентричной модели смысла не имеют: документ — это набор листов, у которого нет одной общей версии. Каждый лист идёт по своему ритму ревизий.

Постоянный идентификатор листа

У каждого листа в системе есть постоянный внутренний идентификатор, который не меняется при загрузке новых ревизий. Например, «Лист 4 — Общие данные» получает этот идентификатор при первом появлении в реестре и сохраняет его, пока документ существует.

Благодаря этому:

  • На карточке листа видна вся история: появление, замечания, решения, публикации — за все ревизии сразу.
  • Открытые замечания не пропадают при загрузке новой ревизии — они наследуются на следующую ревизию (см. ниже).
  • Сравнение «было / стало» между ревизиями работает по этому постоянному идентификатору.

Что происходит с листами при повторной загрузке

Когда автор отправляет новый PDF, валидатор сопоставляет страницы с листами реестра. Возможны такие варианты для конкретного листа:

  • «Без изменений» — лист тот же самый, страница пришла идентичная прошлой ревизии. Можно отметить как без существенных изменений.
  • «Изменился» — страница есть в обеих ревизиях, но содержимое поменялось. Создаётся новая ревизия листа.
  • «Новый» — лист появился впервые. Создаётся ревизия 1 для нового листа реестра.
  • «Нет в загрузке» — лист есть в реестре, но автор его в этой загрузке не присылал. Лист остаётся на прошлой ревизии — это нормальное состояние.
  • «Требует проверки» — система не уверена в соответствии, валидатор решает вручную.

Реже бывают сложные ситуации: один лист разделили на два, или два листа слили в один. В этих случаях валидатор подтверждает связь вручную на этапе сопоставления.

Наследование замечаний между ревизиями

Когда у листа создаётся новая ревизия:

  • Открытые замечания прошлой ревизии переходят на новую: создаются соответствующие записи, привязанные к новой ревизии. Разметка на PDF переносится (с теми же координатами; если страница изменилась по размеру или повёрнута — UI делает best-effort пересчёт точки).
  • Закрытые или устранённые замечания не переносятся — они остаются в истории прошлой ревизии.
  • Решения согласующих и утверждающих не наследуются — для новой ревизии нужен новый цикл решений.

Подробнее про сами замечания — Замечания: обзор.

Где видна история листа

В Карточке листа есть блок «История листа» — единая лента событий:

  • Появление каждой новой ревизии.
  • Запуски процессов и решения по ним.
  • Создание и закрытие замечаний.
  • Публикации.

События сгруппированы по ревизиям, чтобы было видно, что происходило именно с этой версией листа.

Как сравнить ревизии

Сравнение «было / стало» делается на странице «Сравнение ревизий»: для каждого изменённого листа система показывает наложение старой и новой ревизии с подсветкой различий. Подробно — Сравнение ревизий.

Сравнить можно из двух мест:

  • Из экрана работы с пакетом загрузки (когда идёт валидация) — список листов с пометками «изменился / без изменений / новый» и кнопкой «Разница».
  • Из карточки листа — переход «ревизия N-1 → ревизия N» прямо из истории.

Сборка PDF документа целиком

Иногда нужен единый PDF документа — все его листы в одном файле, в порядке реестра. Например, для печати, отправки заказчику, архивирования.

Такой PDF — это отчётный артефакт, а не lifecycle-сущность. Принципы:

  • Сборка делается из текущих ревизий листов на момент запроса. Каждый лист попадает в неё в своём актуальном состоянии — может оказаться, что часть листов на ревизии 2, часть на ревизии 3, часть — на ревизии 1.
  • Сборка может быть устаревшей — это нормально. Если листы поменялись после последней сборки, при следующем запросе соберётся свежая.
  • Сборка не блокирует решения по листам: утверждающий нажал «утвердить» по 7 листам → листы получили статус мгновенно, а сборка выполнится отдельно, обычно за минуту.

Скачать единый PDF можно из карточки документа или с главного экрана РД — см. Открытие и скачивание документов.

Частые ошибки

  • «Загрузил документ — это новая версия всего документа». Нет: каждая страница загруженного PDF — это новая ревизия конкретного листа. Листы, которых нет в этой загрузке, не меняются.
  • «Где актуальная версия документа?» Такого понятия нет. Документ — это группа листов, у каждого своя текущая ревизия. Используйте «Карточку листа» или «Сборку PDF документа» — там виден агрегат.
  • «Замечание потерялось при перезаливке». Открытые замечания наследуются на новую ревизию листа. Если не видно — проверьте, что вы смотрите карточку правильного листа и его текущую ревизию.
  • «Сравниваю ревизии “через одну” после нескольких итераций». Если у листа сделано «ревизия 1 → ревизия 2 → ревизия 3», сравнение «1 vs 3» покажет накопленные правки и собьёт с толку. Лучше идти последовательно: «1 vs 2», потом «2 vs 3».
  • «Открыл старую ревизию вместо текущей». На стройке должен быть лист из текущей ревизии. Старые ревизии видны, но рабочими не считаются.

Связанные страницы