Освобождаем файловую базу 1С 8.3: от мягкой блокировки до закрытия процессов
Содержание
Чтобы выгнать всех пользователей из
файловой базы 1С, установите блокировку: Администрирование → Обслуживание → Блокировка работы пользователей. Программа предупредит людей, а затем сама закроет их сеансы. Если кто-то «завис» и не выходит, завершите процесс 1cv8c.exe или 1cv8.exe на его компьютере либо закройте открытый файл 1Cv8.1CD на машине, где лежит база.
Всё это относится к файловому варианту 1С 8.3 и к типовым конфигурациям на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА, УНФ. В файловой базе нет кластера серверов и консоли администрирования, поэтому кнопки «отключить сеанс» здесь нет. Работают другие инструменты, и их порядок важен: от мягкого к жёсткому.
Почему файловую базу нельзя просто «отключить» с сервера
Файловая база — это папка с файлом 1Cv8.1CD. Каждый, кто работает в программе, держит этот файл открытым по сети через общую папку Windows. Сеанс живёт не на сервере, а в процессе 1С на компьютере пользователя.
Отсюда три следствия:
- 🖥️ Нет центрального пульта. Список активных пользователей посмотреть можно, а принудительно завершить чужой сеанс из программы нельзя.
- 🔒 Пока файл открыт хоть одним процессом, монопольный доступ невозможен. А он нужен для обновления структуры базы, загрузки
.dt, тестирования и исправления. - 👻 Процесс может остаться после сбоя. Окно 1С закрыто, а
1cv8c.exeвисит в памяти и держит файл.
Сначала выясните, кто сейчас в базе. В типовой конфигурации откройте Администрирование → Обслуживание → Активные пользователи. В списке видно имя пользователя, компьютер, приложение и время начала сеанса. В Конфигураторе тот же список открывается через меню Администрирование → Активные пользователи.
Запишите имена компьютеров из списка. Если мягкий способ не сработает, вы будете точно знать, на какой машине искать процесс.
Способ 1. Блокировка работы пользователей в типовой конфигурации
Это штатный и самый безопасный путь. Люди получают предупреждение, успевают записать документы, а программа закрывается сама.
Как установить блокировку
- Зайдите в базу под пользователем с полными правами.
- Откройте
Администрирование → Обслуживание → Блокировка работы пользователей. - Укажите время начала. Дайте людям 5–10 минут: например, сейчас 18:00 — ставьте 18:10.
- При необходимости задайте время окончания. Без него блокировка действует, пока вы её не снимете.
- Напишите сообщение: «В 18:10 база будет закрыта на обновление. Запишите документы и выйдите».
- Задайте код разрешения, например
upd2024. По нему вы сами войдёте в заблокированную базу. - Нажмите кнопку установки блокировки.
Пользователи увидят предупреждение. Когда наступит время начала, их сеансы завершатся. В файловой базе клиент проверяет блокировку периодически, поэтому последние сеансы могут закрываться ещё пару минут после назначенного времени.
Как войти в заблокированную базу
Добавьте в параметры запуска ключ /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. Закрываем открытый файл базы на сервере
Если компьютер пользователя недоступен (ушёл домой, ноутбук в спящем режиме), процесс там не снять. Зато можно разорвать его связь с базой на той машине, где лежит папка.
Через оснастку «Общие папки»
- На компьютере с базой нажмите
Win+R, введитеfsmgmt.msc. - Откройте «Открытые файлы».
- Найдите строки с путём к
1Cv8.1CDи другим файлам из папки базы. - Правой кнопкой → «Закрыть открытый файл».
В колонке «Пользователь» видно, чья это блокировка.
Через 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 | Индекс полнотекстового поиска | Не нужно, к блокировке не относится |
Порядок действий:
- Убедитесь через
fsmgmt.mscилиGet-SmbOpenFile, что файлы базы никто не держит. - Скопируйте папку базы целиком в другое место.
- Удалите
1Cv8.cdn, при наличии —1Cv8tmp.1CD. - Откройте базу. Файл
1Cv8.cdnсоздастся заново.
Если Windows отвечает «Файл открыт в другой программе», значит, подключение ещё живо. Не пытайтесь обойти это сторонними утилитами разблокировки: вернитесь к способам 3–4 и найдите, кто держит файл.
Ищем «невидимого» пользователя через журнал регистрации
Бывает, что список активных пользователей пуст или в нём висит сеанс, который никто не признаёт. Журнал регистрации покажет, откуда он пришёл.
- Откройте
Администрирование → Обслуживание → Журнал регистрациив типовой конфигурации илиАдминистрирование → Журнал регистрациив Конфигураторе. - Установите отбор по событиям «Сеанс. Начало» и «Сеанс. Завершение».
- Ограничьте период последними часами.
- Найдите начало сеанса, для которого нет завершения. В строке видны компьютер, пользователь и приложение.
Что подсказывает колонка «Приложение»:
- 💻 «Тонкий клиент» или «Толстый клиент» — ищите процесс на указанном компьютере;
- 🌐 «Веб-клиент» — человек работает через браузер, см. раздел про веб-сервер;
- 🛠️ «Конфигуратор» — кто-то оставил открытым Конфигуратор;
- 🔗 «COM-соединение» — к базе подключилась внешняя программа: обмен с сайтом, загрузка банка, скрипт.
Частая находка — открытый Конфигуратор на компьютере программиста или сеанс обмена, который запускается по расписанию на другой машине. Обмены и внешние программы стоит остановить отдельно, не надеясь только на блокировку.
Как не доводить до принудительного отключения
Большинство неприятных историй с файловой базой — из-за того, что работы начинаются без предупреждения. Несколько привычек снимают проблему.
- 📅 Постоянное окно для обслуживания. Например, по пятницам после 19:00. Люди привыкают и выходят сами.
- ⏰ Блокировка заранее. Её можно назначить на время в будущем: поставили днём на 19:00, и программа сама предупредит всех.
- 🔌 Обмены и регламентные задачи — на паузу. В файловой базе регламентные задания выполняются внутри клиентского сеанса. Если у кого-то программа открыта ночью «для обмена», она помешает обновлению.
- 🛠️ Конфигуратор не держат открытым. Закончили правку — закройте.
- 💤 Компьютеры не уходят в сон с открытой 1С. Сеанс со спящего ноутбука часто оставляет за собой висящее подключение к файлу.
- 📈 Переход на клиент-серверный вариант. Если в базе одновременно работают 10 и больше человек, файловый режим становится тесным. В клиент-серверной базе сеансы снимаются из консоли кластера за пару кликов.
Сравнение способов в одной таблице:
| Способ | Когда применять | Риск |
|---|---|---|
| Блокировка работы пользователей | Плановые работы, люди на месте | Минимальный |
Параметр /C"ЗавершитьРаботуПользователей" | Ночное обновление по расписанию | Минимальный |
taskkill на компьютере | Зависший клиент, машина доступна | Потеря несохранённых данных |
| Закрытие открытых файлов на сервере | Машина пользователя недоступна | Обрыв записи документа |
Удаление 1Cv8.cdn | Никого нет, а база «занята» | Нулевой, если проверили и сделали копию |