Итоги - продолжение
Внимательный читатель прошлой заметки задаст вопрос: если часть итоговых данных какого-либо регистра удалено, то как теперь использовать стандартный пересчет?
Дело в том, что размер описываемой базы немаленький и стандартный пересчет итогов и так не заканчивался за вменяемое время. Поэтому я пересчитываю не по всем регистрам, а только по какому-нибудь одному, где итоги реально сломались (конечный остаток одного периода не равен начальному остатку следующего).
На файловой 1С 7.7 это можно сделать с помощью такого лайфхака:
- После завершения работы пользователей делаем копию базы для манипуляций
- Удаляем все индексы
- Удаляем все файлы итогов (RG)
- Удаляем все файлы движений (RA), кроме файла итоги которого нужно пересчитать
- Запускаем режим 1С:Предприятия - создадутся пустые файлы вместо удаленных и индексы
- Запускаем пересчет итогов
- Копируем пересчитанный файл итогов (RG) вместе с индексом в рабочую базу
Если же сломается именно тот регистр у которого удалены старые итоги, то после его пересчета в копии, надо будет удалить старые данные снова. В самом крайнем случае, если пересчет все-таки упадет из-за размера, можно будет для манипуляций в копии временно использовать SQL, а в рабочую базу вернуть снова обрезанный файл.
Почти любую проблему можно решить, надо только понимать внутреннее устройство рассматриваемого предмета и не бояться пробовать.