Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1C_ERR_INDEX_KEY_LENGTH 1С:Предприятие и СУБД

Ошибка 1С: Длина ключа индекса превышает максимально допустимую — решение

Обновлено: 26.08.2026 · Официальная документация ↗
  • При обновлении конфигурации, сохранении метаданных или проведении документов вылетает окно: Длина ключа индекса превышает максимально допустимую.
  • В деталях ошибки фигурирует системное имя таблицы (например, _InfoRg... или _Reference...).
  • Операция аварийно прерывается, изменения в базу данных не записываются.
  • Часто проявляется после добавления составных типов данных или длинных строковых реквизитов неограниченной длины в индексы.

Простое объяснение причины

База данных (MS SQL Server или PostgreSQL) использует специальные «указатели» (индексы) для быстрого поиска. В СУБД есть жесткий лимит: суммарный размер всех полей, входящих в один поисковый индекс, не может быть больше 900 байт (в старых версиях SQL) или 1700/2704 байт в современных. Если сложить длину строковых полей с признаком «Индексировать», лимит исчерпывается.

Пошаговое исправление в Конфигураторе

  1. Откройте проблемную базу в режиме Конфигуратор.
  2. Найдите объект метаданных (справочник, документ или регистр сведений), указанный в ошибке.
  3. Откройте его свойства и перейдите во вкладку Реквизиты (или Измерения для регистров сведений).
  4. Проверьте строковые поля:
    • Уменьшите длину строковых реквизитов (например, со 150–250 символов до 50–100, если этого достаточно).
    • Для полей, где включено свойство Индексировать (или Ведущее), снимите значение Индексировать на Не индексировать, если по этому полю не ведется постоянный поиск.
  5. Если реквизит содержит длинный комментарий, измените его тип на Строка неограниченной длины (такие строки не попадают в ключ индекса напрямую).
  6. Нажмите F7 (Обновить конфигурацию базы данных) и подтвердите изменения.
💡 Практика специалистов: Чаще всего ошибка возникает в нетиповых регистрах сведений, где программисты добавляют несколько строковых измерений длиной 100+ символов. Перенос части измерений в ресурсы или реквизиты полностью решает проблему.

Частые вопросы (FAQ)

Почему в файловой базе ошибка не возникала, а при переходе на SQL появилась?

Встроенная файловая СУБД 1С имеет другие внутренние ограничения на индексы, чем профессиональные серверы СУБД (MS SQL Server / PostgreSQL), которые строго соблюдают стандарт длины ключа.

Как узнать, какой именно справочник или регистр сбоит по имени таблицы _InfoRg1234?

В Конфигураторе или через консоль запросов можно выполнить функцию ПолучитьСтруктуруХраненияБазыДанных(), передав имя таблицы СУБД — она выдаст человеческое название объекта 1С.

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

Если по этому реквизиту бухгалтеры не делают постоянных отборов в списках, скорость работы пользователей не изменится, а запись новых элементов даже ускорится.

Можно ли исправить ошибку штатными средствами без изменения конфигурации?

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

Полезные материалы
Рекомендуем