IE2017

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

Обработки - Универсальные обработки

Данная обработка будет полезна, если при работе с информационной системой на базе 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
40
.epf 1.0 5,71Kb 40 Скачать

См. также

Комментарии
1. Владислав Фёдоров (feva) 13 14.06.17 11:28 Сейчас в теме
Кто скачивал? Помогает? Какие есть подводные камни?
Оставьте свое сообщение