Добрый день!
Нужна помощь!
В 1С в обработке нужно сформировать несколько отчетов и отправить разным сотрудникам - разные отчеты.
Кому отправлять письма становится понятно в результате выполнения запроса -т.е. не возможно заранее узнать кому отчеты нужно будет отправить т.е. нельзя использовать "Рассылку отчетов". (если я не права - поправьте меня)
Вопрос в том, что Вложение в письмо - это обязательно файл с диска? Нельзя как-то без файла на диске обойтись?
При добавлении вложения - выдается ощибка:
Не удалось добавить вложение! {ВнешняяОбработка.ЗУП31.Форма.Форма.Форма(684)}: Ошибка при вызове конструктора (ДвоичныеДанные): Каталог не обнаружен 'E:\TMP\TMP\Отчет1.xls'
Файл в каталоге есть. Но это каталог на моем компе. Я так понимаю, что программа ищет этот каталог на сервере каком-то?
Как бы так сделать, чтобы вложить отчет без сохранения файла диск?
Или эту проблему можно решить как-то по-другому?
Спасибо!
Нужна помощь!
В 1С в обработке нужно сформировать несколько отчетов и отправить разным сотрудникам - разные отчеты.
Кому отправлять письма становится понятно в результате выполнения запроса -т.е. не возможно заранее узнать кому отчеты нужно будет отправить т.е. нельзя использовать "Рассылку отчетов". (если я не права - поправьте меня)
Вопрос в том, что Вложение в письмо - это обязательно файл с диска? Нельзя как-то без файла на диске обойтись?
При добавлении вложения - выдается ощибка:
Не удалось добавить вложение! {ВнешняяОбработка.ЗУП31.Форма.Форма.Форма(684)}: Ошибка при вызове конструктора (ДвоичныеДанные): Каталог не обнаружен 'E:\TMP\TMP\Отчет1.xls'
Файл в каталоге есть. Но это каталог на моем компе. Я так понимаю, что программа ищет этот каталог на сервере каком-то?
Как бы так сделать, чтобы вложить отчет без сохранения файла диск?
Или эту проблему можно решить как-то по-другому?
Спасибо!
По теме из базы знаний
- Алгоритм создания и отправки электронного письма (со вложением) УТ 3.0 для Украины
- [Расширение] Доработка рассылки отчетов, отчет в теле письма
- Реализация отправки Email через SendPulse API
- Отправка счет-договора по email 1С 7.7 ТиС с помощью Python
- Деловая переписка. Как выедать мозг чайной ложечкой через письма и получать нужный результат
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
Путей решения два:
1. Поместить файл в папку на сервере.
2. Расшарить папку с файлом на вашем компьютере и обращаться к ней по сети: вместо "E:\TMP\TMP\Отчет1.xls" что-то типа "\\Mycomp\Myfolder\TMP\Отчет1.xls"
программа ищет файл не на моем локальном компе? а на каком-то сервере?
Не на "каком-то", а на том, на котором выполняется 1С.
Путей решения два:
1. Поместить файл в папку на сервере.
2. Расшарить папку с файлом на вашем компьютере и обращаться к ней по сети: вместо "E:\TMP\TMP\Отчет1.xls" что-то типа "\\Mycomp\Myfolder\TMP\Отчет1.xls"
Может быть код неверный?
Попытка
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ПолноеИмяФайла), ПолноеИмяФайла);
Исключение
ТекстПисьма = ТекстПисьма + "Не удалось добавить вложение! " + ОписаниеОшибки() + Символы.ПС;
КонецПопытки;
Попытка
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ПолноеИмяФайла), ПолноеИмяФайла);
Исключение
ТекстПисьма = ТекстПисьма + "Не удалось добавить вложение! " + ОписаниеОшибки() + Символы.ПС;
КонецПопытки;
Если в качестве вложения используется объект ДвоичныеДанные - нельзя его как-то без сохранения в файл получить?
Ведь в файлмы сохраняем отчет из 1С, а потом файл преобразуем в ДвоичныеДанные и вкладываем в письмо.
Можно отчет сразу в ДвоичныеДанные перевести?
Ведь в файлмы сохраняем отчет из 1С, а потом файл преобразуем в ДвоичныеДанные и вкладываем в письмо.
Можно отчет сразу в ДвоичныеДанные перевести?
(9) база серверная, процедура с директивой &НаСервере.
Письмо без вложения - без проблем приходит.
Если делаю вложение - письмо тоже приходит, но с ошибкой (текст ошибки вывожу в текст письма): Не удалось добавить вложение! {ВнешняяОбработка.ЗУП31.Форма.Форма.Форма(684)}: Ошибка при вызове конструктора (ДвоичныеДанные): Каталог не обнаружен 'E:\TMP\TMP\Отчет1.xls'
Письмо без вложения - без проблем приходит.
Если делаю вложение - письмо тоже приходит, но с ошибкой (текст ошибки вывожу в текст письма): Не удалось добавить вложение! {ВнешняяОбработка.ЗУП31.Форма.Форма.Форма(684)}: Ошибка при вызове конструктора (ДвоичныеДанные): Каталог не обнаружен 'E:\TMP\TMP\Отчет1.xls'
(10) Соответственно алгоритм, выполняющийся на сервере, ничего не знает о клиенте и ищет каталог "E:\TMP\TMP\" на сервере, то есть на той машине, на корой физически крутится сервер 1С. Создайте на сервере папку а-ля "E\отчеты", дайте доступ к этой папке пользователю USRV8 или под каким там у Вас стартует сервер 1С, сохраняйте файлы отчета именно в эту папкку. Но в идеале для такого вообще завести сетевую папку.
(15) мне не нужно, чтобы файлы лежали в сети. Мне нужно файл сформировать, отправить и удалить его.
Спасибо за подсказку - создать папку и дать доступ пользователю - от которого стартует сервер 1С. Туда сохранять файл и удалять.
Вообще это будет регл задание - оно тоже будет запускаться от пользователя - от которого стартует сервер 1С?
Спасибо за подсказку - создать папку и дать доступ пользователю - от которого стартует сервер 1С. Туда сохранять файл и удалять.
Вообще это будет регл задание - оно тоже будет запускаться от пользователя - от которого стартует сервер 1С?
(17) У регламентного можно указать пользователя, если пользователь не указан - РЗ запускает фоновые под полными правами. А с файлами на диске 1С всегда общается из под того пользователя, под которым запущена.
Регламентом цепляете отчет, выполняете, результат во временные файлы, от туда во вложения, письмо отправить, файлы удалить. А адреса отправки придумаете как хранить в базе и как их получать.
Регламентом цепляете отчет, выполняете, результат во временные файлы, от туда во вложения, письмо отправить, файлы удалить. А адреса отправки придумаете как хранить в базе и как их получать.
(24) может быть кому-нибудь пригодится:
Используются процедуры и функции Общего модуля РаботаСПочтовымиСообщениями!!!
ПотокВПамяти = Новый ПотокВПамяти();
ТабДок.Записать(ПотокВПамяти, ТипФайлаТабличногоДокумента.DOCX);
ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
Вложение = Новый Структура;
Вложение.Вставить("АдресВоВременномХранилище", ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор));
Вложение.Вставить("Представление", "Отчет от "+Формат(Объект.Период.ДатаНачала, "ДФ=dd.MM.yyyy")+".docx");
СписокВложений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Вложение);
ПараметрыПисьма.Вставить("Вложения", СписокВложений);
УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("хххх");
Попытка
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Отчет успешно отправлен.");
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка отправки отчета:"+Символы.ПС+ОписаниеОшибки());
КонецПопытки;
ПоказатьИспользуются процедуры и функции Общего модуля РаботаСПочтовымиСообщениями!!!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот