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

data

Блок data — как объявить источники данных, почему имя источника пишется латиницей и что из этого попадает в запрос.

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

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

Блок data { } объявляет источники данных — объекты конфигурации, из которых строится запрос. Каждый источник получает короткое имя (латиницей), по которому на него ссылаются соединения.

Назначение#

Источники — основа генерации кода: только спецификация с хотя бы одним источником запускает генерацию запроса в модуль формы при сборке. Внутри блока также пишут список полей (fields), соединения (Соединения: left_join, inner_join, right_join), строку rows (rows) и отбор по периоду (where и filter period).

Синтаксис#

Spec1C
data {
  <имя> = <Вид>.<ИмяОбъекта>
    fields: <Поле1>, <Поле2>
}

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

Элементы#

ЭлементОбязателенЧто означает
<имя>даимя источника: латинская буква или _, затем латинские буквы, цифры, _
=дасвязывает имя с объектом
<Вид>даСправочник, Документ, РегистрСведений, РегистрНакопления, РегистрБухгалтерии, Перечисление, Обработка, Отчет
<ИмяОбъекта>даимя объекта, как в конфигурации; можно продолжить через точку (Документ.Заказ.Товары)

Пример#

Spec1C
spec1c {
  report contracts
    title:  "Договоры"
    target: ordinary

  data {
    contracts = Справочник.КлиентскиеДоговора
      fields: Ссылка, Код, ДатаДоговора

    amendments = РегистрСведений.ДокументыИзменяющиеУсловияДоговора
      fields: Договор, Период
  }
}

Кириллическое имя источника не распознаётся: источник не появится, а сообщения об ошибке не будет.

Spec1C
spec1c {
  report contracts
  data {
    договоры = Справочник.КлиентскиеДоговора
      fields: Ссылка
  }
}

Что принимает разбор#

  • Восемь видов объектов из таблицы. Путь conf.Справочник.…, ПланСчетов.… и другие виды не распознаются — строка пропускается без сообщения.
  • Имя источника — только латиница. Кириллическое имя (договоры = …) пропускается без сообщения.
  • Если в спецификации нет блока data { }, разбор выдаёт предупреждение «нет блока data { }». Пустой блок data { } предупреждения не даёт.
  • Блок заканчивается на первой закрывающей }. Если внутри data оказалась другая пара скобок, всё после неё теряется без сообщения.
  • Повтор имени не считается ошибкой: в модели будут два источника с одинаковым именем, и поля второго могут оказаться у первого. Не повторяйте имена.

Что попадает в модель#

Для каждого источника: имя, путь к объекту, выбранные поля и вид объекта. Вид распознаётся для справочника, документа, регистра сведений и регистра накопления; источники остальных видов записываются в модель как справочник. Источники видны на вкладке Intent → «Данные» карточками вида «Catalog Справочник.…».

Список источников в модели заменяется целиком, только если в новом тексте есть хотя бы один источник. Если удалить весь блок data или все источники, при «Применить без сборки» модель сохранит старые источники. Чтобы убрать источник, замените его другим или создайте новый файл.

Что проверяется#

Имена объектов и полей не проверяются: в облачной среде конфигурация не загружается. Опечатка в Справочник.КлиентскиеДоговора обнаружится только в 1С при выполнении запроса. «Проверить модель Spec1C» при наличии источников всегда показывает «✗ Конфигурация не загружена — загрузите Conf в навигаторе (нужна для источников / запросов)» — это замечание не мешает сборке.

Что генерируется в BSL#

Первый источник становится основной таблицей запроса, остальные подключаются только через соединения (Соединения: left_join, inner_join, right_join). Псевдоним таблицы — последняя часть пути к объекту (КлиентскиеДоговора), а не имя источника из спецификации. Фрагмент живой сборки:

BSL
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	КлиентскиеДоговора.Ссылка КАК Ссылка,
	|	КлиентскиеДоговора.Код КАК Код
	|ИЗ
	|	Справочник.КлиентскиеДоговора КАК КлиентскиеДоговора
	|";
	РезультатЗапроса = Запрос.Выполнить();

Если в спецификации есть источники, перед сборкой Studio может попросить подтверждение: код будет записан в модуль формы, в окне указано число источников. Код попадает в зону между маркерами // >>> SPEC1C_EMIT_BLANK_BEGIN и // <<< SPEC1C_EMIT_BLANK_END модуля формы собранного файла. Что происходит с результатом запроса, зависит от target (report).

Работа в 1С#

В 1С запросы не выполнялись. Запрос выполнится, если объекты и поля существуют в вашей конфигурации. Источник, не соединённый с основным, в запрос не попадает, хотя его поля попадают в список выборки (по исходному коду генератора, см. fields) — такой запрос в 1С, скорее всего, не выполнится. Объявляйте второй источник вместе с соединением.

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

  • Имя источника — только латиница.
  • Неизвестный вид объекта, путь с conf. и объявление с полями на той же строке пропускаются без сообщения.
  • Удаление источников не очищает модель.
  • Вложенные { } внутри data обрезают блок.
  • Объекты и поля не проверяются по конфигурации.

Полный список — Ограничения реализации. Как писать пути к объектам — Ссылки на метаданные.

Связанные конструкции#

См. также

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

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

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