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

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

Что может блокировать 1С и как устранить блокировки

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

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

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

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

Транзакционные блокировки при записи данных

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

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

Типичные сценарии конкуренции: массовое перепроведение документов, одновременное резервное проведение по одному складу, обмен данными в момент активной работы пользователей, параллельная запись наборов регистров одним документом-регистратором.

Объектные блокировки открытых форм и сеансов

Когда пользователь открывает документ на редактирование, платформа ставит объектную блокировку, чтобы никто другой не изменил этот же объект одновременно. Если сотрудник открыл документ и ушёл, не закрыв форму, коллеги получат сообщение о невозможности редактирования с указанием сеанса, который держит объект.

Зависшие сеансы — частный случай той же проблемы. Соединение пользователя оборвалось (пропала сеть, перезагрузился компьютер), но сеанс на сервере продолжает числиться активным и удерживает блокировки. В консоли кластера такие сеансы видны как «спящие» с неактуальным временем последнего вызова.

Решение штатное: в консоли кластера серверов 1С найти сеанс, указанный в сообщении об ошибке, и завершить его. Перед завершением стоит убедиться, что пользователь действительно не работает — иначе его несохранённые данные пропадут.

Как снять объектную блокировку
  1. 1
    Откройте консоль кластера серверов 1С и перейдите в раздел «Сеансы» нужной информационной базы
  2. 2
    Найдите сеанс по имени пользователя или номеру из текста ошибки
  3. 3
    Свяжитесь с пользователем и попросите закрыть форму документа
  4. 4
    Если пользователь недоступен, завершите сеанс через контекстное меню
  5. 5
    Попросите второго пользователя повторить попытку записи и убедитесь, что ошибка исчезла

Фоновые и регламентные задания

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

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

Что делать: проверьте расписание регламентных заданий (в типовых конфигурациях — «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания»), переведите тяжёлые операции на нерабочее время, а для заданий, которые не должны работать одновременно с обменами, настройте последовательный запуск.

Факторы на стороне СУБД и сервера

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

Также влияют: регламентные операции самой СУБД (реиндексация, обновление статистики, резервное копирование средствами СУБД в рабочее время), антивирус, сканирующий файлы базы и журналов, и нехватка ресурсов сервера приложений, из-за которой рабочие процессы обрабатывают вызовы медленно.

Ошибка «Конфликт блокировок» у одного пользователяЛокальная конкуренция за данные

Кто ещё работает с этим документом или регистром

Тормозит вся база у всех пользователейПроблема на сервере или СУБД

Загрузку сервера, длительные запросы, регламентные задания

Ошибки возникают строго по расписаниюВиновато регламентное задание

Журнал регистрации и расписание заданий

Блокировка от конкретного сеансаЗависший сеанс или открытая форма

Список сеансов в консоли кластера

Диагностика: где смотреть причины

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

Второй инструмент — технологический журнал. Включив сбор событий TLOCK, TTIMEOUT и TDEADLOCK, можно увидеть, какие объекты блокируются, каким сеансом и как долго. Это основной способ найти виновника повторяющихся конфликтов, когда причина неочевидна.

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

xml
<event><eq property="name" value="TLOCK"/></event><event><eq property="name" value="TTIMEOUT"/></event><event><eq property="name" value="TDEADLOCK"/></event><property name="duration">10000</property>

Как снизить число блокировок в повседневной работе

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

На уровне настройки проверьте: переведена ли база в режим управляемых блокировок (свойства информационной базы в консоли кластера), не выполняется ли резервное копирование и антивирусное сканирование каталогов базы в рабочее время, соответствует ли расписание регламентных заданий реальной загрузке.

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

Типичные ошибки
01
Завершать сеансы всех пользователей подряд вместо поиска конкретного виновника — теряются несохранённые данные и не решается причина
02
Запускать перепроведение тысяч документов в середине рабочего дня — гарантированные конфликты блокировок у всех пользователей
03
Игнорировать повторяющиеся ошибки, просто повторяя запись — без анализа технологического журнала причина остаётся и конфликты нарастают
04
Отключать регламентные задания вместо переноса их расписания — перестают выполняться нужные обмены и расчёты
Контрольные точки

Как проверить результат

Повторная запись документа после снятия блокировки
Норма

Документ записывается без ошибок

Тревожный признак

Ошибка конфликта повторяется — ищите источник в технологическом журнале

Список сеансов в консоли кластера
Норма

Нет спящих сеансов с устаревшим временем вызова

Тревожный признак

Много зависших сеансов — проверяйте стабильность сети и таймауты

Журнал регистрации за сутки
Норма

Фоновые задания завершаются успешно и вовремя

Тревожный признак

Задания падают с ошибками или выполняются часами

Частые вопросы о блокировках в 1С

Что значит ошибка «Конфликт блокировок при выполнении транзакции»?

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

Можно ли работать в 1С во время обмена данными?

Технически можно, но при интенсивной работе обмен и пользователи будут конкурировать за одни и те же справочники и регистры, что приводит к конфликтам блокировок с обеих сторон. Практичнее запускать объёмные обмены в нерабочее время или в периоды минимальной активности.

Как узнать, кто заблокировал документ?

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

Опасно ли принудительно завершать сеанс пользователя?

Завершение сеанса безопасно для базы данных — незавершённые транзакции откатываются. Риск только в том, что пользователь потеряет несохранённые данные в открытых формах. Поэтому перед завершением стоит попытаться связаться с пользователем или отправить ему сообщение через консоль кластера.

Почему блокировки чаще возникают в файловой базе?

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

Помогает ли перезагрузка сервера 1С от блокировок?

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

Итог

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

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