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

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

Как убрать блокировку базы 1С

Как убрать блокировку базы 1С: причины зависших сеансов, снятие блокировки через консоль кластера, конфигуратор и SQL Server. Риски и проверка результата.

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

Порядок действий зависит от режима работы — файловый или клиент-серверный. В файловой базе блокировку чаще всего создаёт зависший процесс 1cv8.exe на одном из компьютеров. В клиент-серверном варианте источником может быть консоль кластера серверов 1С, зависший сеанс или блокировка на уровне MS SQL Server / PostgreSQL.

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

Определяем тип блокировки и её источник

Текст ошибки — первый ключ к диагностике. Сообщение «Ошибка разделенного доступа к базе» или «Конфликт блокировок при выполнении транзакции» указывает на конкуренцию сеансов за данные. Фраза «Соединение с информационной базой запрещено» означает, что включена административная блокировка соединений. «Начало сеанса с информационной базой запрещено. Резервное копирование» — признак того, что базу заблокировало регламентное задание или администратор перед обновлением.

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

Соединение запрещеноАдминистративная блокировка

Проверьте свойства базы в консоли кластера — поле «Блокировка начала сеансов включена»

Конфликт блокировокДва сеанса конкурируют за данные

Найдите активные сеансы и регламентные задания, держащие транзакцию

Файл 1Cv8.1CL не удаляетсяЗависший сеанс в файловой базе

Проверьте процессы 1cv8.exe на компьютерах пользователей

Таймаут при запросеБлокировка на уровне СУБД

Смотрите активные запросы в MS SQL Server или PostgreSQL

Убираем блокировку в файловой базе

Попросите всех пользователей закрыть 1С штатно. Затем проверьте компьютеры, с которых работали с базой: откройте диспетчер задач (Ctrl+Shift+Esc) и найдите процессы 1cv8.exe и 1cv8c.exe. Если пользователь уже вышел, а процесс остался — завершите его через «Снять задачу». После этого файл 1Cv8.1CL в каталоге базы должен исчезнуть, и вход станет доступен.

Если база лежит на сетевом диске, зависший сеанс может быть на любом компьютере сети. Проверить, кто держит файл, можно через оснастку «Управление компьютером» на файловом сервере: раздел «Общие папки» → «Открытые файлы». Найдите файлы базы и закройте зависшие дескрипторы.

Удалять файл 1Cv8.1CL вручную допустимо только когда точно подтверждено, что ни один процесс 1С не работает с базой. Иначе вы рискуете получить рассинхронизацию данных и повреждение таблиц.

Снимаем блокировку через консоль кластера серверов 1С

В клиент-серверном режиме основной инструмент — консоль администрирования серверов 1С: Предприятия. Откройте её, разверните нужный кластер и перейдите в раздел «Сеансы». Здесь видно всех подключённых пользователей, время начала сеанса и текущую активность. Зависший сеанс обычно определяется по давнему времени простоя при нулевой активности либо по известному пользователю, чей компьютер уже выключен.

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

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

Порядок действий в консоли кластера
  1. 1
    Откройте консоль администрирования серверов 1С и разверните нужный кластер
  2. 2
    Перейдите в раздел «Сеансы» и отсортируйте по времени начала или активности
  3. 3
    Найдите зависшие сеансы и удалите их, предупредив пользователей
  4. 4
    Откройте свойства информационной базы и снимите флаг блокировки начала сеансов, если он установлен
  5. 5
    Проверьте вход в базу под обычным пользователем

Управляем регламентными заданиями и фоновыми процессами

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

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

Снимаем блокировки на уровне MS SQL Server

Если сеансы в консоли 1С удалены, а ошибки «конфликт блокировок» продолжаются, источник — зависшая транзакция на стороне СУБД. В SQL Server Management Studio откройте Activity Monitor (Монитор активности) и посмотрите раздел Processes: там видно заблокированные процессы и те, кто их блокирует (колонка Blocked By).

Завершить зависший процесс можно командой KILL с номером сессии. Используйте её только после того, как убедились, что процесс не выполняет важную операцию: откат длинной транзакции после KILL может занять заметное время и нагрузить сервер.

sql
-- Найти блокирующие сессии
SELECT blocking_session_id, session_id, wait_type, wait_time
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;

-- Завершить проблемную сессию (подставьте номер)
KILL 57;

Для PostgreSQL аналогичная диагностика выполняется через представление pg_stat_activity и функцию pg_terminate_backend(). Логика та же: найти зависший запрос, убедиться в его безопасности, завершить.

Проверяем результат и предотвращаем повторение

После снятия блокировки проверьте три вещи: вход в базу под обычным пользователем проходит без ошибок; в консоли кластера нет «призрачных» сеансов; регламентные задания выполняются по расписанию. Если блокировка была на стороне СУБД, убедитесь в Activity Monitor, что цепочки блокировок исчезли.

Чтобы проблема не повторялась, настройте регламент: обучите пользователей закрывать 1С, а не обрывать соединение; задайте в свойствах кластера параметр «Максимальный объём памяти рабочих процессов» и перезапуск по расписанию, если сервер перегружен; переведите длительные операции (закрытие месяца, обмены) на ночное время. Для баз на SQL Server убедитесь, что включён режим чтения с версионированием (READ_COMMITTED_SNAPSHOT) — он резко снижает число взаимных блокировок при конкурентной работе.

Типичные ошибки
01
Удаление файла 1Cv8.1CL при работающих сеансах — риск повреждения таблиц базы
02
Завершение сеанса, в котором идёт обновление конфигурации — база может остаться в нерабочем состоянии
03
Снятие административной блокировки до завершения обновления — пользователи войдут в базу на середине процесса
04
KILL длинной транзакции в SQL без оценки — откат может занять больше времени, чем сама операция
05
Игнорирование регламентных заданий — блокировка «возвращается», потому что источник не устранён
Контрольные точки

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

Вход в базу
Норма

Пользователь входит без сообщений о запрете соединения

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

Ошибка «начало сеанса запрещено» сохраняется — блокировка не снята

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

Только реальные активные пользователи

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

Сеансы с давним временем начала и нулевой активностью

Файловая база
Норма

Файл 1Cv8.1CL отсутствует, когда все вышли

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

Файл остаётся — есть зависший процесс

СУБД
Норма

Нет цепочек Blocked By в мониторе активности

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

Длинные цепочки блокировок и рост времени ожидания

Ответы на частые вопросы

Что делать, если консоль кластера не открывается или нет доступа администратора?

Без прав администратора кластера снять сеансы нельзя. Обратитесь к сотруднику, у которого есть доступ, либо, если сервер 1С ваш и пароль утерян, сбросьте список администраторов кластера, остановив службу агента сервера 1С и очистив файл srv1cv8.1cv8ws.lst в каталоге srvinfo — это штатная процедура восстановления доступа.

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

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

Почему блокировка возникает снова после перезапуска сервера?

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

Безопасно ли удалять файл 1Cv8.1CL вручную?

Только при полной уверенности, что ни один процесс 1С не работает с базой: проверьте диспетчер задач на всех компьютерах и открытые файлы на сервере. Если удалить файл при активном сеансе, возможно повреждение таблиц, после которого потребуется тестирование и исправление базы.

Чем отличается блокировка сеансов от блокировки данных?

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

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

Это признак повреждения данных. Немедленно сделайте копию каталога базы или бэкап средствами СУБД, затем запустите тестирование и исправление (для файловой базы — через конфигуратор или утилиту chdbfl.exe из каталога платформы). Не продолжайте работу в повреждённой базе — это усугубит проблему.

Итог

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

Сначала определите тип блокировки по тексту ошибки, затем действуйте по уровню: зависшие сеансы — через диспетчер задач или консоль кластера, административная блокировка — в свойствах информационной базы, блокировки СУБД — через монитор активности. Никогда не прерывайте штатные операции вроде обновления конфигурации и всегда проверяйте результат входом под обычным пользователем.