Администрирование · 10 мин
Что может блокировать 1С и как устранить блокировки
Разбираем, что вызывает блокировки в 1С: транзакционные и управляемые блокировки, фоновые задания, сеансы пользователей, регламентные операции и способы диагностики.
Блокировка в 1С — это механизм защиты данных: пока один сеанс изменяет объект, система не даёт другим сеансам изменить его же и получить противоречивый результат. Сама по себе блокировка — нормальное явление, но когда она удерживается слишком долго или охватывает лишние данные, пользователи видят сообщения «Конфликт блокировок при выполнении транзакции», «Ошибка при вызове метода контекста» или просто зависающие формы документов.
Источники блокировок делятся на две большие группы: прикладные (действия пользователей и фоновых заданий внутри 1С) и инфраструктурные (СУБД, сервер приложений, антивирус, сеть). Чтобы устранить проблему, нужно сначала понять, какой именно механизм её вызвал: управляемые транзакционные блокировки, объектные блокировки сеанса, регламентные операции или внешние факторы.
Ниже разобраны основные причины блокировок, способы их диагностики штатными средствами и практические шаги по устранению без риска потерять данные.
Транзакционные блокировки при записи данных
Самая частая причина конфликтов — транзакционные блокировки, которые платформа накладывает автоматически при записи документов, регистров и справочников. Если два пользователя одновременно проводят документы, изменяющие один и тот же регистр остатков по одной и той же номенклатуре, второй сеанс будет ждать освобождения ресурса или завершится ошибкой по таймауту.
В файловом режиме блокировки особенно грубые: платформа может блокировать целые таблицы, поэтому даже запись разных документов одного вида вызывает ожидание. В клиент-серверном режиме используются управляемые блокировки на уровне СУБД, и конфликты возникают только при реальном пересечении данных.
Типичные сценарии конкуренции: массовое перепроведение документов, одновременное резервное проведение по одному складу, обмен данными в момент активной работы пользователей, параллельная запись наборов регистров одним документом-регистратором.
Объектные блокировки открытых форм и сеансов
Когда пользователь открывает документ на редактирование, платформа ставит объектную блокировку, чтобы никто другой не изменил этот же объект одновременно. Если сотрудник открыл документ и ушёл, не закрыв форму, коллеги получат сообщение о невозможности редактирования с указанием сеанса, который держит объект.
Зависшие сеансы — частный случай той же проблемы. Соединение пользователя оборвалось (пропала сеть, перезагрузился компьютер), но сеанс на сервере продолжает числиться активным и удерживает блокировки. В консоли кластера такие сеансы видны как «спящие» с неактуальным временем последнего вызова.
Решение штатное: в консоли кластера серверов 1С найти сеанс, указанный в сообщении об ошибке, и завершить его. Перед завершением стоит убедиться, что пользователь действительно не работает — иначе его несохранённые данные пропадут.
- 1Откройте консоль кластера серверов 1С и перейдите в раздел «Сеансы» нужной информационной базы
- 2Найдите сеанс по имени пользователя или номеру из текста ошибки
- 3Свяжитесь с пользователем и попросите закрыть форму документа
- 4Если пользователь недоступен, завершите сеанс через контекстное меню
- 5Попросите второго пользователя повторить попытку записи и убедитесь, что ошибка исчезла
Фоновые и регламентные задания
Регламентные задания — невидимый для пользователей источник блокировок. Обмены данными, расчёт итогов, полнотекстовое индексирование, загрузка курсов валют, синхронизация с сайтом выполняются в фоновых сеансах и могут удерживать блокировки на больших объёмах данных длительное время.
Классическая ситуация: ночной обмен не завершился к началу рабочего дня, и утром пользователи не могут провести документы, потому что обмен держит блокировки на справочниках и регистрах. Другой пример — задание полного пересчёта итогов, запущенное вручную в разгар рабочего дня.
Что делать: проверьте расписание регламентных заданий (в типовых конфигурациях — «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания»), переведите тяжёлые операции на нерабочее время, а для заданий, которые не должны работать одновременно с обменами, настройте последовательный запуск.
Факторы на стороне СУБД и сервера
В клиент-серверном режиме значительная часть «блокировок 1С» на самом деле происходит на уровне СУБД. Длинные запросы, отсутствие актуальной статистики, нехватка памяти и дисковые задержки растягивают транзакции, а значит — увеличивают время удержания блокировок. Взаимоблокировки (deadlock) СУБД разрешает сама, принудительно завершая одну из транзакций, и пользователь видит ошибку о конфликте.
Также влияют: регламентные операции самой СУБД (реиндексация, обновление статистики, резервное копирование средствами СУБД в рабочее время), антивирус, сканирующий файлы базы и журналов, и нехватка ресурсов сервера приложений, из-за которой рабочие процессы обрабатывают вызовы медленно.
Кто ещё работает с этим документом или регистром
Загрузку сервера, длительные запросы, регламентные задания
Журнал регистрации и расписание заданий
Список сеансов в консоли кластера
Диагностика: где смотреть причины
Первый инструмент — консоль кластера серверов: списки сеансов и соединений показывают, кто работает с базой, какие вызовы выполняются и сколько длятся. Для файловой базы аналог — список активных пользователей в режиме «Предприятие».
Второй инструмент — технологический журнал. Включив сбор событий TLOCK, TTIMEOUT и TDEADLOCK, можно увидеть, какие объекты блокируются, каким сеансом и как долго. Это основной способ найти виновника повторяющихся конфликтов, когда причина неочевидна.
Третий источник — журнал регистрации: он покажет ошибки фоновых заданий, отказы в доступе и моменты запуска регламентных операций. В связке с мониторингом СУБД (длительные запросы, ожидания блокировок) этого достаточно, чтобы локализовать проблему без сторонних средств.
<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>Как снизить число блокировок в повседневной работе
Организационные меры дают не меньше технических: договоритесь, что массовые перепроведения, загрузки и закрытие периода выполняются вне пиковой нагрузки, а пользователи не держат открытыми формы документов, с которыми не работают.
На уровне настройки проверьте: переведена ли база в режим управляемых блокировок (свойства информационной базы в консоли кластера), не выполняется ли резервное копирование и антивирусное сканирование каталогов базы в рабочее время, соответствует ли расписание регламентных заданий реальной загрузке.
Если конфликты возникают на конкретном прикладном участке — например, при проведении реализаций по одному складу — имеет смысл привлечь разработчика: разнесение движений, изменение порядка записи регистров и отказ от избыточных итогов заметно сокращают время удержания блокировок.
Как проверить результат
Документ записывается без ошибок
Ошибка конфликта повторяется — ищите источник в технологическом журнале
Нет спящих сеансов с устаревшим временем вызова
Много зависших сеансов — проверяйте стабильность сети и таймауты
Фоновые задания завершаются успешно и вовремя
Задания падают с ошибками или выполняются часами
Частые вопросы о блокировках в 1С
Что значит ошибка «Конфликт блокировок при выполнении транзакции»?
Другой сеанс уже изменяет те же данные, и ваша транзакция не дождалась освобождения ресурса за отведённое время. Обычно достаточно повторить действие через несколько секунд. Если ошибка повторяется систематически, нужно искать сеанс-виновник через консоль кластера или технологический журнал.
Можно ли работать в 1С во время обмена данными?
Технически можно, но при интенсивной работе обмен и пользователи будут конкурировать за одни и те же справочники и регистры, что приводит к конфликтам блокировок с обеих сторон. Практичнее запускать объёмные обмены в нерабочее время или в периоды минимальной активности.
Как узнать, кто заблокировал документ?
Текст сообщения о блокировке обычно содержит сведения о сеансе: имя пользователя и компьютер. Если этих данных нет, откройте консоль кластера, найдите активные сеансы с длительными вызовами или воспользуйтесь технологическим журналом с событием TLOCK — там указано, какой сеанс удерживает блокировку.
Опасно ли принудительно завершать сеанс пользователя?
Завершение сеанса безопасно для базы данных — незавершённые транзакции откатываются. Риск только в том, что пользователь потеряет несохранённые данные в открытых формах. Поэтому перед завершением стоит попытаться связаться с пользователем или отправить ему сообщение через консоль кластера.
Почему блокировки чаще возникают в файловой базе?
В файловом режиме платформа блокирует данные крупными порциями, вплоть до целых таблиц, поэтому даже работа с разными документами одного вида вызывает ожидание. При росте числа пользователей рекомендуется переход на клиент-серверный режим с управляемыми блокировками на уровне СУБД.
Помогает ли перезагрузка сервера 1С от блокировок?
Перезагрузка снимает текущие блокировки и зависшие сеансы, но не устраняет причину. Если конфликты вызваны расписанием заданий, медленными запросами или логикой проведения документов, они вернутся. Перезагрузку стоит рассматривать как временную меру, пока выполняется диагностика.
Что важно запомнить
Блокировки в 1С вызывают конкурентные транзакции, открытые формы и зависшие сеансы, фоновые задания и проблемы на стороне СУБД. Диагностику начинайте с консоли кластера, журнала регистрации и технологического журнала, а устраняйте причину, а не симптом: корректируйте расписания, режимы блокировок и порядок массовых операций.