Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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

1С Ошибка: Превышено максимальное время ожидания предоставления блокировки

Обновлено: 25.08.2026  ·  Официальная база знаний
  • Диалоговое окно Превышено максимальное время ожидания предоставления блокировки при попытке записи или проведения документа.
  • В журнале регистрации фиксируется аварийное прерывание сеанса по таймауту.
  • Падение производительности в моменты выполнения регламентных процедур (закрытие месяца, расчет себестоимости).
  • Пользователи жалуются на зависание интерфейса на 20-60 секунд с последующим выбросом ошибки.

1. Анализ таймаута ожидания блокировок в 1С

По умолчанию таймаут ожидания управляемой блокировки в платформе 1С составляет 20 секунд. Если за это время блокирующий процесс не завершил транзакцию, ожидающий поток падает с ошибкой.

2. Настройка технологического журнала для выявления виновника (Lock Blocker)

Создайте конфигурацию logcfg.xml:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log history="12" location="C:\1c_logs\tlock">
    <event>
      <eq property="name" value="TLOCK"/>
      <ge property="WaitConnections" value="1"/>
    </event>
    <event>
      <eq property="name" value="TTIMEOUT"/>
    </event>
    <property name="all"/>
  </log>
</config>

В логе событие TTIMEOUT покажет номер блокирующего соединения (WaitConnections) и точную строку кода модуля 1С.

3. Временное увеличение таймаута в коде BSL (для тяжелых обработок)

Блокировка = Новый БлокировкаДанных;
// Увеличение таймаута ожидания до 60 секунд для массовой пакетной обработки
Блокировка.Таймаут = 60;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Хозрасчетный");
Блокировка.Заблокировать();

4. Оптимизация уровня изоляции СУБД PostgreSQL

Для PostgreSQL под 1С отредактируйте postgresql.conf:

# Задержка проверки взаимных блокировок
deadlock_timeout = 1000ms
# Максимальное время ожидания блокировки строки
lock_timeout = 25000ms
Практический опыт инженера: Частая причина таймаутов — блокировка таблиц нумераторов документов при ручном вводе номеров. Проверьте, чтобы свойство 'Автонумерация' у всех часто создаваемых документов стояло в режиме 'Не освобождать автоматически'.

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

Почему простое увеличение таймаута блокировок не решает проблему?

Увеличение таймаута лишь маскирует симптом. Очередь ожидающих пользователей вырастет, интерфейс будет зависать не на 20, а на 60 секунд, что приведет к еще большей деградации работы всей компании.

Как в консоли кластера 1С найти сеанс, который держит блокировку?

Откройте 'Блокировки' в консоли кластера серверов 1С, найдите объект с типом блокировки Exclusive и по номеру сеанса/соединения завершите зависший процесс.

Влияют ли антивирусы на появление таймаутов блокировок?

Да. Сканирование антивирусом файлов баз данных (.mdf/.ldf/.1CD) и папок кластера srvinfo приводит к микрозадержкам I/O, кратно увеличивая время удержания SQL-транзакций.

Как решить проблему таймаутов при партионном учете?

Переходите на методику проведения документов 'Списание партий при проведении — Выключено' с переносом распределения себестоимости в отдельное ночное фоновое задание.