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

Лексическая структура

Комментарии, идентификаторы, ключевые слова, строки, числа и разделители Spec1C — и как разбор обращается с ними в пограничных случаях.

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

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

Лексическая структура — из каких «слов» состоит текст Spec1C. В Studio нет отдельного этапа деления текста на слова: разбор ищет конструкции по образцам прямо в тексте. Поэтому некоторые правила ниже — это не соглашения языка, а следствия того, как работает разбор.

Назначение#

Страница отвечает на вопросы: как писать комментарии, какими буквами писать имена и ключевые слова, как записываются строки и числа, где нужен перенос строки. Синтаксис конструкций — в Грамматика.

Комментарии#

  • Однострочный комментарий начинается с // и продолжается до конца строки. Комментарии удаляются до разбора.
  • Внутри строки fields: дополнительно допускается /* … */ — так удобно временно убрать поле из списка.
  • В других местах /* … */ комментарием не считается.
Spec1C
// Договоры клиентов
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
Целое число1section
Логическое значение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

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

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