Как Studio обрабатывает спецификацию
Шесть шагов от текста Spec1C до готового файла .epf или .erf и что на каждом шаге может остановить применение или сборку.
Перед чтением
- Естественный язык, Spec1C и BSL Понятие
На этой странице
Текст Spec1C не превращается в файл за один шаг. Studio разбирает его, переносит результат в модель, проверяет, генерирует код и только потом собирает файл. Понимание этих шагов помогает понять, почему сборка остановилась или почему изменение текста не дало эффекта.
Коротко#
- Текст — то, что вы пишете в редакторе Spec1C.
- Разбор — Studio находит в тексте знакомые конструкции.
- Модель — найденное переносится в модель отчёта проекта.
- Проверки — проверка команд регистров и, по запросу, проверка модели.
- Генерация кода — по модели пишется запрос в модуль формы собранного файла.
- Упаковка — сервис сборки собирает файл
.epfили.erf.
Шаги 2–4 выполняет «Применить без сборки». Кнопка «Собрать» выполняет все шаги. Ошибка на раннем шаге останавливает всё, что идёт после.
Шаг 1. Текст#
Текст набирается в редакторе этапа Spec1C. Пока он не применён, это просто черновик: в строке состояния редактора видна отметка «изменено», а модель проекта не меняется. Текст сохраняется в проекте и восстанавливается при повторном открытии; при открытии сохранённая спецификация снова применяется к модели.
Текст может построить и сама Studio — из модели, когда вы работаете на вкладках Intent «Данные» и «Вывод». Как это связано с вашими правками, описано в Связь Intent и Spec1C.
Шаг 2. Разбор#
Разбор ищет в тексте конструкции, описанные в справочнике: report, title, target, params, data, соединения, where, show, balance и другие. Результат — одно из трёх:
- ошибка — текст пустой или в нём нет ни
report, ни источников, ни команд; применение отменяется; - предупреждение — например, нет блока
data { }; применение продолжается; - молчаливый пропуск — строка, которую разбор не узнал, просто не учитывается. Сообщения об этом нет.
Последний случай важен: опечатка в ключевом слове, кириллический идентификатор источника или неподдерживаемая конструкция не дают ошибки — они не дают ничего. Проверяйте результат по уведомлению «Spec1C → модель · источников N» и на вкладке Intent «Данные».
Шаг 3. Модель#
Если ошибок разбора нет, найденное накладывается на модель отчёта: источники, соединения, поле периода, имя макета и т. д. Накладывается только то, что есть в тексте. Если из текста удалить блок, соответствующая часть модели не очищается — она остаётся от прежней спецификации. Подробно — Модель спецификации.
Шаг 4. Проверки#
Проверок две, и они независимы.
Проверка команд регистров. Для balance и turnovers Studio проверяет, что перечисленные в by имена — измерения регистра. Для этого нужна загруженная конфигурация, а в облачной среде её нет. Поэтому при применении в журнале появляется «✗ 3.5 3.5: нет пути conf — нельзя проверить by по Index», а в уведомлении — «· 3.5 ошибок 1». Модель при этом обновляется, но сборка такой спецификации останавливается.
Проверка модели. Выполняется только по команде «Ещё» → «Проверить модель Spec1C». Она проверяет текущую модель, а не текст в редакторе: если вы изменили текст и не применили его, проверка этих изменений не увидит. Замечания проверки ничего не блокируют. В облачной среде при наличии источников всегда есть замечание о незагруженной конфигурации — оно не мешает сборке.
Шаг 5. Генерация кода#
Выполняется только при сборке и только если в модели есть хотя бы один источник данных. Перед генерацией Studio может спросить подтверждение: модель неполная относительно открытого файла, код будет записан в модуль формы. В живых прогонах окно появлялось и для нового файла. Если отказаться — «Сборка отменена — модель неполная».
Генерация идёт в копию исходников на стороне сервиса сборки: код появляется только в собранном файле, а исходники проекта на этапе Source не меняются. Как устроена зона генерации и какой код получается — Генерация BSL и зоны генерации.
Шаг 6. Упаковка#
Сервис сборки собирает файл из исходников (с кодом, сгенерированным на шаге 5, если он был). В журнале появляются строки об успешных шагах генерации и упаковки в облаке и «✓ Собрано: <имя>.epf — нажмите «Скачать»». Если спецификация пустая или без источников, упаковываются текущие исходники без генерации.
Что делает каждая команда#
| Команда | Разбор и модель | Проверка регистров | Проверка модели | Генерация | Упаковка |
|---|---|---|---|---|---|
| «Применить без сборки» | да | да | нет | нет | нет |
| «Проверить модель Spec1C» | нет | нет | да | нет | нет |
| «Собрать .epf» / «Собрать .erf» | да, если текст изменён после применения | да, если есть источники | нет | да, если есть источники | да |
Перед сборкой Studio сохраняет текст Intent и Spec1C в проекте.
Что останавливает процесс#
| Шаг | Сообщение | Применение | Сборка |
|---|---|---|---|
| Разбор: пустой текст | «Spec1C пуст — заполните Intent / Данные или введите спецификацию» | не выполняется | не выполняется |
| Разбор: ошибка | «Spec1C: <текст ошибки>», при сборке — «Сначала исправьте ошибки в Spec1C» | не выполняется | не выполняется |
| Разбор: предупреждение | «· 1 предупр.» в уведомлении | выполняется | выполняется |
| Проверка регистров | «Сборка остановлена: 3.5: нет пути conf — нельзя проверить by по Index» | выполняется | останавливается |
| Подтверждение генерации | «Сборка отменена — модель неполная» | — | останавливается, если отказаться |
| Генерация или упаковка | «Не удалось собрать файл в Smart1Spec Cloud.» и причина | — | останавливается |
| Проверка модели | «Замечаний: N» | не влияет | не влияет |
Все сообщения с причинами и действиями — Сообщения об ошибках и предупреждения.
Что из этого следует#
- Применяйте спецификацию («Применить без сборки») после каждой заметной правки и смотрите число источников в уведомлении: это самый быстрый способ заметить молча пропущенную строку.
- «Проверить модель Spec1C» запускайте после применения, а не вместо него.
- Удаление блока из текста не удаляет его из модели. Чтобы избавиться от источника или поля периода, замените блок другим или начните с нового файла.
- Спецификация с
balanceилиturnoversв облачной среде не собирается. - Код из спецификации ищите в скачанном файле (в 1С), а не на этапе Source.
- Пошагово: применение — Применить спецификацию без сборки, сборка — Собрать файл по спецификации, уровни сообщений — Уровни диагностики.
См. также
- Уровни диагностики Понятие
- Модель спецификации Справочник
- Генерация BSL и зоны генерации Понятие
- Применить спецификацию без сборки Руководство
- Собрать файл по спецификации Руководство
Сверено с продуктом: 27.10.2026