Почему недоступна галочка «Проверка физической целостности» в 1С:Предприятии 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

При работе с платформой 1С:Предприятие 7.7 администраторы и программисты часто сталкиваются с ситуацией, когда при запуске процедуры «Тестирование и исправление информационной базы» (ТиИ) один из самых важных пунктов — «Проверка физической целостности» — оказывается недоступен (заблокирован). Это вызывает беспокойство, особенно если база ведет себя нестабильно или выдает ошибки при попытке объединения конфигураций. В данной статье мы подробно разберем, почему это происходит, и проанализируем алгоритм действий для эффективного лечения базы.

Причина недоступности опции в SQL-версиях

Для начала выясним причину такого поведения интерфейса. Разберем архитектурные различия форматов хранения данных в 1С 7.7. В этой платформе существует два основных типа баз данных: DBF (файловая) и SQL (серверная).

Пункт «Проверка физической целостности» был разработан программистами 1С исключительно для работы с форматом DBF/CDX. В файловой версии платформа напрямую управляет бинарной структурой таблиц. Процедура проверяет заголовки файлов, соответствие длин записей описанию в словаре данных и отсутствие «мусора» на физическом уровне диска. Если же ваша база данных работает под управлением MS SQL Server, ситуация кардинально меняется.

В серверном режиме за физическое хранение данных, распределение их по страницам и контроль целостности файлов данных (.mdf) и логов (.ldf) отвечает сама СУБД. Платформа 1С 7.7 в данном случае выступает лишь клиентом, который посылает запросы. Она не имеет низкоуровневого доступа к страницам SQL-сервера, а потому физическая проверка средствами 1С технически невозможна и логически избыточна. Именно поэтому галочка становится серой и недоступной для выбора.

Как проверить целостность, если база на SQL?

Если мы подозреваем наличие физических повреждений в серверной базе (например, после сбоя питания сервера или ошибок дискового массива), нам следует использовать инструменты MS SQL Server, а не штатное тестирование 1С. Рассмотрим основные шаги:

  1. Команда DBCC CHECKDB: Это основной инструмент для проверки физической и логической целостности всех объектов в базе данных SQL. Мы можем запустить ее через SQL Management Studio: DBCC CHECKDB ('Имя_Вашей_Базы') WITH NO_INFOMSGS, ALL_ERRORMSGS; Если команда возвращает ошибки, это серьезный сигнал о повреждении данных на уровне СУБД.
  2. Реиндексация: В файловой базе за это отвечает пункт «Переиндексация». В SQL-версии 1С этот пункт доступен, но эффективнее выполнять перестроение индексов (Rebuild Indexes) средствами самого SQL Server, что позволяет оптимизировать производительность и устранить возможные перекосы в индексах.

Проблема повреждения файла конфигурации (1cv7.md)

Часто пользователи путают повреждение данных (таблиц со справочниками и документами) и повреждение метаданных (самого файла конфигурации 1cv7.md). Тестирование и исправление практически не лечит файл 1cv7.md, так как он является составным OLE-документом со своей сложной структурой.

Проанализируем ситуацию из практики: если при анализе структуры или объединении конфигураций программа «вылетает» с ошибкой, проблема кроется в бинарном повреждении файла .md. Для решения этой задачи мы рекомендуем использовать стороннюю утилиту gcomp. Разберем этот процесс по шагам:

Рекомендованный «транзитный» метод лечения («Хорони и заново»)

Если стандартное тестирование на SQL-сервере не помогает, а ошибки при работе сохраняются, проанализируем самый надежный метод восстановления, который в кругах специалистов 1С 7.7 называют «транзитным» или «выгрузка-загрузка».

Шаг 1. Выгрузка данных. Заходим в «Конфигуратор» на сервере. Выбираем меню «Администрирование» — «Выгрузка данных». Платформа сформирует файл с расширением .dat. Этот файл содержит только чистую информацию без индексов и физического «мусора» таблиц.

Шаг 2. Создание локальной копии. Создаем на локальном компьютере пустую папку и инициализируем в ней новую базу данных, но обязательно в формате DBF. Копируем туда файл конфигурации (1cv7.md) и словари (1cv7.dd).

Шаг 3. Загрузка данных. В локальном конфигураторе выполняем «Администрирование» — «Загрузка данных», выбрав наш файл .dat. Теперь все данные из SQL перекочевали в файловый формат.

Шаг 4. Полное ТиИ. Именно на этом этапе нам становится доступна галочка «Проверка физической целостности». Проводим полное тестирование со всеми включенными опциями:

  1. Проверка физической целостности.
  2. Проверка логической целостности.
  3. Пересчет итогов.
  4. Удаление ссылок на несуществующие объекты (очищать или создавать).

Шаг 5. Обратная миграция. После успешного лечения в формате DBF мы снова делаем «Выгрузку данных» (создаем новый .dat) и загружаем его обратно в пустую SQL-базу на сервере. Этот цикл гарантирует, что структура таблиц SQL будет пересоздана с нуля, а все данные пройдут через «сито» проверок платформы.

Выводы

Подводя итог, отметим: отсутствие галочки «Проверка физической целостности» в SQL-версии — это не ошибка программы, а штатное поведение, обусловленное тем, что 1С доверяет эту работу SQL-серверу. Однако, для глубокого восстановления структуры данных мы рекомендуем всегда иметь под рукой файловую копию базы и использовать метод «транзитной» загрузки, так как именно он позволяет задействовать все механизмы проверки платформы 1С 7.7 в полной мере.

← На главную