Почему сбрасывается аутентификация у служебного пользователя регламентных заданий в 1С и как это исправить?

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

Многие специалисты сталкиваются с неприятной ситуацией в современных конфигурациях 1С (построенных на базе БСП): регламентные задания перестают работать, если они запускаются от имени пользователя СлужебныйПользовательДляЗапускаРегламентныхЗаданий. Если вручную включить ему аутентификацию, задание может отработать один раз, после чего система снова сбрасывает настройки аутентификации, и процесс останавливается с ошибкой доступа. Удаление и ручное пересоздание пользователя не помогают — все возвращается к стандартному виду. Давайте разберем по шагам, почему это происходит, и рассмотрим проверенные способы решения этой проблемы.

Выясним причину такого поведения системы

В современных конфигурациях за состояние служебных пользователей отвечает Библиотека стандартных подсистем (БСП). Платформа и типовые алгоритмы работают следующим образом:

  1. Механизмы контроля БСП: Система регулярно (в фоновом режиме) проверяет профили служебных учетных записей. Если БСП находит расхождения с заложенными алгоритмами (например, вы вручную включили аутентификацию или задали пароль), она автоматически сбрасывает пользователя до эталонного «безопасного» состояния.
  2. Отсутствие аутентификации по умолчанию: По умолчанию служебные пользователи БСП создаются вообще без признака стандартной аутентификации, так как фоновые задания на сервере 1С не требуют интерактивного входа в систему.
  3. Специфика регламентных заданий: Ошибка возникает, если внутри кода задания инициируется COM-соединение, HTTP-запрос к сторонним базам или обмен по правилам конвертации, где жестко требуется передать логин и пароль текущего пользователя. Без стандартной аутентификации такой код падает с ошибкой доступа.
  4. Защита от изменений: Платформа блокирует ручное редактирование. При следующем фоновом вызове или обновлении конфигурации удаленный служебный пользователь создается заново с дефолтными настройками.

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

Решение 1: Программная доработка через расширение конфигурации

Чтобы БСП при автоматическом создании или обновлении служебного пользователя сразу устанавливала ему стандартную аутентификацию, мы можем вмешаться в функцию создания с помощью расширения конфигурации.

Рассмотрим, как изменить логику общего модуля РегламентныеЗаданияСервер в функции СлужебныйПользовательИБ. Добавим установку свойства АутентификацияСтандартная:


&Вместо("СлужебныйПользовательИБ")
Функция Расш1_СлужебныйПользовательИБ(РегламентноеЗадание)
    
    // Получаем базовые свойства пользователя
    Свойства = Пользователи.НовоеОписаниеПользователяИБ(, Истина);
    Свойства.Имя = ИмяСлужебногоПользователя();
    
    // ВСТАВКА: Принудительно включаем стандартную аутентификацию
    Свойства.АутентификацияСтандартная = Истина;
    
    // Дальнейшая логика создания/обновления (примерно)
    СсылкаНового = Справочники.Пользователи.ПолучитьСсылку(
        Новый УникальныйИдентификатор("91f28855-c379-11ef-8882-b06ebfbf08c7"));
    
    // ... остальной типовой код или вызов ПродолжитьВызов(РегламентноеЗадание)
    // в зависимости от реализации вашей версии БСП
    
КонецФункции

Важно: Приведенный код является примерным ориентиром. В расширении используйте аннотацию &Вместо или &ИзменениеИКонтроль для аккуратного внедрения строки Свойства.АутентификацияСтандартная = Истина; в нужное место типовой функции.

Решение 2: Очистка пользователя в настройках задания (использование DefUser)

Если в консоли регламентных заданий (или в конфигураторе) полностью очистить поле «Пользователь» для проблемного задания, платформа будет выполнять его от имени виртуального системного пользователя (DefUser). Этот виртуальный пользователь автоматически получает права, объединяющие основные роли конфигурации (а если они не заданы — полные неограниченные права). Это позволяет обойти проблему сброса аутентификации и ошибок доступа на уровне метаданных.

Решение 3: Использование отдельного «неслужебного» пользователя

Вместо того чтобы бороться с агрессивным поведением БСП в отношении системных учеток, создадим обычного пользователя:

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

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

Решение 4: Настройка аутентификации ОС

Если инфраструктура позволяет, вместо использования стандартной аутентификации 1С по логину и паролю, для служебного пользователя можно включить галочку «Аутентификация ОС». Там необходимо указать пользователя Windows или Linux, под учетной записью которого запущена служба сервера 1С:Предприятия. Это абсолютно легитимный и безопасный способ авторизации фоновых процессов, который БСП, как правило, не сбрасывает.

Решение 5: Проверка блокировок и кэша планировщика (для файловых баз)

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

  1. Завершите все сеансы работы с базой данных.
  2. Перейдите в каталог информационной базы на диске.
  3. Найдите и полностью очистите папку 1Cv8JobScheduler.
  4. Запустите базу заново.

Резюме: Подобное агрессивное поведение платформы по сбросу прав и аутентификации иногда признается разработчиками 1С как ошибка конкретного релиза конфигурации. Поэтому, помимо предложенных технических решений, рекомендуем регулярно проверять реестр ошибок и обновлять конфигурацию — возможно, в новых версиях БСП эта логика контроля уже скорректирована.

← На главную