Корректное завершение работы в 1С:Предприятии 8.3 без потери данных
Содержание
Правильно закрывать 1С — значит выходить через меню программы или крестик главного окна и дожидаться, пока процесс 1cv8.exe или 1cv8c.exe сам исчезнет из памяти. Снимать программу через Диспетчер задач, выключать компьютер с открытой базой и выдёргивать сетевой кабель нельзя: незаписанный документ потеряется, а файловая база может повредиться.
Для администратора правильное закрытие 1С Предприятия — это ещё и порядок: сначала запретить новые входы, потом предупредить людей, потом завершить оставшиеся сеансы и только после этого останавливать службы или копировать базу. Порядок одинаков для файлового и клиент-серверного варианта платформы 8.3, отличаются только инструменты.
Как пользователю выйти из 1С без потерь
Штатный выход занимает секунды. Важно не что нажать, а что сделать перед этим.
Перед выходом
- 📝 Запишите открытые документы. Несохранённая форма помечается звёздочкой
*в заголовке окна. - ⏳ Дождитесь окончания долгих операций: закрытия месяца, перепроведения, загрузки банковской выписки, обмена. Если индикатор ещё крутится, выход прервёт операцию на середине.
- 🔄 Если запущен обмен с сайтом или другой базой, дождитесь сообщения о его завершении.
Сам выход
- Нажмите крестик в правом верхнем углу главного окна программы (не окна документа).
- Либо откройте главное меню (кнопка с тремя полосками слева вверху) и выберите
Файл → Выход. - Если появится вопрос «Завершить работу с программой?», подтвердите.
- Если программа спросит, сохранять ли изменения в документе, выберите нужный вариант. Не жмите «Отмена» в надежде закрыть окно — так выход просто прервётся.
Закрытие вкладки документа или раздела — это не выход из 1С. Сеанс остаётся, лицензия занята. Коллега, которому не хватает лицензии, увидит это как «программа занята».
Почему не стоит «убивать» процесс
Снятие задачи через Диспетчер задач обрывает сеанс без корректного завершения. Последствия:
- ❌ в файловой базе транзакция обрывается посередине — именно так чаще всего и появляются ошибки целостности файла
1Cv8.1CD; - ❌ на сервере сеанс некоторое время продолжает висеть и держать лицензию и блокировки;
- ❌ теряются настройки форм и списков, которые 1С сохраняет при закрытии.
Снимать процесс можно только когда 1С действительно зависла и не реагирует несколько минут. Если идёт тяжёлая операция, подождите: «Не отвечает» в заголовке ещё не означает зависание.
Как узнать, кто сейчас работает в базе
Перед обновлением, копированием или перезагрузкой сервера нужно знать, кто ещё в базе. Есть три места, где это видно.
Из самой программы
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) список открыт в разделе Администрирование, группа «Обслуживание», команда «Активные пользователи». Там видно имя пользователя, компьютер, время начала сеанса и приложение: тонкий клиент, веб-клиент, фоновое задание, COM-соединение.
Из этого же списка можно написать пользователю или завершить его сеанс, если у вас есть полные права.
Из Конфигуратора
Меню Администрирование → Активные пользователи. Работает в обоих вариантах, но только показывает список — завершить сеанс отсюда нельзя.
Из консоли кластера (клиент-серверный вариант)
Консоль администрирования серверов 1С:Предприятия → Центральные серверы 1С:Предприятия → <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
Здесь кроме пользователей видно то, чего нет в программе:
| Колонка | Что показывает | Зачем смотреть |
|---|---|---|
| Приложение | Тонкий клиент, Конфигуратор, фоновое задание, COM | Найти «невидимые» подключения внешних программ |
| Компьютер | Имя машины пользователя | Понять, кому звонить |
| Начало / последняя активность | Время | Отличить работающий сеанс от зависшего |
| Спящий | Да / Нет | Сеанс клиента оборвался, но сервер его ещё держит |
| Захвачено СУБД | Время в мс | Сеанс сейчас выполняет тяжёлый запрос |
Рядом, в ветке «Блокировки», видны управляемые блокировки: кто какую таблицу держит. Если документ «не проводится, заблокирован другим пользователем», ищите виновника именно там.
Как закрыть базу для всех: блокировка и завершение сеансов
Порядок одинаков для любых регламентных работ:
- Запретить новые входы.
- Дать людям время сохраниться.
- Завершить оставшиеся сеансы.
- Выполнить работы.
- Снять запрет.
Не завершайте сеансы принудительно в середине рабочего дня без предупреждения: незаписанные документы пропадут. Лучшее время — до начала смены или после её конца, предупредив людей хотя бы за 10–15 минут.
Блокировка средствами программы
В конфигурациях на БСП в том же разделе Администрирование → «Обслуживание» есть команда «Блокировка работы пользователей». В форме задаются:
- текст сообщения, которое увидят пользователи;
- время начала и окончания блокировки;
- код разрешения — с ним администратор войдёт в заблокированную базу.
После установки блокировки программа сама показывает работающим пользователям предупреждение и через несколько минут завершает их сеансы. Это самый мягкий способ.
Войти в заблокированную базу администратор может, добавив к строке запуска параметр /UC<код>, например /UC12345.
Блокировка в консоли кластера
Откройте свойства информационной базы в консоли и включите:
- «Блокировка начала сеансов включена» — новые подключения запрещены;
- поле «Сообщение» — текст для пользователей;
- «Код разрешения» — тот же принцип, что выше;
- «Блокировка регламентных заданий включена» — останавливает запуск фоновых заданий по расписанию.
Блокировка в консоли сама не выгоняет тех, кто уже работает. Их сеансы нужно завершить отдельно.
Принудительное завершение в консоли
- В ветке
Сеансынужной базы выделите сеанс (или несколько черезCtrl). - Правой кнопкой — «Удалить».
- Обновите список через несколько секунд: сеанс должен исчезнуть.
Удалённый сеанс обрывается сразу, без вопроса о сохранении. У пользователя появится сообщение о разрыве соединения, несохранённые данные пропадут.
Если сеанс не удаляется и висит со статусом «Спящий», подождите — сервер завершит его сам по истечении «Времени завершения спящего сеанса» из свойств базы. Завершать рабочий процесс rphost ради одного сеанса не нужно: вместе с ним оборвутся сеансы всех, кто на нём работает.
То же через командную строку rac
Для удалённого администрирования должна быть запущена служба ras (по умолчанию порт 1545). Основные команды:
rem список кластеров — берём UUID кластера
rac cluster list
rem список сеансов кластера
rac session list --cluster=<uuid-кластера>
rem завершить конкретный сеанс
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если на кластере заданы администраторы, добавляйте --cluster-user= и --cluster-pwd=. Остальные параметры смотрите в rac help session.
Особенности закрытия файловой базы
У файловой базы нет консоли и нет сервера, который подчистит за пользователем. Всё держится на файле 1Cv8.1CD и на том, что каждый клиент корректно его отпустит.
Как понять, что база свободна
- 📂 В каталоге базы лежит служебный файл блокировки
1Cv8.1CL. Пока база кем-то открыта, файл занят. Удалять его вручную не нужно. - 🖥️ Если база лежит в общей папке, откройте на этом компьютере
Управление компьютером → Общие папки → Открытые файлы. Там видно, с какого компьютера и каким пользователем открыт1Cv8.1CD. - 📋 В Конфигураторе —
Администрирование → Активные пользователи.
Если база «занята», а людей нет
Типичная картина: пользователь ушёл домой, а у него остался открытый или зависший клиент. Варианты по нарастанию жёсткости:
| Способ | Когда | Риск |
|---|---|---|
| Попросить пользователя закрыть 1С или зайти на его ПК удалённо | Человек доступен | Нет |
| Блокировка через «Блокировка работы пользователей» | Конфигурация на БСП, клиент живой | Минимальный |
| Закрыть открытый файл в «Общих папках» | Клиент завис, человек недоступен | Возможна порча базы |
Снять процесс 1cv8.exe / 1cv8c.exe на ПК пользователя | Клиент намертво завис | Возможна порча базы |
После любого жёсткого способа сделайте копию каталога базы и прогоните проверку утилитой chdbfl.exe из каталога bin платформы, прежде чем снова пускать людей.
Никогда не копируйте и не архивируйте файл 1Cv8.1CD, пока база открыта. Копия получится несогласованной и может не открыться при восстановлении.
Выключение компьютера
Если база лежит на одном из рабочих ПК, а остальные работают с ней по сети, этот компьютер выключают последним — после того, как все вышли. Выключение «хозяина» базы при открытых клиентах — та же ситуация, что выдёргивание кабеля.
Регламентные задания и автоматическое закрытие сеансов
Ночное обновление, резервная копия или пересчёт итогов требуют пустой базы. Делать это руками каждую ночь неудобно.
Параметры командной строки для БСП
Типовые конфигурации понимают два параметра запуска:
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC12345
Параметр /C"ЗавершитьРаботуПользователей" включает блокировку с кодом из /UC и выводит из базы остальных. После работ базу открывают параметром /C"РазрешитьРаботуПользователей" с тем же кодом. Пароль в строке запуска лучше хранить в файле, к которому есть доступ только у служебной учётной записи.
Скрипт PowerShell для кластера
Пример завершает все сеансы кластера. Запускайте его из планировщика Windows после блокировки начала сеансов.
$rac = "C:\Program Files\1cv8\<версия>\bin\rac.exe"
# UUID первого кластера
$cluster = (& $rac cluster list | Select-String '^cluster\s*:\s*(\S+)').Matches[0].Groups[1].Value
# UUID всех сеансов
$sessions = & $rac session list --cluster=$cluster |
Select-String '^session\s*:\s*(\S+)' |
ForEach-Object { $_.Matches[0].Groups[1].Value }
foreach ($s in $sessions) {
& $rac session terminate --cluster=$cluster --session=$s
}
Чтобы закрывать сеансы только одной базы, получите её UUID командой rac infobase summary list --cluster=<uuid> и добавьте --infobase=<uuid-базы> к session list.
Завершение «спящих» и забытых сеансов
В свойствах базы в консоли кластера есть два параметра:
- «Время засыпания пассивного сеанса» — через сколько секунд бездействия сеанс засыпает и отдаёт ресурсы;
- «Время завершения спящего сеанса» — через сколько секунд спящий сеанс завершается совсем.
Разумные значения подбирают под режим работы. Слишком короткие выкинут бухгалтера, который ушёл на обед с открытым документом.
Порядок остановки сервера
Если нужно перезагрузить сервер 1С или сервер СУБД:
- Включить блокировку начала сеансов и регламентных заданий во всех базах кластера.
- Дождаться, пока завершатся фоновые задания: в списке сеансов не должно остаться приложений «Фоновое задание».
- Завершить оставшиеся сеансы.
- Остановить службу «Агент сервера 1С:Предприятия 8.3».
- Только после неё — службу СУБД (PostgreSQL или MS SQL Server).
- Запуск — в обратном порядке: СУБД, затем агент 1С.
Ошибки при закрытии 1С и как их не допустить
/UC.chdbfl.exe с проверкой и исправлением. При серьёзных повреждениях восстанавливайте из резервной копии.1cv8c.exe.Профилактика сводится к трём привычкам:
- ✅ сначала блокировка, потом завершение сеансов — а не наоборот;
- ✅ резервная копия делается только из пустой базы или выгрузкой в
.dtиз Конфигуратора; - ✅ снятие процессов и удаление сеансов — последний шаг, а не первый.