Этап 3: Настройки параметров отбора для распараллеливания выгрузки

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

Запрос

Для источника данных «Запрос» настройка параметров делается в самом запросе.

Основная суть заключается в понимании, зачем мы пишем запрос. Что он должен выбирать? На первый взгляд кажется, что запрос должен выбирать весь набор данных, который мы хотим выгрузить, но это не так. На самом деле запрос, который мы строим - это запрос на выборку одного сегмента данных, а какого именно сегмента - задается параметрами сегментирования.

О нюансах настройки параметров в запросе читайте подробно и на примерах написано в статье: Запросы и сегментирование.

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

Объект или обработчик

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

От выбора самих параметров, от выбора, какие функции к этим параметрам применяются, зависит, какие блоки данных (сегменты) будут формироваться к выгрузке.

Пример для лучшего понимания настроек:

Представьте себе, что мы сформировали такую настройку набора параметров, как на картинке выше.

Предположим также, что данные в нашем наборе данных содержат только записи за период с декабря 2023 года по февраль 2024, и складов у нас всего 2.

Какие сегменты к выгрузке будут формироваться? Опишем их человекочитаемым языком:

  • Сегмент 1: «Дата находится в месяце Декабрь 2023 И Склад = Склад №1»

  • Сегмент 2: «Дата находится в месяце Декабрь 2023 И Склад = Склад №2»

  • Сегмент 3: «Дата находится в месяце Январь 2024 И Склад = Склад №1»

  • Сегмент 4: «Дата находится в месяце Январь 2024 И Склад = Склад №2»

  • Сегмент 5: «Дата находится в месяце Февраль 2024 И Склад = Склад №1»

  • Сегмент 6: «Дата находится в месяце Февраль 2024 И Склад = Склад №2»

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

Условие на вхождение даты в указанный месяц и условие на конкретное значение склада.

Начиная с версии 3.8.4.70 Экстрактора 1С, был добавлен режим расширения параметров. Этот функционал позволяет оптимизировать выгрузку данных. Чтобы использовать данный функционал необходимо воспользоваться переключателем «Режим расширения параметров», а затем, для настройки расширенных возможностей сегментирования объекта указать вид параметра, который будет определять использование сегмента:

  • Параметр инициализации — это группа параметров, которая используется при инициализации проекта (по кнопке «Сформировать очередь»), например период в месяц.

  • Регулярный параметр — это основной вид параметров, которые используются при выгрузке (при отсутствии вида параметра является значением по умолчанию), примером могут служить период длиною в день, ссылка или регистратор.

  • Расширенный параметр — это группа параметров, которая заменяет регулярные параметры, если число записей в очереди по регулярному сегменту (например, по регистратору) в рамках одного расширенного сегмента (например, дня, в который входят эти регистраторы), превышает установленное значение настройки «Количество записей очереди для расширения параметров».

Как это работает?

Например, мы регистрируем изменения по 1000 документам, все они входят в 2 дня. При этом регулярный параметр (сегмент) — это сам документ (ссылка), а расширенный — это ДатаДокумента(День). Если выгружать как раньше, по регулярному параметру (сегменту) всегда, то 1 сегмент будет равен 1 документу, и надо будет 1000 раз выполнить запросы, необходимые для выгрузки. При установке настройки , что при превышении, например, 100 уникальных записей очереди (устанавливается с помощью настройки «Количество записей очереди для расширения параметров»), входящих в один расширенный сегмент (один день) за сегмент берется целый день и выполняется всего несколько необходимых для выгрузки 1 сегмента запросов, выгружая весь день за 1 раз, а не за 1000 раз подокументно.

Подробные примеры проектов выгрузки с использованием данного функционала рассмотрен в статьях данного раздела.

CSV или Excel

Сегментирование невозможно.