If you are cleverer than me, inform on this mistake and explain to me as it to solve.<br>
If you are cleverer than me, inform on this mistake and explain to me as it to solve.<br>
> А грубить не надо. Программа 1С с самого начала как имела подобные проблемы, так до сих пор их имеет и надо признавать свои ошибки и помогать в их решении.<br> а кто грубил, тебе пытаются помочь, а ты начинаешь, что тебя достали, вот я тебе и ответил, что если такой умный, то не лезь с вопросами, сделал, хорошо, выложи решение вопроса на форум, поможешь другим!<br>З,Ы, Здесь кстати нет разработчиков 1С!
"Товарисчи была точно такая я же проблема!<br>На сервере не выполнялось Регламентное задание с выводом данных запроса в файл на жестком диске.<br>Ошибка: Вывод запрещен.<br><br>Решение: <br><br>Док = Новый ТекстовыйДокумент;<br>Док.Вывод = ИспользованиеВывода.Разрешить;<br>...<br>Док.Записать(...);<br><br>И всё работает :)"
"Спасибо большое за ответ про запись файла. Была точно такая же проблема, нигде не могла найти решение.<br><br>Подскажите еще один момент: есть предопределенное регламентное задание (клиент-серверный вариант работы). Нужно, чтобы порождаемые им фоновые задания запускались на сервере от имени определенного пользователя. Где лучше задать этого самого пользователя?<br><br>Код в процедуре (см.ниже), связанной с этим регламентным заданием, приводит к зацикливанию запуска регламентного задания <br><br>Код:<br>Процедура ВызовРеглЗадания()<br> ТекРеглЗадание=РегламентныеЗадания.НайтиПредопределенное("РеглЗадание");<br> //программное задание имени пользователя для регламентного задания<br> ТекРеглЗадание.ИмяПользователя="ПользовательДляРеглЗадания";<br> ТекРеглЗадание.Записать();<br> ...<br>КонецПроцедуры;"
А чем не устраивает обработка КонсольЗаданий.epf?
В смысле чем не устраивает? Всем устраивает. Вы, наверное, не поняли вопрос.<br><br>Когда кодом создается фоновое задание - там можно прописать пользователя, от имени которого оно будет запускаться. А так получается, что регламентное задание само порождает фоновые. И если это фоновое выполняется на сервере, то оно получается не привязано ни к какому пользователю. А нужно привязать к определенному пользователю, чтобы отслеживать изменения по объектам, измененным этим фоновым заданием. В общем, вопрос в том, как сделать так, чтобы фоновые задания, порождаемые регламентным запускались от определенного пользователя. Собственно, либо само регламентное нужно запустить под этим пользователем, либо фоновым каким-то образом нужно передать пользователя как параметр.<br><br>Должно быть понятно, подробней уже некуда.
Честно, я все равно не понял.<br>1. Под фоновым заданием я подразумеваю регламентированное задание запущенное сервером по расписанию.<br>2. Кодом или обработкой КонсольЗаданий.epf создается задание для запуска, где и определяется имя пользователя. В результате регламентированное задание выполняется от имени этого пользователя (в фоне).<br><br>Возникает вопрос:<br>Процедура ВызовРеглЗадания() в самом регламентированном задании? Если да, то как вы определяете "ПользовательДляРеглЗадания", если задание запущено сервером?<br><br><br>> регламентное нужно запустить под этим пользователем<br>Вы видели в справке функцию, которая позволяет запустить? Если да - приведите код, а то очень не хватает параллелизма, а так можно было бы выкрутиться.<br><br>> либо фоновым каким-то образом нужно передать пользователя как параметр<br>Опять таки - фоновое задание, реально никому не принадлежит - его выполняет сервер. Там нет клиентских возможностей.<br><br>> В общем, вопрос в том, как сделать так, чтобы фоновые задания, порождаемые регламентным запускались от определенного пользователя.<br><br>Задать имя пользователя при создании задания.<br><br>
>Честно, я все равно не понял.<br>>1. Под фоновым заданием я подразумеваю регламентированное задание запущенное сервером по расписанию.<br><br>не совсем так. <br>(из книги "1С:Предприятие от 8.0 к 8.1 Белоусов, Островерх")<br>Регламентные задания позволяют по расписанию (однократно или с заданной периодичностью) инициализировать исполнение процедур (функций) общих неглобальных модулей. Регламентные задания хранятся в информационной базе и создаются на основе метаданных, определяемых в конфигураторе. Исполняемая процедура (функция) является методом регламентного задания.<br>...<br>Регламентное задание выполняется от имени того пользовател, имя которого назначено заданию. Если имя не назначено, регламентное задание выполняется от имени пользователя по умолчанию, имеющего административные права.<br>При выполнении регламентного задания порождается фоновое задание, которое и исполняет метод, назначенный регламентному заданию.<br>...<br>Как для предопределенного, так и для непредопределенного регламентного задания указать имя пользователя, от лица которого оно будет выполняться, и/или задать параметры методу регламентного задания можно только на этапе исполнения (программно или интерактивно).<br><br>>2. Кодом или обработкой КонсольЗаданий.epf создается задание для запуска, где и >определяется имя пользователя. В результате регламентированное задание выполняется от >имени этого пользователя (в фоне).<br><br>В моем случае, задание для запуска создается автоматически программой, потому как это регламентное задание Предопределенное.<br><br>>Возникает вопрос:<br>>Процедура ВызовРеглЗадания() в самом регламентированном задании? Если да, то как вы >определяете "ПользовательДляРеглЗадания", если задание запущено сервером?<br><br>ВызовРеглЗадания() - это процедура, которую и вызывает само регламентированное задание. Она связана с самим заданием, и действительно получается, что в момент исполнения процедуры задание уже запущено. Собственно, вопрос в том - как поймать момент перед запуском регл.задания?.. (чтобы определить/уточнить пользователя)<br><br>>> регламентное нужно запустить под этим пользователем<br>>Вы видели в справке функцию, которая позволяет запустить? Если да - приведите код, а то >очень не хватает параллелизма, а так можно было бы выкрутиться.<br>функцию такую я, конечно, не видела. Но можно, опять же, перед запуском этого задания сервером, задать ему пользователя, под которым он будет выполняться.<br><br>>> либо фоновым каким-то образом нужно передать пользователя как параметр<br>>Опять таки - фоновое задание, реально никому не принадлежит - его выполняет сервер. Там >нет клиентских возможностей.<br><br>Выполняет сервер, но от имени определенного пользователя. Про параметр - это я глупость написала, признаюсь. Не очень внимательно читала книгу. <br><br>>> В общем, вопрос в том, как сделать так, чтобы фоновые задания, порождаемые регламентным >>запускались от определенного пользователя.<br>>Задать имя пользователя при создании задания.<br><br>Как его задать? Точнее, где его задать в программе? В процедуре регл.задания нельзя - там оно уже выполняется и происходит зацикливание. В глобальные модули (соединения, приложения, сеанса) сервер не заглядывает, када запускает очередное задание... <br>
10 декабря 2024 года — Практическая конференция «День Документооборота» 18 декабря 2024 года — Единый онлайн-семинар 1С для бухгалтеров и руководителей |
1C:Лекторий: 3 декабря 2024 года, начало в 12:00 — Бесплатная онлайн-лекция об оперативном анализе данных организации с помощью инструмента «1С:Аналитика» 1C:Лекторий: 5 декабря 2024 года, начало в 12:00 — Бесплатная онлайн-лекция о развитии учета внеоборотных активов в программах 1С:ERP и 1С:КА |