DB.SysRecalcTotals
SysRecalcTotals (Пересчет таблиц остатков) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция блокирует текущий накопитель и производит полный пересчет и заполнение таблицы остатков этого накопителя, если он имеет реквизиты-аккумуляторы и реквизиты активы. Для больших объемов данных функция может выполняться длительное время, в течение которого, система не позволит производить обработку документов с движениями в указанном накопителе. Функция используется для отладки и исправления базы данных, для обычной работы функция не требуется.
Синтаксис
DB.SysRecalcTotals(<Не использовать режим транзакции (INT)>=0)
Аргументы
<Не использовать режим транзакции (INT)>
- (необязательный аргумент) Позволяет не использовать режим транзакции во время пересчета (по умолчанию использовать -- 0). Если база данных очень большая, транзакция будет копить все изменения в таблице логов СУБД до ее завершения (а это могут быть гигабайты информации), таким образом сильно увеличивая время пересчета, иногда в сотни раз. Таблица итогов очищается перед началом работы, что может явиться предлогом для копирования всего ее содержимого в файл логов СУБД (в зависимосоти от типа СУБД). Вне транзакции, каждое изменение будет записано непосредственно в базу данных, сильно ускоряя процесс. Опасность такого подхода состоит в том, что если прервать исполнение в процессе работы функции (к примеру, выключить питание на сервере СУБД), таблица будет содержать неполную информацию и будет необходимо запустить эту фукнцию с снова.
Примеры
//Функция блокирует накопитель "ОстаткиТМЦ" и производит пересчет его таблицы остатков Stor.ОстаткиТМЦ.SysRecalcTotals();