Освобождаем файловую базу 1С 8.3: от мягкой блокировки до закрытия процессов

· 9 мин

Содержание

Чтобы выгнать всех пользователей из файловой базы 1С, установите блокировку: Администрирование → Обслуживание → Блокировка работы пользователей. Программа предупредит людей, а затем сама закроет их сеансы. Если кто-то «завис» и не выходит, завершите процесс 1cv8c.exe или 1cv8.exe на его компьютере либо закройте открытый файл 1Cv8.1CD на машине, где лежит база.

Всё это относится к файловому варианту 1С 8.3 и к типовым конфигурациям на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА, УНФ. В файловой базе нет кластера серверов и консоли администрирования, поэтому кнопки «отключить сеанс» здесь нет. Работают другие инструменты, и их порядок важен: от мягкого к жёсткому.

Почему файловую базу нельзя просто «отключить» с сервера

Файловая база — это папка с файлом 1Cv8.1CD. Каждый, кто работает в программе, держит этот файл открытым по сети через общую папку Windows. Сеанс живёт не на сервере, а в процессе 1С на компьютере пользователя.

Отсюда три следствия:

  • 🖥️ Нет центрального пульта. Список активных пользователей посмотреть можно, а принудительно завершить чужой сеанс из программы нельзя.
  • 🔒 Пока файл открыт хоть одним процессом, монопольный доступ невозможен. А он нужен для обновления структуры базы, загрузки .dt, тестирования и исправления.
  • 👻 Процесс может остаться после сбоя. Окно 1С закрыто, а 1cv8c.exe висит в памяти и держит файл.

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

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

Способ 1. Блокировка работы пользователей в типовой конфигурации

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

Как установить блокировку

  1. Зайдите в базу под пользователем с полными правами.
  2. Откройте Администрирование → Обслуживание → Блокировка работы пользователей.
  3. Укажите время начала. Дайте людям 5–10 минут: например, сейчас 18:00 — ставьте 18:10.
  4. При необходимости задайте время окончания. Без него блокировка действует, пока вы её не снимете.
  5. Напишите сообщение: «В 18:10 база будет закрыта на обновление. Запишите документы и выйдите».
  6. Задайте код разрешения, например upd2024. По нему вы сами войдёте в заблокированную базу.
  7. Нажмите кнопку установки блокировки.

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

Как войти в заблокированную базу

Добавьте в параметры запуска ключ /UC с кодом разрешения. Его можно прописать в окне запуска: выделите базу → Изменить → на последнем шаге поле «Дополнительные параметры запуска».

/UCupd2024

Без кода вход в базу будет запрещён даже администратору. Запишите код в надёжном месте: без него снимать блокировку придётся обходным путём.

Блокировка не спасает от зависших процессов. Если программа на компьютере пользователя не отвечает, она не получит сигнал и не закроется. Такие сеансы придётся снимать способом 3.

Способ 2. Закрываем пользователей параметром запуска (для скриптов)

Типовые конфигурации на БСП понимают служебные команды в параметре /C. Они нужны, когда обновление делается ночью по расписанию.

КомандаЧто делает
/C"ЗавершитьРаботуПользователей"Устанавливает блокировку и ждёт, пока все сеансы закроются
/C"РазрешитьРаботуПользователей"Снимает блокировку, база снова открыта

Пример запуска для файловой базы:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"upd2024"

Вместо 8.3.xx.xxxx подставьте папку установленной версии платформы. Код в /UC должен совпадать с кодом блокировки, иначе сеанс администратора сам упрётся в запрет.

После обновления выполните ту же строку с /C"РазрешитьРаботуПользователей".

Пароль администратора в bat-файле лежит открытым текстом. Храните такой файл в папке, куда есть доступ только у администратора.

Способ 3. Принудительно завершаем процессы 1С на компьютерах

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

Какие процессы искать:

  • 🔹 1cv8c.exe — тонкий клиент, так работает большинство пользователей;
  • 🔹 1cv8.exe — толстый клиент и Конфигуратор.

На компьютере пользователя

Откройте Диспетчер задач (Ctrl+Shift+Esc), вкладка «Подробности», найдите процесс, нажмите «Снять задачу». Или из командной строки:

taskkill /F /IM 1cv8c.exe
taskkill /F /IM 1cv8.exe

Удалённо, с правами администратора домена или локального администратора той машины:

taskkill /S BUH-PC3 /U DOMAIN\admin /F /IM 1cv8c.exe

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

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

taskkill /F /IM 1cv8c.exe /FI "USERNAME eq ivanova"

В Диспетчере задач на сервере удобнее вкладка «Пользователи»: разверните нужного человека и завершите только его процесс 1С.

Без фильтра taskkill /IM 1cv8c.exe на терминальном сервере оборвёт работу во ВСЕХ базах, а не только в той, которую вы обслуживаете. Делайте это в оговорённое окно, когда люди предупреждены.

Способ 4. Закрываем открытый файл базы на сервере

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

Через оснастку «Общие папки»

  1. На компьютере с базой нажмите Win+R, введите fsmgmt.msc.
  2. Откройте «Открытые файлы».
  3. Найдите строки с путём к 1Cv8.1CD и другим файлам из папки базы.
  4. Правой кнопкой → «Закрыть открытый файл».

В колонке «Пользователь» видно, чья это блокировка.

Через PowerShell

Get-SmbOpenFile | Where-Object Path -like "*\Bases\Buh\*" | Select-Object ClientComputerName, ClientUserName, Path
Get-SmbOpenFile | Where-Object Path -like "*\Bases\Buh\*" | Close-SmbOpenFile -Force

Первая команда показывает, кто держит файлы базы. Вторая закрывает все эти подключения. Запускайте PowerShell от имени администратора.

В старых системах подойдёт net files: она выводит список открытых файлов с номерами, а net files <номер> /close закрывает нужный.

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

Если база опубликована на веб-сервере

При работе через браузер файл базы держит не компьютер пользователя, а процесс веб-сервера. Список открытых файлов покажет учётную запись IIS или Apache. В этом случае перезапустите пул приложений IIS или службу Apache на время работ — пользователи веб-клиента отключатся все разом.

Файлы блокировки в папке базы: что можно удалить

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

Файл или папкаЧто этоМожно ли удалять
1Cv8.1CDСама базаНикогда
1Cv8.cdnСлужебный файл блокировки, в нём же хранится блокировка сеансовДа, если в базе точно никого нет
1Cv8tmp.1CDВременный файл операцийДа, если в базе никого нет
1Cv8LogЖурнал регистрацииНет, это история работы
1Cv8FTxtИндекс полнотекстового поискаНе нужно, к блокировке не относится

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

  1. Убедитесь через fsmgmt.msc или Get-SmbOpenFile, что файлы базы никто не держит.
  2. Скопируйте папку базы целиком в другое место.
  3. Удалите 1Cv8.cdn, при наличии — 1Cv8tmp.1CD.
  4. Откройте базу. Файл 1Cv8.cdn создастся заново.

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

Ищем «невидимого» пользователя через журнал регистрации

Бывает, что список активных пользователей пуст или в нём висит сеанс, который никто не признаёт. Журнал регистрации покажет, откуда он пришёл.

  1. Откройте Администрирование → Обслуживание → Журнал регистрации в типовой конфигурации или Администрирование → Журнал регистрации в Конфигураторе.
  2. Установите отбор по событиям «Сеанс. Начало» и «Сеанс. Завершение».
  3. Ограничьте период последними часами.
  4. Найдите начало сеанса, для которого нет завершения. В строке видны компьютер, пользователь и приложение.

Что подсказывает колонка «Приложение»:

  • 💻 «Тонкий клиент» или «Толстый клиент» — ищите процесс на указанном компьютере;
  • 🌐 «Веб-клиент» — человек работает через браузер, см. раздел про веб-сервер;
  • 🛠️ «Конфигуратор» — кто-то оставил открытым Конфигуратор;
  • 🔗 «COM-соединение» — к базе подключилась внешняя программа: обмен с сайтом, загрузка банка, скрипт.

Частая находка — открытый Конфигуратор на компьютере программиста или сеанс обмена, который запускается по расписанию на другой машине. Обмены и внешние программы стоит остановить отдельно, не надеясь только на блокировку.

Что мешает освободить базу?

Как не доводить до принудительного отключения

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

  • 📅 Постоянное окно для обслуживания. Например, по пятницам после 19:00. Люди привыкают и выходят сами.
  • ⏰ Блокировка заранее. Её можно назначить на время в будущем: поставили днём на 19:00, и программа сама предупредит всех.
  • 🔌 Обмены и регламентные задачи — на паузу. В файловой базе регламентные задания выполняются внутри клиентского сеанса. Если у кого-то программа открыта ночью «для обмена», она помешает обновлению.
  • 🛠️ Конфигуратор не держат открытым. Закончили правку — закройте.
  • 💤 Компьютеры не уходят в сон с открытой 1С. Сеанс со спящего ноутбука часто оставляет за собой висящее подключение к файлу.
  • 📈 Переход на клиент-серверный вариант. Если в базе одновременно работают 10 и больше человек, файловый режим становится тесным. В клиент-серверной базе сеансы снимаются из консоли кластера за пару кликов.

Сравнение способов в одной таблице:

СпособКогда применятьРиск
Блокировка работы пользователейПлановые работы, люди на местеМинимальный
Параметр /C"ЗавершитьРаботуПользователей"Ночное обновление по расписаниюМинимальный
taskkill на компьютереЗависший клиент, машина доступнаПотеря несохранённых данных
Закрытие открытых файлов на сервереМашина пользователя недоступнаОбрыв записи документа
Удаление 1Cv8.cdnНикого нет, а база «занята»Нулевой, если проверили и сделали копию

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

Можно ли выгнать из файловой базы одного конкретного пользователя, а остальных оставить?
Средствами самой 1С — нет, блокировка действует на всех. Снимите процесс 1С только на компьютере этого человека или закройте только его открытые файлы на сервере.
Как снять блокировку, если код разрешения забыт?
В файловой базе блокировка сеансов хранится в файле 1Cv8.cdn в папке базы. Убедитесь, что в базе никого нет, скопируйте папку и удалите этот файл: блокировка исчезнет, файл создастся заново при входе.
Нужна ли блокировка, если я просто делаю выгрузку в .dt?
Да. Выгрузка информационной базы требует, чтобы других пользователей в ней не было. Блокировка — самый спокойный способ этого добиться.
Повредится ли база, если снять процесс 1С через Диспетчер задач?
Обычно нет: файловая база рассчитана на обрыв соединения. Потеряется то, что пользователь не успел записать. Если после этого появились ошибки — сделайте копию и запустите тестирование и исправление.
Почему после установки блокировки пользователи не вылетают сразу?
Клиент проверяет блокировку не каждую секунду, а с интервалом. Дайте программе несколько минут после времени начала. Если сеанс так и висит — программа у пользователя не отвечает, переходите к принудительному завершению.