Телефон: +7 (861) 279-33-66
Контактная информация

Восстановление работоспособности баз 1С (часть 1).

Восстановление работоспособности баз 1С (часть 1).

Довольно часто мы слышим от пользователей жалобы на то, что программа неожиданно "сломалась". Особенно неприятна эта новость в ситуации, когда в срочном порядке нужно сдавать бухгалтерскую или налоговую отчетность. В этом и следующих выпусках мы обсудим возможные причины и, главное, методы восстановления работоспособности информационных баз.

Наиболее часто встречаемые сообщения о повреждении базы данных (БД):
• "Файл базы данных поврежден…";
• "Нарушена целостность структуры…";
• "Ошибка СУБД...";
• "Внутренняя ошибка компоненты dbeng8";
• "Ошибка формата потока";
• "Ошибка SDBL";
• "Ошибка XDTO";
• или информационная база (ИБ) просто не открывается, зависает при запуске.

Закономерно возникает вопрос "по каким же причинам возникают подобные ошибки?". А причин масса:
• отключение света или даже скачки напряжения;
• "зависание" операционной системы;
• аварийное или некорректное завершение работы программы или всего компьютера;
• работа с одной и той же базой с помощью различных версий платформы 1С;
• действие некоторых разновидностей компьютерных вирусов;
• сбои в локальной сети;
• сбои в процессе обновления конфигурации и т.д. Такие ситуации, а особенно, если они возникают в момент записи данных, могут приводить к указанным выше проблемам.

В ряде наших статей мы рассмотрим методы восстановления работоспособности файловых баз, которые не сложно администрировать силами обычных пользователей: процедура Тестирования и исправления и утилита chdbfl, очистка кэша метаданных и ряд дополнительных способов. Администрирование клиент-серверных и распределенных ИБ лучше доверять квалифицированным специалистам.

ВНИМАНИЕ! Перед выполнением процедур восстановления информационной базы в обязательном порядке провести резервное копирование БД. Подробнее о способах копирования файловых баз можно ознакомиться в одной из наших предыдущих статей: http://www.portal-ug.ru/blog/corp/102.php

Определить вариант работы ИБ можно в окне запуска 1С. Ориентироваться нужно на нижнюю строку: 1) если она начинается со слова "File", то база файловая, хранится на дисках самого компьютера или в локальной сети (путь к месту хранения базы указан в той же строке); 2) если строка начинается со слова "Srvr», соответственно, база клиент-серверная.


Процедура тестирование и исправление информационной базы в режиме "Конфигуратор".
Процедура предназначена для диагностики и устранения ошибок и сбоев ИБ, пересчета итогов, оптимизации и ускорения работы.
Внимание! При проведении процедуры тестирования и исправления в базе не должно быть других активных пользователей! Программа произведет анализ возможности установки монопольного режима.
В случае обнаружения невозможности его установки на экран выводится предупреждение: "Не удалось переключить доступ в монопольный режим. Имеются работающие пользователи". Для получения информации о работающих пользователях нужно открыть список активных пользователей (Администрирование/Активные пользователи). Всех таких пользователей нужно попросить завершить свои сеансы на время тестирования. После завершения работы монопольный режим снимается.
Для начала тестирования требуется открыть информационную базу в режиме "Конфигуратор". Далее выбираем меню Администрирование/ Тестирование и исправление.


В открывшемся диалоговом окне устанавливается режим и параметры тестирования информационной базы.
По умолчанию, флаги стоят на строках "Реиндексация таблиц информационной базы", "Проверка ссылочной целостности информационной базы", "Проверка логической целостности информационной базы", "Пересчет итогов", – как правило, этого достаточно.


Операции Сжатия и Реструктуризации таблиц для целей восстановления работоспособности рекомендуется проводить только в случае, если устранить проблему не помогла ни процедура Тестирование и исправление (с первыми четырьмя флагами), ни утилита chdbfl.exe + Тестирование и исправление в Конфигураторе. Установки при необходимости можно изменять, а отдельные процедуры тестирования выполнять независимо друг от друга.

Группа переключателей "При наличии ссылок на несуществующие объекты" определяет, должна ли программа при обнаружении ссылок на несуществующие объекты создавать эти объекты или удалять ссылки. Можно также отказаться от исправлений ошибок этого типа. Для это нужно оставить переключатель в значении "Не изменять".
Группа переключателей "При частичной потере данных объектов" задает поведение программы, если было обнаружено, что данные объектов были частично потеряны, но оставшихся данных достаточно для того, чтобы восстановить потерянные. Оптимальнее оставить переключатель в значении "Не изменять", поскольку в случаях с частичной потерей данных лучше обратиться к специалистам.
Флажок "Прервать выполнение проверки" позволяет задать нужное время, после истечения которого нужно задать паузу в проверке. После этого при открытии за- ново в режиме Конфигуратор процедуры Тестирование и исправление можно будет поставить флажок "Продолжить прерванное ранее тестирование", и оно продолжится с момента остановки. Однако все же не рекомендуется прерывать процесс тестирования во избежание сбоев.

После проведения процедуры тестирования и исправления нужно открыть ИБ в режиме 1С:Предприятие и попытаться воспроизвести действие, после которого возникали ошибки. Например, если ошибка появлялась при попытке проведения документа "Поступление товаров и услуг", нужно снова попытаться провести этот документ, проверив тем самым, устранена ли проблема.
Подробнее с данной процедурой тестирования и исправления можно ознакомиться на сайте ИТС в раздел "Разработка и администрирование".
В случае, если тестирование и исправление с первыми четырьмя флагами не принесли результата, тестирование прервалось или конфигуратор совсем не открывается, следует обратиться к внешней утилите тестирования chdbfl.ехе.

Утилита тестирования chdbfl.exe
Эта внешняя утилита, входит в комплект с платформой 1С:8. Найти ее можно в каталоге, где установлена платформа 1С:


Предназначена она для проверки и исправления файлов БД. Утилита представляет собой файл с типом "Приложение". Перед тестированием необходимо сделать копию, если еще это не сделано, после чего запустить утилиту, указать файл ИБ, который необходимо протестировать.
Открыв папку с информационной базой, требуется выбрать файл базы данных под названием "1cv8" (он имеет расширение "*.1cd", тип файла "Файловая информационная база"), завершить выбор кнопкой "Открыть".


Внимание! Убедитесь, что информационная база не открыта ни в режиме Конфигуратор, ни в режиме 1С:Предприятие!
Устанавливаем флажок "Исправлять обнаруженные ошибки", далее нажимаем кнопку "Выполнить", после чего начнется процесс тестирования.
Внимание! После выполнения тестирования базы с помощью утилиты chdbfl  необходимо в обязательном порядке провести штатную процедуру Тестирования и исправления через Конфигуратор.
В большинстве случаев, если конфигуратор не открывался, то после chdbfl.exe он откроется. Однако, если в процессе тестирования утилита выдала сообщение о том, что какие-либо данные безвозвратно утеряны, какие-то таблицы полностью разрушены, то с этой информационной базой работать далее не рекомендуется.
В таком случае остается только найти наиболее свежую копию информационной базы, к которой можно вернуться и использовать ее далее в качестве рабочей. Восстановленную таким образом базу, прежде чем продолжать в ней работать и восстанавливать данные, следует протестировать.
В случае, если рекомендуемый комплекс методов тестирования и исправления не дал ожидаемых результатов, иногда помогает повторное тестирование. Например, если Конфигуратор так и не удалось запустить после chdbfl, хотя утилита сообщала об исправлении каких-либо проблем, то можно попытаться повторно запустить chdbfl. После второго тестирования chdbfl Конфигуратор может запуститься, штатное тестирование пройдет успешно, данные будут спасены, а работоспособность ИБ восстановлена. Тестирование и исправление в Конфигураторе так же можно запускать повторно.