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

Ограничения реализации

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

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

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

Здесь собраны ограничения текущей реализации языка Spec1C. Нумерация сквозная, чтобы на пункт можно было сослаться. Для многих пунктов указан обход.

Назначение#

Страница отвечает на вопрос «почему моя конструкция не сработала» и помогает заранее понять, что придётся доделать в Конфигураторе. Конструкции, которых в языке нет вовсе, перечислены в Неподдерживаемые конструкции; сводка по уровням — в матрице поддержки. Ограничения Studio в целом (не языка) — Ограничения текущей версии.

Разбор текста#

  1. Разбор ищет конструкции по образцам в тексте, а не строит полное дерево. Блоки params { } и data { } заканчиваются на первой }: вложенные фигурные скобки внутри них не поддерживаются.
  2. Учитывается только первый блок data { }; второй блок в том же тексте пропускается без сообщения.
  3. Имя источника данных слева от = — только латиница, цифры и _. Источник с кириллическим именем молча пропускается.
  4. Строка fields относится к последнему объявленному источнику, но распознаются только источники видов Справочник, Документ, РегистрСведений, РегистрНакопления. После источника вида РегистрБухгалтерии, Перечисление, Обработка или Отчет строка fields заменяет поля предыдущего источника. Обход: для таких объектов не указывайте fields или опишите их запросом в Конфигураторе.
  5. Комментарий // снимается до разбора по всей строке, включая текст в кавычках: title: "см. https://…" теряет заголовок. Экранирование кавычек внутри строк не поддерживается.
  6. target распознаётся только как ordinary или managed строчными буквами; другие значения игнорируются без сообщения.
  7. Соединение — одно равенство двух полей через ==. Строка с =, без on или с составным условием пропускается без сообщения.
  8. Из where … between … запоминается только имя поля. Слово where распознаётся в любом месте текста, в том числе внутри неподдерживаемой конструкции (например, select … where Дата …), и задаёт поле периода.
  9. Неподдерживаемые конструкции и неизвестные имена параметров пропускаются без ошибки и предупреждения — см. Неподдерживаемые конструкции.

Модель#

  1. «Применить без сборки» не очищает модель: если в новом тексте нет источников, соединений, поля периода, команд show, include list, balance / turnovers, прежние значения остаются. Наблюдалось живьём: после удаления where собранный код всё равно содержал условие ГДЕ … МЕЖДУ …. Обход: заменять блок новым, а не удалять; при сомнении — создать новый файл.
  2. В params в модель попадают только известные имена (ТолькоДействующиеНаКонец…, ВыводитьВсеДоп…, ВыгружатьXLSX) с типом bool и КаталогВыгрузки : Path. Прочие имена и типы теряются.
  3. rows = … сохраняется, но ни на что не влияет: порядок и состав соединений задают строки |>.

Проверки#

  1. Имена объектов и полей конфигурации не проверяются: в облачной среде конфигурацию загрузить нельзя. Опечатка обнаружится только в 1С при выполнении запроса.
  2. «Проверить модель Spec1C» в облачной среде при наличии источников всегда даёт замечание «Конфигурация не загружена…». Оно не мешает сборке.
  3. Проверка измерений by у balance и turnovers требует конфигурацию, поэтому в облачной среде всегда завершается ошибкой, и сборка останавливается. Остатки и обороты в облачной среде собрать нельзя.

Генерация кода#

  1. В коде всегда ЛЕВОЕ СОЕДИНЕНИЕ, даже для inner_join и right_join. Обход: заменить вид соединения в Конфигураторе.
  2. target: ordinary даёт только запрос, цикл подсчёта строк и сообщение с их числом. Макет, табличный документ и вывод на экран не генерируются, даже если указан layout.
  3. target: managed для нового файла вставляет код управляемой формы в обычную форму: директива &НаКлиенте выводится дважды подряд, табличный документ на форму не выводится. Ожидаемо модуль не скомпилируется в 1С (не проверялось). Обход: использовать target: ordinary.
  4. Код с периодом ссылается на реквизиты ДатаНачПериода и ДатаКонПериода, вариант managed — на макет ("Макет" или имя из layout) с областями «Шапка» и «Строка». В новый файл Studio их не добавляет (проверено распаковкой). Обход: добавить в Конфигураторе или не использовать where / layout для нового файла.
  5. format: xlsx, params, section, rows, show, include list код не дают.
  6. Одноимённые поля разных источников попадают в выборку один раз — из источника, объявленного первым. Если полей не указано ни у одного источника, выбирается только Ссылка основного источника.
  7. Для balance и turnovers ресурс зашит: КоличествоОстаток / КоличествоОборот; for у turnovers период не задаёт. В облачной среде это не проявляется — сборка останавливается раньше (пункт 15).
  8. Код генерируется только в собранный файл; в исходниках проекта зона генерации остаётся шаблонной. Служебные комментарии в начале зоны и текст сообщения содержат внутренние пометки и прежнее название продукта.

Облачная среда и продукт#

  1. Конфигурацию в облачной среде загрузить нельзя: подсказки Ctrl+Space по справочникам и регистрам и просмотр метаданных по show недоступны.
  2. Файл .spec1c можно скачать («Ещё» → «Скачать Spec1C»), но загрузить готовый файл спецификации нельзя — текст вставляется в редактор.
  3. Spec1C не исполняется в 1С: в 1С работает только сгенерированный или написанный вручную BSL.
  4. Подсветка редактора выделяет слова, которых разбор не понимает (compute, select, from, output, form, Period, Date), а список подсказок по Ctrl+Space предлагает output, которого в языке нет. Слова inner_join и right_join в списке подсказок отсутствуют, хотя поддерживаются.

Ограничения#

Эта страница сама является перечнем ограничений. Каждый пункт сверен с текущей реализацией на дату проверки; пункты 17–19 о поведении в 1С — ожидание по тексту кода, в 1С собранные файлы не открывались. Тексты сообщений, упомянутых здесь, — в Сообщения об ошибках и предупреждения.

См. также

Сверено с продуктом: 27.10.2026

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

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