rows
Строка rows = … разбирается и сохраняется, но не влияет ни на модель отчёта, ни на сгенерированный код.
Перед чтением
- data Справочник
На этой странице
Строка rows = … записывает, какой источник считается основным набором строк. Studio её разбирает и запоминает, но ни на что не влияет: основным источником запроса всегда становится первый источник в блоке data.
Назначение#
Строка rows делает спецификацию читаемой: рядом с ней обычно пишут соединения (|> left_join …), и вместе они читаются как «строки отчёта — это договоры, к которым присоединены изменения условий». Studio сама добавляет rows = <первый источник> в текст спецификации, который формирует по модели. Писать rows вручную не обязательно.
Синтаксис#
rows = <выражение до конца строки>Элементы#
| Элемент | Обязателен | Что означает |
|---|---|---|
rows | нет | ключевое слово, только внутри блока data { } |
= | да | после rows |
| выражение | да | любой текст до конца строки; обычно имя основного источника |
Пример#
spec1c {
report contracts
title: "Договоры и изменения условий"
target: ordinary
data {
contracts = Справочник.КлиентскиеДоговора
fields: Ссылка, Код
amendments = РегистрСведений.ДокументыИзменяющиеУсловияДоговора
fields: Договор, Период
rows = contracts
|> left_join amendments on amendments.Договор == contracts.Ссылка
}
}Произвольный текст в rows тоже разбирается без ошибки — это показывает, что строка не проверяется:
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 и соединением запрос начинается с первого источника:
|ИЗ
| Справочник.КлиентскиеДоговора КАК КлиентскиеДоговора
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыИзменяющиеУсловияДоговора КАК ДокументыИзменяющиеУсловияДоговораЕсли написать rows = amendments, основным источником всё равно останется contracts (по исходному коду генератора).
Работа в 1С#
Строка rows в собранный файл не попадает и в 1С ни на что не влияет. Чтобы сменить основную таблицу запроса, поставьте нужный источник первым в блоке data.
Ограничения#
rowsне влияет на модель отчёта и на сгенерированный код.- Выражение не проверяется.
- Порядок таблиц в запросе задаётся только порядком источников в
data.
Полный список — Ограничения реализации.
Связанные конструкции#
- data — порядок источников определяет основную таблицу.
- Соединения: left_join, inner_join, right_join — соединения, которые обычно пишут под
rows.
См. также
- data Справочник
- Соединения: left_join, inner_join, right_join Справочник
- Соответствие конструкций и BSL Справочник
- Ограничения реализации Справочник
Сверено с продуктом: 27.10.2026