Нередко после аварийного завершения работы программы, отключения питания или сбоев в локальной сети файловая информационная база 1Cv8.1CD перестает открываться. Стандартная процедура восстановления с помощью утилиты chdbfl.exe и штатного режима Тестирование и исправление в Конфигураторе возвращает базу к жизни, однако пользователи начинают жаловаться на сильные задержки: обычные отчеты (например, оборотно-сальдовая ведомость) начинают формироваться минутами, а системный монитор фиксирует сотни мегабайт дискового чтения на простейших запросах.
Разберем детально, почему так происходит, как внутренние механизмы платформы 1С работают с итогами регистров и каким образом можно полностью вернуть прежнюю производительность.
Проанализируем внутреннюю архитектуру работы платформы с регистрами бухгалтерии и регистрами накопления:
Наиболее надежный способ устранить скрытые повреждения агрегатов — полностью отключить использование итогов для регистра через встроенный язык 1С, что физически очищает таблицу итогов, а затем включить их заново и выполнить полный пересчет.
Рассмотрим пример программной обработки для сброса и восстановления итогов по регистрам бухгалтерии:
// Отключаем использование итогов для регистра бухгалтерии
// Это действие полностью очищает физическую таблицу итогов
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Ложь);
// Включаем использование итогов заново
РегистрыБухгалтерии.Хозрасчетный.УстановитьИспользованиеИтогов(Истина);
// Устанавливаем границу рассчитанных итогов на нужную дату
ГраницаИтогов = КонецМесяца(ТекущаяДатаСеанса());
РегистрыБухгалтерии.Хозрасчетный.УстановитьПериодРассчитанныхИтогов(ГраницаИтогов);
// Выполняем полный пересчет итогов
РегистрыБухгалтерии.Хозрасчетный.ПересчитатьИтоги();
Аналогичную процедуру при необходимости выполняем для всех регистров накопления, по которым наблюдается медленное формирование отчетов:
// Сброс и пересчет для регистра накопления
РегистрыНакопления.ТоварыНаСкладах.УстановитьИспользованиеИтогов(Ложь);
РегистрыНакопления.ТоварыНаСкладах.УстановитьИспользованиеИтогов(Истина);
РегистрыНакопления.ТоварыНаСкладах.ПересчитатьИтоги();
После пересчета итогов необходимо завершить регламентные процедуры по оптимизации файла информационной базы:
1Cv8.1CD и устранит внутреннюю фрагментацию.%LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8, чтобы исключить рассинхронизацию кэшированных метаданных..cf и перенесем данные с помощью универсальной обработки Выгрузка и загрузка данных XML. Это позволит создать структуру таблиц с нуля.Файловый режим работы через общий сетевой ресурс (SMB/CIFS) крайне чувствителен к нестабильности сети и аварийным отключениям клиентов. Чтобы предотвратить повторение проблемы, применим следующие архитектурные решения:
logcfg.xml для фиксации событий SDBL и DBFILES, что позволит быстро определять проблемные таблицы и запросы, создающие избыточную нагрузку на диск.