Автоматизация резервного копирования — одна из важнейших задач при администрировании систем на базе 1С:Предприятие 8. Пакетный запуск конфигуратора для выгрузки информационной базы в файл .dt (с помощью команды DumpIB) является классическим методом создания бэкапов. Однако на практике администраторы часто сталкиваются со скрытыми нюансами авторизации, из-за которых автоматические скрипты внезапно перестают работать, выдавая в логах системные ошибки аутентификации.
В этой статье мы подробно разберем, почему возникает ошибка вида «Сеанс. Ошибка аутентификации. Данные: Пользователь ОС. ИмяПользователя» при попытке выполнить пакетный запуск, почему простое добавление ключа /WA- не всегда решает проблему с первого раза, и как правильно настроить учетные записи 1С и Windows для стабильной работы резервного копирования по расписанию.
Рассмотрим стандартную ситуацию. Администратор пытается настроить автоматический запуск выгрузки базы данных с помощью командного файла (скрипта .bat или .cmd). Пример используемой команды:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "server\bazanaserver" /N"Arhive" /P"32" /DumpIB D:\ARHIV_1C\Base_%date:~-10%.dt
При запуске этого файла вручную или через Планировщик задач Windows ничего не происходит — файл архива не создается. Обратившись к журналу регистрации 1С, мы обнаруживаем следующую запись о событии:
Сеанс. Ошибка аутентификации. Данные: Пользователь ОС. Server\Администратор.
Возникает закономерный вопрос: почему система ругается на пользователя операционной системы Server\Администратор, если в параметрах запуска командной строки мы четко передали имя пользователя самой 1С (/N"Arhive") и его пароль (/P"32")?
Давайте разберем по шагам логику работы платформы 1С при авторизации сеанса:
/WA+. Это означает, что в первую очередь 1С пытается сопоставить текущего пользователя Windows (из-под которого запущен скрипт — в нашем случае это Server\Администратор) с пользователями, зарегистрированными в базе данных 1С.Server\Администратор, платформа пытается авторизовать сеанс именно под этим пользователем./N и /P.Логичным решением в данной ситуации кажется принудительное отключение авторизации средствами операционной системы. Для этого в платформе 1С предусмотрен ключ /WA-. Этот параметр указывает системе полностью игнорировать учетную запись текущего пользователя Windows и выполнять вход строго по реквизитам, указанным в ключах /N (Имя) и /P (Пароль).
Однако при добавлении этого ключа администраторы часто сталкиваются со следующей проблемой: запуск скрипта все равно завершается неудачей. Выясним причину этой проблемы.
Дело в настройках карточки пользователя внутри самой базы 1С. Если для сервисного пользователя Arhive в Конфигураторе настроена только «Аутентификация операционной системы», а флаг «Аутентификация 1С:Предприятия» снят, то принудительное отключение проверки ОС с помощью ключа /WA- лишает платформу любой возможности авторизовать этого пользователя. Система видит, что вход по Windows-авторизации запрещен ключом в скрипте, а вход по паролю 1С запрещен внутренними настройками прав пользователя. В итоге вход заблокирован.
Для того чтобы решить проблему раз и навсегда, рассмотрим два альтернативных и полностью рабочих варианта настройки.
Этот способ является наиболее надежным, так как он делает ваш скрипт независимым от того, под каким системным пользователем Windows он запускается (это особенно важно, если скрипт переносится на другой сервер или запускается из-под системной службы планировщика SYSTEM или Network Service).
Выполним следующие шаги для настройки:
Arhive), и откройте его карточку двойным щелчком мыши.После этого обновите команду в вашем исполняемом bat-файле, добавив в нее ключ /WA-. Итоговый скрипт должен выглядеть следующим образом:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "server\bazanaserver" /N "Arhive" /P "ВашНадежныйПароль" /WA- /DumpIB D:\ARHIV_1C\Base_%date:~-10%.dt
В таком виде платформа проигнорирует текущего пользователя Windows, обратится напрямую к списку пользователей 1С, найдет учетную запись Arhive, сверит пароль и успешно выполнит выгрузку базы данных.
Если по внутренним регламентам безопасности вашей компании парольная аутентификация внутри 1С запрещена, и все пользователи обязаны авторизовываться исключительно через Active Directory или учетные записи Windows, можно настроить сопоставление пользователя ОС.
Сделаем это по шагам:
Arhive в Конфигураторе 1С.Server\Администратор (или выберите соответствующего доменного пользователя).В этом случае в скрипте запуска **нельзя** использовать ключ /WA-, а также указывать ключи /N и /P, поскольку платформа сама определит пользователя по его Windows-сессии. Команда запуска примет следующий вид:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "server\bazanaserver" /WA+ /DumpIB D:\ARHIV_1C\Base_%date:~-10%.dt
Важное предупреждение: этот способ менее гибок, так как если вы настроите запуск скрипта в Планировщике задач Windows от имени «Системной учетной записи» (SYSTEM), скрипт перестанет работать, ведь сопоставить системную службу конкретному пользователю в 1С невозможно.
Для того чтобы ваш процесс автоматического резервного копирования работал без сбоев в режиме 24/7, проанализируем еще несколько важных параметров командной строки 1С.
1. Ведение логов работы (ключ /Out)
Если в процессе выгрузки базы возникнет какая-либо ошибка (например, нехватка места на диске или блокировка базы активными пользователями), Конфигуратор в обычном режиме просто откроет диалоговое окно с ошибкой и "зависнет" в памяти сервера, ожидая реакции пользователя. В автоматическом режиме это приведет к тому, что последующие резервные копии перестанут создаваться, а процесс будет висеть в памяти вечно.
Используйте ключ /Out с флагом -NoTruncate для перенаправления всех системных сообщений в текстовый лог-файл. Это позволит вам всегда знать причину сбоя и не даст процессу зависнуть:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "server\bazanaserver" /N "Arhive" /P "ВашПароль" /WA- /Out "D:\ARHIV_1C\log.txt" -NoTruncate /DumpIB D:\ARHIV_1C\Base_%date:~-10%.dt
2. Подавление всплывающих сообщений (ключ /DisableStartupMessages)
При запуске Конфигуратора платформа может выводить различные предупреждения (например, о выходе новых версий, рекомендациях по обновлению или необходимости установить компоненты). Чтобы эти окна не мешали работе автоматических скриптов, добавьте параметр /DisableStartupMessages.
3. Проверка монопольного режима
Помните, что выгрузка информационной базы в файл .dt (команда /DumpIB) в клиент-серверном варианте требует **монопольного доступа** к базе данных. Если в момент запуска скрипта в системе будет находиться хотя бы один активный сеанс пользователя или выполняться регламентное задание, выгрузка завершится ошибкой.
Для надежности перед запуском выгрузки рекомендуется программно отключать активных пользователей. Это можно сделать с помощью утилиты администрирования кластера 1С (rac.exe) или специализированного скрипта, блокирующего начало новых сеансов.
Пример готового и безопасного bat-файла резервного копирования с обработкой ошибок:
@echo off
set "DB_SERVER=server\bazanaserver"
set "BACKUP_DIR=D:\ARHIV_1C"
set "LOG_FILE=%BACKUP_DIR%\backup_log.txt"
set "USER_1C=Arhive"
set "PASS_1C=ВашНадежныйПароль"
echo %date% %time% - Начало процесса архивации >> "%LOG_FILE%"
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "%DB_SERVER%" /N "%USER_1C%" /P "%PASS_1C%" /WA- /DisableStartupMessages /Out "%LOG_FILE%" -NoTruncate /DumpIB "%BACKUP_DIR%\Base_%date:~-10%.dt"
if %ERRORLEVEL% equ 0 (
echo %date% %time% - Выгрузка базы успешно завершена. >> "%LOG_FILE%"
) else (
echo %date% %time% - ВНИМАНИЕ! Во время выгрузки произошла ошибка. Код ошибки: %ERRORLEVEL% >> "%LOG_FILE%"
)
Применяя описанные подходы и контролируя настройки аутентификации пользователей, вы обеспечите стабильное и полностью автоматическое создание резервных копий ваших баз данных на платформе 1С:Предприятие 8.