Снятие блокировок в 1С 8.3: сеансы, файлы, кэш
Содержание
Чаще всего «снять блокировку» путают с удалением файла. На деле в 1С 8.3 под блокировкой скрываются четыре разные ситуации: временный запрет соединений («доступ запрещён»), зависший после аварийного завершения сеанс, захват базы на монопольный доступ и конфликт транзакционных блокировок при одновременной работе. Снимаются они по-разному, и удаление файлов нужно в одном случае из четырёх.
Начните с текста ошибки — он прямо указывает на причину. Доступ к информационной базе временно запрещён — это административная блокировка соединений, снимается настройкой. Конфликт блокировок при выполнении транзакции — транзакционная, обычно уходит сама. Не удалось заблокировать информационную базу для монопольного доступа — кто-то держит базу открытой. Ниже — что делать в каждом случае, для файловой и клиент-серверной базы.
Любое принудительное снятие блокировки — завершение сеанса, остановка службы, удаление файла, очистка кэша — обрывает работу пользователей. Делайте это, только когда база свободна или вы предупредили сотрудников: несохранённые данные в оборванном сеансе теряются.
С какой блокировкой вы столкнулись
Четыре типа — по тексту ошибки и поведению:
- 🔒 Блокировка соединений (административная). Текст вида
Доступ к информационной базе временно запрещён, обратитесь к администратору. Её кто-то включил вручную или по расписанию — например, на время обновления или бэкапа. Файлы тут ни при чём. - ⏳ Зависший сеанс. 1С или компьютер завершились аварийно, сеанс остался «висеть». Симптом —
Не удалось заблокировать информационную базу для монопольного доступа, хотя визуально никто не работает . - 👥 Монопольный доступ. Кто-то открыл базу в режиме, требующем монополии (обновление конфигурации
, загрузка
.dt, тестирование и исправление, динамическое обновление). Пока он не выйдет — вы не зайдёте, и наоборот. - 🔁 Транзакционная (конфликт блокировок).
Конфликт блокировок при выполнении транзакции. Превышено максимальное время ожидания. Два пользователя одновременно изменяют одни данные. Почти всегда снимается сама за секунды — трогать файлы и службы не нужно.
Прежде чем что-то удалять или завершать, определите тип. Удаление файлов при транзакционном конфликте бесполезно, а остановка службы при живых сеансах — это потерянные документы.
Где посмотреть, кто держит базу
Сначала найдите сеанс, потом снимайте. Способ зависит от варианта базы.
Клиент-серверная база
. Откройте консоль администрирования серверов 1С (оснастка MMC) → ваш кластер → Сеансы. Там видны пользователь, компьютер, приложение и время начала. Альтернатива из командной строки — утилита rac (о ней ниже). Ещё один путь — в самой программе: раздел Администрирование (или НСИ и администрирование) → Обслуживание → Активные пользователи.
Файловая база. Сеансы централизованно нигде не хранятся, поэтому смотрите по-простому:
- Обойдите компьютеры, с которых работают с базой, — у кого открыто окно 1С.
- На каждом откройте Диспетчер задач (
Ctrl+Shift+Esc) → вкладка Подробности → найдите процессы1cv8.exe. - Если процесс висит, а пользователь уверяет, что вышел, — это и есть зависший сеанс.
💡 В Конфигураторе список подключений виден через Администрирование → Активные пользователи — удобно, когда база одна и Конфигуратор уже открыт.
Как снять блокировку соединений с базой
Это та самая Доступ к информационной базе временно запрещён. Её ставят на время регламентных работ. Два способа снять.
Через Конфигуратор. Откройте Конфигуратор → меню Администрирование → Блокировка соединений с информационной базой. Снимите флажок установки блокировки либо задайте дату и время окончания в прошлом. Нажмите OK.
Через параметр запуска /UC. Если при установке блокировки задавали код разрешения, базу можно открыть в обход, запустив 1С с этим кодом. В окне запуска выделите базу, нажмите кнопку с настройками запуска (параметры) и в строке дополнительных параметров укажите:
ENTERPRISE /UC КодРазрешения
где КодРазрешения — тот самый код, заданный при блокировке. Войдёте под обычным сеансом, несмотря на блокировку.
В клиент-серверной базе блокировку соединений можно снять и в консоли администрирования: свойства информационной базы → снять флажки Блокировка начала сеансов включена и Блокировка регламентных заданий.
Если блокировку включает регламентное задание из БСП (стандартная подсистема «Блокировка работы пользователей»), просто снять её мало — задание включит снова. Про это в разделе про профилактику.
Как освободить файловую базу и убрать зависшие сеансы
В файловом режиме «сброс блокировки» почти всегда сводится к одному: закрыть все подключения к базе. Отдельного файла-рубильника, который достаточно удалить, в штатной работе нет — лок держит открытый процесс.
Порядок действий:
- Попросите всех корректно выйти из базы (закрыть 1С, не просто свернуть).
- Закройте Конфигуратор, если он открыт по этой базе, — он тоже держит соединение.
- На компьютерах пользователей проверьте и при необходимости снимите зависшие
1cv8.exeв диспетчере задач. - Попробуйте войти снова.
После закрытия последнего процесса база освобождается. Если вход всё равно не проходит и появляется сообщение о занятости или о нарушении целостности — база, скорее всего, не «заблокирована», а повреждена: переходите к проверке chdbfl.
💡 Служебные временные файлы (с расширениями вроде .lck, временные данные блокировок) платформа создаёт и удаляет сама. Удалять их вручную имеет смысл только когда база гарантированно закрыта во всех окнах, а процесс зависло снять не удаётся. Перед удалением любых файлов внутри папки базы сделайте копию всей папки. Трогать сам файл 1Cv8.1CD нельзя — это и есть база.
Как проверить базу утилитой chdbfl
Если блокировка — на самом деле повреждение файловой базы (Нарушение целостности структуры информационной базы), помогает штатная утилита chdbfl.exe. Она проверяет и чинит физическую целостность файла 1Cv8.1CD. Только для файловых баз — к серверным она неприменима.
- Закройте базу у всех пользователей и в Конфигураторе.
- Сделайте резервную копию папки с базой или выгрузку
.dt— исправление меняет файл. - Найдите
chdbfl.exeв каталоге установки платформы, в папкеbin: обычноC:\Program Files\1cv8\<номер версии>\bin\chdbfl.exe. - Запустите утилиту, укажите путь к файлу
1Cv8.1CD. - Поставьте флажок «Исправлять обнаруженные ошибки» и запустите проверку.
Если ошибки найдены и исправлены — пробуйте войти. Если chdbfl не справляется, восстанавливайте из бэкапа или выгружайте то, что осталось, в .dt.
chdbfl лечит физику файла, но не логику данных. Если проблема в документах или регистрах, нужна проверка средствами Конфигуратора: Администрирование → Тестирование и исправление. Этот режим требует монопольного доступа, поэтому база должна быть свободна.
Как снять блокировки в клиент-серверной базе
Здесь не удаляют файлы — сеансы и соединения живут в кластере серверов 1С. Инструментов два: графическая консоль и командная утилита.
Консоль администрирования серверов. Оснастка MMC Администрирование серверов 1С Предприятия. Разверните кластер → Сеансы, найдите нужный, правый клик → Удалить. Так же удаляются и Соединения. Это корректный способ закрыть зависший сеанс
без остановки всего сервера.
Сеанс и соединение — не одно и то же: сеанс отражает работу пользователя, соединение — физический канал к рабочему процессу. Зависает чаще сеанс, поэтому начинайте с ветки Сеансы. Если после удаления сеанса база всё ещё занята, посмотрите, не осталось ли «осиротевшего» соединения в ветке Соединения, и удалите его тоже.
Утилита rac (из папки bin платформы). Работает в связке со службой ras. Базовый сценарий:
rac cluster list
rac session list --cluster=<uuid-кластера>
Первая команда вернёт идентификатор кластера, вторая — список сеансов с их идентификаторами. Для завершения сеанса используется команда rac session terminate с параметрами кластера и сеанса. Точный синтаксис параметров смотрите в справке:
rac help session
Не придумывайте ключи по памяти — у rac они зависят от версии платформы, и rac help всегда покажет актуальные.
Перезапуск службы сервера 1С (1C:Enterprise 8.3 Server Agent) или рабочего процесса rphost снимает разом все блокировки и сеансы. Это крайняя мера: оборвутся все пользователи. Делайте только вне рабочего времени.
А что с SQL? Руками снимать блокировки в SQL Server (убивать SPID через KILL) обычно не нужно и рискованно: вы работаете мимо платформы и можете оставить данные в несогласованном состоянии. Транзакционные блокировки на уровне СУБД 1С снимает сама, когда транзакция завершается или сервер перезапускается. Если на SQL действительно «висит» блокирующая сессия, безопаснее аккуратно перезапустить службу сервера
1С, чем вмешиваться в SQL напрямую.
Как очистить кэш и временные данные 1С
Иногда «блокировка» или зависание при входе — это битый локальный кэш, а не серверная проблема. Кэш клиента чистится без потери данных базы.
Параметр запуска /ClearCache. В окне запуска выделите базу → настройки запуска → в дополнительных параметрах укажите:
/ClearCache
При следующем входе клиент пересоберёт кэш.
Удаление папок кэша вручную. Закройте все окна 1С и удалите подпапки кэша в профиле пользователя:
%LOCALAPPDATA%\1C\1cv8— основной каталог кэша клиента;%APPDATA%\1C\1cv8— дополнительные временные данные.
Внутри — папки с именами из набора цифр и букв (идентификаторы баз). Можно удалить их целиком — платформа создаст кэш заново при входе.
💡 Чистка кэша решает «необъяснимые» тормоза и ошибки форм после обновления. На сами данные в базе она не влияет — удаляется только локальная копия настроек и форм.
Профилактика: настройки блокировок и регламенты БСП
Чтобы не снимать блокировки каждую неделю, уберите их причины.
- 🧩 Режим управления блокировкой данных в свойствах конфигурации держите в значении «Управляемый» — он даёт меньше конфликтов, чем автоматический, за счёт блокировок на уровне записей, а не таблиц.
- ⏱️ Таймаут блокировок. Длинные транзакции (массовое проведение, обмены) запускайте в нерабочее время, чтобы они не собирали конфликты с оперативной работой.
- 🚪 Корректный выход. Приучите пользователей закрывать 1С, а не выключать компьютер с открытой базой — это главная причина зависших сеансов в файловых базах.
- 🛠️ Конфигуратор не держите открытым на рабочей базе: он занимает соединение и мешает другим войти, а при динамическом обновлении требует монополии.
- 📅 Регламент «Блокировка работы пользователей» (БСП). В типовых конфигурациях блокировку соединений на время обслуживания ставит стандартная подсистема. Если база «запрещает доступ» по расписанию — проверьте её настройки в разделе
Администрирование → Обслуживание, а не ищите файл. - 💾 Бэкап перед монопольными операциями. Перед обновлением, загрузкой
.dt, тестированием и исправлением делайте резервную копию: эти операции требуют монополии и при сбое оставляют базу в неоднозначном состоянии.
Частые вопросы
Можно ли просто перезагрузить сервер, чтобы снять все блокировки?
Я удалил файлы в папке базы, а она не открывается — что делать?
chdbfl с исправлением ошибок. Сам файл 1Cv8.1CD удалять нельзя: это и есть база.Конфликт блокировок при проведении повторяется постоянно. Как убрать?
Чем «блокировка соединений» отличается от «монопольного доступа»?
.dt): он спадёт сам, как только операция завершится или пользователь выйдет.Очистка кэша удалит мои данные или настройки?
Где взять код разрешения для параметра /UC?
Блокировка соединений с информационной базой. Если код не задавали, строка остаётся пустой, и /UC без него не сработает — снимайте блокировку настройкой в Конфигураторе или консоли.