В практике сопровождения старых систем на платформе 1С:Предприятие 7.7 (особенно DBF-версий) администраторы часто сталкиваются с пугающей ситуацией: в отчетах внезапно исчезают все конечные остатки, хотя документы прихода и расхода визуально присутствуют в журналах. Стандартные процедуры, такие как «Тестирование и исправление» (ТиИ) или переиндексация, в ряде случаев оказываются бесполезными. Проанализируем причины этой проблемы и разберем пошаговый алгоритм восстановления работоспособности базы.
Для начала разберем, как 1С 7.7 хранит информацию о движениях и остатках. В системе используются два типа таблиц для регистров:
Когда мы видим «нулевые остатки», это чаще всего означает, что связь между движениями (RA) и итогами (RG) нарушена, либо файлы RG повреждены или очищены. Выясним, как заставить систему восстановить этот кэш на основе имеющихся движений.
Прежде чем приступать к активным действиям, проанализируем состояние каталога базы данных. Рассмотрим важный нюанс: формат DBF имеет жесткое ограничение на размер файла — 2 ГБ. Однако стабильность работы начинает падать гораздо раньше, при достижении файлом размера 800–900 МБ или при превышении порога в 16 миллионов записей.
Проверим размеры файлов в папке базы. Нас интересуют самые крупные объекты. Если файл RA*.dbf или соответствующий ему RG*.dbf приближается к критической отметке, стандартные методы пересчета могут завершаться ошибкой или приводить к новым сбоям. В этом случае единственным долгосрочным решением будет свертка базы или переход на SQL-версию.
Иногда штатное «Индексирование» из Конфигуратора не помогает, так как повреждены сами индексные файлы *.CDX. Рассмотрим более надежный способ:
Это исключит вероятность того, что система «не видит» остатки из-за «битых» индексов.
Как показал практический опыт, наиболее эффективным и быстрым способом «оживить» остатки является принудительный перенос Точки Актуальности. Точка актуальности — это временная отметка, по которую рассчитаны итоги в регистрах.
Разберем алгоритм действий:
Важно: При перемещении ТА назад 1С очищает итоги после этой даты, а при движении вперед — пересчитывает их заново, последовательно проводя движения документов через регистры. Это заставляет систему актуализировать файлы RG.
Если манипуляции с ТА не помогли, воспользуемся более жестким методом — полной очисткой кэша итогов. Выясним последовательность действий:
RG*.dbf в каталоге базы.*.cdx.После запуска система обнаружит отсутствие файлов итогов. Теперь нам необходимо запустить пересчет. Перейдем в «Администрирование» — «Тестирование и исправление БД». Выберем только пункт «Пересчет итогов». Рассмотрим, что произойдет: 1С начнет сканировать все файлы движений RA с самого начала ведения учета и заново сформирует файлы RG. Для базы объемом более 3 ГБ этот процесс может занять длительное время (от нескольких часов до суток), поэтому убедитесь, что компьютер не выключится в процессе.
Проанализируем, почему опытные администраторы 7.7 предостерегают от бездумного запуска всех опций ТиИ. В режиме «Проверка логической целостности» система, обнаружив ссылку на несуществующий объект (например, из-за сбоя при записи), может просто удалить «битую» запись. Если повреждение коснулось важного документа, формирующего остатки, то после ТиИ данные могут исчезнуть безвозвратно. При ручном восстановлении (через DBF-редакторы) такие данные часто удается спасти.
Посмотрим на проблему в контексте распределенных баз. Если сбой произошел только в периферийной базе (ПБ), причиной может быть неудачная синхронизация. Рассмотрим возможные сценарии:
В таких случаях, если пересчет итогов не помогает, самым надежным способом будет создание нового образа периферийной базы из центральной. Это гарантированно восстановит структуру RG и RA в соответствии с эталоном.
Чтобы минимизировать риск обнуления остатков в будущем, проанализируем следующие рекомендации:
RA/RG выше 1 ГБ. Регулярно делайте свертку базы (перенос остатков в документы ввода остатков и удаление старых движений).Таким образом, мы выяснили, что обнуление остатков в 1С 7.7 — это чаще всего проблема кэширования итогов. Последовательное применение метода «перетаскивания» ТА или полной регенерации файлов RG позволяет восстановить данные без потерь.