Служебный пользователь для регламентных заданий 1С 8.3: права, режимы базы и проверка запуска

· 10 мин

Содержание

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

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

От чего зависит выбор пользователя для фонового процесса

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

Что определяет имя пользователя в задании:

  • 🔐 Права на данные. Если у пользователя нет права на запись документа, задание упадёт с ошибкой о нехватке прав.
  • 🧱 Ограничения на уровне записей. Пользователь с ограничением по организации увидит в запросе только свою организацию — задание отработает «успешно», но обработает часть данных.
  • 📝 Автор в журнале регистрации. Все изменения, сделанные заданием, записываются от этого имени. По служебному имени их легко отделить от работы людей.
  • 🏷 Поле «Автор» и «Ответственный» в документах. Документы, которые создаёт задание (например, загруженные выписки), могут получить в эти реквизиты текущего пользователя.

Что от имени пользователя ИБ не зависит:

  • доступ к сетевым папкам, дискам и сертификатам Windows — это права учётной записи операционной системы, под которой работает процесс;
  • лицензии — фоновые сеансы регламентных заданий клиентскую лицензию не занимают;
  • расписание и сам факт запуска — их задают флаги задания и настройки базы.

Три варианта и когда какой брать

ВариантКогда подходитМинусы
Пустое поле «Пользователь»Маленькая база, один-два бухгалтера, только типовые заданияИзменения в журнале без автора; поведение зависит от кода задания
Администратор базыВременно, чтобы проверить, не в правах ли делоПолные права у фонового процесса, изменения смешиваются с работой админа
Отдельный служебный пользовательРабочие базы, обмены, интеграции, несколько организацийНужно один раз настроить роли

Для рабочей базы выбор почти всегда третий. Первые два — для диагностики и мелких файловых баз.

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

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

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

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

Ключи командной строки, которые влияют на регламентные задания

В файловом режиме задания выполняются внутри клиентского сеанса, поэтому их поведением управляет параметр запуска /AllowExecuteScheduledJobs:

rem Запретить этому сеансу выполнять регламентные задания
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /AllowExecuteScheduledJobs -Off

rem Принудительно выполнять регламентные задания в этом сеансе
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Регламентные" /P"пароль" /AllowExecuteScheduledJobs -Force

Второй вариант — основа отдельного «сеанса-исполнителя» для файловой базы: на сервере или на одном компьютере постоянно открыт сеанс служебного пользователя, и задания идут только через него. Здесь пароль уже нужен — это обычный интерактивный вход.

Пароль в ярлыке или .bat хранится открытым текстом. Держите такой файл в папке, куда есть доступ только у администратора, или используйте вход через аутентификацию операционной системы.

Права и роли для пользователя регламентных заданий

Интерактивные права служебному пользователю не нужны: он не открывает формы, не печатает и не нажимает кнопки. Нужны права на данные, с которыми работает конкретное задание.

Типовые конфигурации на БСП

В БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на Библиотеке стандартных подсистем код многих типовых заданий работает в привилегированном режиме. Поэтому они и не падают при пустом поле «Пользователь». Но привилегированный режим включён не везде, а доработки, расширения и внешние обработки обычно написаны без него.

Практичный порядок:

  1. Создайте группу доступа «Регламентные задания» и включите в неё нужный профиль. Если задание охватывает все разделы (обмен данными, загрузка выписок по всем организациям), проще дать полный профиль с правами на чтение и запись по всем организациям.
  2. Снимите ограничения по организациям и складам для этой группы — задание должно видеть все данные, которые обрабатывает.
  3. Не включайте пользователя в группу «Администраторы», если задание не меняет пользователей, настройки программы или конфигурацию.

Когда без полных прав не обойтись

Есть задания, которым нужны административные права:

  • 🛠 изменение пользователей и их настроек;
  • 🗑 удаление помеченных объектов;
  • 📦 обновление версии программы и работа с расширениями;
  • 🔄 перерасчёт итогов и служебные операции с базой.

Для них используйте отдельного пользователя с ролью «Полные права» и не запускайте под ним всё подряд. Разделение «служебный для обменов» и «служебный администратор» сильно упрощает разбор инцидентов.

Как задать пользователя кодом

Если заданий десятки или вы раскатываете настройку на много баз, удобнее сделать это обработкой, запущенной под администратором:

Задание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ЗагрузкаКурсовВалют);
Если Задание <> Неопределено Тогда
    Задание.ИмяПользователя = "Регламентные";
    Задание.Записать();
КонецЕсли;

ЗагрузкаКурсовВалют замените на имя задания из дерева метаданных в конфигураторе. В конфигурациях на БСП для изменения заданий есть штатные процедуры общего модуля регламентных заданий — при доработке типовой конфигурации лучше вызывать их, а не объект платформы напрямую.

Платформа хранит в задании имя пользователя строкой. Переименовали пользователя — задание перестанет его находить. После переименования проверьте поле «Пользователь» во всех заданиях.

Регламентные задания в файловом и клиент-серверном режиме

Главное различие — кто выполняет задание и от имени какой учётной записи Windows идёт работа с файлами.

Файловая базаКлиент-серверная база
Где выполняетсяВ одном из открытых клиентских сеансовВ рабочем процессе сервера 1С (rphost)
КогдаТолько пока кто-то работает в базеВсегда, пока работает служба сервера 1С
Учётная запись ОС для файлов и сетиПользователь Windows, открывший 1СУчётная запись службы агента сервера 1С
Как запретить/AllowExecuteScheduledJobs -Off в сеансеФлажок «Блокировка регламентных заданий включена» в свойствах базы в консоли кластера
ЛицензияСеанс клиента, в котором идут задания, лицензию занимает как обычноФоновый сеанс лицензию не занимает

Файловый режим

Если ночью в файловой базе никто не работает , ночных заданий не будет. Задание по расписанию на 03:00 выполнится, когда утром откроют базу. Для серьёзных обменов это неудобно — тогда и нужен отдельный постоянный сеанс с /AllowExecuteScheduledJobs -Force, о котором шла речь выше.

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

Клиент-серверный режим

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

Это ключевой приём при разборе ошибок выгрузки на сетевой ресурс:

  1. Откройте оснастку служб Windows (services.msc) на сервере 1С.
  2. Найдите службу агента сервера 1С и посмотрите вкладку «Вход в систему».
  3. Выдайте этой учётной записи права на нужную папку или ресурс. Если служба работает под локальной учётной записью, к сетевой папке на другом компьютере она не достучится — нужна доменная учётная запись.

Смена учётной записи службы требует её перезапуска. Все сеансы пользователей на этом сервере оборвутся — делайте это вне рабочего времени и предупредите людей.

Почему регламентное задание не запускается: диагностика

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

Дальше — журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события фоновых заданий (запуск, успешное завершение, ошибка выполнения) и колонку «Пользователь». Так видно, под кем задание реально стартовало и на каком шаге упало.

Диагностика: выберите симптом

Быстрая проверка вручную

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

Если задание долго висит в состоянии «Выполняется», проверьте в консоли кластера список сеансов базы: фоновый сеанс задания виден там с именем пользователя. Завершать такой сеанс можно, но прерванное задание бросит работу на полпути — обмен придётся повторить.

Безопасность служебной учётной записи и практики администрирования

Служебный пользователь с широкими правами — лакомая цель. Несколько правил закрывают большую часть рисков:

  • 🚫 Запретите вход в программу, когда роли настроены и задание проверено. Задания продолжат работать.
  • 🔑 Не используйте пустой пароль, даже если вход разрешён только временно.
  • 🧩 Разделяйте роли. Один пользователь для обменов и загрузок, другой — для административных операций. Если интеграция скомпрометирована, злоумышленник не получит права менять пользователей.
  • 👤 Не берите личные учётки сотрудников. Увольнение, отпуск, смена пароля не должны останавливать обмены.
  • 📋 Ведите список. Какие задания под каким пользователем запущены и зачем — таблица на одну страницу в документации к базе экономит час при каждом инциденте.
  • 🔍 Раз в квартал смотрите журнал регистрации по служебному пользователю: не появилось ли от его имени интерактивных входов или изменений, которых задания не делают.

Для учётной записи службы сервера 1С правило то же: минимальные права в Windows. Давайте ей доступ к конкретным папкам обмена, а не права администратора домена.

Тестовые копии базы

Перед развёртыванием тестовой копии рабочей клиент-серверной базы включите в консоли кластера флажок «Блокировка регламентных заданий включена» для копии. Иначе копия начнёт по расписанию отправлять в банк платёжки, выгружать данные на сайт и забирать почту — параллельно с рабочей базой.

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

Нужно ли указывать пароль пользователя в настройках регламентного задания?
Нет. Поля для пароля в задании нет: фоновый сеанс открывается без аутентификации. Пароль нужен только для ручного входа под этим пользователем.
Можно ли запускать разные задания под разными пользователями?
Да. Пользователь задаётся в каждом задании отдельно. Так удобно разделять обмены, загрузки и административные операции.
Почему у пользователя, указанного в задании, в списке активных пользователей висит сеанс?
Это фоновый сеанс работающего задания. Он закрывается сам, когда задание завершится. В клиент-серверной базе лицензию он не занимает.
Где указать пользователя для регламентного задания в конфигураторе?
Нигде: в конфигураторе задаются имя, метод и расписание по умолчанию. Пользователь выбирается в режиме 1С:Предприятие в карточке задания или устанавливается кодом через свойство ИмяПользователя.
Что будет с заданиями, если удалить служебного пользователя?
Задания, где он указан, начнут завершаться с ошибкой. Перед удалением переназначьте их на другого пользователя, а ещё лучше — не удаляйте, а запретите вход.