Как исправить ошибку аутентификации при пакетном запуске 1С для архивации базы?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Автоматизация резервного копирования — одна из важнейших задач при администрировании систем на базе 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С при авторизации сеанса:

  1. По умолчанию, если в строке запуска не указан специальный ключ управления авторизацией Windows, платформа неявно применяет параметр /WA+. Это означает, что в первую очередь 1С пытается сопоставить текущего пользователя Windows (из-под которого запущен скрипт — в нашем случае это Server\Администратор) с пользователями, зарегистрированными в базе данных 1С.
  2. Если в списке пользователей 1С для какой-то учетной записи включена опция «Аутентификация операционной системы» и указан пользователь Server\Администратор, платформа пытается авторизовать сеанс именно под этим пользователем.
  3. Если данные авторизации операционной системы по какой-то причине не проходят проверку безопасности 1С или пароль доменной сети не соответствует требованиям безопасности внутри базы, сервер 1С возвращает ошибку аутентификации и аварийно прерывает сеанс, даже не пытаясь проверить логин и пароль, переданные через ключи /N и /P.

Разбираем ключ /WA- и типичную ошибку «не взлетело»

Логичным решением в данной ситуации кажется принудительное отключение авторизации средствами операционной системы. Для этого в платформе 1С предусмотрен ключ /WA-. Этот параметр указывает системе полностью игнорировать учетную запись текущего пользователя Windows и выполнять вход строго по реквизитам, указанным в ключах /N (Имя) и /P (Пароль).

Однако при добавлении этого ключа администраторы часто сталкиваются со следующей проблемой: запуск скрипта все равно завершается неудачей. Выясним причину этой проблемы.

Дело в настройках карточки пользователя внутри самой базы 1С. Если для сервисного пользователя Arhive в Конфигураторе настроена только «Аутентификация операционной системы», а флаг «Аутентификация 1С:Предприятия» снят, то принудительное отключение проверки ОС с помощью ключа /WA- лишает платформу любой возможности авторизовать этого пользователя. Система видит, что вход по Windows-авторизации запрещен ключом в скрипте, а вход по паролю 1С запрещен внутренними настройками прав пользователя. В итоге вход заблокирован.

Инструкция по правильной настройке резервного копирования

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

Вариант 1. Настройка авторизации через 1С:Предприятие (Рекомендуемый способ)

Этот способ является наиболее надежным, так как он делает ваш скрипт независимым от того, под каким системным пользователем Windows он запускается (это особенно важно, если скрипт переносится на другой сервер или запускается из-под системной службы планировщика SYSTEM или Network Service).

Выполним следующие шаги для настройки:

  1. Запустите базу данных 1С в режиме Конфигуратора под учетной записью с правами администратора.
  2. Перейдите в меню Администрирование — Пользователи.
  3. Найдите в списке сервисного пользователя, предназначенного для создания архивов (в нашем примере это Arhive), и откройте его карточку двойным щелчком мыши.
  4. На вкладке Основные установите флаг «Аутентификация 1С:Предприятия».
  5. В поле Пароль введите надежный пароль и подтвердите его в поле ниже.
  6. Обязательно снимите флаг «Аутентификация операционной системы» (это исключит любые попытки автоматического входа под системной учетной записью Windows).
  7. Нажмите кнопку ОК, чтобы сохранить изменения.

После этого обновите команду в вашем исполняемом 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, сверит пароль и успешно выполнит выгрузку базы данных.

Вариант 2. Настройка сопоставления с пользователем операционной системы

Если по внутренним регламентам безопасности вашей компании парольная аутентификация внутри 1С запрещена, и все пользователи обязаны авторизовываться исключительно через Active Directory или учетные записи Windows, можно настроить сопоставление пользователя ОС.

Сделаем это по шагам:

  1. Откройте карточку пользователя Arhive в Конфигураторе 1С.
  2. Снимите флаг «Аутентификация 1С:Предприятия».
  3. Установите флаг «Аутентификация операционной системы».
  4. В поле выбора пользователя ОС нажмите кнопку с троеточием и укажите точное имя системного пользователя, от имени которого выполняется скрипт. Например: Server\Администратор (или выберите соответствующего доменного пользователя).
  5. Сохраните изменения.

В этом случае в скрипте запуска **нельзя** использовать ключ /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.

← На главную