Смещаем границы итогов в больших регистрах накопления

05.04.24

База данных - Инструменты администратора БД

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Смещаем границы итогов с полным пересчетом за одну итерацию:
.epf 40,75Kb
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Задача тривиальная - смещение границ итогов. Как известно, есть несколько подвидов этой задачи, и действия, которые выполнит система:

  1. Если сдвигается только верхняя граница итогов - алгоритму нужно рассчитать и добавить к ранее полученным итогам обороты за каждый месяц, что окажется за пределами рассчитанных.
  2. Если сдвигается нижняя граница в сторону текущего времени - происходит DELETE записей, выходящих за рамки установленного периода итогов.
  3. п.1 и п.2 и пересчет итогов.


В случае пункта 3, стандартными путями мы попадаем на две возможные тяжелые операции.
1 - Смещение границ стандартными командами приводит к удалению данных за пределами рассчитанных итогов и пересчету итогов по ранее отсутствующим периодам.
2 - Пересчет итогов, который также удаляет все данные из таблицы итогов через DELETE и затем рассчитывает итоги помесячно

Инфостарт полон статьями по поводу необходимости предварительного TRUNCATE таблиц итогов, дабы нивелировать продолжительность операция DELETE, но в предложенном кейсе это не избавляет от двух процедур расчета итогов.

Обычная последовательность с транкейтом:
1. Truncate таблицы итогов (Для предотвращения долгого делита)
2. Смещение границы итогов (вызывающим пересчет только ранее не расчитанных месяцев, что с учетом п.1 ломает всю информацию по итогам и вообще не нужен, с учетом п.3)
3. Транкейт таблицы итогов (Для предотвращения долгого делита)
4. Пересчет итогов (что бы выправить проблему полученную в п.2)

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

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

!!! Обратите внимание, в режиме предприятия в обработке управления итогами, верхняя граница итогов стоит как граница предыдущего месяца (в данном случае 31 марта 2024 года), но в таблице настроек физически будет хранится начало следующего дня (в данном случае 1 апреля 2024  года). 

Обозначение полей:

  • _Period - Верхняя граница итогов
  • _MinCalculatedPeriod - Нижняя граница итогов

Для помощи в автоматизации создания скрипта, была доработана стандартная обработка управления итогами:

  1. Показывает имена таблиц итогов из структуры хранения для РН
  2. Замеряет время пересчета по каждой таблице
  3. Позволяет подготовить SQL скрипт для упрощенной процедуры "Смещение + Пересчет"
     

 

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


 

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

Итого для одной таблицы:

  1. Операция транкейта + операция смещения границ итогов без пересчета онных.
  2. Одна процедура пересчета итогов

В таблицах настроек хранения итогов регистров накопления, всегда одна запись, поэтому update реализован без какого либо where по записи.

Тестировалось на платформах:
8.3.18.1334 и 8.3.23.1912


ЗЫ: Не претендую на оригинальность, не нашел подобного, когда искал.

Вступайте в нашу телеграмм-группу Инфостарт

пересчет итоги смещение границ итогов быстрый быстрое

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    59362    317    158    

287

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

20740 руб.

06.12.2023    20876    73    10    

106

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    23448    84    42    

99

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    42446    129    158    

87

Инструменты администратора БД Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

12200 руб.

06.02.2017    35169    149    18    

54

Архивирование (backup) Инструменты администратора БД 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6100 руб.

06.11.2012    78061    633    45    

92
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pantustesh 27.01.26 21:05 Сейчас в теме
Спасибо за статью, очень помогла при разборе вопроса распухших таблиц итогов!
Для отправки сообщения требуется регистрация/авторизация