Урок 3. Параметры
Блок params в Spec1C — какие имена параметров Studio распознаёт, какие теряются при разборе и почему в облачной сборке параметры не меняют код.
Перед чтением
- Урок 1. Каркас: spec1c и report Обучение
На этой странице
Блок params { } описывает флаги спецификации. Это самый «обманчивый» блок языка: почти любой текст в нём принимается без ошибок, но в модель попадают только несколько имён, а в облачной сборке код от параметров не меняется.
Цель урока#
После урока вы сможете:
- записать параметр так, чтобы он попал в модель;
- отличить параметр, который потерялся при разборе, от принятого;
- не ждать от параметров кода, которого Studio не генерирует.
Что нужно знать#
- Каркас спецификации — Урок 1. Каркас: spec1c и report.
- Блок
paramsпишется на верхнем уровне, рядом сreportиdata, а не внутри них.
Объяснение#
Каждый параметр — отдельная строка вида Имя : тип = значение:
params {
<Имя> : bool = true
КаталогВыгрузки : Path = "<путь>"
}Studio распознаёт только такие имена:
| Имя в тексте | Тип | Что попадает в модель |
|---|---|---|
Содержит ТолькоДействующ (например, ТолькоДействующиеНаКонец) | bool | флаг «только действующие» |
Содержит ВыводитьВсеДоп (например, ВыводитьВсеДопСоглашения) | bool | флаг «все дополнительные соглашения» |
ВыгружатьXLSX | bool | флаг выгрузки в Excel |
КаталогВыгрузки | Path | строка с путём |
Значение bool — только true или false. Строка Path — в двойных кавычках.
Все остальные строки блока принимаются без ошибки и теряются: параметр с другим именем, другой тип (Date, string, Period), значение да/нет. Ни ошибки, ни предупреждения не будет.
Что параметры дают в коде#
При облачной сборке ни один параметр не меняет сгенерированный код:
- флаги «только действующие» и «все дополнительные соглашения» в генерацию кода не передаются;
КаталогВыгрузкиостаётся только в модели;- флаг
ВыгружатьXLSXпри облачной сборке не используется — кода выгрузки в Excel нет (см. также Урок 5. Вывод: макет и Excel).
Параметры полезны как часть описания задачи: их видно в тексте, и они сохраняются в модели проекта. Нужное поведение (отбор, выгрузку) дописывают в модуле.
Полный пример#
spec1c {
report items
title: "Номенклатура с флагами"
target: ordinary
params {
ТолькоДействующиеНаКонец : bool = true
ВыгружатьXLSX : bool = false
КаталогВыгрузки : Path = ""
ПоказыватьАрхив : bool = true
}
data {
items = Справочник.Номенклатура
fields: Ссылка, Код, Наименование
}
}Справочник.Номенклатура — пример из типовой конфигурации; используйте объект, который есть в вашей конфигурации. Studio в облаке имена не проверяет.
Разбор примера#
| Строка | Принята разбором | В модели | Влияет на код облачной сборки |
|---|---|---|---|
ТолькоДействующиеНаКонец : bool = true | да | да | нет |
ВыгружатьXLSX : bool = false | да | да | нет |
КаталогВыгрузки : Path = "" | да | да, пустая строка | нет |
ПоказыватьАрхив : bool = true | да | нет — имя не распознано | нет |
Ожидаемый результат#
После «Ещё» → «Применить без сборки» — уведомление «Spec1C → модель · источников 1». Отдельной строки про параметры в уведомлении нет, и на экране Studio значения параметров не показываются.
| Уровень | Что получится |
|---|---|
| Разбор | Ошибок нет; все четыре строки приняты |
| Модель | Три распознанных параметра; ПоказыватьАрхив потерян |
| Проверка | Параметры не проверяются |
| Код BSL | Такой же, как без блока params: запрос по источнику и подсчёт строк |
| Работа в 1С | Не проверялась |
Типичные ошибки#
| Что сделали | Что произошло | Как правильно |
|---|---|---|
ТолькоДействующие : bool = да | Строка принята, значение потеряно | true или false |
ПериодОтчета : Period | Строка принята, параметр в модели не появился | Период задают полем в блоке data — Урок 4. Соединения и период |
ВыгружатьXLSX : bool = true и ждёте файл Excel | Флаг в модели, но кода выгрузки нет | Выгрузку пишут в модуле вручную |
Написали params внутри data { } | Блок data обрывается на закрывающей скобке params: источники, объявленные после неё, теряются | params — на верхнем уровне |
Путь КаталогВыгрузки без кавычек | Строка принята, путь не сохранён | Путь в двойных кавычках |
Полный список имён и правил — params, типы значений — Типы и значения.
Упражнение#
- Примените полный пример. Убедитесь, что ошибок нет.
- Замените
trueуПоказыватьАрхивнадаи снова примените. Ошибки тоже не будет — разбор не сообщает о потерянных параметрах. Это и есть главный риск блокаparams. - Соберите файл и сравните модуль формы со сборкой из Быстрый старт — там тот же источник и те же поля. Процедура
Сформироватьсовпадёт: код не зависит от параметров.
Следующий урок#
Урок 4. Соединения и период — соединения источников и отбор по периоду.
См. также
- params Справочник
- Типы и значения Справочник
- Ограничения реализации Справочник
Сверено с продуктом: 27.10.2026