Регистр бухгалтерии (Запрос) с сегментированием и партицированием
Пример протестирован на версии 3.4.2.7
Создание проекта
Создадим новый проект по инструкции по созданию проекта (Этап 1). Разобьем нашу выгрузку параметром по полю Период (по дням). И используем этот параметр для выгрузки способом “Обновление сегмента”. Итак, обо все по порядку:
Добавим новую строку проекта, нажав на “Добавить“ на закладке “Таблицы”
в открывшемся мастере настройки выберем “Запрос” в качестве источника данных
Воспользуемся конструктором (кнопка “Конструктор”) и напишем запрос к регистру бухгалтерии Хозрасчетный, а конкретно к Оборотам. И нажмем “Далее”. В запросе указываем функцию ДЕНЬ.
ВЫБРАТЬ ХозрасчетныйОбороты.Период КАК Период, ХозрасчетныйОбороты.Регистратор КАК Регистратор, ХозрасчетныйОбороты.Счет КАК Счет, ХозрасчетныйОбороты.Субконто1 КАК Субконто1, ХозрасчетныйОбороты.Субконто2 КАК Субконто2, ХозрасчетныйОбороты.Субконто3 КАК Субконто3, ХозрасчетныйОбороты.КорСчет КАК КорСчет, ХозрасчетныйОбороты.КорСубконто1 КАК КорСубконто1, ХозрасчетныйОбороты.КорСубконто2 КАК КорСубконто2, ХозрасчетныйОбороты.КорСубконто3 КАК КорСубконто3, ХозрасчетныйОбороты.Организация КАК Организация, ХозрасчетныйОбороты.Валюта КАК Валюта, ХозрасчетныйОбороты.ВалютаКор КАК ВалютаКор, ХозрасчетныйОбороты.Подразделение КАК Подразделение, ХозрасчетныйОбороты.ПодразделениеКор КАК ПодразделениеКор, ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот, ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборотДт, ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт, ХозрасчетныйОбороты.КоличествоОборот КАК КоличествоОборот, ХозрасчетныйОбороты.КоличествоОборотДт КАК КоличествоОборотДт, ХозрасчетныйОбороты.КоличествоОборотКт КАК КоличествоОборотКт ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(НАЧАЛОПЕРИОДА(&ПарамДата, ДЕНЬ), КОНЕЦПЕРИОДА(&ПарамДата, ДЕНЬ), Регистратор, , , , , ) КАК ХозрасчетныйОбороты
в выбранных полях автоматически добавится наш параметр, не удаляйте его, т.к. мы будем делать по нему сегментирование (дробление выгрузки на сегменты)
Пропустим расчет вычисляемых колонок, сейчас нам это для нашего примера не нужно.
Выберем “Создать новую” таблицу. И зададим ее параметры (см. Инструкцию этап 6). Нажмем “Далее”
Выполним сопоставление полей Источника и приемника, убедившись, что у нашего параметра стоит галка - признак сегмента:
на следующем этапе выберем “Расширенные настройки”, т.к. мы не хотим установить партицирование для нашей таблицы. Партиция у нас будет по месяцам. Установим ее в открывшейся форме:
Закончим работу с мастером, нажимая на “Далее”.
Первичная выгрузка
Перейдем в настройки строки проекта, выделив строку и нажав на
Автоматически подставился способ обновления “Обновление сегмента”. Здесь все верно, т.к. выгрузка должна распараллеливаться по сегменту, т.е. способом “Обновление сегмента”.
выберем предопределенные обработчик инициализации очереди. Нам нужен по периоду. И заполним параметры как показано на картинке:
Сформируем очередь выгрузки, нажав на “Сформировать очередь”. Сформируется очередь по сегментам (по дням):
Запишем и выполним наш проект.
В результате получим выгруженные данные в нашей базе данных. Обратите внимание, что поле сегмента у нас по дням, а партиции таблицы - по месяцам.
Регистрация изменений
Если мы хотим отслеживать изменения в данных регистра и добавлять их в очередь к выгрузке автоматически - можно настроить еще и обработчик формирования очереди при изменении объектов. Для этого снова перейдем в настройку строки проекта (), выберем нужный обработчик и настроим его:
Таким образом, выгрузка данных будет осуществляться посегментно по дням. Но при этом таблица базы данных будет партицирована по месяцам. Регистрация изменений будет так же по сегменту.