Прочитать готовую спецификацию
Как построчно прочитать спецификацию Spec1C и понять, что каждая строка изменит в модели и в собранном файле.
Перед чтением
- Язык Spec1C: обзор Обзор
На этой странице
Спецификация на этапе Spec1C — это текст, по которому Studio строит модель отчёта и, если в нём есть источники данных, генерирует код запроса в модуль формы собранного файла. Эта страница помогает прочитать чужую или автоматически построенную спецификацию и понять, что из написанного действительно на что-то влияет.
Когда это нужно#
- Вы открыли проект и хотите понять, что описано в спецификации, прежде чем её менять.
- Коллега передал вам текст спецификации, и нужно оценить, что получится после сборки.
- В редакторе оказался текст, который вы не писали: Studio построила его из модели.
Перед началом#
- Откройте проект и файл, затем этап Spec1C на панели этапов.
- Учтите: если вы загрузили существующий файл
.epfили.erf, спецификация не восстанавливается из него. В редакторе будет рабочий шаблон или текст, построенный из модели, а не описание вашего файла. - Пока вы ничего не меняете в тексте, чтение ничего не меняет в проекте.
Шаги#
- Найдите строку
report …. Сразу под ней —title:(заголовок) иtarget:(вид генерируемого кода). - Найдите блок
params { … }, если он есть. Учитываются только несколько известных имён — см. таблицу ниже. - Прочитайте блок
data { … }: каждая строка видаимя = Вид.Имя— источник данных, строкаfields:под ней — его поля. - Найдите в блоке
dataстроки|> …_join(соединение) иwhere … betweenилиfilter period on …(отбор по периоду). - Найдите вне блока
dataстрокиlayout: maket "…",format: xlsx, командыshow,include list,balance,turnovers. - Сверьте каждую найденную строку с таблицей «Что значит каждая строка» и отметьте, что попадёт в код, а что нет.
- Если нужно убедиться, что Studio поняла текст так же, нажмите «Ещё» → «Применить без сборки». В уведомлении «Spec1C → модель · источников N» число источников должно совпасть с числом строк
имя = Вид.Имя. Помните: этот шаг обновляет модель проекта по тексту — см. Применить спецификацию без сборки.

Пример для чтения#
spec1c {
report contracts
title: "Договоры за период"
target: ordinary
params {
ТолькоДействующиеНаКонец : bool = true
}
data {
contracts = Справочник.КлиентскиеДоговора
fields: Ссылка, Код, ДатаДоговора
amendments = РегистрСведений.ДокументыИзменяющиеУсловияДоговора
fields: Договор, Период
rows = contracts
|> left_join amendments on amendments.Договор == contracts.Ссылка
where ДатаДоговора between ПериодT
}
view {
print Отчет
layout: maket "м_Отчет"
export Excel
format: xlsx
}
}Что значит каждая строка#
| Строка | Смысл | Что изменится после применения и сборки |
|---|---|---|
spec1c { … } | необязательная обёртка | ничего |
report contracts | идентификатор отчёта | сохраняется в модели; в код не попадает |
title: "…" | заголовок | сохраняется в модели; в сгенерированном коде виден только как комментарий «Отчёт: …». Имя файла не меняется |
target: ordinary | вид генерируемого кода | ordinary — запрос и сообщение с числом строк; managed — код управляемой формы с макетом. Подробнее — Соответствие конструкций и BSL |
params { … } | параметры | в модель попадают только известные имена (ТолькоДействующиеНаКонец…, ВыводитьВсеДоп…, ВыгружатьXLSX, КаталогВыгрузки); остальные теряются. На сгенерированный код в облачной сборке не влияют |
contracts = Справочник.… | источник данных | таблица в запросе (ИЗ). Имя источника — только латиницей |
fields: … | поля источника | список полей запроса (ВЫБРАТЬ). Относится к источнику, объявленному выше |
rows = … | строка с выражением строк | сохраняется, но ни на что не влияет |
|> left_join … on … == … | соединение | в запросе всегда ЛЕВОЕ СОЕДИНЕНИЕ, даже для inner_join и right_join |
where ДатаДоговора between ПериодT | отбор по периоду | запоминается только имя поля; в запросе — ГДЕ … МЕЖДУ &ДатаНачПериода И &ДатаКонПериода. Реквизитов периода в новом файле нет |
view { … }, print, export | декоративный контейнер | сами слова ни на что не влияют |
layout: maket "м_Отчет" | имя макета | в коде только при target: managed; самого макета в новом файле нет |
format: xlsx | выгрузка в Excel | сохраняется в модели, но кода выгрузки не генерируется |
show attributes … | просмотр объекта в инспекторе | в код не попадает; без конфигурации инспектор показывает ошибку |
include list … | список на форме | сохраняется в модели; в собранный файл список не выводится |
balance …, turnovers … | остатки и обороты регистра | в облачной среде сборка с ними останавливается |
Если в тексте встречаются compute { … }, screen { … }, form { … }, select … into, output … mapping, template: — разбор их не учитывает, даже если редактор подсвечивает эти слова. Список — Неподдерживаемые конструкции.
Результат#
- Вы знаете, какие строки спецификации попадут в модель и в сгенерированный запрос, а какие сохраняются только как текст.
- Вы понимаете, что успешная сборка по этой спецификации даст черновик запроса в модуле формы, который нужно проверить и доработать в 1С: Studio не проверяет, что объекты и поля есть в вашей конфигурации.
Полная таблица «конструкция → код» — Соответствие конструкций и BSL, матрица поддержки — Матрица поддержки конструкций.
Если не получилось#
| Что видно | Что это значит |
|---|---|
| Текст спецификации не похож на загруженный файл | Так и должно быть: спецификация из файла не восстанавливается. Для правок существующего файла см. Выбрать: Spec1C или правка BSL. |
В тексте есть блоки compute, screen, view с table и actions, которых вы не писали | Studio построила текст из модели автоматически. Эти блоки разбор не учитывает — на результат влияют только строки из таблицы выше. |
После «Применить без сборки» источников меньше, чем строк имя = … | Имя источника написано кириллицей или строка содержит лишний текст. Имена источников — только латиницей, см. data. |
| Уведомление «Spec1C: не найден report и источники data» | В тексте нет ни report, ни распознанных источников — см. Сообщения об ошибках и предупреждения. |
См. также
- Модель спецификации Справочник
- Соответствие конструкций и BSL Справочник
- Матрица поддержки конструкций Справочник
- Ограничения реализации Справочник
- Изменить заголовок, параметры и поля Руководство
Сверено с продуктом: 27.10.2026