Перейти к содержанию

RPD · слои представления: forms и print

Домен: D06 · Применимость: ВУЗ, СПО, ДПО, Аспирантура (ДО — partial) Статус: draft · Тип: best-practice (референсная реализация, не норма)

Референс того, как показывать, печатать и восстанавливать РПД поверх единого JSON-Двойника. Это слой представления и реализации — он сознательно вынесен из стандарта.

Граница «норма ↔ реализация»

Норма (живёт в standards/rpd/ и data-model/entities.md, сущность 1.6):

  • content — каноническое содержание РПД;
  • fieldRegistry — реестр реквизитов (путь, тип, применимость, источник, подписи);
  • validation, relations — правила и связи;
  • standards/rpd/schema/discipline-program-twin.schema.json — контракт.

Реализация (этот best-practice; в Двойнике — блоки forms / print / reverseImport):

  • как конкретная система рисует форму под уровень образования;
  • как собирает печатный Word/PDF и разбирает его обратно.

Конкретная ОО вправе заменить forms/print своей реализацией (1С-форма, веб-приложение, иной шаблон печати), не трогая норму. Подписи, видимость и правила берутся из fieldRegistry, поэтому представления остаются согласованными между собой и с печатью.

Ключевой принцип

Все восемь форм (по уровням) и печать читают и пишут в один и тот же content по путям. Различается только видимость, подписи и обязательность реквизитов — за счёт профилей форм и поля applicableDirections в реестре. Восьми независимых моделей данных не возникает.

Профиль Полей в форме v0.2.0
DO 76
SPO 82
BACHELOR / SPECIALIST / MASTER / ASPIRANTURA 81
ORDINATURA 80
DPO 73

Состав

Файл О чём
forms.md Слой forms: профили, разрешение применимости, алгоритм построения формы, привязка valueType → контрол, реализация в 1С
print.md Слой print: привязки path → шаблон, renderAs, round-trip; и обратное восстановление reverseImport

Связанные артефакты

  • data-model/entities.md · 1.6 «Рабочая программа дисциплины» — норма-описание.
  • processes/D06-P03.md — процесс разработки/проверки/печати РПД.
  • standards/rpd/schema/…$defs: formsLayer, formProfile, printLayer, printBinding, reverseImportLayer.