Ограничения реализации
Пронумерованный список того, что текущая реализация Spec1C не умеет или делает иначе, чем можно ожидать, — разбор, модель, проверки, генерация кода, облачная среда.
Перед чтением
- Обзор справочника и совместимость Справочник
На этой странице
Здесь собраны ограничения текущей реализации языка Spec1C. Нумерация сквозная, чтобы на пункт можно было сослаться. Для многих пунктов указан обход.
Назначение#
Страница отвечает на вопрос «почему моя конструкция не сработала» и помогает заранее понять, что придётся доделать в Конфигураторе. Конструкции, которых в языке нет вовсе, перечислены в Неподдерживаемые конструкции; сводка по уровням — в матрице поддержки. Ограничения Studio в целом (не языка) — Ограничения текущей версии.
Разбор текста#
- Разбор ищет конструкции по образцам в тексте, а не строит полное дерево. Блоки
params { }иdata { }заканчиваются на первой}: вложенные фигурные скобки внутри них не поддерживаются. - Учитывается только первый блок
data { }; второй блок в том же тексте пропускается без сообщения. - Имя источника данных слева от
=— только латиница, цифры и_. Источник с кириллическим именем молча пропускается. - Строка
fieldsотносится к последнему объявленному источнику, но распознаются только источники видовСправочник,Документ,РегистрСведений,РегистрНакопления. После источника видаРегистрБухгалтерии,Перечисление,ОбработкаилиОтчетстрокаfieldsзаменяет поля предыдущего источника. Обход: для таких объектов не указывайтеfieldsили опишите их запросом в Конфигураторе. - Комментарий
//снимается до разбора по всей строке, включая текст в кавычках:title: "см. https://…"теряет заголовок. Экранирование кавычек внутри строк не поддерживается. targetраспознаётся только какordinaryилиmanagedстрочными буквами; другие значения игнорируются без сообщения.- Соединение — одно равенство двух полей через
==. Строка с=, безonили с составным условием пропускается без сообщения. - Из
where … between …запоминается только имя поля. Словоwhereраспознаётся в любом месте текста, в том числе внутри неподдерживаемой конструкции (например,select … where Дата …), и задаёт поле периода. - Неподдерживаемые конструкции и неизвестные имена параметров пропускаются без ошибки и предупреждения — см. Неподдерживаемые конструкции.
Модель#
- «Применить без сборки» не очищает модель: если в новом тексте нет источников, соединений, поля периода, команд
show,include list,balance/turnovers, прежние значения остаются. Наблюдалось живьём: после удаленияwhereсобранный код всё равно содержал условиеГДЕ … МЕЖДУ …. Обход: заменять блок новым, а не удалять; при сомнении — создать новый файл. - В
paramsв модель попадают только известные имена (ТолькоДействующиеНаКонец…,ВыводитьВсеДоп…,ВыгружатьXLSX) с типомboolиКаталогВыгрузки : Path. Прочие имена и типы теряются. rows = …сохраняется, но ни на что не влияет: порядок и состав соединений задают строки|>.
Проверки#
- Имена объектов и полей конфигурации не проверяются: в облачной среде конфигурацию загрузить нельзя. Опечатка обнаружится только в 1С при выполнении запроса.
- «Проверить модель Spec1C» в облачной среде при наличии источников всегда даёт замечание «Конфигурация не загружена…». Оно не мешает сборке.
- Проверка измерений
byуbalanceиturnoversтребует конфигурацию, поэтому в облачной среде всегда завершается ошибкой, и сборка останавливается. Остатки и обороты в облачной среде собрать нельзя.
Генерация кода#
- В коде всегда
ЛЕВОЕ СОЕДИНЕНИЕ, даже дляinner_joinиright_join. Обход: заменить вид соединения в Конфигураторе. target: ordinaryдаёт только запрос, цикл подсчёта строк и сообщение с их числом. Макет, табличный документ и вывод на экран не генерируются, даже если указанlayout.target: managedдля нового файла вставляет код управляемой формы в обычную форму: директива&НаКлиентевыводится дважды подряд, табличный документ на форму не выводится. Ожидаемо модуль не скомпилируется в 1С (не проверялось). Обход: использоватьtarget: ordinary.- Код с периодом ссылается на реквизиты
ДатаНачПериодаиДатаКонПериода, вариантmanaged— на макет ("Макет"или имя изlayout) с областями «Шапка» и «Строка». В новый файл Studio их не добавляет (проверено распаковкой). Обход: добавить в Конфигураторе или не использоватьwhere/layoutдля нового файла. format: xlsx,params,section,rows,show,include listкод не дают.- Одноимённые поля разных источников попадают в выборку один раз — из источника, объявленного первым. Если полей не указано ни у одного источника, выбирается только
Ссылкаосновного источника. - Для
balanceиturnoversресурс зашит:КоличествоОстаток/КоличествоОборот;forуturnoversпериод не задаёт. В облачной среде это не проявляется — сборка останавливается раньше (пункт 15). - Код генерируется только в собранный файл; в исходниках проекта зона генерации остаётся шаблонной. Служебные комментарии в начале зоны и текст сообщения содержат внутренние пометки и прежнее название продукта.
Облачная среда и продукт#
- Конфигурацию в облачной среде загрузить нельзя: подсказки Ctrl+Space по справочникам и регистрам и просмотр метаданных по
showнедоступны. - Файл
.spec1cможно скачать («Ещё» → «Скачать Spec1C»), но загрузить готовый файл спецификации нельзя — текст вставляется в редактор. - Spec1C не исполняется в 1С: в 1С работает только сгенерированный или написанный вручную BSL.
- Подсветка редактора выделяет слова, которых разбор не понимает (
compute,select,from,output,form,Period,Date), а список подсказок по Ctrl+Space предлагаетoutput, которого в языке нет. Словаinner_joinиright_joinв списке подсказок отсутствуют, хотя поддерживаются.
Ограничения#
Эта страница сама является перечнем ограничений. Каждый пункт сверен с текущей реализацией на дату проверки; пункты 17–19 о поведении в 1С — ожидание по тексту кода, в 1С собранные файлы не открывались. Тексты сообщений, упомянутых здесь, — в Сообщения об ошибках и предупреждения.
См. также
- Неподдерживаемые конструкции Справочник
- Ограничения текущей версии Справочник
- Матрица поддержки конструкций Справочник
- Соответствие конструкций и BSL Справочник
- Сообщения об ошибках и предупреждения Справочник
Сверено с продуктом: 27.10.2026