Передать переменную с клиента на сервер
☑
0
Roma1314704
18.03.20
✎
11:42
Добрый день
Необходимо в обработку для отправки почты передать вложенный файл
Использую ДиалогВыбораФайла
&НаКлиенте
Процедура ВыборНачалоВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка=ложь;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл";
Диалог.ПолноеИмяФайла = "";
Фильтр = "pdf (*.pdf)|*.pdf";
Диалог.Фильтр = Фильтр;
Диалог.МножественныйВыбор = Ложь;
Диалог.Каталог = "d:\documents";
Если Диалог.Выбрать() Тогда
ИмяФайла = Диалог.ПолноеИмяФайла;
Иначе
ИмяФайла = "";
КонецЕсли;
Сообщить(ПередатьИмяФайлаНаСервер(ИмяФайла));
КонецПроцедуры
далее создал функцию НаСервере
&НаСервере
Функция ПередатьИмяФайлаНаСервер(ИмяФайла);
Возврат ИмяФайла;
КонецФункции
Процедура ОтправитьПочту(ИмяФайла)
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(ПолучитьПрофильДляИмейл());
Исключение
Сообщить("Ошибка регистрации");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ИмяФайла),"file.pdf");
Сообщение.Отправитель = "info@example.com";
Сообщение.ИмяОтправителя = "Тест";
ПочтовыеАдреса = Сообщение.Получатели;
ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
ПочтовыйАдрес.Адрес = Объект.Получатель.Емейл;
Сообщение.Тема = Объект.ТемаПисьма;
ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = Объект.ТелоПисьма;
ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
Попытка
// Пытаемся послать письмо
Почта.Послать(Сообщение);
Сообщить("Письмо успешно отправлено");
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
// отключение
Почта.Отключиться();
КонецПроцедуры
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ИмяФайла),"file.pdf");
В этой процедуре как сюда передать ИмяФайла?
1
SleepyHead
гуру
18.03.20
✎
12:09
(0) А где "эта процедура" ? Что-то я перед ней не вижу директивы.. она что, в модуле объекта?
2
Roma1314704
18.03.20
✎
12:17
У нее директива - НаСервере.
Она работает, если вместо ИмяФайла прописать строку (путь к файлу).
Но нужен алгоритм через ДиалогВыбораФайла
3
vicof
18.03.20
✎
12:18
Положить файл в хранилище
4
Жан Пердежон
18.03.20
✎
12:45
(2) примеров в любой типовой - как грязи
5
Жан Пердежон
18.03.20
✎
12:47
>> Передать переменную с клиента на сервер
стажа 13 лет, а правильно название темы сформулировать так и не умеем
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший