Администрирование · 9 мин
Как сбросить блокировки 1С: практическое руководство
Как сбросить зависшие блокировки в 1С: консоль кластера, завершение сеансов, работа с СУБД, режим монопольного доступа. Признаки блокировки и способы решения.
Сообщения вида «Конфликт блокировок при выполнении транзакции», «Не удалось заблокировать запись» или невозможность войти в базу из-за монопольного режима — типичные ситуации при работе с 1С. Блокировка возникает, когда один сеанс удерживает данные, а другой пытается их изменить, либо когда сеанс «завис» и не освободил ресурсы.
Способ снятия блокировки зависит от того, как развёрнута система: файловая база на локальном компьютере, клиент-серверный вариант с кластером 1С:Предприятия или база на СУБД (MS SQL, PostgreSQL). В каждом случае набор инструментов свой, и важно сначала понять причину зависания, а не просто «убивать» процессы.
Перед любыми действиями убедитесь, что у вас есть права администратора базы или кластера, а активных пользователей предупредили о возможном завершении их сеансов. Принудительное снятие блокировки во время записи документа или обмена данными может привести к незавершённым транзакциям.
Как понять, что база заблокирована, и найти виновника
Признаки блокировки обычно очевидны: программа выдаёт ошибку «Конфликт блокировок при выполнении транзакции», документ не проводится с сообщением о занятой записи, база не пускает пользователей с формулировкой «Для выполнения операции необходим монопольный режим» либо вход в базу попросту «висит» на этапе авторизации.
Отдельный случай — зависший фоновый сеанс. Пользователь давно закрыл программу, но сеанс остался активным на сервере и продолжает удерживать монопольный режим или заблокированные записи. Именно такие «фантомные» сеансы чаще всего мешают обновлению конфигурации и регламентным операциям.
Какой пользователь или фоновое задание работает с теми же документами
Список активных сеансов и соединений
Процессы 1cv8.exe, rphost, блокировку файла 1Cv8.1CD
Журнал регистрации и консоль заданий
Снятие блокировки в файловой базе
В файловом варианте всё проще: блокировки существуют только пока живы сеансы пользователей. Откройте базу в режиме «Предприятие» и перейдите в раздел «Администрирование» → «Активные пользователи» (в типовых конфигурациях) либо используйте стандартную функцию «Сервис» → «Активные пользователи». Здесь видно, кто сейчас работает в базе.
Если зависший сеанс принадлежит реальному пользователю, попросите его корректно закрыть программу. Если компьютер пользователя выключен или завис, но сеанс числится активным, завершите сеанс из списка активных пользователей — в типовых конфигурациях доступна кнопка «Завершить сеанс» при наличии прав администратора.
Когда войти в базу невозможно вовсе, проверьте, не открыт ли файл базы 1Cv8.1CD другим процессом. На компьютере, где лежит база, завершите все процессы 1cv8.exe через диспетчер задач. Также убедитесь, что рядом с файлом базы не осталось служебных файлов, созданных при аварийном завершении.
- 1Откройте список активных пользователей и найдите зависший сеанс
- 2Попросите пользователя закрыть программу или завершите сеанс принудительно
- 3Если войти нельзя — завершите все процессы 1cv8.exe на компьютерах, работающих с базой
- 4Проверьте, что монопольный режим снят и вход в базу восстановлен
Снятие блокировок через консоль кластера серверов 1С
В клиент-серверном варианте основной инструмент — консоль администрирования серверов 1С:Предприятия. Откройте её, разверните нужный кластер, затем ветку информационной базы. Здесь есть два ключевых раздела: «Сеансы» и «Соединения».
В разделе «Сеансы» найдите зависший сеанс: обычно это сеанс с давним временем начала, статусом «Спит» или сеанс фонового задания, который выполняется аномально долго. Выделите его и выберите «Удалить» в контекстном меню — сеанс будет завершён принудительно, а удерживаемые им управляемые блокировки сняты.
Дополнительно проверьте раздел «Блокировки» в свойствах информационной базы: там отображаются текущие управляемые блокировки с указанием сеанса-владельца. Это помогает точно определить, кто держит нужную таблицу или запись, прежде чем завершать сеанс.
Если консоль недоступна
Когда консоль кластера не открывается или сервер администрирования недоступен, можно перезапустить службу агента сервера 1С на сервере — это сбросит все сеансы и блокировки разом. Способ радикальный: всех пользователей выбросит из базы, поэтому применяйте его только в нерабочее время или при полной неработоспособности кластера.
Блокировки на уровне СУБД
Если блокировка возникла на уровне СУБД, а не кластера 1С, снимать её нужно средствами самой СУБД. В MS SQL Server откройте Management Studio и используйте отчёт «Activity Monitor» (Монитор активности) или системные представления, чтобы найти зависший процесс и его идентификатор сессии.
Найдя процесс, который блокирует остальные (обычно у него статус ожидания с большим временем или он является головой цепочки блокировок), завершите его командой KILL с указанием идентификатора сессии. Перед этим проверьте, что именно выполняет процесс — текст запроса виден в мониторе активности.
-- MS SQL: найти блокирующие сессии
SELECT blocking_session_id, session_id, wait_time, wait_type
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;
-- Завершить зависшую сессию (вместо 75 — реальный ID)
KILL 75;В PostgreSQL зависшие запросы ищут через представление pg_stat_activity, а завершают функцией pg_terminate_backend(pid). Логика та же: сначала определить, кто блокирует, затем завершить именно блокирующий процесс, а не все подряд.
Монопольный режим и зависшие фоновые задания
Частая задача — снять монопольный режим, который мешает пользователям войти в базу. Монопольный доступ устанавливается при обновлении конфигурации, тестировании и исправлении, загрузке данных. Если администратор, запустивший операцию, завершил работу аварийно, режим может остаться включённым.
В клиент-серверном варианте проверьте свойства информационной базы в консоли кластера: там виден параметр «Блокировка регламентных заданий» и признак монопольного режима. Завершение всех сеансов снимает монопольный режим автоматически. В файловой базе достаточно убедиться, что ни один процесс 1С не удерживает файл базы.
Зависшие регламентные задания — отдельный источник проблем. Если фоновое задание «застряло», найдите его сеанс в консоли кластера и завершите. Чтобы задания не накапливались, в свойствах базы можно временно включить блокировку регламентных заданий на время обслуживания.
Как выбрать действие
Проверка результата и профилактика
После снятия блокировки убедитесь, что проблема действительно решена: пользователь может войти в базу, документ проводится без ошибки, монопольный режим снят. Проверьте журнал регистрации — там видно, какой сеанс был завершён и не было ли ошибок в момент принудительного завершения.
Чтобы блокировки не превращались в постоянную проблему, настройте в свойствах информационной базы время завершения неактивных сеансов (таймаут простоя), следите за регламентными заданиями и избегайте ситуаций, когда пользователи массово редактируют одни и те же документы. Для файловых баз полезно правило: не выключать компьютер с открытой 1С.
Что важно запомнить
Сначала определите, кто держит блокировку, затем завершите конкретный зависший сеанс: в файловой базе — через активных пользователей, в клиент-серверной — через консоль кластера, на уровне СУБД — средствами SQL. Принудительное завершение безопасно для простаивающих сеансов, но опасно во время обновлений и обменов данными.
Частые вопросы
Можно ли снять блокировку без прав администратора?
Нет. Завершение чужих сеансов и работа с консолью кластера требуют административных прав на базу или кластер. Обычному пользователю остаётся дождаться освобождения данных или обратиться к администратору.
Что будет с данными пользователя, если завершить его сеанс принудительно?
Несохранённые изменения в открытых, но не записанных формах будут потеряны. Уже записанные в базу данные не пострадают — транзакционный механизм 1С откатывает только незавершённые операции.
Почему ошибка «Конфликт блокировок» возникает снова и снова?
Обычно причина в организации работы: несколько пользователей одновременно проводят документы по одному складу или контрагенту, либо тяжёлое регламентное задание выполняется в рабочее время. Разнесите операции по времени и перенесите фоновые задания на ночь.
Как снять блокировку, если база в файловом варианте открыта по сети?
Найдите компьютер, на котором остался открытым сеанс (в том числе зависший процесс 1cv8.exe), и завершите его. Если найти не удаётся, можно временно переименовать папку базы — сетевые подключения разорвутся, после чего вернуть имя обратно.
Помогает ли перезагрузка сервера 1С от всех блокировок?
Перезапуск службы агента сервера снимает все сеансы и управляемые блокировки, но блокировки на уровне СУБД могут сохраниться, если зависший запрос выполняется там. Кроме того, перезапуск не устраняет причину — без анализа ситуация повторится.