Ежедневные срезы данных по регистру сведений (Запрос) с сегментированием

В данном примере продемонстрирована настройка проекта для выгрузки срезов последних на указанную дату из регистров сведений с помощью Экстрактора 1С. В качестве источника данных мы будем использовать «Запрос».

Конкретнее, мы разберем как получить актуальные цены на заданную дату на примере ERP 2.5 и регистра «Цены номенклатуры». При этом каждый раз при выгрузке мы будем выгружать ее посегментно, чтобы распараллелить выгрузку. Сегментом у нас будет «Первые 2 буквы» наименования номенклатуры. В качестве источника данных мы будем использовать «Запрос».

Итак, заходим в раздел «Проекты» Экстрактора 1С, нажимаем «Создать».

Выбираем тип источника данных «Запрос».

В открывшемся окне задаем наименование и добавляем текст запроса (Вы можете использовать предоставленный в данной статье текст запроса, составить свой на языке программирования 1С или воспользоваться конструктором запроса по кнопке «Конструктор…», как это сделать смотрите в статье).

Текст запроса:
ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Период КАК Период, ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика, ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены, ЦеныНоменклатурыСрезПоследних.Цена КАК Цена, ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка, &ДатаСреза КАК ДатаСреза ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, ПОДСТРОКА(Номенклатура.Наименование, 1, 2) = &ДвеБуквы) КАК ЦеныНоменклатурыСрезПоследних

В данном запросе параметр &ДатаСреза будет задаваться текущим днем, а параметр &ДвеБуквы — будет использоваться для сегментирования выгрузки.

На этапе настройки набора данных оставляем все без изменений.

Пропускаем этап настройки вычисляемых полей.

Затем выбираем подключение и создаем таблицу-приемник (6 и 7 этапы инструкции по созданию проекта). На этапе сопоставления полей снимаем флаг признака сегмента для «Параметр.ДатаСреза», а флаг для «Параметр.ДвеБуквы» оставляем.

Этап расширенных настроек пропускаем и завершаем настройку проекта.

Затем задаем наименование проекту в соответствующем поле, затем заходим в настройки строки проекта с помощью кнопки .

Теперь настроим обработчик формирования очереди для первичной/полной выгрузки данных:

  • активируем переключатель «Обработчик:»;

  • выбираем вид «Предопределенный обработчик»;

  • выбираем сам обработчик «Инициализация очереди выгрузки по подстроке реквизита»;

  • переходим к настройке параметров обработчика, здесь указываем:

    • Вид объекта — РегистрыСведений;

    • Имя объекта — ЦеныНоменклатуры;

    • Поле реквизита — Номенклатура.Наименование;

    • Имя параметра — ДвеБуквы;

    • Начало подстроки — 1;

    • Длина подстроки — 2.

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

Переходим к настройке обработчика событий строки проекта:

  • нажимаем кнопку «Добавить»;

  • устанавливаем флаг «Вкл.»;

  • выбираем событие «Перед выполнением строки проекта»;

  • выбираем вид «Предопределенный обработчик»;

  • выбираем сам обработчик «Установка параметра строки проекта текущей датой»;

  • переходим к настройке параметров обработчика, здесь указываем имя параметра — «ДатаСреза».

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

А также настроим обработчик формирования очереди при изменении объектов:

  • устанавливаем флаг «Вкл.»;

  • указываем вид объекта: «РегистрыСведений»;

  • указываем имя объекта: «ЦеныНоменклатуры»;

  • выбираем вид «Предопределенный обработчик»;

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

  • переходим к настройке параметров обработчика, здесь указываем:

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

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

    • Режим — Стандартный;

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

Сохраняем параметры обработчика и нажимаем «Применить и закрыть» для настроек строки проекта.

Теперь осталось выполнить выгрузку: нажимаем поочередно кнопки «Записать», «Сформировать очередь» и «Выполнить проект».

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