Файловая база 1С 8.3 занята: кто её держит и как освободить

· 10 мин

Содержание

Чтобы снять блокировку файловой базы 1С 8.3, найдите, кто держит файл 1Cv8.1CD: завершите зависшие процессы 1cv8.exe и 1cv8c.exe, закройте открытые сетевые сеансы к файлу на сервере, после этого удалите оставшийся файл 1Cv8.1CL в папке базы. Если стоит блокировка начала сеансов, её снимают через Конфигуратор или параметром запуска /UC с кодом разрешения.

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

Почему файловая база 1С 8.3 оказывается заблокирована

Файловая база — это папка, в которой лежат основной файл данных 1Cv8.1CD, служебный файл 1Cv8.1CL и папка журнала регистрации 1Cv8Log. Пока база открыта, платформа держит эти файлы. Если сеанс закрылся некорректно, файл может остаться занятым.

Основные причины:

  • 🔌 Обрыв сети или сна ноутбука. Пользователь работал по сети, связь пропала, а на сервере осталось открытое подключение к 1Cv8.1CD.
  • 🧟 Зависший процесс. Окно 1С закрыто, но 1cv8c.exe или 1cv8.exe остался в диспетчере задач. Особенно часто на терминальном сервере.
  • 🛑 Блокировка начала сеансов. Администратор перед обновлением включил запрет входа и забыл его снять. Это не сбой, а штатный механизм.
  • 🛡️ Антивирус или резервное копирование . Программа сканирует или копирует 1Cv8.1CD в момент запуска 1С.
  • ☁️ Облачная папка. База лежит в папке Яндекс Диска, OneDrive или подобного клиента, который захватывает файл при синхронизации.
  • 🌐 Публикация на веб-сервере. Если файловая база опубликована через Apache или IIS, процесс веб-сервера держит соединение с ней даже без активных пользователей.
  • 💥 Аварийное завершение. Отключили питание во время записи или реструктуризации. Тогда в папке может остаться временный файл 1Cv8tmp.1CD, а база потребует проверки.

Как выглядят сообщения о блокировке

Текст ошибки подсказывает, куда смотреть:

СообщениеЧто означает
Ошибка совместного доступа к файлу '1Cv8.1CD'. 32(0x00000020): Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.Файл держит другой процесс: зависшая 1С, антивирус, архиватор, синхронизатор
Ошибка блокировки информационной базы для конфигурированияВ базе работает другой Конфигуратор или идёт операция, которой нужна монополия
Не удалось установить монопольный режимВ базе есть активные сеансы, хотя бы один «призрачный»
Сообщение о том, что начало сеансов запрещено, с текстом от администратораВключена блокировка начала сеансов

Как убедиться, что база действительно заблокирована

Перед тем как что-то завершать, проверьте три вещи. Это займёт пару минут.

  1. Откройте базу в Конфигураторе и выберите Администрирование → Активные пользователи. Если список пуст, а ошибка остаётся, проблема не в живых сеансах 1С.
  2. Попробуйте переименовать файл 1Cv8.1CL в папке базы (например, добавить в конец _old). Если Windows сообщает, что файл открыт в другой программе, его кто-то держит. Если переименование прошло, файл был «осиротевшим» и уже не мешает.
  3. Посмотрите, кто открыл файл. На компьютере, где лежит база, откройте compmgmt.msc → Общие папки → Открытые файлы. В списке видно имя пользователя и компьютер, с которого открыт 1Cv8.1CD.

Из командной строки, запущенной от имени администратора, то же самое покажет команда:

openfiles /query /fo table | findstr /i "1Cv8"

Если openfiles выдаёт пустой список, но база по сети не открывается, проверьте, не держит ли файл локальный процесс на самом сервере: антивирус, агент резервного копирования, веб-сервер с публикацией этой базы.

Если ни один пользователь не числится, а файл занят процессом сервера, переходите к способу 3. Если в сообщении упоминается запрет начала сеансов — к способу 2.

Диагностика: выберите симптом

Способ 1. Убрать оставшийся файл блокировки 1Cv8.1CL

Файл 1Cv8.1CL служит для учёта подключений к файловой базе. При штатном выходе последнего пользователя он освобождается. После сбоя он может остаться и мешать запуску.

Удалять его можно только тогда, когда в базе точно никто не работает . Иначе вы оборвёте чужой сеанс и рискуете потерять несохранённые данные.

Порядок действий:

  1. Предупредите всех пользователей и попросите закрыть 1С.
  2. Сделайте копию всей папки базы, хотя бы 1Cv8.1CD, на другой диск.
  3. Найдите папку базы. Путь виден в окне запуска 1С: выделите базу в списке, внизу окна отображается строка File="…".
  4. Удалите или переименуйте файл 1Cv8.1CL. Платформа создаст новый при следующем запуске.
  5. Запустите базу.

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

Временный файл после сбоя

Если в папке лежит 1Cv8tmp.1CD, это след прерванной операции, например реструктуризации при обновлении. Не удаляйте его сразу. Переместите в отдельную папку, запустите базу и проверьте её. Когда убедитесь, что всё работает, файл можно удалить.

Способ 2. Снять блокировку начала сеансов

Это не авария, а включённый запрет входа. Его ставят перед обновлением или закрытием периода. Пока запрет действует, обычные пользователи видят сообщение администратора и не могут войти.

Из самой программы

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) запрет снимают в разделе администрирования:

  1. Войдите пользователем с полными правами.
  2. Откройте Администрирование → Обслуживание (в ЗУП и УТ раздел может называться Администрирование → Поддержка и обслуживание).
  3. Найдите ссылку «Блокировка работы пользователей».
  4. Снимите флажок запрета или нажмите кнопку, разрешающую работу, и запишите изменения.

Если в программу не пускает

При установке запрета администратор задаёт код разрешения. Зная его, базу можно открыть, несмотря на запрет. Добавьте в параметры запуска:

/UC 123456

Здесь 123456 — код, который указали при включении блокировки. Параметр вписывают в поле «Дополнительные параметры запуска» в свойствах базы (окно запуска → Изменить → последняя страница мастера) или в ярлык после пути к 1cv8.exe.

Типовые конфигурации на БСП понимают ещё и команду для снятия запрета при запуске:

/UC 123456 /C РазрешитьРаботуПользователей

После входа запрет снимется. Не забудьте убрать параметр из свойств базы, иначе он будет срабатывать при каждом запуске.

Код разрешения не восстанавливается по паролю администратора. Если его никто не помнит, обратитесь к тому, кто ставил блокировку, или к специалисту, который обслуживает базу.

Способ 3. Завершить процессы и сетевые подключения, которые держат базу

Это главный способ для ситуации «все вышли, а база занята». Важно бить точечно: завершать процесс конкретного пользователя, а не всех подряд.

Любое принудительное завершение обрывает сеанс. Пользователь потеряет то, что не успел записать. Делайте это после предупреждения или в нерабочее время.

На своём компьютере

  1. Нажмите Ctrl+Shift+Esc и перейдите на вкладку Подробности.
  2. Найдите процессы 1cv8.exe (толстый клиент и Конфигуратор) и 1cv8c.exe (тонкий клиент).
  3. Завершите те, у которых нет открытых окон 1С.

На терминальном сервере

Там работают десятки людей, и taskkill /IM 1cv8c.exe /F выбросит всех. Отфильтруйте процессы по пользователю:

tasklist /FI "IMAGENAME eq 1cv8c.exe" /V
taskkill /FI "USERNAME eq ivanov" /IM 1cv8c.exe /F

Первая команда покажет процессы с именами владельцев, вторая завершит только процессы пользователя ivanov.

На файловом сервере, где лежит база

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

Через оснастку. compmgmt.msc → Общие папки → Открытые файлы → правой кнопкой на строке с 1Cv8.1CD → «Закрыть открытый файл».

Через командную строку (от администратора):

openfiles /disconnect /a * /op "D:\Bases\Buh\1Cv8.1CD"

Путь замените на свой, он должен совпадать с тем, что показывает openfiles /query.

Через PowerShell на Windows Server 2012 и новее:

Get-SmbOpenFile | Where-Object { $_.Path -like "*\Buh\1Cv8*" } | Select-Object ClientComputerName, ClientUserName, Path
Get-SmbOpenFile | Where-Object { $_.Path -like "*\Buh\1Cv8*" } | Close-SmbOpenFile -Force

Первая строка покажет, кто держит файлы, вторая закроет подключения. Фильтр по имени папки (\Buh\) нужен, чтобы не задеть другие базы на том же диске.

Если держит не 1С

Кто держитКак понятьЧто сделать
АнтивирусОшибка появляется в момент запуска, процессы 1С не найденыДобавить папку базы в исключения сканирования
Резервное копированиеОшибка в одно и то же время, обычно ночью или в обедПеренести задание на время, когда никто не работает
Облачный клиентБаза лежит в папке синхронизацииПеренести базу из этой папки
Веб-сервер с публикациейВ «Открытых файлах» нет пользователей, но база занята, на компьютере стоит Apache или IISПерезапустить службу Apache или пул приложений IIS вне рабочего времени

Способ 4. Проверить и восстановить базу после снятия блокировки

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

Сначала сделайте копию папки базы в текущем состоянии. Восстановление меняет данные, и без копии вернуться будет некуда.

Проверка физической целостности: chdbfl.exe

Утилита лежит в каталоге платформы, например C:\Program Files\1cv8\8.3.24.1586\bin\chdbfl.exe (номер версии у вас свой).

  1. Убедитесь, что базу никто не открыл.
  2. Запустите chdbfl.exe, укажите путь к 1Cv8.1CD.
  3. Сначала нажмите проверку без флажка исправления, чтобы увидеть масштаб.
  4. Если ошибки найдены, включите флажок исправления и запустите повторно.

Утилита работает с файлом напрямую и не требует входа в базу. Поэтому она выручает, когда Конфигуратор не открывается.

Тестирование и исправление в Конфигураторе

Это логическая проверка: ссылки, итоги, индексы.

  1. Откройте базу в Конфигураторе. Режим требует монопольного доступа, поэтому в базе не должно быть других сеансов.
  2. Выберите Администрирование → Тестирование и исправление.
  3. Для первого прохода отметьте реиндексацию, проверку логической целостности и пересчёт итогов.
  4. Режим «Тестирование и исправление» запускайте, только если есть копия.

Если ничего не помогло

Восстановите базу из последней выгрузки .dt (Администрирование → Загрузить информационную базу в Конфигураторе) или из копии файла 1Cv8.1CD. Документы, введённые после копии, придётся внести заново, поэтому сначала уточните у бухгалтера, что за этот период проводилось.

Как не допускать блокировок файловой базы в будущем

Большинство блокировок повторяются по одним и тем же сценариям. Устраните сценарий — и проблема уйдёт.

  • 📁 Храните базу на локальном диске сервера, а не в облачной папке и не на сетевом накопителе с нестабильным подключением.
  • 🛡️ Добавьте папку базы в исключения антивируса. Сканирование 1Cv8.1CD на лету замедляет работу и вызывает конфликты доступа.
  • 🕒 Разведите по времени копирование и работу. Задание бэкапа, которое копирует файл базы, ставьте на ночь, когда 1С закрыта у всех.
  • 🔋 Поставьте ИБП на сервер с базой. Обрыв питания во время записи — самый дорогой сценарий из перечисленных.
  • 🚪 Приучите пользователей закрывать 1С, а не только гасить монитор. На терминальном сервере настройте завершение отключённых сеансов через заданное время в политиках сеансов.
  • 🔐 Перед обновлением ставьте блокировку начала сеансов и снимайте её сразу после. Код разрешения записывайте туда, где его найдёт коллега.

Когда файловая база уже не подходит

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

РешениеКогда подходитЧто получаете
Работа через терминальный серверНесколько офисов, слабая сетьФайл открывается локально на сервере, нет сетевых обрывов
Публикация на веб-сервереНужен доступ через браузер или тонкий клиент по интернетуПользователи не обращаются к файлу по сети напрямую
Переход на клиент-серверный вариантМного пользователей, большая базаНет файла 1Cv8.1CD, сеансами управляют через консоль кластера

Частые вопросы

Можно ли скопировать файл 1Cv8.1CD, пока в базе работают люди?
Технически копия иногда получается, но она может оказаться несогласованной. Надёжная копия делается, когда базу никто не держит, либо через выгрузку .dt в Конфигураторе.
Зачем нужен файл 1Cv8.1CL и опасно ли его удалять?
Платформа учитывает в нём подключения к файловой базе. Удаление безопасно, только когда в базе никого нет: следующий запуск создаст файл заново.
Почему база заблокирована, хотя в «Активных пользователях» никого нет?
Список показывает сеансы 1С, а файл может держать посторонний процесс: антивирус, архиватор, облачный клиент или веб-сервер с публикацией базы.
Где взять код разрешения, если блокировку ставил уволившийся сотрудник?
Код хранится только в настройках блокировки и не подбирается по паролю. Обратитесь к специалисту, который обслуживает базу: он снимет запрет под учётной записью администратора с доступом к серверу.
Блокируется ли база, если я открыл её только в Конфигураторе?
Пользователи при этом могут работать. Конфликт возникает, когда Конфигуратору нужен монопольный доступ: для обновления структуры, загрузки .dt, тестирования и исправления.