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

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

Ошибка СУБД в 1С: в чём причина и как её исправить

Разбираем, что означает ошибка СУБД в 1С: типичные причины, диагностика по тексту сообщения, пошаговое восстановление базы и меры профилактики.

Сообщение «Ошибка СУБД» — одно из самых тревожных в 1С: оно означает, что платформа не смогла выполнить операцию с базой данных на уровне сервера СУБД (Microsoft SQL Server, PostgreSQL, IBM Db2, Oracle) или файлового хранилища. Пользователь видит диалог с техническим текстом, а работа с документами, проведением или даже входом в базу становится невозможной. При этом само сообщение — не диагноз, а лишь симптом: реальная причина скрывается в деталях ошибки, которые платформа выводит ниже.

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

Важно понимать: любые действия по восстановлению базы нужно начинать только после создания резервной копии. Попытки «починить» базу без копии могут превратить частичную проблему в полную потерю данных.

Что скрывается за сообщением «Ошибка СУБД»

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

Например, фраза вида «could not extend file... No space left on device» указывает на переполнение диска, «deadlock victim» — на взаимную блокировку транзакций, «invalid page header» или «повреждены данные таблицы» — на физическое повреждение файлов базы. Игнорировать детали и действовать «наугад» — главная ошибка администраторов в этой ситуации.

Типичные причины: от диска до повреждённых таблиц

Причины удобно делить на четыре группы. Первая — ресурсные: закончилось место на диске с данными или журналом транзакций, нехватка оперативной памяти, переполнение tempdb. Вторая — сетевые и инфраструктурные: обрыв соединения между сервером 1С и сервером СУБД, перезагрузка сервера во время транзакции, сбои кластера. Третья — конфликты доступа: взаимные блокировки (deadlock), превышение таймаута ожидания блокировки. Четвёртая, самая тяжёлая — повреждение данных: битые страницы таблиц, неконсистентные индексы, сбойные сектора диска.

В файловом варианте 1С (без отдельной СУБД) ошибка чаще всего связана с повреждением файла 1Cv8.1CD из-за внезапного отключения питания, работы по сети с нестабильным каналом или антивирусной блокировки файла. Это особенно актуально для баз, размещённых на сетевых дисках, — такой режим эксплуатации платформа не поддерживает официально.

Ошибка возникает у всех пользователейПроблема на сервере или в самой базе

Проверить место на дисках сервера СУБД и доступность службы

Ошибка у одного пользователя или в одном документеКонфликт блокировок или повреждённая запись

Повторить операцию, посмотреть активные сеансы и блокировки

Ошибка после сбоя питания или перезагрузкиВозможно повреждение файлов базы

Выполнить проверку целостности средствами СУБД или конфигуратора

Текст содержит deadlock или timeoutКонкуренция транзакций, а не повреждение

Проанализировать регламентные задания и нагрузку

Диагностика: читаем текст ошибки и журналы

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

Третий шаг — журналы самой СУБД. В MS SQL Server это ERRORLOG и системный журнал Windows, в PostgreSQL — лог-файлы сервера. Именно там фиксируются нехватка места, повреждённые страницы, разрывы соединений. Параллельно проверьте банальные вещи: свободное место на всех дисках сервера (данных, журналов, временных файлов), состояние служб, доступность сервера по сети.

Порядок диагностики
  1. 1
    Сохранить полный текст ошибки и время её появления
  2. 2
    Проверить свободное место на дисках сервера СУБД и состояние служб
  3. 3
    Найти событие в журнале регистрации 1С и журналах СУБД
  4. 4
    Определить тип: ресурсная, сетевая, блокировка или повреждение данных
  5. 5
    Сделать резервную копию перед любыми восстановительными действиями
  6. 6
    Применить целевое исправление и проверить работу базы

Восстановление базы: безопасный порядок действий

Если диагностика показала повреждение данных, действуйте по нарастанию риска. Для клиент-серверного варианта начните со штатной проверки целостности средствами СУБД: в MS SQL Server это команда DBCC CHECKDB, которая покажет наличие и масштаб повреждений. Мелкие проблемы с индексами часто решаются перестроением индексов без потери данных. Восстановление с параметрами REPAIR_ALLOW_DATA_LOSS — крайняя мера, она физически вырезает повреждённые страницы вместе с данными.

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

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

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

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

В тексте ошибки упоминается нехватка местаОсвободите диск, настройте автоочистку журналов, затем повторите операцию
Ошибка deadlock или превышение таймаута блокировкиПовторите операцию позже, разнесите регламентные задания по времени
CHECKDB или тестирование нашли поврежденияВосстановите из копии или выполните исправление на копии базы
Ошибка появляется при обрыве соединенияПроверяйте сеть, кластер серверов и стабильность канала, а не данные

Частые ошибки администраторов

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

Типичные ошибки
01
Запуск исправления без резервной копии — риск необратимой потери данных
02
Перезагрузка серверов вместо анализа текста ошибки — причина остаётся и повторяется
03
Работа файловой базы по сети — постоянные повреждения файла 1Cv8.1CD
04
Игнорирование переполнения журнала транзакций — база встаёт в самый неподходящий момент
05
Одновременный запуск тяжёлых регламентных заданий — регулярные deadlock и таймауты

Профилактика: как не встретить ошибку снова

Настройте регулярное резервное копирование средствами СУБД с проверкой восстановления копий — копия, которую ни разу не восстанавливали, считается отсутствующей. Контролируйте свободное место на дисках и рост журнала транзакций, настройте регламентное обслуживание: перестроение индексов, обновление статистики, проверку целостности по расписанию в нерабочее время.

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

Если ошибка СУБД появилась один раз после аварийного отключения и больше не повторяется, всё равно выполните проверку целостности в ближайшее нерабочее время: скрытые повреждения страниц могут проявиться через недели, когда сделать чистую копию уже поздно.
ПЗ
Практическое замечание
Итог

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

Ошибка СУБД — это сигнал от базы данных, а не приговор. Читайте полный текст ошибки, смотрите журналы, начинайте с простых причин (диск, сеть, блокировки) и только потом лечите данные — всегда на копии или после резервирования.

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

Можно ли продолжать работать, если ошибка СУБД появляется время от времени?

Нежелательно. Периодические ошибки почти всегда прогрессируют: растёт повреждённая область или учащаются блокировки. Найдите причину по журналам и устраните её, пока сбой не стал постоянным.

Поможет ли переустановка платформы 1С при ошибке СУБД?

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

Чем отличается тестирование и исправление от проверки средствами СУБД?

Тестирование и исправление в конфигураторе проверяет логику данных 1С (ссылки, итоги, движения), а DBCC CHECKDB или аналоги — физическую структуру страниц и индексов. При серьёзных сбоях проверки дополняют друг друга.

Ошибка возникает только при проведении одного конкретного документа. Что делать?

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

Как понять, что проблема в дисковой подсистеме, а не в 1С?

Смотрите системный журнал Windows или журналы СУБД: ошибки ввода-вывода, сбойные сектора, отказы контроллера указывают на железо. В этом случае сначала переносите базу на исправные диски, потом проверяйте целостность данных.

Файловая база повреждена, а резервной копии нет. Есть ли шанс восстановить?

Шанс есть: попробуйте chdbfl.exe и тестирование с исправлением на копии файла 1Cv8.1CD. Часть данных может быть утеряна, поэтому после восстановления сверьте остатки и ключевые документы. В сложных случаях привлекают специалистов по восстановлению данных.