Сразу уточню, что вопрос относится не к типовой конфигурации, а представим, что пишем с нуля и без БСП. Не смог найти на ИТС полноценного описания работы регламентных заданий и остались вопросы. Вот добавили мы в режиме конфигуратора новое предопределенное регламентно задание. Из текста понял, что в случае файлового режима БД регламентные задания выполняются под первым запущенным пользователем и если база не будет открыта в режиме 1С:Предприятия, то регламентные задания вообще не будут выполняться и опрос расписания регламентных заданий выполняется раз в 60 секунд. Но что будет если регламентное задание запустится под пользователем у которого нет прав на объекты к которым идет обращение в коде процедуры регламентного задания? В этом случае все процедуры описывать в общих модулях с привилегированным режимом? В клиент-серверном режиме регламентные задания могут работать вообще без запуска 1С:Предприятия и по сути, наверное, опрос расписания идет каждую секунду, и как я заметил пользователь пустой. Что это? Если я ошибаюсь, то под каким пользователем платформа запускает регламентные задания в клиент-серверном режиме, если 1С:Предприятие запущено и если не запущено, и опять же, какие права имеются у этого пустого пользователя?
(2)Добрый день. Подскажите, пожалуйста, как посмотреть пользователя, под которым запущена служба?
1С устанавливали до меня (на сервере) и видимо изменили стандартного пользователя на какого-то другого.
Регламентные исполняются от имени того пользователя, от которого работает служба 1C:Enterprise 8.X Server Agent.
Там пользователь может быть любой, какого сами укажете.
(3) Я не понимаю, вы говорите о пользователе ОС или пользователе ИБ? Пользователь ОС мне не интересен, меня интересует пользователь инфо. базы. Где в службе Агента 1С можно указать пользователя инфо. базы?
Вернее так: сами регламентные исполняются под первым попавшимся под руку пользователем, у которого в какой-либо роли разрешены "Административные функции" , если пользователь не указан явно
(4) Опять же это про файловый режим или клиент-серверный? В клиент-серверном варианте же вообще можем не запускать предприятие, или служба в списке пользователей ищет первого у кого есть "Административные функции" и запускает?
(4) ИТС гласит: Регламентные задания всегда выполняются от имени определенного пользователя. Если пользователь регламентного задания не указан, то выполнение происходит с правами, которые определяются набором ролей, указанных в свойстве конфигурации ОсновныеРоли. В том случае, если в этом свойстве не указано ни одной роли, выполнение происходит без ограничения прав доступа.
в регламентном задании можно указать имя пользователя
из СП
Имя пользователя, под которым будет выполняться данное регламентное задание. Если имя пользователя не задано, регламентное задание будет выполняться пользователем по умолчанию, имеющим административные права. Чтения и запись для администратора.
(10) Скачайте обработку с итс или из БСП вытащите, "регламентные и фоновые задания" с помощью нее можете указать пользователя. Либо сами кодом пропишите. С помощью конфигуратора, наверное нельзя.
(11) Ок, тогда считаем что нигде не указали пользователя, какое поведение платформы в этом случае?
1. В случае файлового режима - регламентные задания выполнятся под первым пользователем с административными правами под которым запустили 1С:Предприятие, т.е. если под "админом" 1С:Предприятие не запускали, то регламентные задания не отработают как если бы вообще не открывали 1С:Предприятие.
2. В случае клиент-серверного варианта - служба найдет первого попавшегося пользователя с административными правами и запустит регламентные задания под ним.
Верны ли эти утверждения, правильно ли я все понял?
В случае клиент-серверного варианта - служба найдет первого попавшегося пользователя с административными правами и запустит регламентные задания под ним.
Не совсем так.
В клиент-серверном режиме регламентные задания запускаются служебным сеансом, которое создает Планировщик заданий. Он же создает фоновое задание, в котором и выполняется задание.
Если пользователь не указан (указать пользователя можно программно), то будет использован служебный пользователь с правами (ролями) которые указаны в Основные роли. Если там ничего нет, тогда выполнение будет без ограничений прав доступа.
И для файлового режима механизм "пользователь и права" тот же.
(13) Спасибо! Вот это толковый ответ, теперь по нему нет вопросов. Этот вопрос был основным для меня. А что с файловым вариантом в аналогичном случае, если ни где не указан пользователь ИБ. Регламенты будут запускаться только под пользователями с административными правами?
(14) механизм "Пользователь и права" одинаковый для обоих режимов. Отличие только в создании сеансов и где запускается. Ну и для файловой базы должен быть запущен хоть один сеанс, который не запрещает использовать регламентные задания. И пользовать основного сеанса не важен. Используется параллельный сеанс, в котором и запускается фоновое задание. Там еще есть нюансы с веб-сервером для файловой базы и указанием ключа выполнения заданий.
Служебный пользователь так же используется и при работе без списка пользователей. Т.е. когда вообще не были созданы пользователи. Вот в таком случае используется служебный с правами из указанных в "Основные роли" или без проверки прав, если там ничего не указано.
(17) Я читал этот раздел и прочел его еще раз, но к сожалению там не говориться про служебного пользователя под которым выполняются регламентные задания если пользователь не указан в явном виде
(19) Блин, капец, ну нет этого там. В моей стране доступ к ИТС только через https://its.1c.eu, к https://its.1c.ru нет доступа и как я понял на RU домене информация актуальнее, может в этом причина? Можете дать прямую ссылку на этот текст? ИТС - это каждый раз квест какой-то
РегламентноеЗадание (ScheduledJob)
ИмяПользователя (UserName)
Использование:
Чтение и запись.
Описание:
Тип: Строка.
Имя пользователя, под которым будет выполняться данное регламентное задание. Если имя пользователя не задано, регламентное задание будет выполняться пользователем по умолчанию, имеющим административные права. Чтения и запись для администратора.
В чем может быть загвоздка? Есть фоновое задание (открытие и чтение документа EXCEL), выполняется нормально если пользователь usr1cv8 подключен к RDP сервера предприятия (само 1С Предприятие запускать необязательно). Если пользователь usr1cv8 отлогинен от RDP, то фоновое задание бросает ошибку COM, как будто прав не хватает.
(1)Интересное наблюдение. Регламентное задание выполняется под пользователем, представление которого выглядит как "<Не указан>" ТипЗначения - "Пользователь" и при этом у него не доступны поля Имя, Идентификатор (при обращении выдаёт ошибку), И при этом он не равен значению возвращаемому методом Пользователи.НайтиПоИмени(""). Такие дела. А я всего лишь хочу проверить выполняется ли мой метод от лица какого-то пользователя или нет. И если да, то взять у него адрес электронки, чтобы ошибки слать. А если он "системный" то слать по служебному адресу. В общем пока не получается как-то его отличить от "обычного" пользователя. Только по представлению наверное. Ибо метод ЗначениеЗаполнено(Пользователи.ТекущийПользовать()) возвращает Истину.
(28) это означает, что для регламентного задания не был назначен пользователь и используется служебный (пользователь по умолчанию).
Перечитайте 13, 15, 19 и 20 сообщения.
Есть внешний отчет, в котором в процессе выполнения необходимо получать данные из Excel. Com не использую, использую ТабличныйДокумент. Доступ к папке где лежит Excel у меня есть. При формировании отчета в режиме предприятия данные прочитать могу.
Далее решено что отчет будет формироваться регламентным заданием. Созданию задание, указываю пользователя в задании себя и наивно полагаю, что раз у меня есть доступ в папку с файлом Excel и я указала себя как пользователя под которым выполняется регламентное задание, то данные я получу. Но нет. Получаю "Ошибка доступа к файлу".
Клиент-сервер, платформа 8.3.23.1865, Управление производственным предприятием, редакция 1.3 (1.3.220.1)
Управление производственным предприятием, редакция 1.3
Ну дык это ж толстый клиент, обычное приложение. Давай немного подумаем, где находится файл? Он находится в сетевой папке? Нет? А как тогда сервер получит к нему доступ? Или сервер установлен на прям вот вашем компе?