Служебный пользователь для регламентных заданий 1С 8.3: права, режимы базы и проверка запуска
Содержание
Регламентное задание в 1С 8.3 лучше запускать под отдельным служебным пользователем информационной базы, например Регламентные, с ролями ровно под ту работу, которую делает задание. Пользователь задаётся в карточке задания в режиме 1С:Предприятие: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания, поле «Пользователь». Пароль ему не нужен для запуска, интерактивный вход можно запретить.
Пустое поле «Пользователь» тоже работает, но тогда в журнале регистрации не видно, кто менял данные, а права задания зависят от кода конфигурации. Под живым сотрудником задания запускать не стоит: человек уволится, его отключат — и обмен с банком или загрузка курсов тихо остановятся.
От чего зависит выбор пользователя для фонового процесса
Регламентное задание выполняется в фоновом сеансе. Окна у него нет, пароль никто не вводит, поэтому платформа просто берёт имя пользователя из настроек задания и открывает сеанс от его имени. Дальше на этот сеанс действуют все права и ограничения этого пользователя.
Что определяет имя пользователя в задании:
- 🔐 Права на данные. Если у пользователя нет права на запись документа, задание упадёт с ошибкой о нехватке прав.
- 🧱 Ограничения на уровне записей. Пользователь с ограничением по организации увидит в запросе только свою организацию — задание отработает «успешно», но обработает часть данных.
- 📝 Автор в журнале регистрации. Все изменения, сделанные заданием, записываются от этого имени. По служебному имени их легко отделить от работы людей.
- 🏷 Поле «Автор» и «Ответственный» в документах. Документы, которые создаёт задание (например, загруженные выписки), могут получить в эти реквизиты текущего пользователя.
Что от имени пользователя ИБ не зависит:
- доступ к сетевым папкам, дискам и сертификатам Windows — это права учётной записи операционной системы, под которой работает процесс;
- лицензии — фоновые сеансы регламентных заданий клиентскую лицензию не занимают;
- расписание и сам факт запуска — их задают флаги задания и настройки базы.
Три варианта и когда какой брать
| Вариант | Когда подходит | Минусы |
|---|---|---|
| Пустое поле «Пользователь» | Маленькая база, один-два бухгалтера, только типовые задания | Изменения в журнале без автора; поведение зависит от кода задания |
| Администратор базы | Временно, чтобы проверить, не в правах ли дело | Полные права у фонового процесса, изменения смешиваются с работой админа |
| Отдельный служебный пользователь | Рабочие базы, обмены, интеграции, несколько организаций | Нужно один раз настроить роли |
Для рабочей базы выбор почти всегда третий. Первые два — для диагностики и мелких файловых баз.
Как завести служебного пользователя: требования и параметры
Создайте пользователя так же, как обычного сотрудника, но с другими настройками.
- Откройте
Администрирование → Настройки пользователей и прав → Пользователи. - Нажмите «Создать». В поле «Полное имя» укажите понятное имя:
Регламентные заданияилиСлужебный — обмены. - Включите «Вход в программу разрешён» и задайте имя для входа, например
Регламентные. Имя вводите латиницей или кириллицей без пробелов — так его проще набирать в параметрах и скриптах. - Пароль задайте длинный и случайный. Фоновому сеансу он не нужен, но пустой пароль — открытая дверь для любого, кто знает имя.
- Назначьте роли или группы доступа (подробно — в следующем разделе) и запишите карточку.
- Перейдите в список регламентных заданий, откройте нужное задание и выберите этого пользователя в поле «Пользователь». Запишите.
Регламентные задания не проходят аутентификацию. Если после настройки ролей снять флажок «Вход в программу разрешён», задания продолжат работать, а войти в программу под этим именем вручную уже не получится. Это хороший способ закрыть служебную учётку от людей.
Ключи командной строки, которые влияют на регламентные задания
В файловом режиме задания выполняются внутри клиентского сеанса, поэтому их поведением управляет параметр запуска /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 и других конфигурациях на Библиотеке стандартных подсистем код многих типовых заданий работает в привилегированном режиме. Поэтому они и не падают при пустом поле «Пользователь». Но привилегированный режим включён не везде, а доработки, расширения и внешние обработки обычно написаны без него.
Практичный порядок:
- Создайте группу доступа «Регламентные задания» и включите в неё нужный профиль. Если задание охватывает все разделы (обмен данными, загрузка выписок по всем организациям), проще дать полный профиль с правами на чтение и запись по всем организациям.
- Снимите ограничения по организациям и складам для этой группы — задание должно видеть все данные, которые обрабатывает.
- Не включайте пользователя в группу «Администраторы», если задание не меняет пользователей, настройки программы или конфигурацию.
Когда без полных прав не обойтись
Есть задания, которым нужны административные права:
- 🛠 изменение пользователей и их настроек;
- 🗑 удаление помеченных объектов;
- 📦 обновление версии программы и работа с расширениями;
- 🔄 перерасчёт итогов и служебные операции с базой.
Для них используйте отдельного пользователя с ролью «Полные права» и не запускайте под ним всё подряд. Разделение «служебный для обменов» и «служебный администратор» сильно упрощает разбор инцидентов.
Как задать пользователя кодом
Если заданий десятки или вы раскатываете настройку на много баз, удобнее сделать это обработкой, запущенной под администратором:
Задание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ЗагрузкаКурсовВалют);
Если Задание <> Неопределено Тогда
Задание.ИмяПользователя = "Регламентные";
Задание.Записать();
КонецЕсли;
ЗагрузкаКурсовВалют замените на имя задания из дерева метаданных в конфигураторе. В конфигурациях на БСП для изменения заданий есть штатные процедуры общего модуля регламентных заданий — при доработке типовой конфигурации лучше вызывать их, а не объект платформы напрямую.
Платформа хранит в задании имя пользователя строкой. Переименовали пользователя — задание перестанет его находить. После переименования проверьте поле «Пользователь» во всех заданиях.
Регламентные задания в файловом и клиент-серверном режиме
Главное различие — кто выполняет задание и от имени какой учётной записи Windows идёт работа с файлами.
| Файловая база | Клиент-серверная база | |
|---|---|---|
| Где выполняется | В одном из открытых клиентских сеансов | В рабочем процессе сервера 1С (rphost) |
| Когда | Только пока кто-то работает в базе | Всегда, пока работает служба сервера 1С |
| Учётная запись ОС для файлов и сети | Пользователь Windows, открывший 1С | Учётная запись службы агента сервера 1С |
| Как запретить | /AllowExecuteScheduledJobs -Off в сеансе | Флажок «Блокировка регламентных заданий включена» в свойствах базы в консоли кластера |
| Лицензия | Сеанс клиента, в котором идут задания, лицензию занимает как обычно | Фоновый сеанс лицензию не занимает |
Файловый режим
Если ночью в файловой базе никто не работает
, ночных заданий не будет. Задание по расписанию на 03:00 выполнится, когда утром откроют базу. Для серьёзных обменов это неудобно — тогда и нужен отдельный постоянный сеанс с /AllowExecuteScheduledJobs -Force, о котором шла речь выше.
Задание, которое пишет файл в сетевую папку, работает с правами того Windows-пользователя, у которого сейчас открыта 1С. У бухгалтера доступ к папке есть — выгрузка проходит. Открыла базу кассир без доступа — та же выгрузка падает. Отсюда «плавающие» ошибки, которые зависят от того, кто первым зашёл в программу.
Клиент-серверный режим
Сервер 1С выполняет задания сам, без открытых клиентов. Имя пользователя ИБ из задания определяет только права внутри базы. К диску, сетевой папке, принтеру или сертификату в хранилище Windows процесс обращается от имени учётной записи, под которой запущена служба «Агент сервера 1С:Предприятия».
Это ключевой приём при разборе ошибок выгрузки на сетевой ресурс:
- Откройте оснастку служб Windows (
services.msc) на сервере 1С. - Найдите службу агента сервера 1С и посмотрите вкладку «Вход в систему».
- Выдайте этой учётной записи права на нужную папку или ресурс. Если служба работает под локальной учётной записью, к сетевой папке на другом компьютере она не достучится — нужна доменная учётная запись.
Смена учётной записи службы требует её перезапуска. Все сеансы пользователей на этом сервере оборвутся — делайте это вне рабочего времени и предупредите людей.
Почему регламентное задание не запускается: диагностика
Сначала посмотрите, что пишет сама программа. В списке Регламентные и фоновые задания у каждого задания есть состояние и дата последнего запуска, а по ссылке на последнее выполнение — текст ошибки.
Дальше — журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отберите события фоновых заданий (запуск, успешное завершение, ошибка выполнения) и колонку «Пользователь». Так видно, под кем задание реально стартовало и на каком шаге упало.
Быстрая проверка вручную
У большинства заданий в форме есть команда «Выполнить сейчас». Она запускает задание немедленно в фоне — от имени пользователя, указанного в задании. Ошибка, полученная так, совпадает с той, что будет по расписанию, и её не нужно ждать до ночи.
Если задание долго висит в состоянии «Выполняется», проверьте в консоли кластера список сеансов базы: фоновый сеанс задания виден там с именем пользователя. Завершать такой сеанс можно, но прерванное задание бросит работу на полпути — обмен придётся повторить.
Безопасность служебной учётной записи и практики администрирования
Служебный пользователь с широкими правами — лакомая цель. Несколько правил закрывают большую часть рисков:
- 🚫 Запретите вход в программу, когда роли настроены и задание проверено. Задания продолжат работать.
- 🔑 Не используйте пустой пароль, даже если вход разрешён только временно.
- 🧩 Разделяйте роли. Один пользователь для обменов и загрузок, другой — для административных операций. Если интеграция скомпрометирована, злоумышленник не получит права менять пользователей.
- 👤 Не берите личные учётки сотрудников. Увольнение, отпуск, смена пароля не должны останавливать обмены.
- 📋 Ведите список. Какие задания под каким пользователем запущены и зачем — таблица на одну страницу в документации к базе экономит час при каждом инциденте.
- 🔍 Раз в квартал смотрите журнал регистрации по служебному пользователю: не появилось ли от его имени интерактивных входов или изменений, которых задания не делают.
Для учётной записи службы сервера 1С правило то же: минимальные права в Windows. Давайте ей доступ к конкретным папкам обмена, а не права администратора домена.
Тестовые копии базы
Перед развёртыванием тестовой копии рабочей клиент-серверной базы включите в консоли кластера флажок «Блокировка регламентных заданий включена» для копии. Иначе копия начнёт по расписанию отправлять в банк платёжки, выгружать данные на сайт и забирать почту — параллельно с рабочей базой.
Частые вопросы
Нужно ли указывать пароль пользователя в настройках регламентного задания?
Можно ли запускать разные задания под разными пользователями?
Почему у пользователя, указанного в задании, в списке активных пользователей висит сеанс?
Где указать пользователя для регламентного задания в конфигураторе?
ИмяПользователя.