МетодЗапроса
Аннотация, помечающая метод хранилища сущностей, для которого необходимо сгенерировать тело метода с выполнением запроса к базе данных на основании имени метода. Для работы аннотации класс должен быть помечен аннотацией &ХранилищеСущностей.
Синтаксис
bsl
&МетодЗапроса
Функция ИмяМетода(Параметры...) Экспорт
Возврат Неопределено;
КонецФункцииОписание
Аннотация &МетодЗапроса позволяет автоматически генерировать реализацию методов запросов на основе их имен. Библиотека анализирует имя метода и создает соответствующий код для выполнения запроса к базе данных.
Правила именования методов
Имя метода должно следовать определенной структуре:
[Режим][Ограничения][Условия][Сортировка]Где:
- Режим -
ПолучитьилиПолучитьОдно - Ограничения -
Первые,СоСмещением(опционально) - Условия -
По[Поле][ВидСравнения](опционально) - Сортировка -
УпорядочитьПо[Поле][Направление](опционально)
Поддерживаемые токены
Режимы поиска
ПолучитьОдно- возвращает один объектПолучить- возвращает коллекцию объектов
Ограничения
Первые- ограничивает количество записейСоСмещением- пропускает записи с начала
Виды сравнения
Равно(по умолчанию)НеРавноБольшеБольшеИлиРавноМеньшеМеньшеИлиРавноВ- значение в спискеНеВ- значение не в списке
Направления сортировки
Возр(по умолчанию)Убыв
Логические операторы
И- логическое И между условиями
Примеры
Простые запросы
bsl
// Найти по ID
&МетодЗапроса
Функция ПолучитьОдноПоИдентификаторРавно(Идентификатор) Экспорт
Возврат Неопределено;
КонецФункцииСложные условия
bsl
// Множественные условия
&МетодЗапроса
Функция ПолучитьПоИмяРавноИВозрастБольше(Имя, Возраст) Экспорт
Возврат Неопределено;
КонецФункции
// С сортировкой
&МетодЗапроса
Функция ПолучитьПоАктивенРавноУпорядочитьПоДатаСозданияУбыв(Активен) Экспорт
Возврат Неопределено;
КонецФункцииС ограничениями
bsl
// Пагинация
&МетодЗапроса
Функция ПолучитьПервыеСоСмещениемПоВозрастБольшеИлиРавноУпорядочитьПоИмениВозр(
Первые,
Смещение,
Возраст
) Экспорт
Возврат Неопределено;
КонецФункцииГенерируемый код
Для метода:
bsl
&МетодЗапроса
Функция ПолучитьПоИмяРавноИВозрастБольше(Имя, Возраст) Экспорт
Возврат Неопределено;
КонецФункцииБудет сгенерирован код:
bsl
Функция ПолучитьПоИмениРавноИВозрастБольше(Имя, Возраст) Экспорт
ОпцииПоиска = Новый ОпцииПоиска();
ОпцииПоиска.Отбор("Имя", ВидСравнения.Равно, Имя);
ОпцииПоиска.Отбор("Возраст", ВидСравнения.Больше, Возраст);
Возврат ХранилищеСущностей.Получить(ОпцииПоиска);
КонецФункцииТребования
- Класс должен быть помечен аннотацией
&ХранилищеСущностей - Метод должен быть помечен аннотацией
&МетодЗапроса - Параметры метода должны соответствовать порядку их использования в имени метода
Ограничения
- Не все комбинации токенов поддерживаются
- Сложные запросы лучше реализовывать вручную с использованием
ОпцииПоиска - Регистр имен полей должен точно совпадать с определением в сущности
