Smart1Spec Документация
Studio
СправочникИзучающий Spec1C

Модель спецификации

Какие элементы Studio получает из текста Spec1C, как они накладываются на модель отчёта при применении и что из них используется при генерации кода.

Перед чтением

На этой странице

Модель спецификации — результат разбора текста: набор элементов, которые Studio нашла в Spec1C. При применении эти элементы накладываются на модель отчёта проекта (Модель отчёта). Ниже — какие элементы бывают и по каким правилам они меняют модель отчёта.

Назначение#

Страница отвечает на вопросы: что именно Studio «поняла» из текста, что из этого сохранится в проекте и что потом используется при сборке. Это нужно, чтобы предсказывать результат применения и объяснять расхождения между текстом и кодом.

Элементы модели#

ЭлементИз какой конструкцииКак меняет модель отчёта при примененииИспользуется при генерации кода
Идентификатор отчётаreport <id>записывается, только если у модели ещё нет идентификаторанет
Заголовокtitle: "…"заменяет, если задантолько в служебном комментарии
Вид формыtarget: ordinary|managedзаменяет, если заданда — выбирает вариант кода
Номер разделаsection: Nзаменяет, если заданнет (в облачной сборке)
Параметрыизвестные имена в paramsзаменяет каждый заданный параметрнет
Источники и их поляпривязки в data, fieldsзаменяют список целиком, если в тексте есть хотя бы один источникда — таблицы и поля запроса
Соединениястроки |>заменяют список целиком, если в тексте есть хотя бы однода — всегда как левое соединение
Строка rowsrows = …в модель отчёта не переноситсянет
Поле периодаwhere, filter period onзаменяет, если найденода — условие МЕЖДУ
Просмотр метаданныхshowзаменяет список, если есть хотя бы одна команданет
Списки на формеinclude listзаменяют список, если есть хотя бы одна команданет
Запросы к регистрамbalance, turnoversзаменяют список, если есть хотя бы одна командада, но в облачной среде сборка останавливается на проверке
Имя макетаlayout: maket "…"заменяет, если заданотолько при target: managed
Выгрузка в Excelformat: xlsxвключает, если есть; выключить из текста нельзянет
Предупреждения—не сохраняются, показываются в уведомлении—
Ошибки—при любой ошибке модель не меняется—

Правила наложения#

  1. Ошибка — ничего не меняется. Если разбор вернул хотя бы одну ошибку, применение отменяется целиком.
  2. Предупреждение — не помеха. «нет блока data { }» не мешает применению.
  3. Только то, что есть в тексте. Отсутствующая в тексте конструкция не сбрасывает соответствующий элемент модели. Удалённый where оставляет прежнее поле периода, удалённый target — прежний вид формы, удалённый блок data — прежние источники.
  4. Списки заменяются целиком. Если в тексте есть хотя бы один источник, список источников модели заменяется списком из текста. Удалить один источник из нескольких можно: просто оставьте в тексте остальные. Удалить последний — нельзя. Так же устроены соединения: если убрать из текста единственное соединение, оно останется в модели и попадёт в запрос.
  5. Включённую выгрузку в Excel из текста не выключить. format: xlsx только включает признак; чтобы выключить, снимите флажок «Сохранить в Excel (.xlsx)» на вкладке Intent «Вывод».

Пример: что останется после замены текста#

Сначала применяется спецификация с полем периода:

Spec1C
report contracts
data {
  contracts = Справочник.КлиентскиеДоговора
    fields: Ссылка, Код, ДатаДоговора
  where ДатаДоговора between ПериодT
}

Затем — спецификация без where:

Spec1C
report contracts
data {
  contracts = Справочник.КлиентскиеДоговора
    fields: Ссылка, Код
}

Вторая спецификация сама по себе поля периода не содержит, но после её применения модель сохранит ДатаДоговора, и сборка сгенерирует условие ГДЕ … ДатаДоговора МЕЖДУ …. Именно так произошло в живой сборке. Чтобы избавиться от поля периода, создайте новый файл и примените вторую спецификацию в нём.

Как увидеть модель#

  • Уведомление после «Применить без сборки»: «Spec1C → модель · источников N», плюс «· N предупр.», «· inspect N», «· include list N», «· queries N», «· 3.5 ошибок N». Число источников — из модели отчёта после наложения.
  • Вкладка Intent «Данные»: источники, поля, соединения.
  • Вкладка Intent «Вывод»: имя макета и флажок «Сохранить в Excel (.xlsx)».
  • «Ещё» → «Проверить модель Spec1C»: строка «Форма ordinary: …» или «Форма managed: …» показывает вид формы в модели.

Ограничения#

  • Модель накапливается: удалить элемент, убрав его из текста, нельзя (кроме удаления части списка, когда в тексте остаётся хотя бы один элемент).
  • rows и каталог выгрузки на код не влияют.
  • Параметры и номер раздела хранятся, но генерацией не используются.
  • Как элементы модели превращаются в код — Соответствие конструкций и BSL; полный список ограничений — Ограничения реализации.

См. также

Сверено с продуктом: 27.10.2026

Нашли неточность? Напишите на [email protected] и укажите адрес страницы.

Smart1Spec · документация описывает текущую версию сервиса.