Difference between revisions of "DB.SysRecalcTotals"
(Created page with "{{infobox function |name=SysRecalcTotals |object=Объект базы данных |caption=Пересчет таблиц остатков |type=1 |status=2 |db=2 |visual...") |
m (1 revision imported) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 16: | Line 16: | ||
== Синтаксис == | == Синтаксис == | ||
<code> | <code> | ||
− | {{Grey|DB.}}'''SysRecalcTotals'''() | + | {{Grey|DB.}}'''SysRecalcTotals'''({{Optional|<Не использовать режим транзакции (INT)>{{Default|{{Eq}}0}}}}) |
</code> | </code> | ||
+ | |||
+ | ==== Аргументы ==== | ||
+ | * <code>''<Не использовать режим транзакции (INT)>''</code> - {{Optional}} Позволяет не использовать режим транзакции во время пересчета (по умолчанию использовать -- '''0'''). Если база данных очень большая, транзакция будет копить все изменения в таблице логов СУБД до ее завершения (а это могут быть гигабайты информации), таким образом сильно увеличивая время пересчета, иногда в сотни раз. Таблица итогов очищается перед началом работы, что может явиться предлогом для копирования всего ее содержимого в файл логов СУБД (в зависимосоти от типа СУБД). Вне транзакции, каждое изменение будет записано непосредственно в базу данных, сильно ускоряя процесс. Опасность такого подхода состоит в том, что если прервать исполнение в процессе работы функции (к примеру, выключить питание на сервере СУБД), таблица будет содержать неполную информацию и будет необходимо запустить эту фукнцию с снова. | ||
== Примеры == | == Примеры == |
Latest revision as of 09:02, 7 August 2023
SysRecalcTotals (Пересчет таблиц остатков) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция блокирует текущий накопитель и производит полный пересчет и заполнение таблицы остатков этого накопителя, если он имеет реквизиты-аккумуляторы и реквизиты активы. Для больших объемов данных функция может выполняться длительное время, в течение которого, система не позволит производить обработку документов с движениями в указанном накопителе. Функция используется для отладки и исправления базы данных, для обычной работы функция не требуется.
Синтаксис
DB.SysRecalcTotals(<Не использовать режим транзакции (INT)>=0)
Аргументы
<Не использовать режим транзакции (INT)>
- (необязательный аргумент) Позволяет не использовать режим транзакции во время пересчета (по умолчанию использовать -- 0). Если база данных очень большая, транзакция будет копить все изменения в таблице логов СУБД до ее завершения (а это могут быть гигабайты информации), таким образом сильно увеличивая время пересчета, иногда в сотни раз. Таблица итогов очищается перед началом работы, что может явиться предлогом для копирования всего ее содержимого в файл логов СУБД (в зависимосоти от типа СУБД). Вне транзакции, каждое изменение будет записано непосредственно в базу данных, сильно ускоряя процесс. Опасность такого подхода состоит в том, что если прервать исполнение в процессе работы функции (к примеру, выключить питание на сервере СУБД), таблица будет содержать неполную информацию и будет необходимо запустить эту фукнцию с снова.
Примеры
//Функция блокирует накопитель "ОстаткиТМЦ" и производит пересчет его таблицы остатков Stor.ОстаткиТМЦ.SysRecalcTotals();