Объектная модель построена на использовании внешнего интерфейса библиотеки "Работа со схемой запроса". Модель позволяет скрыть переменные контекста работы с библиотекой и использовать вызов методов в стиле текучего интерфейса.
МодельЗапроса = Общий.МодельЗапроса();
МодельЗапроса = Общий.МодельЗапроса(ТекстЗапроса);
МодельЗапроса = Общий.МодельЗапроса(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных);
МодельЗапроса = Общий.МодельЗапроса(ДинамическийСписок);
Быстро сгенерировать код с использованием модели запроса можно в Конструкторе модели запроса. Интерактивный конструктор позволяет по тексту запроса получить код модели. Возможна и обратная операция - по коду модели получить текст запроса.
Больше примеров можно найти в статьях:
МодельЗапроса = Общий.МодельЗапроса()
;// ЗАПРОС ПАКЕТА. Контрагенты
МодельЗапроса.ЗапросПакета("Контрагенты")
.Выбрать()
.Источник("Справочник._ДемоКонтрагенты")
.Поле("Ссылка")
.Поле("ИНН")
.Поле("КПП")
.Порядок("Ссылка")
.Автопорядок()
;
// Обработка результата
МодельЗапроса.ВыполнитьЗапрос();
Выборка = МодельЗапроса.ВыбратьРезультат("Контрагенты");
Пока Выборка.Следующий() Цикл
Сообщить(СтрШаблон("%1 (%2/%3)", Выборка.Ссылка, Выборка.ИНН, Выборка.КПП));
КонецЦикла;
ТекстЗапроса = "ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.Код КАК Код,
| Контрагенты.Наименование КАК Наименование
|ИЗ
| Справочник._ДемоКонтрагенты КАК Контрагенты";
// Конструктор модели запроса на основе существующего текста запроса
МодельЗапроса = Общий.МодельЗапроса(ТекстЗапроса)
.Источник("РегистрСведений.ДополнительныеСведения")
.ЛевоеСоединение(0, "ДополнительныеСведения")
.Связь("Ссылка = Объект")
.Поле("ДополнительныеСведения.*")
;
На выходе получится измененный текст запроса:
Сообщить(МодельЗапроса.ТекстЗапроса());
ВЫБРАТЬ
Контрагенты.Ссылка КАК Ссылка,
Контрагенты.Код КАК Код,
Контрагенты.Наименование КАК Наименование,
ДополнительныеСведения.Объект КАК Объект,
ДополнительныеСведения.Свойство КАК Свойство,
ДополнительныеСведения.Значение КАК Значение
ИЗ
Справочник._ДемоКонтрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ПО (Контрагенты.Ссылка = ДополнительныеСведения.Объект)
Состав:
- Конфигурация (этот проект):
- модуль библиотеки РаботаСоСхемойЗапроса
- обработка МодельЗапроса, реализующая объектный интерфейс
- Внешняя обработка "Конструктор модели запроса" (отдельный проект)
- Внешняя обработка "Конструктор схемы запроса" (поставляется как есть)
Есть несколько вариантов установки:
- Установить как расширение
- Объединить с конфигурацией текущего проекта
- Объединить с конфигурацией проекта KASL
Далее подробнее.
Скачать расширение из последнего релиза проекта и установить в базу. Требуется также установить расширения проектов из зависимостей.
Объединить с файлом конфигурации из последнего релиза проекта:
- Снять признак объединения с общих свойств
- Установить режим объединения с приоритетом в файле Требуется также установить расширения проектов из зависимостей.
Объединить с файлом конфигурации из Демо-базы к статье Модель запроса или с конфигурацией KASL.cf из релиза:
- Установить режим объединения с приоритетом в файле
- Отметить по подсистемам файла:
- KASL->ОбщегоНазначения
- KASL->АТДМассив
- KASL->Модели->МодельЗапроса
- KASL->Конструкторы->КонструкторМодельЗапроса
- БСП (работает с версией 3 и выше)
- Общие модули из подсистемы KASL->ОбщегоНазначения
- Подсистема АТДМассив