Фоновый обмен данными.

Новая тема
Показывать по сообщений
"Почему не выполняется следующий код при записи текстового документа в .txt файл на диск при выполнении фонового задания.<br>Код в модуле:<br>Процедура ЗаписатьТекстСообщений(ИмяФайла, Отказ=0)<br>     ...<br>     Попытка<br>          ПолныйТекстСообщений.Записать(Строка(Файл.ПолноеИмя), КодировкаТекста.UTF8);<br>     Исключение<br>          ВывестиСообщение(ОписаниеОшибки(),,2);<br>     КонецПопытки;<br>     ...<br>КонецПроцедуры<br><br>ПолныйТекстСообщений = Новый ТекстовыйДокумент;<br><br>Данная процедура выполняется после передачи или приема файлов обмена. Ошибка выдается в в журнале регистрации следующая:<br>Ошбка при вызове метода контекста (Записать): Вывод Запрещен."
Все же написано в тексте ошибки. Проверьте права пользователя, от имени которого выполняеете обмен.
> Все же написано в тексте ошибки. Проверьте права пользователя, от имени которого выполняеете обмен.<br><br>Причем тут права пользователя? Обмен данными происходит в автоматическом режиме с использованием регламентного задания, обработки и плана обмена. В общем модуле и модулях плана обмена и обработки нет процедур и функций требующих для выполнения права администратора.<br>Согласно Описания языка 1С Предприятия 8.1 функция ТекстовыйДокумент.Записать (ПолноеИмяФайла,Кодировка) должна выполнятся во всех режимах, но она не выполняется именно при фоновом обмене(автообмене через планировщика) и выдается сообщение Вывод запрещен, при ручном обмене выполняется без проблем.<br>
Во-первых, регламентные задания выполняются то же от имени какого-либо пользователя... во-вторых в коде смущает процедура ВывестиСообщение()... не знаю что там в этой процедуре, но в фоновых заданиях нельзя использовать интерфейсные функции... фактически канает только Сообщить(), в том смысле, что не дает ошибку, хотя и не работает... :)
Не обращай внимание на процедуру ВывестиСообщение() эту процедуру написал я специально для автообмена, чтобы выводить предупреждения, сообщения, примечания и ошибки при обмене в ТекстовыйДокумент и в журнал регистраций, который и не записывается в каталог на винте. Суть вопроса в том почему не работает ТекстовыйДокумент.Записать(ПолныйПутьфайла, Кодировкатекста), ВывестиСообщение() работает без проблем.<br>Я конечно уже решил эту задачу по другому, но все равно этой ошибки не должно быть.
Еще раз говорю вам, что фоновые задания выполняются от имени какого-либо пользователя, если же пользователь явно не указан, выполняются от имени любого пользователя, в роли которого стоит галочка "Административные функции".. а вот стоит ли там галочка "Вывод", это еще вопрос... :)
Хорошо, ты меня добил. Эта встроенная функция ТекстовыйДокумент.Записать(ПолноеИмяФайла, Кодировка) не выполняется под администратором и ролью ПолныеПрава и галочки все стоят на всех модулях,обменах, процедурах, отчетах, обработках, регистрах,параметрах и т.д. и т.п., при выполнении фонового задания т.е. на сервере, а на клиенте выполняется не зависимо от ролей. Что теперь еще скажешь?!
Ну если ты такой умный, что же лезешь с вопросами?
Скажу что согласен с предыдущим постом.. :) По-крайней мере, мне отсюда не видно, что у тебя там стоит...
> Ну если ты такой умный, что же лезешь с вопросами?<br><br>Я понял, что решение по данной проблеме вы не знаете. Это однозначно упущение разработчиков 1С 8.1 и будет исправлено.<br>А грубить не надо. Программа 1С с самого начала как имела подобные проблемы, так до сих пор их имеет и надо признавать свои ошибки и помогать в их решении.<br>Мне уже это не нужно, я эту проблему обошел и все сохраняется, но вопрос остался не разрешимым для других программистов в том числе и ваших сторонних сертифицированных разработчиков.

Читают тему

(гостей: 1)

Быстрый переход