Как отключить безопасный режим при выполнении регламентного задания?
Привет всем, не могу справиться с проблемой.. запускаю регламентное задание, которое запускает внешний отчет, который сохраняет результат (табличный документ) в файл таким способом Результат.Записать(АдресСохраненияФайлаВложения, ТипФайлаТабличногоДокумента.XLS97);
Но это строка не выполняется, появляется ошибка "Установлен безопасный режим. Выполнение операции запрещено". Пробовала прописать УстановитьБезопасныйРежим(Ложь), но появляется ошибка "Ошибка при вызове метода контекста (УстановитьБезопасныйРежим): В данной процедуре/ функции не был установлен безопасный режим".
Как можно справиться с такой проблемой?
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(2) AllexSoft, нет такой строки в модуле объекта внешнего отчета.. а сам внешний отчет запускается таким способом:
ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = ВнешОтчет.ХранилищеВнешнейОбработки.Получить(); ДвоичныеДанные.Записать(ИмяФайла);
Выполнить("ВнешниеОтчеты.Создать("""+ИмяФайла+""")"+ ?(ИмяЗапускаемойПроцедуры="", ".ПолучитьФорму().Открыть()","."+ИмяЗапускаемойПроцедуры)+";")
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(4) AllexSoft, Перем мРегламентное Экспорт ;
Процедура СформироватьИОтправить() Экспорт
Процедура СформироватьИОтправить2() Экспорт
//Пользователь = ПараметрыСеанса.ТекущийПользователь; Пользователь = Справочники.Пользователи.НайтиПоНаименованию("Робот"); ОсновнойПрофиль = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Пользователь, "ОсновнаяУчетнаяЗапись");
Если Не ЗначениеЗаполнено(ОсновнойПрофиль) Тогда Возврат; КонецЕсли;
Если ТаблицаРассылки = Неопределено Тогда Возврат; КонецЕсли;
Для Каждого Запись Из ТаблицаРассылки Цикл
// Если нет адреса для отправки прайса, то пропускаем данного контрагента //Сообщить(Запись.Адрес); Если Не ЗначениеЗаполнено(Запись.Адрес) Тогда Продолжить; КонецЕсли; АдресФайлаВложения = СформироватьВложение(Запись.Контрагент, Запись.НастройкаОтчета);
// Если не удалось сформировать файл прайса, то прпускаем процесс отправки //Сообщить(АдресФайлаВложения); Если ПустаяСтрока(АдресФайлаВложения) Тогда Продолжить; КонецЕсли;
Отправить(АдресФайлаВложения, Запись.Адрес, ОсновнойПрофиль, Запись.Контрагент); //Катя
Категория = Справочники.КатегорииОбъектов.НайтиПоНаименованию("Выгружать прайс", Истина);
Если Категория.Пустая() Тогда Возврат Неопределено; КонецЕсли;
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
///// 16мая+ Объекты = Новый Массив; Запрос = Новый Запрос;
Если мРегламентное Тогда
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Объекты.Добавить(Выборка.Объект); КонецЦикла; КонецЕсли;
//Сообщить(Строка(ЧАС(ТекущаяДата()))+ " " +Строка(МИНУТА(ТекущаяДата()))); Иначе Если ОбъектДляРассылки.Пустая() Тогда Запрос.Текст ;
РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Объекты.Добавить(Выборка.Объект); КонецЦикла; КонецЕсли; Иначе Объекты.Добавить(ОбъектДляРассылки); КонецЕсли; КонецЕсли;
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Функция СформироватьВложение(Контрагент, НастройкаОтчета)
//Получаем схему из макета СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
////Из схемы возьмем настройки по умолчанию //Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
// Возьмем настройки из хранилища дополнительной информации Попытка Настройки = НастройкаОтчета.Получить();
Для Каждого Настройка Из Настройки.ПараметрыДанных.Элементы Цикл Если Строка(Настройка.Параметр) = "Период" Тогда Настройка.Значение = КонецДня(ТекущаяДата()); КонецЕсли; КонецЦикла;
Исключение Возврат ""; КонецПопытки;
//Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
//Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки,Истина);
Результат = Новый ТабличныйДокумент;
//Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат);
//АдресСохраненияФайлаВложения = КаталогВременныхФайлов() + "\" + Строка(Контрагент) + " (прайс от " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + ").txt"; //xls // // АдресСохраненияФайлаВложения=СтрЗаменить(АдресСохраненияФайлаВложения,"""","");
АдресСохраненияФайлаВложения = "C:\Users\e.pohiluk\Desktop" + "\" + Строка(Контрагент) + " (прайс от " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + ").txt"; //xls АдресСохраненияФайлаВложения=СтрЗаменить(АдресСохраненияФайлаВложения,"""","");
МойОбъект = Справочники.ТУ_ОбъектыДляРассылки.НайтиПоНаименованию("Программист"); МойОбъектОбъект = МойОбъект.ПолучитьОбъект(); МойОбъектОбъект.ТекстПисьма = АдресСохраненияФайлаВложения; МойОбъектОбъект.Записать();
Попытка //УстановитьБезопасныйРежим(Истина); Результат.Записать(АдресСохраненияФайлаВложения, ТипФайлаТабличногоДокумента.TXT); //XLS97 //УстановитьБезопасныйРежим(Ложь); МойОбъектОбъект.ТекстПисьма = "ОК"; МойОбъектОбъект.Записать(); Исключение МойОбъектОбъект.ТекстПисьма = "Ошибка" + Строка(ОписаниеОшибки()); МойОбъектОбъект.Записать(); КонецПопытки;
Процедура Отправить(АдресФайлаВложения, АдресОтправки, ОсновнойПрофиль, Объект) //Катя
Письмо = Новый ИнтернетПочтовоеСообщение; ТекПользователь=ОбщегоНазначения.ПолучитьЗначениеПеременной("глТекущийПользователь"); ОсновнаяОрганизация=УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновнаяОрганизация");
Письмо.Тема = "Прайс-лист "+ОсновнаяОрганизация.НаименованиеПлательщикаПриПеречисленииНалогов ; // Если необходимо, позже добавим текст письма! //Письмо.Тексты.Добавить("", ТипТекстаПочтовогоСообщения.HTML);
Письмо.Получатели.Добавить(АдресОтправки); Письмо.Отправитель.Адрес = ОсновнойПрофиль.АдресЭлектроннойПочты; Письмо.Вложения.Добавить(АдресФайлаВложения);
Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераPOP3 = ОсновнойПрофиль.POP3Сервер; Профиль.АдресСервераSMTP = ОсновнойПрофиль.SMTPСервер; Профиль.Пользователь = ОсновнойПрофиль.Логин; Профиль.Пароль = ОсновнойПрофиль.Пароль; Профиль.ПользовательSMTP = ОсновнойПрофиль.Логин; Профиль.ПарольSMTP = ОсновнойПрофиль.Пароль; Профиль.ПортPOP3 = ОсновнойПрофиль.ПортPOP3; Профиль.ПортSMTP = ОсновнойПрофиль.ПортSMTP; Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная; Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
// Отправляем письмо Почта = Новый ИнтернетПочта;
Попытка Почта.Подключиться(Профиль,ПротоколИнтернетПочты.IMAP); Почта.Послать(Письмо); Почта.Отключиться(); Исключение Сообщить("Произошли ошибки при отправке письма." + ОписаниеОшибки()); КонецПопытки;