Ошибка «Конфликт блокировок SQL HRESULT 80040E31» в 1С 8.3
Краткое решение
Краткое решение
MS SQL не выдал блокировку вовремя (HYT00/1222): конкурирующие сеансы держат те же таблицы/регистры. Найдите блокирующий сеанс, сократите транзакции, при необходимости включите управляемые блокировки/RCSI.
Текст ошибки
Конфликт блокировок при выполнении транзакции: Microsoft SQL Server Native Client 11.0: Превышено время ожидания запроса на блокировку. HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=33, Severity=10, native=1222
Матрица платформ
| Версия платформы | Статус | Заметка |
|---|---|---|
8.3.17 |
✕ Затронута | |
8.3.24 |
✕ Затронута | |
8.3.27 |
✕ Затронута |
Пошаговое решение
-
В консоли кластера 1С или SSMS найдите сеанс, держащий блокировку, и завершите зависший процесс после согласования с пользователем. Повторите проведение документа.
-
Сделайте бэкап. Временно отключите тяжёлые опции вроде списания партий при каждом проведении, разбейте массовые обработки на порции. Обновите статистику MS SQL.
-
Планово переведите конфигурацию на управляемый режим блокировок и рассмотрите RCSI (READ_COMMITTED_SNAPSHOT) на базе SQL. Оптимизируйте запросы и индексы по регистрам из стека ошибки.
Не помогло?
Тестирование и исправление ИБ
Проверил: Иван Демонстрационный 10 лет опыта
Дата вычитки: 2026-07-20 12:55:12
Информация носит справочный характер. Перед выполнением инструкций сделайте резервную копию.
Решение помогло?
Обсуждения (3 вопросов)
Ответы участников сообщества специалистов. Персоны вымышленные; формулировки основаны на обсуждениях с открытых форумов 1С.
-
У нас вылезло «Конфликт блокировок SQL HRESULT 80040E31». С чего начать, чтобы не навредить базе?
-
После обновления снова «Конфликт блокировок SQL HRESULT 80040E31». Кто чем лечил?
-
Делали очистку кэша — не помогло при «Конфликт блокировок SQL HRESULT 80040E31». Что дальше?
Задать вопрос по этой ошибке