Администрирование · 11 мин
1С: как зайти в заблокированную базу
Разбираем, как зайти в заблокированную базу 1С: снятие блокировки соединений, работа с консолью кластера, кодом разрешения, файловой базой и типичные ошибки.
Сообщение «Начало сеанса с информационной базой запрещено» или «Выполняется ожидание возможности входа» знакомо каждому администратору 1С. База блокируется штатно — при регламентных операциях, обновлении конфигурации или создании резервной копии, — но иногда блокировка «зависает» или установлена ошибочно, и работа всей компании встаёт.
Способ разблокировки зависит от режима работы базы: файловый или клиент-серверный. В файловом варианте блокировка хранится в служебном файле рядом с базой, в клиент-серверном — управляется через консоль кластера серверов 1С. Ниже разобраны оба сценария, а также ситуации, когда блокировку ставит не администратор, а сама платформа или СУБД.
Перед любыми действиями убедитесь, что у вас есть права администратора информационной базы и что блокировка не установлена намеренно — например, другим специалистом на время обновления. Снятие «чужой» блокировки в середине обновления конфигурации может привести к повреждению данных.
Почему база 1С оказывается заблокированной
Блокировка сеансов — штатный механизм платформы. Её устанавливает администратор вручную, либо она включается автоматически при выполнении типовых операций: обновлении конфигурации базы данных, загрузке данных из файла, тестировании и исправлении. В типовых конфигурациях блокировку также ставят регламентные процедуры обновления через интернет.
Отдельный случай — «зависшая» блокировка. Если сеанс, который устанавливал блокировку, завершился аварийно, признак блокировки мог остаться активным, хотя никаких работ уже не ведётся. В файловых базах аналогичная ситуация возникает с файлом блокировки при внезапном отключении питания или разрыве сети.
Третья группа причин — блокировки на уровне СУБД. В клиент-серверном варианте транзакционные блокировки MS SQL, PostgreSQL или Oracle могут не давать выполняться отдельным операциям, хотя вход в базу при этом возможен. Это другая проблема, и решается она иначе — поиском и завершением зависшего сеанса на стороне СУБД.
Кто ставил блокировку и зачем; есть ли код разрешения
Активные сеансы в консоли кластера
Активные запросы и блокировки на стороне SQL-сервера
Наличие файла в каталоге базы, открытые сеансы других пользователей
Что проверить перед снятием блокировки
Первый шаг — выяснить, не идёт ли сейчас регламентная операция. Если коллега запустил обновление конфигурации, снятие блокировки прервёт процесс на половине, и база может остаться в несогласованном состоянии, когда структура данных частично изменена. Восстановление после такого прерывания — долгая и не всегда успешная процедура.
Проверьте список активных сеансов. В клиент-серверном варианте это делается в консоли кластера, в файловом — через «Администрирование → Активные пользователи» в конфигураторе, если в него удаётся войти. Если виден сеанс конфигуратора с длительной операцией — блокировка, скорее всего, оправданна.
Также уточните, есть ли актуальная резервная копия. Если блокировка «зависла» после сбоя и есть риск повреждения данных, копия должна быть сделана до любых экспериментов, а не после.
Как зайти в клиент-серверную базу через консоль кластера
Основной инструмент — консоль администрирования серверов 1С. Откройте её на сервере или на машине администратора, найдите нужный кластер, раскройте ветку «Информационные базы» и выберите требуемую базу. Через контекстное меню откройте «Свойства».
В свойствах найдите раздел «Блокировка начала сеансов». Если флаг «Блокировка начала сеансов включена» установлен, снимите его и сохраните изменения — пользователи смогут входить сразу. Если блокировку нужно оставить для обычных пользователей, но войти самому, посмотрите значение поля «Код разрешения» — оно понадобится для входа с параметром.
Там же можно принудительно завершить зависшие сеансы: перейдите на вкладку «Сеансы», найдите сеансы, которые держат блокировку или выполняются аномально долго, и удалите их через контекстное меню. Завершайте только те сеансы, в бесполезности которых уверены.
- 1Откройте консоль администрирования серверов 1С и подключитесь к кластеру
- 2Найдите базу в ветке «Информационные базы», откройте её свойства
- 3Проверьте список активных сеансов — не идёт ли обновление или регламентная операция
- 4Снимите флаг «Блокировка начала сеансов» либо запомните код разрешения
- 5Сохраните свойства и проверьте вход пользователем без прав администратора
- 6При необходимости завершите зависшие сеансы на вкладке «Сеансы»
Вход с кодом разрешения без снятия блокировки
Если блокировка должна остаться активной для всех, кроме вас, используйте параметр командной строки /UC с кодом разрешения. Запустите тонкий клиент или конфигуратор так: 1cv8.exe ENTERPRISE /S"Сервер\ИмяБазы" /UC КодРазрешения. Для файловой базы вместо /S используется /F"путь_к_каталогу".
Этот способ удобен, когда нужно завершить регламентные работы, не открывая базу пользователям раньше времени. Код разрешения задаётся в свойствах базы в консоли кластера или при установке блокировки из кода конфигурации.
Как разблокировать файловую базу
В файловом варианте признак блокировки сеансов хранится в служебном файле 1Cv8.cdn в каталоге информационной базы. Если блокировка «зависла», закройте все сеансы работы с базой и удалите этот файл — при следующем запуске платформа создаст его заново уже без блокировки. Предварительно скопируйте файл в другое место, чтобы при необходимости вернуть исходное состояние.
Если удалять файл не хочется, его можно открыть текстовым редактором: внутри находятся параметры блокировки, включая код разрешения. Зная код, войдите через параметр /UC, как описано выше, и снимите блокировку штатно из режима «Предприятие» или конфигуратора.
Отдельная ситуация — файловая база на сетевом ресурсе, где зависший сеанс другого компьютера держит файл монопольно. Помогает перезапуск общего доступа на файловом сервере или завершение сеанса на том компьютере, где пользователь остался «висеть» в базе.
1cv8.exe ENTERPRISE /F"D:\Bases\Trade" /UC 12345Разблокировка из кода и через конфигуратор
Если в конфигуратор войти удаётся (блокировка действует только на режим «Предприятие» или есть код разрешения), блокировку можно снять программно. В типовых конфигурациях для этого есть обработка «Блокировка работы пользователей» или соответствующий раздел в настройках поддержки и обслуживания.
Программно блокировка управляется через объект БлокировкаСеансов: функция ПолучитьБлокировкуСеансов() возвращает текущие параметры, а УстановитьБлокировкуСеансов() с переданной пустой структурой снимает блокировку. Это удобно для автоматизации — например, чтобы скрипт обновления сам снимал блокировку после завершения.
Учтите ограничение: программное снятие блокировки требует выполнения кода в сеансе с достаточными правами. Если войти в базу не получается вообще никак, остаются консоль кластера и файл 1Cv8.cdn.
Способы разблокировки
Подходит для клиент-серверных баз; требует прав администратора кластера и доступа к серверу
Универсальный вход при активной блокировке; нужно знать код разрешения
Только файловые базы; быстро, но снимает блокировку для всех и теряет код разрешения
Требует уже открытого сеанса с правами; удобно для автоматизации регламентных работ
Если дело не в блокировке сеансов: блокировки СУБД
Когда вход в базу работает, но документы не проводятся, а операции «висят», причина обычно в транзакционных блокировках на стороне СУБД. Один сеанс удерживает блокировку записи или таблицы, остальные ждут. Симптом: в консоли кластера виден сеанс с длительным вызовом СУБД, а у пользователей — вечное ожидание.
Диагностика ведётся средствами СУБД: в MS SQL — через Activity Monitor или запросы к системным представлениям блокировок, в PostgreSQL — через pg_stat_activity и pg_locks. Найдя сеанс-виновник, его можно завершить либо на стороне СУБД, либо через консоль кластера 1С, что обычно корректнее.
Не завершайте сеансы вслепую: длительный запрос может быть штатной тяжёлой операцией — закрытием месяца, перепроведением, полнотекстовой индексацией. Прерывание такой операции откатит транзакцию, и работу придётся начинать заново.
Профилактика зависших блокировок
Большинство проблем с блокировками предотвращается дисциплиной: перед установкой блокировки всегда задавайте код разрешения и фиксируйте его у ответственных лиц, а в сообщении пользователям указывайте причину и плановое время окончания работ.
Настройте на кластере допустимые объёмы и тайм-ауты сеансов, чтобы «мёртвые» соединения завершались автоматически. Для регламентных операций используйте скрипты, которые снимают блокировку в финальном шаге даже при ошибке — это исключает ситуацию «обновление упало, база осталась закрытой».
Регулярные резервные копии — обязательное условие. Любые действия с блокировками и зависшими сеансами безопасны только тогда, когда есть точка восстановления.
Что важно запомнить
Сначала выясните, кто и зачем установил блокировку, и проверьте активные сеансы. Клиент-серверную базу разблокируйте через консоль кластера, файловую — через файл 1Cv8.cdn, а для личного входа при активной блокировке используйте параметр /UC с кодом разрешения. Не прерывайте идущие регламентные операции.
Частые вопросы
Что делать, если код разрешения неизвестен и никто его не помнит?
В клиент-серверном варианте код виден в свойствах информационной базы в консоли кластера — там его можно посмотреть или задать новый. В файловой базе код хранится в файле 1Cv8.cdn, который открывается текстовым редактором. Если доступа нет ни туда, ни туда, блокировку придётся снять целиком, а не обойти.
Можно ли войти в заблокированную базу через конфигуратор?
Блокировка сеансов действует на все режимы запуска, включая конфигуратор, если не задано иное. Обход выполняется тем же параметром /UC с кодом разрешения: добавьте его к строке запуска конфигуратора. Без кода войти не получится ни в одном режиме.
База разблокирована, но пользователи всё равно не могут войти. В чём причина?
Проверьте, не установлено ли в свойствах базы расписание блокировки — она могла включиться повторно. Также убедитесь, что пользователи обновили список сеансов и перезапустили клиент: некоторые клиенты кэшируют отказ в соединении. В клиент-серверном варианте дополнительно проверьте доступность рабочих процессов кластера.
Чем опасно удаление файла 1Cv8.cdn?
Само по себе удаление при закрытых сеансах безопасно — платформа пересоздаст файл при следующем запуске. Риски два: удаление при открытых сеансах других пользователей и потеря кода разрешения, если блокировка была установлена осознанно. Поэтому перед удалением закройте все сеансы и сохраните копию файла.
Как отличить зависший сеанс от реально работающего обновления?
Работающее обновление проявляет активность: растёт нагрузка на СУБД, меняются счётчики вызовов в консоли кластера, на диске идут операции с временными файлами. Зависший сеанс не проявляет активности длительное время. Дополнительно сопоставьте время старта сеанса с типичной длительностью таких операций в вашей базе — аномально долгий сеанс без признаков работы, скорее всего, завис.
Нужно ли снимать блокировку, если она стоит по расписанию ночью?
Нет, если блокировка завершается по расписанию сама — дождитесь окончания интервала. Если регламентные работы завершены досрочно и базу нужно открыть раньше, снимите блокировку вручную через консоль кластера, предварительно убедившись, что все фоновые задания регламентных операций действительно завершены.