Администрирование · 10 мин
Как убрать блокировку базы 1С
Как убрать блокировку базы 1С: причины зависших сеансов, снятие блокировки через консоль кластера, конфигуратор и SQL Server. Риски и проверка результата.
Блокировка базы 1С — ситуация, когда пользователи не могут войти в систему или выполнить операцию: программа сообщает, что база заблокирована, соединение с информационной базой недоступно или конфликт блокировок при выполнении транзакции. Причины разные: завершённые некорректно сеансы, включённая блокировка соединений администратором, регламентные задания, незавершённые транзакции на стороне СУБД.
Порядок действий зависит от режима работы — файловый или клиент-серверный. В файловой базе блокировку чаще всего создаёт зависший процесс 1cv8.exe на одном из компьютеров. В клиент-серверном варианте источником может быть консоль кластера серверов 1С, зависший сеанс или блокировка на уровне MS SQL Server / PostgreSQL.
Прежде чем снимать блокировку принудительно, убедитесь, что она не вызвана штатным процессом: обновлением конфигурации, резервным копированием или закрытием периода. Принудительное завершение таких операций может привести к повреждению данных.
Определяем тип блокировки и её источник
Текст ошибки — первый ключ к диагностике. Сообщение «Ошибка разделенного доступа к базе» или «Конфликт блокировок при выполнении транзакции» указывает на конкуренцию сеансов за данные. Фраза «Соединение с информационной базой запрещено» означает, что включена административная блокировка соединений. «Начало сеанса с информационной базой запрещено. Резервное копирование» — признак того, что базу заблокировало регламентное задание или администратор перед обновлением.
В файловом режиме проверьте, есть ли в каталоге базы файл 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С и разверните нужный кластер
- 2Перейдите в раздел «Сеансы» и отсортируйте по времени начала или активности
- 3Найдите зависшие сеансы и удалите их, предупредив пользователей
- 4Откройте свойства информационной базы и снимите флаг блокировки начала сеансов, если он установлен
- 5Проверьте вход в базу под обычным пользователем
Управляем регламентными заданиями и фоновыми процессами
Частый источник «непонятных» блокировок — регламентные и фоновые задания. Они выполняются без видимого окна, но держат транзакции и мешают монопольному доступу. В консоли кластера откройте раздел «Фоновые задания» и посмотрите, что выполняется прямо сейчас. Зависшее задание можно отменить, но сначала выясните его назначение: прерывание обмена данными или расчёта итогов может оставить данные в промежуточном состоянии.
Если нужно выполнить обновление конфигурации или другое монопольное действие, включите блокировку сеансов сами: в свойствах информационной базы установите флаг блокировки, задайте код разрешения (его введут те, кому вход всё же нужен) и время начала блокировки. Отдельно отметьте параметр блокировки регламентных заданий — иначе они продолжат запускаться и помешают монопольному режиму.
Снимаем блокировки на уровне MS SQL Server
Если сеансы в консоли 1С удалены, а ошибки «конфликт блокировок» продолжаются, источник — зависшая транзакция на стороне СУБД. В SQL Server Management Studio откройте Activity Monitor (Монитор активности) и посмотрите раздел Processes: там видно заблокированные процессы и те, кто их блокирует (колонка Blocked By).
Завершить зависший процесс можно командой KILL с номером сессии. Используйте её только после того, как убедились, что процесс не выполняет важную операцию: откат длинной транзакции после KILL может занять заметное время и нагрузить сервер.
-- Найти блокирующие сессии
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) — он резко снижает число взаимных блокировок при конкурентной работе.
Как проверить результат
Пользователь входит без сообщений о запрете соединения
Ошибка «начало сеанса запрещено» сохраняется — блокировка не снята
Только реальные активные пользователи
Сеансы с давним временем начала и нулевой активностью
Файл 1Cv8.1CL отсутствует, когда все вышли
Файл остаётся — есть зависший процесс
Нет цепочек Blocked By в мониторе активности
Длинные цепочки блокировок и рост времени ожидания
Ответы на частые вопросы
Что делать, если консоль кластера не открывается или нет доступа администратора?
Без прав администратора кластера снять сеансы нельзя. Обратитесь к сотруднику, у которого есть доступ, либо, если сервер 1С ваш и пароль утерян, сбросьте список администраторов кластера, остановив службу агента сервера 1С и очистив файл srv1cv8.1cv8ws.lst в каталоге srvinfo — это штатная процедура восстановления доступа.
Можно ли снять блокировку, не завершая сеансы пользователей?
Если это административная блокировка соединений — да, достаточно снять флаг в свойствах базы, активные сеансы при этом не пострадают. Если блокировка вызвана конкретным зависшим сеансом, удерживающим данные, избежать его завершения обычно нельзя: транзакция должна быть либо зафиксирована, либо отменена.
Почему блокировка возникает снова после перезапуска сервера?
Перезапуск устраняет симптом, но не причину. Обычно повторные блокировки вызывают регламентные задания с длинными транзакциями, обмены данными, длительные операции закрытия периода или неоптимальные запросы в доработанной конфигурации. Анализируйте технологический журнал и длительные запросы, чтобы найти источник.
Безопасно ли удалять файл 1Cv8.1CL вручную?
Только при полной уверенности, что ни один процесс 1С не работает с базой: проверьте диспетчер задач на всех компьютерах и открытые файлы на сервере. Если удалить файл при активном сеансе, возможно повреждение таблиц, после которого потребуется тестирование и исправление базы.
Чем отличается блокировка сеансов от блокировки данных?
Блокировка сеансов — административный запрет на вход в базу, её включает администратор или код конфигурации. Блокировка данных — механизм СУБД и платформы, возникающий автоматически при конкурентном доступе к записям. Первая снимается в свойствах базы, вторая — завершением конфликтующего сеанса или транзакции.
Что делать, если после снятия блокировки база не открывается с ошибкой структуры?
Это признак повреждения данных. Немедленно сделайте копию каталога базы или бэкап средствами СУБД, затем запустите тестирование и исправление (для файловой базы — через конфигуратор или утилиту chdbfl.exe из каталога платформы). Не продолжайте работу в повреждённой базе — это усугубит проблему.
Что важно запомнить
Сначала определите тип блокировки по тексту ошибки, затем действуйте по уровню: зависшие сеансы — через диспетчер задач или консоль кластера, административная блокировка — в свойствах информационной базы, блокировки СУБД — через монитор активности. Никогда не прерывайте штатные операции вроде обновления конфигурации и всегда проверяйте результат входом под обычным пользователем.