Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Передать переменную с клиента на сервер

Передать переменную с клиента на сервер
Я
   Roma1314704
 
18.03.20 - 11:42
Добрый день
Необходимо в обработку для отправки почты передать вложенный файл

Использую ДиалогВыбораФайла

&НаКлиенте
Процедура ВыборНачалоВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
        СтандартнаяОбработка=ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл";
    Диалог.ПолноеИмяФайла = "";
    Фильтр = "pdf (*.pdf)|*.pdf";
    Диалог.Фильтр = Фильтр;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Каталог = "d:\documents";
    Если Диалог.Выбрать() Тогда
        ИмяФайла = Диалог.ПолноеИмяФайла;
        
     Иначе
       ИмяФайла = "";
   КонецЕсли;
    Сообщить(ПередатьИмяФайлаНаСервер(ИмяФайла));
КонецПроцедуры

далее создал функцию НаСервере

&НаСервере
Функция ПередатьИмяФайлаНаСервер(ИмяФайла);
    
    Возврат ИмяФайла;
КонецФункции



Процедура ОтправитьПочту(ИмяФайла)    
Почта = Новый ИнтернетПочта;
Попытка
    Почта.Подключиться(ПолучитьПрофильДляИмейл());
Исключение
    Сообщить("Ошибка регистрации");
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;

Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ИмяФайла),"file.pdf");
Сообщение.Отправитель = "info@example.com";
Сообщение.ИмяОтправителя = "Тест";
ПочтовыеАдреса = Сообщение.Получатели;
ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
ПочтовыйАдрес.Адрес = Объект.Получатель.Емейл;
Сообщение.Тема = Объект.ТемаПисьма;

ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = Объект.ТелоПисьма;
ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

Попытка
    // Пытаемся послать письмо
    Почта.Послать(Сообщение);
    Сообщить("Письмо успешно отправлено");
Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
КонецПопытки;
// отключение
Почта.Отключиться();
КонецПроцедуры

Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ИмяФайла),"file.pdf");

В этой процедуре как сюда передать ИмяФайла?
   SleepyHead
 
1 - 18.03.20 - 12:09
(0) А где "эта процедура" ? Что-то я перед ней не вижу директивы.. она что, в модуле объекта?
   Roma1314704
 
2 - 18.03.20 - 12:17
У нее директива - НаСервере.
Она работает, если вместо ИмяФайла прописать строку (путь к файлу).
Но нужен алгоритм через ДиалогВыбораФайла
   vicof
 
3 - 18.03.20 - 12:18
Положить файл в хранилище
   Жан Пердежон
 
4 - 18.03.20 - 12:45
(2) примеров в любой типовой - как грязи
   Жан Пердежон
 
5 - 18.03.20 - 12:47
>> Передать переменную с клиента на сервер
стажа 13 лет, а правильно название темы сформулировать так и не умеем

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.