Внезапное отключение электроэнергии в момент записи документа — одна из самых неприятных ситуаций для администратора базы данных 1С. В результате такой аварии в системе могут появиться «фантомные» записи, некорректные остатки или битые ссылки. В этой статье мы подробно разберем, как восстановить работоспособность системы, если в базе зависли данные или отображаются некорректные суммы, которые невозможно удалить стандартными методами.
Рассмотрим сценарий, когда в результате сбоя в интерфейсе пользователя отображается запись (например, сумма), которая не привязана к реальному документу. Проанализируем причину: платформа 1С использует транзакционный механизм. Если свет выключился в момент фиксации транзакции, данные могли записаться в таблицы итогов регистров, но не успели зафиксироваться в основной таблице документа. Или же повредился индексный файл, из-за чего система «видит» то, чего нет в физических таблицах.
Прежде чем приступать к любым манипуляциям, необходимо создать резервную копию базы данных! Это критически важное правило, так как инструменты исправления могут безвозвратно удалить данные, которые мы могли бы восстановить вручную.
Если ваша база работает в файловом режиме (файл 1Cv8.1CD), первым делом мы должны проверить физическую структуру файла. Для этого используем штатную утилиту chdbfl.exe. Разберем процесс по шагам:
C:\Program Files\1cv8\8.3.X.XXXX\bin).chdbfl.exe.1Cv8.1CD.Проанализируем результат: если утилита нашла ошибки на уровне таблиц, она их исправит. Часто это решает проблему «зависших» цифр, так как восстанавливаются указатели в заголовках таблиц базы данных.
Если физическая проверка не помогла, перейдем к логическому уровню. Для этого воспользуемся механизмом «Тестирование и исправление» (ТиС). Зайдем в информационную базу в режиме «Конфигуратор» и выберем меню «Администрирование» — «Тестирование и исправление».
Рассмотрим подробнее настройки, которые помогут нам избавиться от «фантомных» записей:
Выясним разницу: если мы выберем «Создавать объекты», система при обнаружении битой ссылки (когда запись в регистре есть, а документа-регистратора нет) создаст новый пустой документ. Это позволит нам увидеть, к какому типу документов относилась «зависшая» сумма, и при необходимости дозаполнить его или корректно удалить. Если же выбрать «Очищать ссылки», система просто удалит некорректные записи из регистров.
Иногда проблема кроется не в самой базе, а в том, что платформа закэшировала некорректные данные на компьютере пользователя. Рассмотрим, как очистить кэш вручную. Нам нужно удалить содержимое папок, где хранятся временные файлы конфигурации.
Пути к папкам кэша обычно выглядят так:
%AppData%\1C\1Cv8%LocalAppData%\1C\1Cv8Внутри этих директорий находятся папки с именами-идентификаторами (например, eb45-d8...). Проанализируем ситуацию: если мы удалим эти папки, при следующем запуске 1С заново скачает структуру метаданных из базы. Это гарантированно уберет визуальные артефакты, вызванные сбоем кэширования.
Для автоматизации можно использовать простой командный файл .bat:
@echo off
rmdir /s /q "%AppData%\1C\1Cv8"
rmdir /s /q "%LocalAppData%\1C\1Cv8"
echo Кэш успешно очищен!
pause
Если «зависшая» тысяча все еще отображается в отчетах, нам необходимо принудительно пересчитать итоги регистров. В режиме «1С:Предприятие» (для управляемых форм) это можно сделать через «Функции для технического специалиста» — «Стандартные» — «Управление итогами».
Посмотрим на алгоритм действий:
Проанализируем, что происходит: система заново просуммирует все движения по документам и обновит агрегированные значения в таблицах итогов. Если записи о документе нет, а сумма в итогах была — она обнулится.
Если ваша база работает на MS SQL Server или PostgreSQL, возможности диагностики расширяются. Разберем действия администратора:
DBCC CHECKDB ('Имя_Вашей_Базы') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Если будут обнаружены ошибки размещения страниц, их необходимо исправлять средствами СУБД, так как стандартное тестирование 1С может не справиться с повреждением на уровне страниц данных SQL.
Для того чтобы подобные ситуации не повторялись, разберем рекомендации по настройке инфраструктуры:
8.3.10.2505 является устаревшей. В более современных релизах (например, ветки 8.3.22 и выше) оптимизирована работа с кэшем и повышена стабильность транзакций в файловом режиме.Подводя итог, можно сказать, что в большинстве случаев «зависшие» данные успешно удаляются комбинацией утилиты chdbfl.exe и «Тестирования и исправления» с опцией очистки ссылок. Главное — всегда действовать последовательно и не забывать про резервное копирование.