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

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

Как провести индексацию в 1С Бухгалтерия

Пошаговая инструкция по индексации таблиц базы 1С Бухгалтерия через «Тестирование и исправление»: подготовка, выбор режима, проверка результата и типичные ошибки.

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

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

Когда действительно нужна индексация

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

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

Журналы открываются медленноВозможна фрагментация индексов

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

Ошибка СУБД при проведенииВозможно повреждение индексов или таблиц

Запустите тестирование и исправление с реиндексацией и проверкой ссылочной целостности

База резко выросла в размереИндексы занимают лишнее место после удалений

Реиндексация часто уменьшает размер файла 1Cv8.1CD

Всё работает нормальноИндексация не нужна

Не запускайте процедуру без причины — это лишняя нагрузка и риск

Подготовка: резервная копия и монопольный режим

Перед любыми действиями с физической структурой базы сделайте резервную копию. Для файловой базы достаточно скопировать файл 1Cv8.1CD из каталога базы при закрытой программе либо выполнить выгрузку через конфигуратор: Администрирование → Выгрузить информационную базу. Для серверной базы используйте средства СУБД (MS SQL, PostgreSQL) или ту же выгрузку в dt.

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

Запуск реиндексации через конфигуратор

Основной способ — конфигуратор. Откройте его, выбрав базу в стартовом окне и нажав «Конфигуратор». Если база в режиме совместимости требует пароль администратора, введите данные пользователя с правами администрирования.

Далее откройте меню Администрирование → Тестирование и исправление. В появившемся окне в разделе «Проверки и режимы» отметьте пункт «Реиндексация таблиц информационной базы». Остальные пункты (проверка логической и ссылочной целостности) можно оставить выключенными, если задача — только индексация: так процесс пройдёт заметно быстрее.

Внизу окна выберите вариант «Тестирование и исправление» или «Только тестирование». Для реиндексации разницы нет — индексы перестраиваются в обоих случаях, но для других проверок «Только тестирование» лишь диагностирует ошибки без исправления. Нажмите «Выполнить» и дождитесь окончания: в окне служебных сообщений появится протокол выполнения.

Порядок действий
  1. 1
    Сделайте резервную копию базы (файл 1Cv8.1CD или выгрузка в dt)
  2. 2
    Завершите работу всех пользователей и фоновых заданий
  3. 3
    Откройте базу в конфигураторе
  4. 4
    Перейдите: Администрирование → Тестирование и исправление
  5. 5
    Отметьте «Реиндексация таблиц информационной базы», остальные проверки отключите
  6. 6
    Нажмите «Выполнить» и дождитесь окончания протокола
  7. 7
    Проверьте работу базы: откройте журналы, сформируйте отчёт

Отличия для файловой и серверной базы

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

В клиент-серверном варианте реиндексация выполняется средствами СУБД по команде платформы. Здесь время зависит от мощности сервера и объёма таблиц. Дополнительно администраторы серверных баз часто совмещают процедуру с обновлением статистики и перестроением индексов штатными средствами MS SQL или PostgreSQL — это даёт более тонкий контроль, но требует квалификации администратора СУБД.

Сравнение вариантов

Реиндексация через конфигуратор

Универсальный штатный способ, подходит для файловых и серверных баз. Ограничение — требуется монопольный доступ и время на больших объёмах

Средства СУБД (только серверная база)

Перестроение индексов скриптами MS SQL/PostgreSQL. Гибче и быстрее на больших базах, но требует знаний администрирования СУБД и аккуратности

Пакетный запуск конфигуратора с параметром

Запуск из командной строки для автоматизации по расписанию. Подходит опытным администраторам; ошибка в параметрах может запустить не тот режим

Пакетный запуск из командной строки

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

bash
"C:\Program Files\1cv8\bin\1cv8.exe" DESIGNER /F"D:\Bases\Accounting" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex /DisableStartupDialogs

Ключ -ReIndex включает именно реиндексацию; существуют также ключи -LogAndRefsIntegrity и -RecalcTotals для других проверок. Путь к исполняемому файлу зависит от установленной версии платформы — уточните его в каталоге установки. Такой скрипт удобно ставить в планировщик задач Windows на ночное время, но обязательно с предварительным созданием копии тем же скриптом.

Проверка результата и типичные ошибки

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

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

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

Ограничения и когда привлекать специалиста

Индексация не исправляет логические ошибки учёта, не восстанавливает удалённые документы и не ускоряет базу, проблемы которой связаны с железом, сетью или неоптимальным кодом доработок. Это узкая техническая операция над структурой хранения.

Обратитесь к специалисту по 1С, если: тестирование и исправление завершается с ошибками, которые не устраняются; база не открывается даже после восстановления из копии; база серверная, а у вас нет доступа к администрированию СУБД; повреждения появляются регулярно — это признак проблем с диском, памятью или сетью, которые нужно устранять на уровне инфраструктуры.

Итог

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

Индексация выполняется через конфигуратор: Администрирование → Тестирование и исправление → «Реиндексация таблиц информационной базы». Три обязательных условия: резервная копия, монопольный доступ, дождаться полного завершения. Запускайте процедуру по симптомам — медленная работа, ошибки СУБД, после сбоев — а не «для профилактики».

Частые вопросы

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

Зависит от размера базы и типа размещения. Небольшая файловая база обрабатывается за несколько минут, база объёмом в несколько гигабайт — от десятков минут до нескольких часов. На серверной базе время определяется мощностью сервера СУБД.

Можно ли запустить индексацию из режима 1С:Предприятие?

Штатной кнопки реиндексации в режиме предприятия нет — процедура доступна только через конфигуратор или пакетный запуск. В пользовательском режиме доступны лишь смежные операции вроде удаления помеченных объектов.

Индексация и сжатие базы — это одно и то же?

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

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

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

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

Нет. Обновление конфигурации само выполняет реструктуризацию изменённых таблиц. Отдельная реиндексация после обновления требуется, только если появились симптомы замедления или ошибки СУБД.

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

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