gifts2017

Пересчет итогов автоматический (по расписанию)

Опубликовал Reaper_1c Reaper_1c (Reaper_1C) в раздел Обработки - Универсальные обработки

Данная обработка будет полезна, если при работе с информационной системой на базе 1С: Предприятия 8 вы наблюдаете следующие симптомы:
1. Необъяснимо большой размер информационной базы
2. Необъяснимое снижение производительности работы механизмов, обращающихся к учетным данным (например, подбор товаров в документы)

Предназначение обработки.

Данная обработка будет полезна, если при работе с информационной системой на базе 1С: Предприятия 8 вы наблюдаете следующие симптомы:

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

Для предупреждения указанных проблем над информационной базой необходимо производить операцию пересчета итогов регистров, которая не позволяет им «распухать». Если рассмотреть устройство регистров бухгалтерии/накопления/сведений – в составе таблиц базы данных мы найдем у этих объектов таблицу итогов. Эти таблицы предназначены для ускорения доступа к данным. Например, данные о продажах система суммирует за месяц и общую сумму записывает в таблицу итогов. Таким образом, если необходимо получить сумму продаж за год – достаточно просуммировать итоги за 12 месяцев, а не все продажи за год.  У данного подхода к хранению данных есть и обратная сторона – в таблице итогов могут создаваться избыточные записи. Основными причинами их появления являются:

  • Работа задним числом
  • Использование разделения итогов регистров.

При работе задним числом система при каждом отражении в регистре учетной информации рассчитывает итоги «на лету» по упрощенному алгоритму. Допустим в нашей системе была отражена продажа последним днем прошлого месяца и были рассчитаны итоги за этот период. Если менеджер зайдет в документ продажи и подвинет его на день вперед, на первое число текущего месяца, система при проведении, уменьшит итоги предыдущего месяца. Если в том месяце не было других продаж – в регистре будет запись со значением «0». Такие записи не несут смысловой нагрузки и при операции пересчета итогов регистров удаляются.

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

  • +100
  • -100

При пересчете регистров накопления обе эти записи будут удалены из регистра, т.к. общий итог за период равен нулю.

Пересчет итогов регистров в информационной базе нужно производить регулярно, чтобы не позволять системе накапливать ненужные записи, которые будут увеличивать размер информационной базы и замедлять вычисления своим присутствием. Для выполнения этой операции обычно используются два инструмента:

  • Консоль управления итогами в пользовательском режиме
  • Тестирование и исправление ИБ в конфигураторе.

Данные способы обладают некоторыми недостатками:

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

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

Обработка, представленная здесь, предназначена для автоматизации задач пересчета регистров средствами 1С: Предприятия. Эта обработка выполнена по стандартам БСП и для любого продукта, использующего подсистему дополнительных отчетов и обработок из ее состава, позволяет настроить автоматический пересчет итогов регистр. На текущий момент это конфигурации:

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

Рассмотрим пример подключения обработки на примере ПП 1С: Бухгалтерия 8 (ред. 3.0). Сначала нам нужно перейти в форму настроек внешних обработок:


Подключение к БП (1)

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


Подключение к БП (2)

В открывшейся форме списка нам нужно создать новую обработку.


Подключение к БП (3)

После нажатия на кнопку «Создать» система предложит указать файл внешней обработки. После указания файла откроется форма настройки обработки.


Подключение к БП (4)

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

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


Подключение к БП (5)

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

Приведу пример из практики. Мне в руки попала база 1С: Бухгалтерии 8 (ред. 3.0) объем файла данных MS SQL которой составлял 120 ГБ. Системный администратор задавался вопросом, почему до перехода на новую редакцию объем базы составлял около 32 ГБ, а после свертки, последующего перехода на новую редакцию и полугода работы – база увеличилась до 120. По результатам обследования базы стало видно, что более 50 ГБ занимала таблица итогов регистра «Расходы при УСН», более 20 ГБ – таблица итогов регистра бухгалтерии в разрезе второго субконто. А анализ данных в них показал наличие лишних записей, обусловленных режимом разделения итогов регистров. Для того, чтобы избавиться от лишних записей было настроено расписание:

  1. Однократно завтра в 00:00 пересчитать итоги регистра «Расходы при УСН»
  2. Однократно послезавтра в 00:00 пересчитать итоги регистра бухгалтерии
  3. Каждое воскресение производить пересчет всех регистров в базе.

Выполнение первой операции, согласно журналу регистрации, заняло 8 часов, второй – около 5 часов. Сейчас, после того, как пересчет стал выполняться регулярно, пересчет всех регистров занимает 20 минут. Объем файла данных MS SQL составляет 20 ГБ. Таким образом, удалось сократить размер информационной базы в 6 раз и исключить влияние «лишних» записей на производительность системы.

 

Требования к конфигурации, в которой планируется использование обработки

Для корректной работы обработки требуется, чтобы конфигурация была разработана на базе библиотеки стандартных подсистем с версией не менее чем 1.2.1.15. Узнать версию вашей конфигурации можно следующим образом:

  • В параметрах системы разрешить использование команды «Все функции»

Параметры клиента в меню


Параметры клиента

  • В меню «Все функции» нужно найти регистр сведений «Версии подсистем»

Команда


Регистр версий во

  • В форме списка посмотреть версию подсистемы «СтандартныеПодсистемы»

Версии подсистем

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработка для автоматического пересчета итогов регистров
.epf 5,71Kb
11.04.15
30
.epf 1.0 5,71Kb 30 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа