Difference between revisions of "DB.SysRecalcTotals"
m (1 revision imported) |
1>Admin |
||
Line 16: | Line 16: | ||
== Синтаксис == | == Синтаксис == | ||
<code> | <code> | ||
− | {{Grey|DB.}}'''SysRecalcTotals'''() | + | {{Grey|DB.}}'''SysRecalcTotals'''({{Optional|<Не использовать режим транзакции (INT)>{{Default|{{Eq}}0}}}}) |
</code> | </code> | ||
+ | |||
+ | ==== Аргументы ==== | ||
+ | * <code>''<Не использовать режим транзакции (INT)>''</code> - {{Optional}} Позволяет не использовать режим транзакции во время пересчета (по умолчанию использовать -- '''0'''). Если база данных очень большая, транзакция будет копить все изменения в таблице логов СУБД до ее завершения (а это могут быть гигабайты информации), таким образом сильно увеличивая время пересчета, иногда в сотни раз. Таблица итогов очищается перед началом работы, что может явиться предлогом для копирования всего ее содержимого в файл логов СУБД (в зависимосоти от типа СУБД). Вне транзакции, каждое изменение будет записано непосредственно в базу данных, сильно ускоряя процесс. Опасность такого подхода состоит в том, что если прервать исполнение в процессе работы функции (к примеру, выключить питание на сервере СУБД), таблица будет содержать неполную информацию и будет необходимо запустить эту фукнцию с снова. | ||
== Примеры == | == Примеры == |
Revision as of 15:22, 19 July 2023
SysRecalcTotals (Пересчет таблиц остатков) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция блокирует текущий накопитель и производит полный пересчет и заполнение таблицы остатков этого накопителя, если он имеет реквизиты-аккумуляторы и реквизиты активы. Для больших объемов данных функция может выполняться длительное время, в течение которого, система не позволит производить обработку документов с движениями в указанном накопителе. Функция используется для отладки и исправления базы данных, для обычной работы функция не требуется.
Синтаксис
DB.SysRecalcTotals(<Не использовать режим транзакции (INT)>=0)
Аргументы
<Не использовать режим транзакции (INT)>
- (необязательный аргумент) Позволяет не использовать режим транзакции во время пересчета (по умолчанию использовать -- 0). Если база данных очень большая, транзакция будет копить все изменения в таблице логов СУБД до ее завершения (а это могут быть гигабайты информации), таким образом сильно увеличивая время пересчета, иногда в сотни раз. Таблица итогов очищается перед началом работы, что может явиться предлогом для копирования всего ее содержимого в файл логов СУБД (в зависимосоти от типа СУБД). Вне транзакции, каждое изменение будет записано непосредственно в базу данных, сильно ускоряя процесс. Опасность такого подхода состоит в том, что если прервать исполнение в процессе работы функции (к примеру, выключить питание на сервере СУБД), таблица будет содержать неполную информацию и будет необходимо запустить эту фукнцию с снова.
Примеры
//Функция блокирует накопитель "ОстаткиТМЦ" и производит пересчет его таблицы остатков Stor.ОстаткиТМЦ.SysRecalcTotals();