Если пересчет итогов не занимает много времени, то можно просто время от времени пересчитывать итоги.
А вот если пересчет итогов по одному регистру занимает несколько часов, то уже возникает вопрос, как же быть уверенным, что с итогами все нормально.
Для себя закрыл вопрос написав обработку и включив ее в регламент. Теперь каждую ночь обработка проверяет регистры накопления и шлет письмо, если что-то не так.
Как работает? Сверяет обороты по с периодичностью "запись" с оборотами без периодичности. Проверяет последний год от текущей даты. Проверяет все регистры накоплений.
Механизм проверки выглядит так:
Для Каждого Рег Из Метаданные.РегистрыНакопления Цикл
ТекстЗапроса =
"ВЫБРАТЬ
| РегОбороты.Измерение,
| СУММА(РегОбороты.Ресурс) КАК РесурсПериод,
| 0 КАК Ресурс
|ПОМЕСТИТЬ ТаблицаДанных
|ИЗ
| РегистрНакопления.ИмяРегистра.Обороты(&D1, &D2, Запись, ) КАК РегОбороты
|
|СГРУППИРОВАТЬ ПО
| РегОбороты.Измерение
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РегОбороты.Измерение,
| 0,
| СУММА(РегОбороты.Ресурс)
|ИЗ
| РегистрНакопления.ИмяРегистра.Обороты(&D1, &D2, , ) КАК РегОбороты
|
|СГРУППИРОВАТЬ ПО
| РегОбороты.Измерение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаДанных.Измерение,
| СУММА(ТаблицаДанных.РесурсПериод) КАК РесурсПериод,
| СУММА(ТаблицаДанных.Ресурс) КАК Ресурс
|ПОМЕСТИТЬ ТаблицаДанныхГрупп
|ИЗ
| ТаблицаДанных КАК ТаблицаДанных
|
|СГРУППИРОВАТЬ ПО
| ТаблицаДанных.Измерение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаДанныхГрупп.Измерение,
| ТаблицаДанныхГрупп.РесурсПериод,
| ТаблицаДанныхГрупп.Ресурс
|ИЗ
| ТаблицаДанныхГрупп КАК ТаблицаДанныхГрупп
|ГДЕ
| ТаблицаДанныхГрупп.Ресурс <> ТаблицаДанныхГрупп.РесурсПериод
|";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Измерение", Рег.Измерения[0].Имя);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Ресурс", "" + Рег.Ресурсы[0].Имя + "Оборот");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИмяРегистра", Рег.Имя);
Если есть проблема по какому-то регистру, пересчитываем этот регистр:
РегистрыНакопления[ИмяРег].ПересчитатьИтоги()
P.S. Обработка протестирована на релизе 1С:Предприятие 8.2 (8.2.19.130). Должна работать на любых релизах 8.2-8.3.