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

rows

Строка rows = … разбирается и сохраняется, но не влияет ни на модель отчёта, ни на сгенерированный код.

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

  • data Справочник
На этой странице

Строка rows = … записывает, какой источник считается основным набором строк. Studio её разбирает и запоминает, но ни на что не влияет: основным источником запроса всегда становится первый источник в блоке data.

Назначение#

Строка rows делает спецификацию читаемой: рядом с ней обычно пишут соединения (|> left_join …), и вместе они читаются как «строки отчёта — это договоры, к которым присоединены изменения условий». Studio сама добавляет rows = <первый источник> в текст спецификации, который формирует по модели. Писать rows вручную не обязательно.

Синтаксис#

Spec1C
rows = <выражение до конца строки>

Элементы#

ЭлементОбязателенЧто означает
rowsнетключевое слово, только внутри блока data { }
=дапосле rows
выражениедалюбой текст до конца строки; обычно имя основного источника

Пример#

Spec1C
spec1c {
  report contracts
    title:  "Договоры и изменения условий"
    target: ordinary

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

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

    rows = contracts
      |> left_join amendments on amendments.Договор == contracts.Ссылка
  }
}

Произвольный текст в rows тоже разбирается без ошибки — это показывает, что строка не проверяется:

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

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

  • Любой текст после rows = до конца строки, включая имя несуществующего источника.
  • Учитывается только первая строка rows и только внутри блока data { }; вне блока она пропускается.
  • Строки соединений |> …, написанные под rows, разбираются отдельно и не зависят от rows (Соединения: left_join, inner_join, right_join).

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

Выражение сохраняется в модели спецификации как текст, но в модель отчёта (которую видно на вкладках Intent и по которой генерируется код) не переносится.

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

Ничего: Studio не проверяет, что в rows указан существующий источник.

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

Ничего. Основная таблица запроса — всегда первый источник в блоке data, независимо от rows. Пример: в живой сборке спецификации с rows = contracts и соединением запрос начинается с первого источника:

BSL
	|ИЗ
	|	Справочник.КлиентскиеДоговора КАК КлиентскиеДоговора
	|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыИзменяющиеУсловияДоговора КАК ДокументыИзменяющиеУсловияДоговора

Если написать rows = amendments, основным источником всё равно останется contracts (по исходному коду генератора).

Работа в 1С#

Строка rows в собранный файл не попадает и в 1С ни на что не влияет. Чтобы сменить основную таблицу запроса, поставьте нужный источник первым в блоке data.

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

  • rows не влияет на модель отчёта и на сгенерированный код.
  • Выражение не проверяется.
  • Порядок таблиц в запросе задаётся только порядком источников в data.

Полный список — Ограничения реализации.

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

См. также

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

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

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