Администрирование · 10 мин
Как убрать ошибку блокировки объекта в 1С
Разбираем, почему возникает ошибка блокировки объекта в 1С, как найти зависший сеанс, снять блокировку через консоль кластера и предотвратить повторение проблемы.
Ошибка «Конфликт блокировки при выполнении транзакции» или сообщение «Объект заблокирован» появляется, когда один сеанс 1С удерживает данные, а второй пытается их изменить. Чаще всего виновник — зависший сеанс пользователя, незавершённая фоновая операция или обмен данными, который прервался на середине. Проблема решаема без привлечения программиста, если действовать последовательно.
Порядок действий зависит от режима работы базы: файловый вариант ограничивает инструменты, клиент-серверный даёт больше возможностей через консоль кластера. Важно сначала найти источник блокировки, а не сразу перезагружать сервер — грубое вмешательство может привести к потере несохранённых данных других пользователей.
Почему возникает ошибка блокировки объекта
1С использует механизм блокировок, чтобы два пользователя одновременно не изменили один и тот же документ, элемент справочника или запись регистра. Когда первый сеанс открывает объект на редактирование, платформа ставит блокировку. Если второй пользователь пытается записать тот же объект, он получает ошибку конфликта.
Типичные причины зависших блокировок:
- пользователь закрыл программу аварийно, и сеанс остался «висеть» на сервере;
- фоновое задание или регламентная операция завершилась с ошибкой, не сняв блокировку;
- обмен данными между базами прервался по сети в момент записи;
- длинная транзакция (проведение большого документа, групповая обработка) удерживает данные слишком долго;
- неоптимальный код в доработках, который блокирует лишние таблицы.
Как определить, кто заблокировал объект
Первый шаг — выяснить, какой сеанс удерживает блокировку. В тонком клиенте откройте раздел «Администрирование → Обслуживание → Активные пользователи» (название пункта может отличаться в зависимости от конфигурации). Здесь видно список сеансов, время их начала и последнюю активность.
Обратите внимание на сеансы с давним временем бездействия — это главные подозреваемые. Также полезен журнал регистрации: откройте «Администрирование → Обслуживание → Журнал регистрации» и отфильтруйте события по ошибкам за последние минуты. Там часто видно, какой пользователь и какая операция вызвали конфликт.
В клиент-серверном варианте дополнительно используйте консоль кластера серверов 1С: ветка «Сеансы» показывает все активные соединения, включая те, что не видны из самой программы. По колонке «Время последней активности» легко найти «мёртвые» сеансы.
Проверьте время последней активности в списке сеансов
Уточните, какой объект он редактирует и кто ещё с ним работает
Проверьте состояние сервера 1С и SQL-сервера
Проверьте журнал обмена и фоновые задания
Как снять блокировку в файловой базе
В файловом варианте инструментов меньше, но обычно достаточно простых действий. Сначала попросите всех пользователей корректно выйти из программы, затем проверьте, не осталось ли зависших процессов.
На компьютере, где размещён файл базы, откройте диспетчер задач и найдите процессы 1cv8.exe. Если пользователь уже вышел, а процесс остался — завершите его вручную. Также проверьте наличие файла 1Cv8.1CL в папке базы: это служебный файл блокировок. Он должен исчезать, когда все сеансы закрыты. Если база полностью пуста, а файл остался, его можно удалить.
После этого запустите базу и повторите операцию. Если ошибка возвращается у конкретного объекта, проверьте, не открыт ли он у кого-то в режиме редактирования — иногда достаточно, чтобы коллега просто закрыл форму документа.
- 1Попросите всех пользователей выйти из 1С штатно
- 2Проверьте диспетчер задач на наличие зависших процессов 1cv8.exe и завершите их
- 3Убедитесь, что в папке базы не остался файл 1Cv8.1CL; при необходимости удалите его
- 4Запустите базу и повторите операцию, вызвавшую ошибку
- 5Если ошибка повторяется — проверьте журнал регистрации и фоновые задания
Как снять блокировку в клиент-серверном варианте
В клиент-серверной архитектуре основной инструмент — консоль кластера серверов 1С. Откройте её, разверните нужный кластер, найдите информационную базу и перейдите на вкладку «Сеансы». Отсортируйте список по времени последней активности.
Выделите зависший сеанс и удалите его через контекстное меню. Платформа корректно завершит соединение и освободит удерживаемые блокировки. Действуйте точечно: удаление всех сеансов подряд прервёт работу пользователей, которые в этот момент проводят документы.
Если блокировка сохраняется на уровне СУБД (MS SQL, PostgreSQL), проблему видно и в средствах самой СУБД. В MS SQL Server, например, активные блокировки смотрят через Activity Monitor или запрос к системным представлениям. Зависший процесс на уровне СУБД можно завершить командой KILL с указанием идентификатора сессии, но это крайняя мера.
Что делать, если блокировку держит фоновое задание
Частая ситуация: пользователь видит ошибку, но в списке активных пользователей никого подозрительного нет. Проверьте фоновые задания через «Администрирование → Обслуживание → Регламентные и фоновые задания». Задание в состоянии «Выполняется», которое работает аномально долго, может удерживать блокировки.
Отмените такое задание и дождитесь завершения. Если задание запускается по расписанию и регулярно конфликтует с работой пользователей, перенесите его выполнение на нерабочее время — например, на ночные часы. Это снимает большинство повторяющихся конфликтов без доработки конфигурации.
Отдельный случай — обмены данными (синхронизация с другими базами, сайтом, кассами). Прерванный обмен может оставить заблокированными узлы плана обмена. Обычно помогает повторный запуск обмена после устранения причины сбоя сети.
Как выбрать действие
Профилактика повторных блокировок
Разовая разблокировка решает симптом, но не причину. Чтобы ошибки не возвращались, внедрите несколько простых практик. Настройте автоматическое завершение неактивных сеансов: в свойствах информационной базы в консоли кластера есть параметр «Принудительное завершение сеансов» с задаваемым интервалом простоя.
Разнесите по времени тяжёлые операции: регламентные задания, обмены, групповые обработки не должны выполняться в часы активной работы пользователей. Обучите сотрудников закрывать программу штатно, а не через «крестик» на удалённом рабочем столе — при разрыве RDP-сессии сеанс 1С часто остаётся висеть.
Если конфигурация дорабатывалась, попросите разработчика проверить код на предмет избыточных блокировок: длительные транзакции, блокировка целых таблиц вместо конкретных записей, отсутствие управляемого режима блокировок. В свойствах конфигурации режим управления блокировками должен быть «Управляемый» или «Автоматический и управляемый» — это существенно снижает число конфликтов в многопользовательской работе.
Как проверить, что проблема решена
После снятия блокировки выполните контрольную проверку. Повторите операцию, которая вызывала ошибку: запись документа, проведение, запуск обмена. Операция должна завершиться без сообщений о конфликте.
Дополнительно откройте список сеансов и убедитесь, что зависший сеанс исчез и не появляется снова. Проверьте журнал регистрации за последние минуты — новых ошибок блокировок быть не должно. Если ошибка возвращается через короткое время, значит, источник не устранён: ищите фоновое задание или пользователя, который запускает конфликтующую операцию.
Как проверить результат
Запись или проведение завершается без ошибок
Ошибка блокировки появляется снова
Нет сеансов с аномально давним временем бездействия
Зависший сеанс появляется повторно
Нет новых событий конфликтов блокировок
Ошибки фиксируются регулярно
Все задания завершаются в разумное время
Задание «висит» в состоянии выполнения часами
Частые вопросы
Можно ли снять блокировку, не выгоняя пользователей из базы?
Да, если блокировку держит конкретный зависший сеанс. Достаточно завершить только его через консоль кластера или список активных пользователей — остальные продолжат работу. Массовое завершение сеансов требуется редко.
Что делать, если ошибка появляется только у одного пользователя?
Проверьте, какой объект он редактирует и кто ещё работает с этим объектом. Часто причина в том, что коллега оставил открытой форму того же документа. Также убедитесь, что у пользователя не запущено два сеанса 1С одновременно.
Опасно ли удалять файл 1Cv8.1CL в файловой базе?
Это служебный файл блокировок, и его удаление безопасно только когда все сеансы работы с базой полностью закрыты. Если удалить его во время чьей-то активной работы, можно нарушить целостность данных. Перед удалением убедитесь, что никто не подключён к базе.
Почему ошибка блокировки возникает каждый день в одно и то же время?
Почти наверняка в это время по расписанию запускается регламентное задание или обмен данными, который конфликтует с работой пользователей. Найдите задание по времени запуска в списке регламентных заданий и перенесите его на нерабочие часы.
Когда нужно привлекать программиста 1С?
Если блокировки повторяются систематически, не связаны с зависшими сеансами и возникают при штатных операциях — вероятна проблема в коде конфигурации. Разработчику нужно проанализировать транзакции, режим управляемых блокировок и доработки, выполняющие массовую запись данных.
Что важно запомнить
Ошибка блокировки объекта в 1С почти всегда связана с зависшим сеансом или фоновым заданием. Найдите источник через список сеансов или консоль кластера, завершите проблемный сеанс точечно и повторите операцию. Для профилактики настройте автозавершение неактивных сеансов и разнесите тяжёлые операции по времени.