Ошибка «транзакция вызвала взаимоблокировку deadlock» в 1С 8.3
Краткое решение
Краткое решение
Deadlock: два (и более) сеанса циклически ждут блокировки друг друга; СУБД убивает одну транзакцию, 1С показывает взаимоблокировку. Повтор часто помогает; системно — единый порядок блокировок, короткие транзакции, управляемые блокировки, анализ TDEADLOCK/Deadlock Graph и индексов.
Текст ошибки
Транзакция вызвала взаимоблокировку. Операция будет отменена. Повторите попытку выполнения операции.
Матрица платформ
| Версия платформы | Статус | Заметка |
|---|---|---|
8.3.23 |
✕ Затронута | |
8.3.24 |
✕ Затронута | |
8.3.25 |
✕ Затронута |
Пошаговое решение
-
Повторите проведение/запись через несколько секунд — жертва deadlock уже откатилась, второй участник мог завершиться.
-
Включите TDEADLOCK в технологическом журнале; на SQL Server — Deadlock Graph, на PostgreSQL — log_lock_waits/deadlock_timeout. Зафиксируйте пары запросов и объекты.
-
В доработках блокируйте одни и те же таблицы/ключи в одинаковом порядке; укоротите транзакции; для горячих мест используйте БлокировкаДанных.
-
Разведите пиковые проведения и регламенты по времени; проверьте планы запросов и индексы по конфликтным регистрам.
Не помогло?
Тестирование и исправление ИБ
Проверил: Иван Демонстрационный 10 лет опыта
Дата вычитки: 2026-07-20 13:03:28
Информация носит справочный характер. Перед выполнением инструкций сделайте резервную копию.
Решение помогло?
Обсуждения (3 вопросов)
Ответы участников сообщества специалистов. Персоны вымышленные; формулировки основаны на обсуждениях с открытых форумов 1С.
-
У нас вылезло «транзакция вызвала взаимоблокировку deadlock». С чего начать, чтобы не навредить базе?
-
После обновления снова «транзакция вызвала взаимоблокировку deadlock». Кто чем лечил?
-
Делали очистку кэша — не помогло при «транзакция вызвала взаимоблокировку deadlock». Что дальше?
Задать вопрос по этой ошибке