Лексическая структура
Комментарии, идентификаторы, ключевые слова, строки, числа и разделители Spec1C — и как разбор обращается с ними в пограничных случаях.
Перед чтением
- Обзор справочника и совместимость Справочник
На этой странице
Лексическая структура — из каких «слов» состоит текст Spec1C. В Studio нет отдельного этапа деления текста на слова: разбор ищет конструкции по образцам прямо в тексте. Поэтому некоторые правила ниже — это не соглашения языка, а следствия того, как работает разбор.
Назначение#
Страница отвечает на вопросы: как писать комментарии, какими буквами писать имена и ключевые слова, как записываются строки и числа, где нужен перенос строки. Синтаксис конструкций — в Грамматика.
Комментарии#
- Однострочный комментарий начинается с
//и продолжается до конца строки. Комментарии удаляются до разбора. - Внутри строки
fields:дополнительно допускается/* … */— так удобно временно убрать поле из списка. - В других местах
/* … */комментарием не считается.
// Договоры клиентов
report contracts // идентификатор отчёта
data {
contracts = Справочник.КлиентскиеДоговора
fields: Ссылка, /* Код, */ ДатаДоговора
}Регистр букв#
- Ключевые слова пишутся строчными латинскими буквами:
report,data,fields,target,managed. СловаREPORT,Data,Managedне распознаются и молча пропускаются. - Корень
spec1cи словаwhere,filter period,show,include list,balance,turnoversраспознаются в любом регистре, но рассчитывать на это не стоит. - Значения
trueиfalseпишите строчными.TRUEраспознаётся, но превращается в «ложь». - Имена объектов и полей конфигурации пишутся так, как в конфигурации.
Идентификаторы#
| Что | Правило | Пример |
|---|---|---|
Идентификатор источника в data | латинская буква или _, затем латинские буквы, цифры, _ | contracts, src_1 |
Идентификатор отчёта в report | буква (латинская или кириллическая) или _, затем буквы, цифры, _ | contracts, Отчет_1 |
| Имена полей, измерений, реквизитов | буквы, цифры, _; кириллица допустима | ДатаДоговора, Договор |
| Части пути метаданных | как в конфигурации, через точку | Справочник.КлиентскиеДоговора |
Идентификатор источника кириллицей (договоры = Справочник.…) не распознаётся: источник молча пропадает. Идентификатор, начинающийся с цифры, тоже не распознаётся.
Ключевые слова#
Разбор распознаёт:
spec1c, report, title, target, section, params, data, fields, rows, where, filter, period, on, between, left_join, inner_join, right_join, show, attributes, structure, include, list, in, form, as, balance, turnovers, at, for, by, into, layout, maket, format, xlsx, bool, Path, true, false, ordinary, managed.
Слово view разбор как ключевое слово не ищет: блок view { … } — контейнер, внутри которого, как и во всём тексте, находятся layout и format (см. view). Алфавитный указатель со ссылками на конструкции — Указатель ключевых слов.
Подсветка и подсказки — не признак поддержки#
Подсветка редактора выделяет и слова, которых разбор не обрабатывает: compute, select, from, output, Period, Date, conf; подсказки Ctrl+Space предлагают output. Обратное тоже бывает: title, target, section, rows, between, maket, format, xlsx распознаются, хотя и не выделены как ключевые слова. Что поддерживается на самом деле — Матрица поддержки конструкций и Неподдерживаемые конструкции.
Литералы#
| Вид | Пример | Где используется |
|---|---|---|
| Строка | "Договоры клиентов" | title, layout: maket, значение Path |
| Целое число | 1 | section |
| Логическое значение | true, false | параметры bool |
| Путь метаданных | Справочник.КлиентскиеДоговора | data, show, include list, balance, turnovers |
| Ссылка на реквизит обработки | epf.ДатаКонПериода | at, into в balance/turnovers |
Строка — любые символы, кроме кавычки, между двумя прямыми кавычками "…". Экранирования нет: "" внутри строки завершает её. Многострочные строки не поддерживаются. Число в section — только цифры, без кавычек: section: "2" не распознаётся.
Разделители#
| Знак | Назначение |
|---|---|
{ } | границы блоков spec1c, params, data, view |
: | свойство: title: "…", fields: A, B, Имя : bool = true |
= | привязка источника id = Путь, rows = …, значение параметра |
, | список полей в fields, список измерений в by |
. | части пути метаданных и ссылки источник.Поле |
|> | начало строки соединения |
== | равенство в условии соединения; одинарный = не распознаётся |
Блоки params и data заканчиваются на первой закрывающей фигурной скобке. Знак } внутри строки или внутри /* … */ завершит блок раньше времени, и всё после него в блок не попадёт.
Строки и переносы#
Многие конструкции распознаются только целой строкой:
- привязка источника
id = Путь— одна на строке, без продолжения; fields: …— отдельной строкой под привязкой;- объявление параметра — одно на строке.
a = Справочник.Номенклатура fields: Ссылка на одной строке не распознаётся: пропадёт и источник, и поля. Отступы и пустые строки на разбор не влияют.
Поиск по всему тексту#
Разбор находит конструкции по образцам во всём тексте, не учитывая кавычки. Например, title: "report Итоги" без отдельной строки report даст идентификатор отчёта Итоги, а format: xlsx внутри строки включит выгрузку в Excel. Для повторяющихся свойств (report, title, target, section, layout) учитывается первое вхождение.
Ограничения#
- Ключевые слова чувствительны к регистру; слова в другом регистре молча пропускаются.
//внутри строки начинает комментарий.- В строках нет экранирования и переносов.
}внутри блокаparamsилиdata— даже в строке или комментарии/* */— завершает блок.- Нераспознанные слова и строки не дают ни ошибки, ни предупреждения.
- Полный список ограничений — Ограничения реализации.
См. также
- Указатель ключевых слов Справочник
- Грамматика Справочник
- Структура файла и вложенность Справочник
- Типы и значения Справочник
- Неподдерживаемые конструкции Справочник
Сверено с продуктом: 27.10.2026