Создание книги эксель с 4 листами и отправка по почте
Здравствуйте,
платформа 8.3.10.2561, обычное приложение
есть 4 табличных документа, которые надо загрузить на разные листы эксель и полученную книгу отправить по почте. И как бы это работает, но есть два косяка, с которыми не могу справиться.
1) При скачивании файла получателем, он не может его посмотреть, пишет "Формат файла не соответствует разрешению файла, возможно файл поврежден или небезопасен. Открывайте его только в том случае, если доверяете источнику.Вы действительно хотите открыть файл?" И он открывается пустым, хотя просто сохраненный файл (не через почту) открывается с данными
2) Если запускать по кнопке, то файлы хорошо сохраняются, если делать это через рег задание, то выходит ошибка. Права у пользователя, под которым запускается рег задание и запущена служба 1с админские, папка Desktop на месте.
"{ОбщийМодуль.Телефония.Модуль(519)}: Ошибка при вызове метода контекста (Open)
по причине:
Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу "C:\Temp\iptel4.xls". Это может быть вызвано одной из следующих причин.
• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент."
платформа 8.3.10.2561, обычное приложение
есть 4 табличных документа, которые надо загрузить на разные листы эксель и полученную книгу отправить по почте. И как бы это работает, но есть два косяка, с которыми не могу справиться.
1) При скачивании файла получателем, он не может его посмотреть, пишет "Формат файла не соответствует разрешению файла, возможно файл поврежден или небезопасен. Открывайте его только в том случае, если доверяете источнику.Вы действительно хотите открыть файл?" И он открывается пустым, хотя просто сохраненный файл (не через почту) открывается с данными
2) Если запускать по кнопке, то файлы хорошо сохраняются, если делать это через рег задание, то выходит ошибка. Права у пользователя, под которым запускается рег задание и запущена служба 1с админские, папка Desktop на месте.
"{ОбщийМодуль.Телефония.Модуль(519)}: Ошибка при вызове метода контекста (Open)
по причине:
Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу "C:\Temp\iptel4.xls". Это может быть вызвано одной из следующих причин.
• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент."
ТабДокСДетализациейДень.Записать (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel1"+".xls", ТипФайлаТабличногоДокумента.XLS);
ТабДокСДетализациейНочь.Записать (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel2"+".xls", ТипФайлаТабличногоДокумента.XLS);
ТабДокСИтогамиПоДням.Записать (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel3"+".xls", ТипФайлаТабличногоДокумента.XLS);
ТабДокСИтогами.Записать (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel4"+".xls", ТипФайлаТабличногоДокумента.XLS);
AppExcel1 = новый COMОбъект ("Excel.Application");
Book2 = AppExcel1.WorkBooks().Add();
Book1 = AppExcel1.Workbooks.Open (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel4"+".xls");
Book1.ActiveSheet.Cells.Select ();
AppExcel1.Selection.Copy ();
Book2.Sheets.Add ();
Book2.ActiveSheet.name = "Итоговая";
Book2.ActiveSheet.Paste ();
AppExcel1.CutCopyMode = False;
Book1.Close (false);
Book1 = AppExcel1.Workbooks.Open (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel3"+".xls");
Book1.ActiveSheet.Cells.Select ();
AppExcel1.Selection.Copy ();
Book2.Sheets.Add ();
Book2.ActiveSheet.name = "Итоговая по дням";
Book2.ActiveSheet.Paste ();
AppExcel1.CutCopyMode = False;
Book1.Close (false);
Book1 = AppExcel1.Workbooks.Open (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel2"+".xls");
Book1.ActiveSheet.Cells.Select ();
AppExcel1.Selection.Copy ();
Book2.Sheets.Add ();
Book2.ActiveSheet.name = "Детализация ночных звонков";
Book2.ActiveSheet.Paste ();
AppExcel1.CutCopyMode = False;
Book1.Close (false);
Book1 = AppExcel1.Workbooks.Open (Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel1"+".xls");
Book1.ActiveSheet.Cells.Select ();
AppExcel1.Selection.Copy ();
Book2.Sheets.Add ();
Book2.ActiveSheet.name = "Детализация дневных звонков";
Book2.ActiveSheet.Paste ();
AppExcel1.CutCopyMode = False;
Book1.Close (false);
Book2.Application.DisplayAlerts = False;
Путь=Константы.ТелефонияКаталогДляОтчетов.Получить()+"\Отчет по телефонии "+?(ЗначениеЗаполнено(ЛичныйКабинет), Строка(ЛичныйКабинет)+" ","")+Формат(КонецПредыдущейСмены,"ДФ=yyyy-MM-dd")+ " - " +Формат(КонецПоследнейСменыПериода,"ДФ=yyyy-MM-dd") +".xls";
Book2.SaveAs (Путь);
AppExcel1.Quit ();
УдалитьФайлы(Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel1"+".xls");
УдалитьФайлы(Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel2"+".xls");
УдалитьФайлы(Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel3"+".xls");
УдалитьФайлы(Константы.ТелефонияКаталогДляОтчетов.Получить()+"\iptel4"+".xls");
УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоКоду("ФК0000001");
Профиль = УправлениеЭлектроннойПочтой.ПолучитьИнтернетПочтовыйПрофиль(УчетнаяЗапись);
ИнтернетПочта = Новый ИнтернетПочта;
ИнтернетПочта.Подключиться(Профиль);
ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
КодировкаСообщения = "utf-8";
ПочтовоеСообщение.Кодировка = КодировкаСообщения;
// Общие свойства письма
ПочтовоеСообщение.ИмяОтправителя = "Отчет ";
ПочтовоеСообщение.Отправитель = УчетнаяЗапись.АдресЭлектроннойПочты;
ПочтовоеСообщение.Тема = "Отчет "+ВыборкаЛК.ЛК;
ВыборкаПочты = ВыборкаЛК.Выбрать();
Пока ВыборкаПочты.Следующий() Цикл
Получатель = ПочтовоеСообщение.Получатели.Добавить();
Получатель.Адрес = ВыборкаПочты.Почта;
Получатель.ОтображаемоеИмя = ВыборкаПочты.Почта;
Получатель.Кодировка = КодировкаСообщения;
КонецЦикла;
ТекстСообщения = ПочтовоеСообщение.Вложения.Добавить(Путь);
ИнтернетПочта.Послать(ПочтовоеСообщение);
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот