В практике администрирования баз данных 1С:Предприятия 7.7 на файловой архитектуре DBF нередко возникают критические ситуации, когда неквалифицированные попытки ускорить работу системы приводят к пропаже данных. Типичный сценарий: администратор или пользователь вырезает самые большие файлы таблиц из каталога базы данных, запускает конфигурацию, после чего обнаруживает полное отсутствие остатков товаров и движений по регистрам. Даже возврат исходных файлов на место не возвращает данные в интерфейс программы. Разберем детально физические причины такого поведения системы и пошаговый алгоритм полного восстановления работоспособности информационной базы.
Выясним причину, по которой 1С 7.7 перестает «видеть» остатки даже после возврата файлов таблиц на место. Информационная база платформы версии 7.7 представляет собой связанный комплекс файлов, где ключевую роль играют три компонента:
*.DBF) — содержат физические записи документов, справочников, движений и остатков. В частности, остатки регистров хранятся в таблицах итогов RG*.DBF, а их движения — в таблицах RA*.DBF. Служебные параметры, включая дату и время Точки Актуальности (ТА), зафиксированы в файле 1CSYSTEM.DBF, а список всех проведенных документов — в 1SJOURN.DBF.*.CDX) — содержат B-деревья индексов, ускоряющих поиск по ключевым полям и связывающих документы с проводками и регистрами. Индексы жестко привязаны к физическим смещениям записей в соответствующих DBF-файлах.1CV7.DD) — файл описания метаданных, задающий соответствие физических имен файлов конкретным объектам конфигурации.Когда каталог базы запускается без ключевых таблиц регистров, платформа автоматически определяет их отсутствие и пересоздает пустые DBF-файлы с нулевым содержимым. При этом модифицируется системная таблица 1CSYSTEM.DBF, смещается Точка Актуальности, а индексные файлы *.CDX перестраиваются под новые пустые структуры. Если после этого вернуть старые большие файлы обратно, старые индексы *.CDX начинают указывать на невалидные позиции и блоки памяти, либо система обращается к некорректным записям. В результате программа не может прочитать рассчитанные итоги, и отчеты показывают нулевые остатки.
Прежде чем приступать к каким-либо восстановительным операциям, зафиксируем текущее состояние базы. Создание резервной копии — главное правило любого вмешательства в структуру данных.
Проанализируем практический способ исправления ошибки, показавший свою эффективность при ручном повреждении структуры. Главная ошибка заключается в попытке вернуть вместе с DBF старые или частично перестроенные файлы CDX. Посмотрим, как правильно выполнить синхронизацию:
*.DBF обратно в рабочий каталог базы данных с обязательной заменой файлов, созданных платформой за время ошибочного запуска.*.CDX. Удалять выборочно только часть индексов нельзя, так как связи между таблицами 1SJOURN, 1CSYSTEM и регистрами должны быть согласованы целиком. Сами файлы *.DBF, а также файл словаря метаданных 1CV7.MD и описатель 1CV7.DD трогать категорически запрещено.После завершения реиндексации откроем любой стандартный отчет по остаткам (например, остатки товаров на складах) и проверим корректность отображения данных.
Если после реиндексации документы видны в журналах, но остатки в отчетах не сходятся или отсутствуют на текущую дату, причина кроется в нарушении служебных итогов регистров. Выполним пересчет итогов штатными средствами пользовательского режима:
RG*.DBF на основе накопленных записей в таблицах движений RA*.DBF.Если штатное «Тестирование и исправление» зависает (например, на этапе проверки физической целостности или проверки журналов документов), наиболее чистым способом приведения базы 1С 7.7 в порядок является процедура полной выгрузки и загрузки данных через Конфигуратор:
*.DAT и 1CV7.MD). В процессе выгрузки платформа считывает данные на уровне логических записей, игнорируя повреждения индексов и мусорные блоки.В процессе загрузки система заново создает все таблицы DBF, полностью исключает удаленные записи, оптимизирует внутреннее распределение идентификаторов и заново рассчитывает индексы. Этот метод позволяет избавиться от большинства скрытых сбоев файловой базы.
Удаление таблиц регистров и документов из работающей базы недопустимо ни при каких обстоятельствах. Каталог базы 7.7 неделим. Чтобы ускорить работу устаревшей конфигурации на слабых машинах, применим проверенные административные методы:
1SJOURN, RA* и RG* в несколько раз.*.dbf, *.cdx, *.md, а также системную папку временных файлов %TEMP% в список исключений антивируса.*.DBF до размера более 1,8–2 ГБ, так как это вызывает критический сбой 32-битного адресного пространства платформы.