К статье
Практический материал

Администрирование · 12 мин

Под каким пользователем запускаются регламентные задания в 1С

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

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

Поведение различается в зависимости от режима работы информационной базы. В файловом варианте задания выполняет отдельный фоновый процесс на компьютере, где запущен сеанс с установленным свойством «Выполнять регламентные задания». В клиент-серверном варианте выполнение берёт на себя рабочий процесс кластера серверов 1С, а пользовательский контекст формируется внутри серверного сеанса.

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

Как платформа определяет пользователя регламентного задания

У каждого регламентного задания в консоли заданий есть свойство «Пользователь» (имя пользователя информационной базы). Именно это поле определяет, в чьём контексте безопасности будет выполняться обработчик задания. Если поле заполнено, платформа создаёт фоновый сеанс и выполняет аутентификацию под указанным пользователем.

Если поле «Пользователь» не заполнено, фоновое задание стартует без аутентификации. В этом случае функция ИмяПользователя() вернёт пустую строку, а обращение к текущему пользователю через механизмы БСП (например, Пользователи.ТекущийПользователь()) может вызвать исключение или вернуть неопределённое значение — в зависимости от версии библиотеки и логики прикладного кода.

Важно различать два уровня «пользователя». Первый — пользователь информационной базы 1С, от имени которого исполняется код и проверяются права на объекты метаданных. Второй — учётная запись операционной системы, под которой работает сам процесс (агент сервера 1С или клиентское приложение). Эти уровни независимы: задание может выполняться под пользователем 1С «Администратор», но процесс ОС при этом принадлежит учётной записи службы USR1CV8.

Клиент-серверный режим: кто фактически выполняет задание

В клиент-серверной архитектуре регламентные задания исполняет рабочий процесс кластера (rphost), который выбирает менеджер кластера. С точки зрения операционной системы все фоновые сеансы работают под учётной записью службы агента сервера 1С — на Windows по умолчанию это локальная учётная запись USR1CV8, на Linux — пользователь, под которым запущен агент (часто usr1cv8).

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

Пользователь информационной базы в этом режиме определяет только прикладные права: роли, доступ к объектам метаданных, RLS-ограничения. Если в свойстве задания указан пользователь без нужных ролей, код упадёт с ошибкой нарушения прав доступа, хотя сам процесс на сервере запустится успешно.

Свойство «Пользователь» задания заполненоСеанс аутентифицирован под этим пользователем ИБ

Права прикладных ролей применяются к этому пользователю

Свойство «Пользователь» пустоеСеанс без аутентификации

ИмяПользователя() вернёт пустую строку; код, завязанный на текущего пользователя, может падать

Клиент-серверный режимПроцесс ОС — учётная запись агента сервера 1С

Доступ к файлам и сети проверяйте для USR1CV8 или аналога

Файловый режимФоновый процесс на машине с сеансом-исполнителем

Права ОС — у пользователя Windows, запустившего этот сеанс

Файловый режим: особенности выполнения

В файловой информационной базе нет выделенного сервера, поэтому регламентные задания выполняются в отдельном фоновом процессе на том компьютере, где запущен клиентский сеанс с разрешённым выполнением заданий. Исторически для этого использовался запуск с параметром /ExecuteScheduledJobs или настройка через код УстановитьВыполнениеРегламентныхЗаданий(Истина).

Пользователь информационной базы в этом сценарии — тот, под которым запущен сеанс-исполнитель, либо пользователь, указанный в свойстве задания (платформа создаст фоновый сеанс с его аутентификацией). Учётная запись операционной системы — это пользователь Windows, запустивший процесс 1cv8.exe.

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

Как проверить, под каким пользователем выполнилось задание

Самый надёжный способ — журнал регистрации. Откройте его в конфигураторе или через раздел «Администрирование» типовой конфигурации и отфильтруйте события фонового задания. В записи о начале сеанса и в событиях самого задания видно имя пользователя информационной базы, под которым шло выполнение, а при ошибках — текст исключения.

Второй способ — программный. В обработчик задания временно добавьте запись в журнал с вызовом ИмяПользователя() и ТекущийРежимЗапуска(). Это даст точный ответ непосредственно из контекста выполнения и поможет отличить «пустого» пользователя от реальной учётной записи.

bsl
ЗаписьЖурналаРегистрации("ПроверкаЗадания", УровеньЖурналаРегистрации.Информация, , , "Пользователь: " + ИмяПользователя() + "; режим: " + Строка(ТекущийРежимЗапуска()));

Третий способ — консоль кластера (для клиент-серверного режима). В списке сеансов фоновые задания отображаются как отдельные сеансы с типом «Фоновое задание», и в их свойствах виден пользователь информационной базы. Это удобно для наблюдения в реальном времени, пока задание выполняется.

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

Какие права нужны пользователю регламентного задания

Пользователь, указанный в свойствах задания, должен обладать ролями, достаточными для выполнения кода обработчика: чтение и запись нужных объектов, право на выполнение общих модулей, доступ к внешним компонентам, если они используются. Минимальный принцип здесь обязателен — не следует назначать заданиям полные права «на всякий случай».

Рекомендуемая практика — создать отдельную служебную учётную запись, например «РоботОбмен» или «СлужебныйФоновый», выдать ей ровно те роли, которые требуются конкретным заданиям, и запретить интерактивный вход, если конфигурация это позволяет. Так проще аудировать действия заданий в журнале регистрации: все события служебного пользователя — результат автоматики, а не работы сотрудника.

Отдельно проверьте права уровня ОС. Если задание пишет файлы в сетевую папку, учётной записи агента сервера 1С нужны права на эту папку. Локальная учётная запись USR1CV8 по умолчанию не имеет доступа к сетевым ресурсам других серверов — для таких сценариев службу агента запускают под доменной учётной записью с необходимыми правами.

Типичные ошибки и их последствия

Типичные ошибки
01
Оставлено пустое поле «Пользователь» — код, обращающийся к текущему пользователю, падает с исключением или пишет данные без автора
02
Назначен реальный пользователь-человек — после его увольнения и блокировки учётной записи все задания перестают выполняться
03
Ожидание, что задание увидит сетевой диск пользователя — в клиент-серверном режиме доступ проверяется для учётной записи службы сервера, а не для пользователя 1С
04
В файловом режиме не назначен постоянный сеанс-исполнитель — задания молча не выполняются после закрытия 1С
05
Служебной учётной записи выданы полные права — ошибка в коде задания способна повредить любые данные базы

Отдельный класс проблем связан с кодом, который ведёт себя по-разному в интерактивном и фоновом сеансе. Например, попытка открыть форму, вызвать Предупреждение() или обратиться к клиентскому контексту в фоновом задании вызовет ошибку. Такой код нужно оборачивать проверкой режима или выносить в серверные ветки.

Ещё одна частая ситуация: задание выполняется, но результата нет, потому что RLS-ограничения пользователя задания скрывают часть данных. Внешне это выглядит как «задание отработало, но ничего не сделало». Диагностируется сравнением результата под пользователем задания и под полными правами.

Как выбрать правильную конфигурацию для своей базы

Маршрут решения

Как выбрать действие

Клиент-серверная база, задания обращаются только к данным ИБСоздайте служебного пользователя ИБ с минимальными ролями и укажите его в свойствах заданий
Заданиям нужен доступ к сетевым папкам или почте с сервераНастройте запуск службы агента сервера 1С под доменной учётной записью с нужными правами
Файловая база, задания должны работать постоянноВыделите отдельный компьютер или сеанс с включённым выполнением заданий и контролируйте его работоспособность
Код задания использует текущего пользователяОбязательно заполните поле «Пользователь» — пустое значение приведёт к ошибкам
Задание периодически падает с ошибкой правПроверьте роли пользователя задания и RLS-ограничения на затрагиваемые объекты

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

Контрольные точки

Как проверить результат

Запись о выполнении в журнале регистрации
Норма

Событие завершения без ошибок, указан ожидаемый пользователь

Тревожный признак

Ошибки нарушения прав или пустой пользователь в событии

Прикладной результат
Норма

Документы созданы, обмен выполнен, файлы на месте

Тревожный признак

Задание завершилось успешно, но данных нет — вероятны RLS-ограничения

Расписание
Норма

Задание стартует по расписанию самостоятельно

Тревожный признак

Запускается только вручную — проверьте блокировку заданий или сеанс-исполнитель

Итог

Что важно запомнить

Пользователь регламентного задания задаётся в его свойствах и определяет прикладные права; процесс ОС всегда работает под учётной записью службы сервера 1С или сеанса-исполнителя. Пустое поле «Пользователь» — частая причина ошибок. Оптимальная схема — отдельная служебная учётная запись с минимально необходимыми ролями и контроль через журнал регистрации.

Частые вопросы

Что произойдёт, если не указывать пользователя в регламентном задании?

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

Можно ли указать в задании пользователя, у которого отключён вход в базу?

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

Почему задание не видит сетевую папку, хотя пользователь 1С имеет к ней доступ?

Доступ к файловой системе проверяется для учётной записи ОС, под которой работает процесс сервера 1С (обычно USR1CV8), а не для пользователя информационной базы. Выдайте права на папку учётной записи службы агента или запустите службу под доменной учётной записью с нужными правами.

Под кем выполняются регламентные задания в сервисе 1С:Фреш?

В облачном сервисе задания выполняются инфраструктурой сервиса под пользователем, указанным в свойствах задания, либо без пользователя, если он не задан. Администратор абонента не управляет учётными записями ОС, поэтому влиять можно только на пользователя ИБ и его роли.

Как узнать, почему задание выполнилось, но данные не изменились?

Чаще всего причина в RLS-ограничениях или недостатке ролей у пользователя задания: код видит меньше данных, чем ожидалось. Добавьте в обработчик запись диагностики в журнал регистрации и сравните поведение под пользователем задания и под полными правами на тестовой копии.

Нужно ли создавать отдельного пользователя для каждого задания?

Нет, обычно достаточно одной-двух служебных учётных записей с набором ролей под группы задач (например, обмены и отчётность). Отдельного пользователя оправданно заводить, когда задание требует уникальных прав или нужен раздельный аудит его действий в журнале регистрации.