Сегментирование запроса с использованием условия

В данной статье продемонстрирован пример сегментирования запроса с использованием условия в Экстракторе 1С.

Подробнее о процессе конструирования запрос вручную так, чтобы его параметры соответствовали параметрам сегментирования читайте в статье «Запросы и сегментирование».

Итак:

1. Выбираем “Экстрактор 1С“, затем в открывшемся меню Экстрактора нажимаем кнопку “Проекты“ .

2. В открывшемся окне нажимаем кнопку кнопку “Создать“.

После чего откроется окно выбора типа источника данных, выбираем “Запрос“.

3. Воспользуемся конструктором запроса, нажав кнопку “Конструктор…“.

После чего откроется следующее окно, где мы выбираем “РегистрыНакопления“.

Далее выбираем таблицу “ВыручкаИСебестоимостьПродаж” — она добавляется в поле “Таблицы“, затем уже в поле “Таблицы“ выбираем поля объекта для дальнейшего анализа:

  • Период;

  • Регистратор;

  • Менеджер;

  • Склад;

  • Договор;

  • Количество;

  • СуммаВыручки;

  • Стоимость.

Затем нажимаем “ОК“.

В итоге, в окне для текста запроса получилось:

ВЫБРАТЬ ВыручкаИСебестоимостьПродаж.Период КАК Период, ВыручкаИСебестоимостьПродаж.Регистратор КАК Регистратор, ВыручкаИСебестоимостьПродаж.Менеджер КАК Менеджер, ВыручкаИСебестоимостьПродаж.Склад КАК Склад, ВыручкаИСебестоимостьПродаж.Договор КАК Договор, ВыручкаИСебестоимостьПродаж.Количество КАК Количество, ВыручкаИСебестоимостьПродаж.СуммаВыручки КАК СуммаВыручки, ВыручкаИСебестоимостьПродаж.Стоимость КАК Стоимость ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж

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

Однако, предположим, что данных много и их необходимо разбить на блоки. Рассмотрим, как это сделать в режиме работы с запросом.

Для того, чтобы запрос не возвращал весь массив данных, необходимо добавить условие, по которому он будет возвращать лишь нужную нам часть.

Заходим снова в “Конструктор…“ на вкладку “Условие“, выбираем поле ”Период” и в соответствующем текстовом поле указываем необходимое условие, в итоге, у нас получается:

ВыручкаИСебестоимостьПродаж.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)

Где атрибуты функций — это НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА , &Дата — это переменная, а фракция до которой будет округляться, соответственно, День .

Нажимаем “ОК“ и видим, что к тексту запроса добавилась строка с условием.

Таким образом, запрос ожидает на вход параметр &Дата.

То есть, при передаче любой даты в указанный &Дата будет проверяться вхождение в этот период каждой записи выбранного регистра в указанный интервал.

Нажимаем “Далее“.

4. Проверяем набор данных:

Снова нажимаем “Далее“.

5. Пропускаем следующий шаг с дополнительной настройкой исходных данных и нажимаем “Далее“.

6. Выбираем нужное подключение или создаем новое, снова нажимаем “Далее“.

7. Создаем новую таблицу в базе и даем ей название: “ВыручкаИСебестоимостьПродаж_060525”.

Сопоставление полей оставляем без изменений.

Обратите внимание!

В колонке “Поле сегмента“ для нашего параметра &Параметр.Дата установлен флаг. Без этого флага, обновление сегментами по выбранному параметру производиться не будет.

нажимаем “Далее“.

Пропускаем “Расширенные настройки”, нажимаем “Далее“.

Задаем название проекта, заполнив текстовое поле “Наименование“.

8. Для того чтобы перебрать все даты и передать их в наш запрос необходимо настроить обработчик формирования очереди первичной выгрузки (для выгрузки исторических данных) и обработчик регистрации изменений. Эти варианты обработчиков считаются стандартными, потому как используются чаще всего.

Примечание

Об обработчиках подробнее можно прочитать в статье “Обработчики“.

Итак, заходим в настройки строки проекта, нажав значок , выбираем “Обработчик формирования очереди для первичной/полной выгрузки данных“, активируем переключатель “Обработчик:“, выбираем “Предопределенный обработчик“, указываем инициализацию “Инициализация очереди выгрузки по периоду“.

Теперь нажимаем кнопку настройки параметров .

В открывшемся окне с помощью выпадающего списка добавляем недостающие значения для параметров:

  • Вид объекта — РегистрыНакопления;

  • Имя объекта — ВыручкаИСебестоимостьПродаж;

  • Поле даты — Период;

  • Имя параметра — Дата;

  • Периодичность — День.

Нажимаем “Сохранить и закрыть“.

Теперь настраиваем “Обработчик формирования очереди при изменении объектов” аналогичным образом:

  • устанавливаем флаг “Вкл“ для вида объекта “РегистрыНакопления“;

  • выбираем из выпадающего списка вид обработчика — “Предопределенный обработчик“;

  • выбираем из выпадающего списка обработчик — “Регистрация изменений регистра по периоду“;

  • нажимаем ссылку “Настройка” в колонке “Параметры“.

  • в открывшемся окне указываем:

    • Поле даты — Период;

    • Имя параметра — Дата;

    • Периодичность — День.

Нажимаем “Сохранить и закрыть“.

Теперь нажимаем “Сохранить“ и “Применить и закрыть“.

9. В окне проекта последовательно нажимаем кнопки “Записать“, “Сформировать очередь” и “Выполнить проект“.