Smart1Spec Документация
Studio
ОбучениеИзучающий Spec1C

Урок 2. Источники данных и поля

Как объявить источники данных в блоке data, выбрать поля через fields и что из этого попадает в запрос модуля формы.

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

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

Блок data { } — главное, ради чего пишут спецификацию: он описывает, из каких объектов конфигурации читать данные и какие поля выбрать. По нему при сборке генерируется текст запроса.

Цель урока#

После урока вы сможете:

  • объявить источник данных и выбрать его поля;
  • предсказать, какой запрос будет сгенерирован;
  • найти источник, который Studio молча не распознала.

Что нужно знать#

  • Каркас спецификации и target — Урок 1. Каркас: spec1c и report. В примерах урока target: ordinary.
  • Имена объектов и полей в примерах взяты из типовой конфигурации. В вашей конфигурации они должны существовать; Studio в облаке их не проверяет — опечатка обнаружится только в 1С при выполнении запроса.

Объяснение#

Внутри data { } каждый источник объявляется отдельной строкой:

Spec1C
<идентификатор> = <Вид>.<Имя>
  fields: <Поле1>, <Поле2>, …
  • Идентификатор — локальное имя источника в спецификации, только латиница, цифры и _, первым символом — буква или _: sales, items_2. Кириллический идентификатор не распознаётся. В сгенерированном коде идентификатор не появляется: псевдоним таблицы в запросе — последняя часть пути объекта (РеализацияТоваровУслуг).
  • Путь объекта начинается с вида метаданных: Справочник, Документ, РегистрСведений, РегистрНакопления, РегистрБухгалтерии, Перечисление, Обработка, Отчет. Подробнее — Ссылки на метаданные.
  • fields: — список полей через запятую на отдельной строке. Он относится к последнему источнику, объявленному выше. Внутри строки можно оставить комментарий /* … */.

Как поля превращаются в запрос:

  • Поля всех источников идут в ВЫБРАТЬ в порядке объявления, каждое — Таблица.Поле КАК Поле.
  • Одинаковое имя поля в двух источниках попадёт в запрос один раз — из первого источника.
  • В ИЗ попадает первый источник. Второй и следующие попадают в запрос только через соединение — Урок 4. Соединения и период.

Полный пример#

Spec1C
spec1c {
  report sales
    title:  "Реализации"
    target: ordinary

  data {
    sales = Документ.РеализацияТоваровУслуг
      fields: Ссылка, Номер, Дата, Контрагент /* покупатель */
  }
}

Разбор примера#

СтрокаЧто происходит
data { … }Блок источников данных
sales = Документ.РеализацияТоваровУслугИсточник с идентификатором sales, вид — документ
fields: Ссылка, Номер, Дата, КонтрагентЧетыре поля источника sales
/* покупатель */Комментарий внутри строки полей, вырезается

Сгенерированный запрос в процедуре Сформировать:

BSL
	Запрос.Текст =
	"ВЫБРАТЬ
	|	РеализацияТоваровУслуг.Ссылка КАК Ссылка,
	|	РеализацияТоваровУслуг.Номер КАК Номер,
	|	РеализацияТоваровУслуг.Дата КАК Дата,
	|	РеализацияТоваровУслуг.Контрагент КАК Контрагент
	|ИЗ
	|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	|";

Ожидаемый результат#

После «Ещё» → «Применить без сборки» — уведомление «Spec1C → модель · источников 1». На этапе Intent на вкладке «Данные» появится карточка источника с полями-флажками. При сборке Studio попросит подтверждение (источников: 1).

УровеньЧто получится
РазборОшибок и предупреждений нет
МодельОдин источник sales с путём Документ.РеализацияТоваровУслуг и четырьмя полями
Проверка«Проверить модель Spec1C» даёт замечание об отсутствии конфигурации — в облаке оно есть всегда и сборке не мешает. Если у первого источника нет полей, появится замечание «У первого источника нет полей». Существование объекта и полей не проверяется
Код BSLЗапрос, как выше, и подсчёт строк
Работа в 1СНе проверялась. Если документа или поля нет в конфигурации, 1С сообщит об ошибке при выполнении запроса

Типичные ошибки#

Что видноПричинаЧто сделать
Уведомление «Spec1C: не найден report и источники data»Источник не распознан, а report в тексте нетПроверьте строку источника по пунктам ниже
Источник есть в тексте, но его нет на вкладке «Данные» и в запросеКириллический идентификатор (договоры = …), источник и fields в одной строке, опечатка в виде объекта (Справочники.…)Латинский идентификатор; источник и fields: — на разных строках; вид — из списка выше
В уведомлении «· 1 предупр.», источников не прибавилосьНе закрыта фигурная скобка } блока data или корня — блок не распознан целикомПроверьте парность скобок
Поля не попали в запросСтрока fields: стоит выше строки источникаПишите fields: сразу под своим источником
Удалили источник из текста, а он остался в моделиЕсли в новом тексте нет ни одного источника, старые не удаляютсяЗамените источник другим, а не удаляйте блок целиком; подробнее — Добавить или удалить источник данных
В 1С ошибка в запросе про поле второго источникаВторой источник объявлен без соединения: его поля есть в ВЫБРАТЬ, а таблицы нет в ИЗДобавьте соединение — Урок 4. Соединения и период

Упражнение#

  1. Добавьте к примеру поле Склад в строку fields:, примените и соберите. Найдите новое поле в тексте запроса.
  2. Замените идентификатор sales на реализации и примените. Ошибки не будет, а уведомление покажет прежнее число источников: в модели остался источник sales из прошлого применения, а новый не распознан. Верните латинское имя.
  3. Замените документ на справочник из вашей конфигурации, например Справочник.Контрагенты с полями Ссылка, Наименование. Примените, соберите и сравните запрос.

Следующий урок#

Урок 3. Параметры — блок params.

См. также

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

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

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