Предложение ЗАПОЛНИТЬ
Предложение ЗАПОЛНИТЬ
позволяет использовать существующий тип в качестве типа строки результата запроса. Если подходящий тип не найден, будет выдана ошиб ка компиляции модуля, в котором находится литерал запроса.
Синтаксис
Предложение имеет следующий синтаксис:
[ЗАПОЛНИТЬ имя-типа]
Использование существующих типов
В качестве типа строк результата запроса (имя-типа) можно использовать любые доступные на сервере типы, которые имеют подходящий конструктор.
Выбор конструктора выполняется в следующем порядке:
-
Сначала «1С:Шина» пытается подобрать конструктор для именованной формы вызова. Для этого должны выполняться следующие условия:
- для каждой колонки должен быть параметр с именем, равным псевдониму колонки;
- все лишние параметры должны быть необязательными и иметь значения по умолчанию;
- типы параметров должны совпадать или наследоваться от типов соответствующих колонок запроса.
Если конструктор не найден, выполняется следующий пункт.
-
Делается попытка подобрать конструктор для позиционной формы вызова. Для этого:
- в конструкторе должно быть не меньше параметров, чем колонок в запросе;
- все лишние параметры должны быть необязательными и иметь значения по умолчанию;
- типы параметров должны совпадать или наследоваться от типов соответствующих колонок запроса.
Если подходящий конструктор не найден, выдается ошибка.
Если тип поля запроса на стадии компиляции неизвестен или содержит Неопределено
, а в типе параметра конструктора данный тип отсутствует, то модуль с таким литералом запроса будет успешно скомпилирован и может выдать ошибку при получении строк результата запроса, если фактический тип значения окажется неподходящим.
Пример
// Объявление структуры
структура КоличествоТоваров
знч Товар: Товары.Ссылка
знч Количество: Число
;
// ...
// Запрос для заполнения структуры данными
знч Запрос = Запрос{
ВЫБРАТЬ
Товар КАК Товар,
СУММА(Количество) КАК Количество
ЗАПОЛНИТЬ КоличествоТоваров
ИЗ
Продажи
СГРУППИРОВАТЬ ПО
Товар
}