DB.SysRecalcTotals

From SunFlurry wiki
Revision as of 09:02, 7 August 2023 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  SysRecalcTotals (Пересчет таблиц остатков)
Объект:Объект базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер и БД
Визуальность:Нет

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

Синтаксис

DB.SysRecalcTotals(<Не использовать режим транзакции (INT)>=0)

Аргументы

  • <Не использовать режим транзакции (INT)> - (необязательный аргумент) Позволяет не использовать режим транзакции во время пересчета (по умолчанию использовать -- 0). Если база данных очень большая, транзакция будет копить все изменения в таблице логов СУБД до ее завершения (а это могут быть гигабайты информации), таким образом сильно увеличивая время пересчета, иногда в сотни раз. Таблица итогов очищается перед началом работы, что может явиться предлогом для копирования всего ее содержимого в файл логов СУБД (в зависимосоти от типа СУБД). Вне транзакции, каждое изменение будет записано непосредственно в базу данных, сильно ускоряя процесс. Опасность такого подхода состоит в том, что если прервать исполнение в процессе работы функции (к примеру, выключить питание на сервере СУБД), таблица будет содержать неполную информацию и будет необходимо запустить эту фукнцию с снова.

Примеры

//Функция блокирует накопитель "ОстаткиТМЦ" и производит пересчет его таблицы остатков
Stor.ОстаткиТМЦ.SysRecalcTotals();