Добавить или удалить источник данных
Как добавить источник данных в блок data, как заменить его и почему удаление блока не очищает модель.
Перед чтением
- Прочитать готовую спецификацию Руководство
На этой странице
Источник данных — строка в блоке data { }, которая связывает латинское имя с объектом конфигурации: contracts = Справочник.КлиентскиеДоговора. По источникам Studio генерирует запрос в модуль формы собранного файла. Добавить источник просто; с удалением есть особенность — модель при этом не очищается.
Когда это нужно#
- В запрос нужно добавить ещё один справочник, документ или регистр.
- Источник указан неверно, и его нужно заменить другим.
- Источник больше не нужен в сгенерированном запросе.
Перед началом#
- Откройте этап Spec1C. Как устроен блок
data— data. - Узнайте точное имя объекта в конфигурации (например, в Конфигураторе). Studio его не проверяет и не подсказывает: в облачной среде конфигурация не загружается.
- Имя источника слева от
=— только латиница, цифры и_, первым символом не цифра.
Шаги#
Добавить источник#
- Внутри блока
data { … }добавьте строкуимя = Вид.Объект. Допустимые виды:Справочник,Документ,РегистрСведений,РегистрНакопления,РегистрБухгалтерии,Перечисление,Обработка,Отчет. - Сразу под ней добавьте строку
fields:со списком полей через запятую. - Если второй источник нужно связать с первым, добавьте соединение — Добавить соединение и отбор по периоду.
- Нажмите «Ещё» → «Применить без сборки». В уведомлении «Spec1C → модель · источников N» число источников должно увеличиться.
spec1c {
report contracts
title: "Договоры и изменения"
target: ordinary
data {
contracts = Справочник.КлиентскиеДоговора
fields: Ссылка, Код
amendments = РегистрСведений.ДокументыИзменяющиеУсловияДоговора
fields: Договор, Период
rows = contracts
|> left_join amendments on amendments.Договор == contracts.Ссылка
}
}Заменить источник#
- В строке источника замените объект справа от
=, напримерСправочник.КлиентскиеДоговоранаСправочник.Контрагенты. - Исправьте строку
fields:под ним — поля прежнего объекта у нового могут отсутствовать. - Нажмите «Ещё» → «Применить без сборки».
При применении все источники модели заменяются источниками из текста, если в тексте есть хотя бы один источник. Поэтому замена работает надёжно.
Удалить источник#
- Удалите строку источника, его строку
fields:и соединения, где он упоминается. - Убедитесь, что в блоке
dataостался хотя бы один источник. - Нажмите «Ещё» → «Применить без сборки» и проверьте число источников в уведомлении.
- Если вместе с источником вы удалили последнее соединение, откройте вкладку Intent → «Данные»: соединения из модели удаляются только заменой, поэтому прежняя связь может остаться (см. врезку ниже).
Результат#
- В модели столько источников, сколько указано в тексте; это видно в уведомлении после применения и на вкладке Intent → «Данные».
- После «Собрать .epf» в модуль формы собранного файла попадает запрос по этим источникам. Исходники на этапе Source при этом не меняются — сгенерированный код есть только в собранном файле, см. Генерация BSL и зоны генерации.
- Существует ли объект в вашей конфигурации, проверит только 1С при выполнении запроса — Проверить результат в 1С.
Если не получилось#
| Что видно | Причина и что сделать |
|---|---|
| Число источников в уведомлении не изменилось | Строка источника не распознана: кириллическое имя слева от =, неизвестный вид объекта или лишний текст в конце строки. Исправьте по data |
| Удалённый источник всё ещё в запросе собранного файла | Вы удалили все источники — модель не очистилась. Замените блок data новым (см. выше) |
Отбор по периоду остался после удаления where | Отбор тоже не очищается удалением. Укажите where с нужным полем или создайте новый файл |
| «Сначала исправьте ошибки в Spec1C» при сборке | В тексте ошибка разбора — Сообщения об ошибках и предупреждения |
Полный список ограничений — Ограничения реализации.
См. также
- data Справочник
- fields Справочник
- Ограничения реализации Справочник
- Добавить соединение и отбор по периоду Руководство
- Применить спецификацию без сборки Руководство
Сверено с продуктом: 27.10.2026