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

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

Как убрать ошибку блокировки объекта в 1С

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

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

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

Почему возникает ошибка блокировки объекта

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

Типичные причины зависших блокировок:

  • пользователь закрыл программу аварийно, и сеанс остался «висеть» на сервере;
  • фоновое задание или регламентная операция завершилась с ошибкой, не сняв блокировку;
  • обмен данными между базами прервался по сети в момент записи;
  • длинная транзакция (проведение большого документа, групповая обработка) удерживает данные слишком долго;
  • неоптимальный код в доработках, который блокирует лишние таблицы.

Как определить, кто заблокировал объект

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

Обратите внимание на сеансы с давним временем бездействия — это главные подозреваемые. Также полезен журнал регистрации: откройте «Администрирование → Обслуживание → Журнал регистрации» и отфильтруйте события по ошибкам за последние минуты. Там часто видно, какой пользователь и какая операция вызвали конфликт.

В клиент-серверном варианте дополнительно используйте консоль кластера серверов 1С: ветка «Сеансы» показывает все активные соединения, включая те, что не видны из самой программы. По колонке «Время последней активности» легко найти «мёртвые» сеансы.

Сеанс давно неактивенВероятный зависший сеанс

Проверьте время последней активности в списке сеансов

Ошибка у одного пользователяЛокальный конфликт

Уточните, какой объект он редактирует и кто ещё с ним работает

Ошибки у всех сразуПроблема уровня сервера или СУБД

Проверьте состояние сервера 1С и SQL-сервера

Ошибка в момент обменаПрерванный обмен данными

Проверьте журнал обмена и фоновые задания

Как снять блокировку в файловой базе

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

На компьютере, где размещён файл базы, откройте диспетчер задач и найдите процессы 1cv8.exe. Если пользователь уже вышел, а процесс остался — завершите его вручную. Также проверьте наличие файла 1Cv8.1CL в папке базы: это служебный файл блокировок. Он должен исчезать, когда все сеансы закрыты. Если база полностью пуста, а файл остался, его можно удалить.

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

Порядок действий для файловой базы
  1. 1
    Попросите всех пользователей выйти из 1С штатно
  2. 2
    Проверьте диспетчер задач на наличие зависших процессов 1cv8.exe и завершите их
  3. 3
    Убедитесь, что в папке базы не остался файл 1Cv8.1CL; при необходимости удалите его
  4. 4
    Запустите базу и повторите операцию, вызвавшую ошибку
  5. 5
    Если ошибка повторяется — проверьте журнал регистрации и фоновые задания

Как снять блокировку в клиент-серверном варианте

В клиент-серверной архитектуре основной инструмент — консоль кластера серверов 1С. Откройте её, разверните нужный кластер, найдите информационную базу и перейдите на вкладку «Сеансы». Отсортируйте список по времени последней активности.

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

Если блокировка сохраняется на уровне СУБД (MS SQL, PostgreSQL), проблему видно и в средствах самой СУБД. В MS SQL Server, например, активные блокировки смотрят через Activity Monitor или запрос к системным представлениям. Зависший процесс на уровне СУБД можно завершить командой KILL с указанием идентификатора сессии, но это крайняя мера.

Что делать, если блокировку держит фоновое задание

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

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

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

Маршрут решения

Как выбрать действие

В списке сеансов есть давно неактивный сеансЗавершите именно этот сеанс и повторите операцию
Виновник — фоновое задание в состоянии «Выполняется»Отмените задание и перенастройте его расписание на нерабочее время
Ошибка возникла во время обмена даннымиУстраните причину сбоя сети и перезапустите обмен
Блокировки повторяются систематически при массовых операцияхПроверьте доработки конфигурации и настройки управляемых блокировок
Ничего не помогает и блокировка на уровне СУБДОбратитесь к администратору СУБД для анализа и завершения зависшего процесса

Профилактика повторных блокировок

Разовая разблокировка решает симптом, но не причину. Чтобы ошибки не возвращались, внедрите несколько простых практик. Настройте автоматическое завершение неактивных сеансов: в свойствах информационной базы в консоли кластера есть параметр «Принудительное завершение сеансов» с задаваемым интервалом простоя.

Разнесите по времени тяжёлые операции: регламентные задания, обмены, групповые обработки не должны выполняться в часы активной работы пользователей. Обучите сотрудников закрывать программу штатно, а не через «крестик» на удалённом рабочем столе — при разрыве RDP-сессии сеанс 1С часто остаётся висеть.

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

Типичные ошибки
01
Перезагрузка сервера без поиска причины — блокировка вернётся при следующем запуске того же задания, а несохранённые данные пользователей будут потеряны
02
Удаление всех сеансов подряд вместо точечного завершения зависшего — прерывается работа сотрудников, проводящих документы
03
Игнорирование повторяющихся ошибок — систематические конфликты указывают на проблемы в коде или расписании заданий, которые нужно устранять
04
Редактирование базы напрямую средствами СУБД для «снятия блокировки» — это почти гарантированное повреждение данных

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

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

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

Контрольные точки

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

Повторный запуск операции
Норма

Запись или проведение завершается без ошибок

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

Ошибка блокировки появляется снова

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

Нет сеансов с аномально давним временем бездействия

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

Зависший сеанс появляется повторно

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

Нет новых событий конфликтов блокировок

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

Ошибки фиксируются регулярно

Фоновые задания
Норма

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

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

Задание «висит» в состоянии выполнения часами

Частые вопросы

Можно ли снять блокировку, не выгоняя пользователей из базы?

Да, если блокировку держит конкретный зависший сеанс. Достаточно завершить только его через консоль кластера или список активных пользователей — остальные продолжат работу. Массовое завершение сеансов требуется редко.

Что делать, если ошибка появляется только у одного пользователя?

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

Опасно ли удалять файл 1Cv8.1CL в файловой базе?

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

Почему ошибка блокировки возникает каждый день в одно и то же время?

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

Когда нужно привлекать программиста 1С?

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

Итог

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

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