Администрирование · 12 мин
Как снять блокировку данных в 1С
Разбираем, как снять блокировку данных в 1С: завершение сеансов, управляемые блокировки, консоль кластера, файловая и клиент-серверная базы.
Ошибка «Конфликт блокировки при выполнении транзакции» или сообщение о том, что объект заблокирован другим пользователем, — одна из самых частых проблем при работе в 1С. Блокировка возникает, когда программа защищает данные от одновременного изменения: пока один сеанс редактирует документ или проводит регламентную операцию, остальные получают отказ. В большинстве случаев снять блокировку можно штатными средствами за несколько минут, не прибегая к перезагрузке сервера.
Причины бывают разными: зависший сеанс пользователя, незавершённый обмен данными, фоновое задание, аварийно закрытая программа или ошибка в коде, из-за которой управляемая блокировка не была снята. Порядок действий зависит от того, какая база используется — файловая или клиент-серверная, и какой именно тип блокировки мешает работе.
Определите тип блокировки и её источник
Прежде чем что-то снимать, нужно понять, что именно заблокировано и кем. Текст ошибки обычно содержит ключевую информацию: «Конфликт блокировки при выполнении транзакции» указывает на конфликт на уровне СУБД или менеджера блокировок, а сообщение вида «Объект редактируется пользователем Иванов» — на прикладную блокировку объекта в режиме редактирования.
Откройте журнал регистрации (в режиме конфигуратора: Администрирование — Журнал регистрации) и посмотрите события за последние минуты. Там видно, какой пользователь, компьютер и сеанс выполняли операции над проблемным объектом. В типовых конфигурациях также есть обработка «Активные пользователи» (Администрирование — Обслуживание — Активные пользователи), где виден список текущих сеансов.
Кто указан в сообщении и работает ли этот пользователь сейчас
Какой сеанс или фоновое задание удерживает ресурс
Параметры блокировки сеансов в консоли кластера
Список фоновых заданий и сеансов
Снимите прикладную блокировку объекта
Самый безобидный случай — документ или элемент справочника открыт у другого пользователя на редактирование. 1С намеренно не даёт двум людям изменять один объект одновременно. Первый шаг — связаться с коллегой, указанным в сообщении, и попросить закрыть объект. Часто оказывается, что форма просто осталась открытой на его компьютере.
Если пользователь ушёл, а сеанс остался висеть, попросите администратора завершить его сеанс. После завершения сеанса прикладная блокировка снимается автоматически. Принудительное завершение безопасно, если пользователь не выполнял длительную операцию вроде проведения большого пакета документов или обмена данными.
Завершите зависший сеанс в клиент-серверной базе
В клиент-серверном варианте управление сеансами выполняется через консоль кластера серверов 1С. Откройте оснастку «Администрирование серверов 1С Предприятия» на сервере или на машине администратора, разверните нужный кластер, затем рабочий сервер и информационную базу.
В разделе «Сеансы» найдите зависший сеанс: ориентируйтесь на пользователя, компьютер, время последней активности и признак «Спящий сеанс». Выделите сеанс и выберите «Удалить» в контекстном меню. Сеанс завершится принудительно, удерживаемые им блокировки будут сняты менеджером блокировок кластера.
Проверьте также раздел «Соединения» — иногда зависшее соединение остаётся после удаления сеанса. Удалять соединения без необходимости не стоит: они пересоздаются автоматически, но лишние «мёртвые» записи могут указывать на проблемы с сетью.
- 1Откройте консоль администрирования серверов 1С
- 2Разверните кластер и найдите нужную информационную базу
- 3Откройте список сеансов и найдите зависший по пользователю и времени активности
- 4Убедитесь, что сеанс не выполняет важную операцию
- 5Удалите сеанс через контекстное меню
- 6Попросите пользователя повторить операцию и проверьте результат
Снимите блокировку в файловой базе
В файловой базе нет консоли кластера, поэтому инструменты другие. Список активных пользователей доступен прямо из режима «Предприятие»: Администрирование — Обслуживание — Активные пользователи (в типовых конфигурациях). Оттуда можно завершить сеанс пользователя, если у вас есть административные права.
Если программа у всех закрыта, а база сообщает о занятости, проверьте каталог базы: рядом с файлом 1Cv8.1CD не должно быть запущенных процессов 1cv8.exe на компьютерах пользователей, которые обращаются к этой папке. Зависший процесс на чьём-то ПК — типичная причина «вечной» блокировки файловой базы. Завершите такой процесс через диспетчер задач на соответствующем компьютере.
Крайний случай — когда базу держит процесс на сервере, где лежит общая папка. Тогда помогает перезапуск службы «Сервер доступа к сети» (SMB) или перезагрузка сервера в нерабочее время, но до этого стоит убедиться, что все пользователи действительно вышли.
Отмените фоновое задание и снимите блокировку соединений
Значительная часть «таинственных» блокировок — это фоновые задания: обмены с сайтом, синхронизация между базами, расчёт итогов, регламентные операции. Откройте консоль заданий (в типовых: Администрирование — Обслуживание — Регламентные и фоновые задания), найдите задание в состоянии «Выполняется» и при необходимости нажмите «Отменить».
Отдельная ситуация — установленная администратором блокировка соединений с информационной базой, например, на время обновления. В клиент-серверной базе она снимается в консоли кластера: свойства информационной базы, параметр «Блокировка регламентных заданий» и «Блокировка сеансов». В файловой базе — через функциональность «Блокировка работы пользователей» в разделе администрирования. Проверьте, не забыли ли её снять после регламентных работ.
Как выбрать действие
Что делать, если блокировка возвращается
Если после снятия блокировки ошибка появляется снова, проблема системная. Частые причины: автоматический обмен, который запускается по расписанию каждые несколько минут и конфликтует с работой пользователей; код с явными управляемыми блокировками, которые не снимаются при исключении; избыточное использование транзакций с длительным удержанием ресурсов.
Включённый технологический журнал на сервере 1С помогает увидеть, какой запрос и какой сеанс входит в конфликт блокировок (события TLOCK, TDEADLOCK, TTIMEOUT). По ним определяют конкретную таблицу и операцию. Если конфликты регулярно возникают на одних и тех же документах, имеет смысл пересмотреть порядок записи данных в коде: записывать объекты в одном и том же порядке во всех процедурах резко снижает число взаимоблокировок.
Взаимоблокировка (deadlock) снимается СУБД автоматически: один из сеансов получает отказ и ошибку, второй продолжает работу. Если пользователи жалуются на периодические «конфликты блокировок» при интенсивной работе, это повод оптимизировать код и расписание обменов, а не повод постоянно завершать сеансы вручную.
Частые ошибки при снятии блокировок
Самая распространённая ошибка — перезагрузка сервера «для надёжности» вместо точечного завершения сеанса. Это прерывает работу всех пользователей и не решает причину: после перезагрузки регламентные задания запустятся заново и ситуация повторится. Вторая ошибка — завершение сеанса, который выполняет обмен или обновление, что приводит к незавершённым транзакциям и необходимости восстановления.
Также опасно удалять или переименовывать файл 1Cv8.1CD и служебные файлы каталога базы при работающих процессах — это почти гарантированно повреждает данные. Любые манипуляции с файлами базы выполняются только при полностью закрытых сеансах и желательно после создания резервной копии.
Проверка результата
После снятия блокировки попросите пользователя повторить операцию, которая завершалась ошибкой. Успешное проведение документа или запись объекта — главный признак того, что проблема устранена. Дополнительно проверьте список сеансов: зависшего сеанса там быть не должно, а новые сеансы должны создаваться без ошибок.
Как проверить результат
Документ проводится без сообщений о блокировке
Ошибка конфликта появляется снова
Зависший сеанс отсутствует, новые создаются штатно
Сеанс пересоздаётся и сразу «засыпает» с блокировкой
Нет заданий, зависших в состоянии «Выполняется» часами
Задание висит и удерживает ресурсы
Нет повторяющихся ошибок блокировок
Ошибки фиксируются каждые несколько минут
Что важно запомнить
Блокировка данных в 1С снимается точечно: найдите источник через текст ошибки, журнал регистрации и список сеансов, затем завершите зависший сеанс или отмените фоновое задание. Не прерывайте обмены и обновления, не удаляйте файлы базы при активных процессах. Повторяющиеся блокировки — сигнал пересмотреть расписание обменов и код, а не повод для регулярных перезагрузок.
Частые вопросы
Что означает ошибка «Конфликт блокировки при выполнении транзакции»?
Это отказ системы записать данные, потому что нужный ресурс уже удерживает другой сеанс. Обычно достаточно повторить операцию через несколько секунд. Если ошибка возникает постоянно, нужно найти сеанс или фоновое задание, которое удерживает ресурс, и разобраться с причиной — например, перенести обмен на нерабочее время.
Можно ли снять блокировку объекта, не завершая сеанс пользователя?
Да, если пользователь доступен: достаточно, чтобы он закрыл форму объекта. Принудительно «отобрать» объект у открытого сеанса штатными средствами нельзя — это осознанное ограничение платформы, защищающее данные от потери. Завершение сеанса — крайняя мера, когда пользователь недоступен.
Опасно ли принудительно завершать сеанс в консоли кластера?
Для обычной интерактивной работы — практически безопасно: незавершённые транзакции откатываются автоматически. Опасность есть, если сеанс выполнял обмен данными или обновление конфигурации: прерывание может оставить данные в несогласованном состоянии, и потребуется повторный обмен или восстановление.
Почему файловая база сообщает, что она занята, хотя все вышли?
Обычно причина — зависший процесс 1cv8.exe на одном из компьютеров пользователей, который продолжает держать файл базы. Найдите такой процесс через диспетчер задач и завершите его. Реже причина в зависшем соединении на уровне сетевого доступа к общей папке.
Как предотвратить регулярные конфликты блокировок?
Основные меры: перенос обменов и тяжёлых регламентных заданий на нерабочее время, единый порядок записи объектов в коде, отказ от длительных транзакций с пользовательскими паузами, корректная работа с управляемыми блокировками. Мониторинг через технологический журнал помогает найти конкретные узкие места.
Заблокирована база целиком, никто не может войти — что делать?
Скорее всего, установлена блокировка соединений, например после обновления. Администратор может войти с параметром разрешения доступа или снять блокировку: в клиент-серверной базе — через свойства информационной базы в консоли кластера, в файловой — через функцию «Блокировка работы пользователей» в разделе администрирования.