Сегментирование и многопоточность
⚠️ Sync-черновик от 2026-05-22 — первичная сборка. Требуется ревью и добавление скриншотов.
Источник: terminy-opredeleniya-i-kak-eto-rabotaet/particii-i-particirovanie-mnogopotochnost.md (репо, SHA a7df4588).
Что такое сегментирование
Сегментирование в Экстракторе Visiology – это логическое разделение данных таблицы, созданное на основании ключа сегментирования: набора параметров сегментирования в совокупности с применяемыми к ним функциями. От выбора параметров и функций зависит, какие блоки данных (сегменты) будут формироваться в очередь к выгрузке.
Примеры сегментирования
Пример 1. Справочник по первым буквам наименования
При выгрузке справочника Номенклатуры данные можно делить по первым двум буквам наименования. Параметр сегментирования: «Наименование», функция: «ПервыеДваСимвола()». Каждый сегмент – все элементы справочника, чьё наименование начинается на одинаковые первые два символа («Аб», «Ан», «Ба» и т.д.).
Пример 2. Обороты регистра по месяцу-году
При выгрузке оборотов регистра накопления удобнее делить данные по дате. Функция «Месяц-Год» применяется к параметру «Дата (Период)». Каждый сегмент – все строки регистра, относящиеся к одному месяцу-году («Декабрь 2023», «Январь 2024» и т.д.).
Многопоточность
Графически многопоточную выгрузку данных, разделенную на блоки (сегменты), можно представить так:
Сегментирование используется не только для ускорения первичной выгрузки (параллельная загрузка большого массива), но и для работы инкрементальной выгрузки: разбив таблицу на блоки один раз, в дальнейшем обновляются только те блоки, в которых произошли изменения.
При выгрузке с использованием многопоточности возможны ограничения скорости, связанные с возможностями сервера (память, скорость диска и т.д.).
Терминология
Параметры сегментирования – набор параметров для разбивки данных на блоки, например [Период, Склад]. Задаются в запросе или на этапе установки параметров при проектировании выгрузки конструктором.
Функция параметра сегментирования – функция, применяемая к параметру: для дат – группировка по месяцам/неделям; для строк – первые N символов; для ссылочных типов – обычно без функции.
Ключ сегментирования – параметры + применённые функции, например [Месяц(Период) И Склад]. Условия всегда объединяются через «И» (конъюнкция), «ИЛИ» не используется.
Уникальные значения ключа сегментирования – конкретные значения параметров для каждого сегмента; отображаются в поле «Партиция» очереди выгрузки.
Сегмент – блок данных, полученный путём отбора строк по уникальному значению ключа сегментирования.
Многопоточность – параллельное выполнение нескольких потоков; каждый сегмент обрабатывается в отдельном фоновом задании, что увеличивает скорость выгрузки.
Пример 3 (для закрепления)
Предположим, что мы сформировали такую настройку набора параметров:
Параметры: [Период, Склад].
Ключ сегментирования: [Месяц(Период) И Склад].
Предположим также, что данные в нашем наборе данных содержат только записи за период с декабря 2023 года по февраль 2024, и складов у нас всего 2. При этих условиях формируется 6 сегментов:
Сегмент 1: Декабрь 2023 И Склад №1
Сегмент 2: Декабрь 2023 И Склад №2
Сегмент 3: Январь 2024 И Склад №1
Сегмент 4: Январь 2024 И Склад №2
Сегмент 5: Февраль 2024 И Склад №1
Сегмент 6: Февраль 2024 И Склад №2
Для каждого сегмента на набор данных накладываются оба условия одновременно. Именно поэтому запрос 1С должен содержать те же параметры, что и в настройке сегментирования (параметры, начинающиеся с «&»). Подробнее см. на странице Запросы и сегментирование.
Смотрите также
Справочник понятий и концепций
Создание проектов с таблицами в 1С
Интеграция с "1С:Предприятие"
На этой странице
Нужна дополнительная помощь?