К статье
Практический материал

Администрирование · 12 мин

Индексный файл 1С: что это и как с ним работать

Индексный файл 1С — что это такое, где хранится, зачем нужен и что делать, если индексы повреждены. Пошаговая инструкция по восстановлению и профилактике.

Индексный файл 1С — это служебный файл, в котором платформа хранит индексы таблиц базы данных. Индексы ускоряют поиск записей: вместо последовательного перебора всех строк таблицы система обращается к упорядоченной структуре и мгновенно находит нужную запись по ключу. Без индексов даже простой отбор документа по номеру превратился бы в полное сканирование таблицы, что на больших базах заняло бы часы.

В файловом варианте работы индексы физически находятся внутри основного файла базы данных 1Cv8.1CD — там же, где сами данные, настройки и служебные структуры. В клиент-серверном варианте индексами управляет СУБД (MS SQL Server, PostgreSQL, Oracle), и отдельного «файла индексов» в каталоге базы нет. Однако термин «индексный файл» прочно закрепился в практике администраторов 1С, и обычно под ним понимают именно индексные структуры базы, которые могут повреждаться и требовать перестроения.

Чаще всего с индексным файлом сталкиваются в двух ситуациях: когда база начинает выдавать ошибки вида «Ошибка формата потока» или «Файл базы данных поврежден», и когда нужно ускорить работу системы через тестирование и исправление с реиндексацией. Ниже разберём устройство индексов, признаки их повреждения и безопасные способы восстановления.

Что такое индекс и как он устроен в 1С

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

Когда пользователь открывает список документов, платформа строит запрос к таблице. Если по полям отбора или сортировки есть индекс, СУБД (или движок файловой базы) быстро находит нужные строки. Если индекса нет, выполняется полное сканирование таблицы — на больших объёмах это заметно тормозит работу и создаёт блокировки.

Важно понимать: индекс — производная от данных. Его можно удалить и построить заново без потери информации, потому что исходные записи хранятся отдельно. Именно поэтому реиндексация — безопасная и штатная операция, которую платформа выполняет регулярно, например при реструктуризации базы после изменения конфигурации.

Где физически находится индексный файл

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

В клиент-серверном варианте индексы создаются средствами СУБД и хранятся в её служебных структурах. Например, в MS SQL Server индексы физически размещаются в файлах данных базы (.mdf/.ndf), а управлять ими можно через план обслуживания или запросы к системным представлениям.

В каталоге базы есть файл 1Cv8.1CDФайловый вариант

Индексы внутри этого файла, восстановление — через chdbfl.exe или конфигуратор

База подключена через сервер 1СКлиент-серверный вариант

Индексами управляет СУБД, нужны средства MS SQL / PostgreSQL

Ошибки при открытии списков и отчётовВозможное повреждение индексов

Проверить базу утилитой chdbfl.exe и выполнить реиндексацию

Признаки повреждения индексов

Повреждение индексных структур проявляется характерными симптомами. Самый частый — ошибка «Ошибка формата потока» при открытии списка документов, запуске отчёта или проведении документа. Второй типичный признак — сообщение «Файл базы данных поврежден» с указанием пути к 1Cv8.1CD.

Косвенные признаки: документы «пропадают» из списков, хотя поиск по номеру их находит; отчёты показывают неполные данные; резко падает скорость работы без роста объёма базы; платформа аварийно завершается при обращении к конкретным объектам. Все эти симптомы могут указывать на рассинхронизацию индексов с данными.

Причины повреждений почти всегда внешние: аварийное отключение питания во время записи, разрыв сетевого соединения при работе с файловой базой по сети, сбои диска, некорректное завершение процесса 1С, работа антивируса, который блокирует файл базы в момент записи. Понимание причины важно, чтобы после восстановления устранить источник проблемы, иначе повреждение повторится.

Как восстановить индексы в файловой базе

Первый инструмент — утилита chdbfl.exe из каталога установки платформы (папка bin соответствующей версии). Она проверяет физическую целостность файла 1Cv8.1CD и умеет исправлять ошибки, включая повреждённые индексные страницы. Перед запуском обязательно закройте все сеансы работы с базой и сделайте резервную копию файла.

Второй этап — реиндексация через конфигуратор. Меню «Администрирование → Тестирование и исправление», флаг «Реиндексация таблиц информационной базы». Процедура перестраивает все индексы заново. На больших базах это занимает заметное время, работа пользователей в этот момент невозможна — требуется монопольный доступ.

Реиндексация в клиент-серверной базе

В клиент-серверном варианте файл chdbfl.exe неприменим — физического файла базы, доступного администратору 1С, нет. Реиндексацию выполняют либо штатным тестированием и исправлением через конфигуратор (платформа сформирует нужные команды для СУБД), либо средствами самой СУБД.

Для MS SQL Server перестроение индексов делается командой ALTER INDEX ... REBUILD или через план обслуживания. В PostgreSQL используется команда REINDEX. Такие операции требуют прав администратора СУБД и понимания нагрузки: перестроение крупных индексов создаёт нагрузку на дисковую подсистему и может блокировать таблицы, поэтому его планируют на нерабочее время.

Способы восстановления индексов

chdbfl.exe

Только для файловых баз. Проверяет физическую целостность 1Cv8.1CD. Не работает с клиент-серверными базами.

Тестирование и исправление в конфигураторе

Универсальный способ для обоих вариантов. Требует монопольного доступа и времени на больших базах.

Средства СУБД (REBUILD / REINDEX)

Для клиент-серверных баз. Гибкое управление, но нужны права администратора СУБД и знание конкретной СУБД.

Профилактика: как не допустить повреждения индексов

Главная мера для файловых баз — исключить аварийные прерывания записи. Используйте источник бесперебойного питания на сервере или компьютере с базой, не размещайте файловую базу на сетевом диске с нестабильным каналом, не выключайте компьютер, пока сеансы 1С открыты.

Добавьте каталог базы в исключения антивируса — проверка файла 1Cv8.1CD «на лету» может конфликтовать с записью платформы. Настройте регулярное резервное копирование: для файловой базы — копирование файла при закрытых сеансах или выгрузка в .dt, для клиент-серверной — штатные средства СУБД.

Типичные ошибки
01
Запуск chdbfl.exe без резервной копии — при неудачном исправлении откатить изменения будет нечем
02
Работа с файловой базой по Wi-Fi или нестабильной сети — обрыв соединения во время записи повреждает файл
03
Одновременный запуск тестирования и исправления при активных сеансах — процедура требует монопольного доступа
04
Отсутствие регулярных копий — при повреждении базы восстанавливать нечего, кроме самого повреждённого файла
05
Игнорирование повторяющихся ошибок формата потока — разовое восстановление без устранения причины приводит к рецидиву

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

Контрольные точки

Как проверить результат восстановления

Открытие списков документов и справочников
Норма

Списки открываются без ошибок, записи на месте

Тревожный признак

Ошибка формата потока или пустые списки

Формирование типовых отчётов
Норма

Отчёты строятся, обороты сходятся с ожидаемыми

Тревожный признак

Отчёт падает с ошибкой или показывает неполные данные

Протокол тестирования и исправления
Норма

Ошибок не обнаружено или все исправлены

Тревожный признак

Остаются неисправленные ошибки — нужна повторная проверка или восстановление из копии

Поиск документа по номеру
Норма

Документ находится и открывается

Тревожный признак

Документ не находится, хотя существовал

Когда индексация влияет на скорость работы

Отдельная тема — использование индексов для ускорения системы. Если отчёты и списки работают медленно, причина часто в отсутствии индекса по полям отбора. В конфигураторе у реквизитов есть свойство «Индексировать», а у регистров — возможность индексирования измерений. Включение индексации по часто используемым в отборах полям заметно ускоряет запросы.

Обратная сторона: каждый индекс замедляет запись, потому что при добавлении или изменении записи платформа обновляет и индексные структуры. Индексировать все поля подряд — плохая идея. Разумный подход: включать индексацию только для полей, которые реально участвуют в отборах, поиске и соединениях, и проверять эффект на копии базы.

Маршрут решения

Как выбрать действие

Ошибка «Ошибка формата потока» в файловой базеКопия файла → chdbfl.exe → реиндексация в конфигураторе
Медленные отчёты без ошибокПроверьте индексацию полей отбора и выполните реиндексацию для дефрагментации
Клиент-серверная база, ошибки целостностиТестирование и исправление через конфигуратор плюс проверка средствами СУБД
Ошибки повторяются после восстановленияИщите внешнюю причину: сеть, диск, антивирус, питание — иначе повреждение вернётся

Часто задаваемые вопросы

Можно ли просто удалить индексный файл, чтобы 1С создала его заново?

В платформе 1С:Предприятие 8 отдельного индексного файла нет — индексы встроены в 1Cv8.1CD, поэтому удалять нечего. Перестроение индексов выполняется штатной реиндексацией через конфигуратор, это безопасный и правильный способ.

Теряются ли данные при реиндексации?

Нет. Реиндексация перестраивает только служебные индексные структуры по существующим данным. Сами записи документов, справочников и регистров не изменяются. Тем не менее резервная копия перед любыми сервисными операциями обязательна.

Сколько времени занимает реиндексация?

Зависит от размера базы и скорости дисков. Небольшая файловая база обрабатывается за минуты, крупная клиент-серверная база — за часы. Планируйте операцию на нерабочее время, так как требуется монопольный доступ.

Чем chdbfl.exe отличается от тестирования и исправления?

chdbfl.exe проверяет физическую структуру файла 1Cv8.1CD — страницы, заголовки, целостность. Тестирование и исправление работает на логическом уровне: реиндексация, проверка ссылочной целостности, пересчёт итогов. При повреждениях обычно применяют оба инструмента последовательно.

Нужно ли регулярно делать реиндексацию для профилактики?

Для клиент-серверных баз периодическое перестроение индексов полезно из-за фрагментации — обычно его включают в регламент обслуживания СУБД. Для файловых баз регулярная реиндексация не обязательна; достаточно выполнять её при появлении ошибок или заметного замедления.

Что делать, если ни chdbfl, ни тестирование не помогли?

Остаётся восстановление из резервной копии. Если копии нет, можно попробовать загрузить базу в новую пустую базу через выгрузку-загрузку (если выгрузка ещё выполняется) или обратиться к специалистам по восстановлению данных. Именно поэтому регулярное резервное копирование — главная защита.

Итог

Что важно запомнить

Индексный файл 1С — это индексные структуры базы, в файловом варианте встроенные в 1Cv8.1CD. При повреждении: сначала резервная копия, затем chdbfl.exe и реиндексация через конфигуратор. При повторяющихся ошибках ищите внешнюю причину — сеть, диск, антивирус или питание.