Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:21

Отправка письма со вложенным файлом

Автор Funt432286, 12 мая 2020, 16:07

0 Пользователей и 1 гость просматривают эту тему.

LexaK

antoneus,
ЦитироватьСтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы();
ПутьКБД = Сред(СтрокаСоединенияСБД, 6, СтрДлина(СтрокаСоединенияСБД) - 6);
а если это клиент-серверный вариант?
какой это путь к файлу? ПутьКБД- ?
там имя сервера  и имя СКЛ/ПГ Базы
получение файла с Сервера на Клиент - это же уже давно обкатанный велосипед! что вы его изобретаете?
если помогло нажмите: Спасибо!

antoneus

Цитата: Funt432286 от 15 мая 2020, 14:53

Папка Stamp лежит в той же папке, что и база. База хранится на диске Е, но так же к базе подключаются другие пользователи по локальной сети.

LexaK

если помогло нажмите: Спасибо!

Funt432286

Цитата: antoneus от 15 мая 2020, 15:11
Что ж я сразу-то не спросил - серверный вариант или файловый) Тогда вся эта возня с вызовом серверной процедуры не нужна, путь к папке с базой вытаскивайте из функции СтрокаСоединенияИнформационнойБазы(), к нему прилепляйте путь до файла штампа и получите свое вложение.

&НаКлиенте
Процедура ОтправитьПисьмо(Команда)

    СтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы();
    ПутьКБД = Сред(СтрокаСоединенияСБД, 6, СтрДлина(СтрокаСоединенияСБД) - 6);
    ПутьКФайлу = ПутьКБД + "\Shtamp\Kroy\Sh_150.pdf";
    Вложение = Новый ДвоичныеДанные(ПутьКФайлу);

    ИПП = Новый ИнтернетПочтовыйПрофиль;
    ....
    и т.д.
   

Видимо сегодня не мой день. Выдает такую ошибку при попытки отправить:
{ОбщаяФорма.ОтправкаПочты.Форма(10)}: Ошибка при вызове конструктора (ДвоичныеДанные)
    Вложение = Новый ДвоичныеДанные(ПутьКФайлу);
по причине:
Недопустимое значение параметра (параметр номер '1')


Добавлено: 15 мая 2020, 18:22


Цитата: Funt432286 от 15 мая 2020, 17:59
Цитата: antoneus от 15 мая 2020, 15:11
Что ж я сразу-то не спросил - серверный вариант или файловый) Тогда вся эта возня с вызовом серверной процедуры не нужна, путь к папке с базой вытаскивайте из функции СтрокаСоединенияИнформационнойБазы(), к нему прилепляйте путь до файла штампа и получите свое вложение.

&НаКлиенте
Процедура ОтправитьПисьмо(Команда)

    СтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы();
    ПутьКБД = Сред(СтрокаСоединенияСБД, 6, СтрДлина(СтрокаСоединенияСБД) - 6);
    ПутьКФайлу = ПутьКБД + "\Shtamp\Kroy\Sh_150.pdf";
    Вложение = Новый ДвоичныеДанные(ПутьКФайлу);

    ИПП = Новый ИнтернетПочтовыйПрофиль;
    ....
    и т.д.
   

Видимо сегодня не мой день. Выдает такую ошибку при попытки отправить:
{ОбщаяФорма.ОтправкаПочты.Форма(10)}: Ошибка при вызове конструктора (ДвоичныеДанные)
    Вложение = Новый ДвоичныеДанные(ПутьКФайлу);
по причине:
Недопустимое значение параметра (параметр номер '1')


И еще маленький вопросик, не получается сделать запрос из справочника (не хочу из-за этой мелочи тему создавать)
из справочника Бумага необходимо вернуть значение Валюта по Наименованию (Ссылка).


&НаСервере
Функция ПолучитьВалютуБумага(Ссылка)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦифраМатериал.Наименование,
| ЦифраМатериал.Валюта КАК Валюта
|ИЗ
| Справочник.ЦифраМатериал КАК ЦифраМатериал
|ГДЕ
| ЦифраМатериал.Наименование = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Ссылка);

РезультатЗапроса = Запрос.Выполнить().Выгрузить();

Возврат РезультатЗапроса [0].Валюта;
КонецФункции

в поцедуре наКлиенте
БумагаВалюта = ПолучитьВалютуБумага(стрБумага);
Сообщить(БумагаВалюта);

Выводит пустое сообщение (просто какой-то тупняк жуткий)


antoneus

Путь к файлу валидный? Если его вставить в адресную строку проводника - файл откроется?

UPD: Если бы вы вручную захотели этот файл прикрепить к письму - где и как бы вы его взяли?

Funt432286

Цитата: antoneus от 15 мая 2020, 18:24
Путь к файлу валидный? Если его вставить в адресную строку проводника - файл откроется?

UPD: Если бы вы вручную захотели этот файл прикрепить к письму - где и как бы вы его взяли?

Да файл открывается, если в ручную то файл лежит E:\1C\принт_1С\Shtamp\Kroy\

antoneus

Вставьте Сообщить(ПутьКФайлу) перед созданием двоичных данных - что выведет?

По запросу -

ГДЕ
|    ЦифраМатериал.Ссылка= &Ссылка

Funt432286

Цитата: antoneus от 15 мая 2020, 18:43
Вставьте Сообщить(ПутьКФайлу) перед созданием двоичных данных - что выведет?


"E:\1C\принт_1С"\Shtamp\Kroy\Sh_150.pdf - вот что он выводит. Получается он начало пути выводит в кавычки и тем самым разбивает весь путь на две части

LexaK

Funt432286,
ЦитироватьВидимо сегодня не мой день.
на прочь забыли как отладчик запускать?
ну небольшая ошибочка же была, хоть какие-то описки в советах могли бы сами поправить!!!
что же все только сильно пережованное хаваете?

Вообще странно что в каталоге базы еще какие-то подкаталоги

посмотрите как у вас путь к файлу формируется?
добавьте
ПутьКФайлу = ПутьКБД + "\Shtamp\Kroy\Sh_150.pdf";
Сообщить(ПутьКФайлу);//тестовая печать

возьмите его значение и вставьте в проводник, посмотрите открывается ли у вас данная папка? и есть ли там нужный файл?

жуем задачу дальше
в вашем примере не правильно путь выделяется, попробуйте так

&НаКлиенте
Процедура ОтправитьПисьмо(Команда)

    СтрокаСоединенияСБД = СтрокаСоединенияИнформационнойБазы();
//    ПутьКБД = Сред(СтрокаСоединенияСБД, 6, СтрДлина(СтрокаСоединенияСБД) - 6);
    ПутьКБД = Сред(СтрокаСоединенияСБД, 7, СтрДлина(СтрокаСоединенияСБД) - 8);//учет выреза кавычек - на них ругается
    ПутьКФайлу = ПутьКБД + "\Shtamp\Kroy\Sh_150.pdf";
Сообщить(ПутьКФайлу);//тестовая печать
    Вложение = Новый ДвоичныеДанные(ПутьКФайлу);

    ИПП = Новый ИнтернетПочтовыйПрофиль;
    ....
    и т.д.

или все заработает
или ругаться по другому будет, типа Каталог не обнаружен
{(7)}: Ошибка при вызове конструктора (ДвоичныеДанные): Каталог не обнаружен 'E:\!1C\Тест\Отчеты\Test11\ПредложениеТур.txt'

если помогло нажмите: Спасибо!

Funt432286

1. Ругаться он перестал, письмо отправил и даже путь правильно указал. Только вот письмо пришло без файла, но с текстом


2. а по запросу выдает такую ошибку:

{Документ.РасчетЦифра.Форма.ФормаДокумента.Форма(546)}: Индекс находится за границами массива
Возврат РезультатЗапроса [0].Валюта;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск