/query-model

Объектная модель работы со схемой запроса

Primary Language1C EnterpriseMIT LicenseMIT

Объектная модель работы со схемой запроса

OpenYellow Версия

Объектная модель построена на использовании внешнего интерфейса библиотеки "Работа со схемой запроса". Модель позволяет скрыть переменные контекста работы с библиотекой и использовать вызов методов в стиле текучего интерфейса.

Модель запроса

Оглавление:

Варианты программного конструктора

МодельЗапроса = Общий.МодельЗапроса();
МодельЗапроса = Общий.МодельЗапроса(ТекстЗапроса);
МодельЗапроса = Общий.МодельЗапроса(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных);
МодельЗапроса = Общий.МодельЗапроса(ДинамическийСписок);

Быстрый старт

Быстро сгенерировать код с использованием модели запроса можно в Конструкторе модели запроса. Интерактивный конструктор позволяет по тексту запроса получить код модели. Возможна и обратная операция - по коду модели получить текст запроса.

Примеры работы

Больше примеров можно найти в статьях:

Описание простого запроса

МодельЗапроса = Общий.МодельЗапроса()
;//  ЗАПРОС ПАКЕТА. Контрагенты
МодельЗапроса.ЗапросПакета("Контрагенты")
    .Выбрать()
        .Источник("Справочник._ДемоКонтрагенты")
        .Поле("Ссылка")
        .Поле("ИНН")
        .Поле("КПП")
        .Порядок("Ссылка")
        .Автопорядок()
;
//  Обработка результата
МодельЗапроса.ВыполнитьЗапрос();
Выборка = МодельЗапроса.ВыбратьРезультат("Контрагенты");
Пока Выборка.Следующий() Цикл
    Сообщить(СтрШаблон("%1 (%2/%3)", Выборка.Ссылка, Выборка.ИНН, Выборка.КПП));
КонецЦикла;

Дополнение существующего текста запроса

ТекстЗапроса = "ВЫБРАТЬ
|    Контрагенты.Ссылка КАК Ссылка,
|    Контрагенты.Код КАК Код,
|    Контрагенты.Наименование КАК Наименование
|ИЗ
|    Справочник._ДемоКонтрагенты КАК Контрагенты";
//  Конструктор модели запроса на основе существующего текста запроса
МодельЗапроса = Общий.МодельЗапроса(ТекстЗапроса)
    .Источник("РегистрСведений.ДополнительныеСведения")
    .ЛевоеСоединение(0, "ДополнительныеСведения")
        .Связь("Ссылка = Объект")
    .Поле("ДополнительныеСведения.*")
;

На выходе получится измененный текст запроса:

Сообщить(МодельЗапроса.ТекстЗапроса());
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка,
    Контрагенты.Код КАК Код,
    Контрагенты.Наименование КАК Наименование,
    ДополнительныеСведения.Объект КАК Объект,
    ДополнительныеСведения.Свойство КАК Свойство,
    ДополнительныеСведения.Значение КАК Значение
ИЗ
    Справочник._ДемоКонтрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
        ПО (Контрагенты.Ссылка = ДополнительныеСведения.Объект)

Состав и установка

Состав:

  • Конфигурация (этот проект):
    • модуль библиотеки РаботаСоСхемойЗапроса
    • обработка МодельЗапроса, реализующая объектный интерфейс
  • Внешняя обработка "Конструктор модели запроса" (отдельный проект)
  • Внешняя обработка "Конструктор схемы запроса" (поставляется как есть)

Есть несколько вариантов установки:

  1. Установить как расширение
  2. Объединить с конфигурацией текущего проекта
  3. Объединить с конфигурацией проекта KASL

Далее подробнее.

Установить как расширение

Скачать расширение из последнего релиза проекта и установить в базу. Требуется также установить расширения проектов из зависимостей.

Объединить с конфигурацией текущего проекта

Объединить с файлом конфигурации из последнего релиза проекта:

  • Снять признак объединения с общих свойств
  • Установить режим объединения с приоритетом в файле Требуется также установить расширения проектов из зависимостей.

Объединить с конфигурацией проекта KASL

Объединить с файлом конфигурации из Демо-базы к статье Модель запроса или с конфигурацией KASL.cf из релиза:

Зависимости