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

подскажите почему не могу подключиться и отправить письмо?

подскажите почему не могу подключиться и отправить письмо?
Я
   YamEgor
 
25.06.20 - 07:45
добрый день! Не получается отправить письмо подскажите что не так делаю... самописная конфигурация, при проведении документа в процедуре ОбработкаПроведения(Отказ, РежимПроведения) делаю определенную проверку и если проверку проходим то надо отправить письмо  с вложением и при проведении получаем ошибки:
1) Ошибка авторизации, введите правильный логин и пароль{Документ.Тестирование.МодульОбъекта(72)}: Значение не является значением объектного типа (Подключиться)
2) Во время отправки письма возникла ошибка{Документ.Тестирование.МодульОбъекта(81)}: Значение не является значением объектного типа (Послать)
3) {Документ.Тестирование.МодульОбъекта(88)}: Значение не является значением объектного типа (Отключиться)
      Email.Отключиться();

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Тестирование.Билет1 КАК Билет1,
    |    Тестирование.Билет2 КАК Билет2,
    |    Тестирование.Билет3 КАК Билет3
    |ИЗ
    |    Документ.Тестирование КАК Тестирование
    |ГДЕ
    |    Тестирование.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    РезОтветов = 0;
    Ответ1 = 3;
    Ответ2 = 4;      
    Ответ3 = 1;      
    
    Пока Выборка.Следующий() Цикл
        Если  Выборка.Билет1 = Ответ1 Тогда
            РезОтветов = РезОтветов+1;
        КонецЕсли;
        
        Если Выборка.Билет2 = Ответ2  Тогда
            РезОтветов = РезОтветов+1;
        КонецЕсли;
        Если Выборка.Билет3 = Ответ3  Тогда
            РезОтветов = РезОтветов+1 ;
        КонецЕсли;
    КонецЦикла;
    ВсеБилеты = 3;
    НабранныйПроцент = Цел(РезОтветов*100/ВсеБилеты);
    НабраноБалов = РезОтветов;
    Если РезОтветов >= 2 Тогда
        Документы.Тестирование.Печать(Ссылка);
        
        УчетнаяЗапись = Новый ИнтернетПочтовыйПрофиль;
        УчетнаяЗапись.ВремяОжидания = 120; ;            
        УчетнаяЗапись.АдресСервераSMTP = "smtp.rambler.ru";      
        УчетнаяЗапись.АдресСервераPOP3 = "pop.rambler.ru";
        УчетнаяЗапись.Пользователь = "*****@rambler.ru";      
        УчетнаяЗапись.ПользовательSMTP = "*****@rambler.ru";
        УчетнаяЗапись.Пароль = "123";      
        УчетнаяЗапись.ПарольSMTP = "123";      
        УчетнаяЗапись.ПортSMTP = 465;
        УчетнаяЗапись.ИспользоватьSSLSMTP = Истина;
        УчетнаяЗапись.ПортPOP3 = 995;
        УчетнаяЗапись.ИспользоватьSSLPOP3 = Истина;
        УчетнаяЗапись.АутентификацияSMTP = СпособSMTPАутентификации.Login;
        Почта = Новый ИнтернетПочта;            

        
        Письмо = Новый ИнтернетПочтовоеСообщение;
        Письмо.Отправитель.Адрес = "*****@rambler.ru";
        Письмо.Отправитель.ОтображаемоеИмя = "Вася";      
        Письмо.Вложения.Добавить("C:\Users\777\Desktop\sert\Sertifikat.PDF", "Сертификат");
        Письмо.Тема = "Ваш сертификат";                    
        Получатель = Письмо.Получатели.Добавить("*****@yandex.ru");
        
        Попытка            
            Почта.Подключиться(УчетнаяЗапись);      
        Исключение            
            Сообщить("Ошибка авторизации, введите правильный логин и пароль" + ОписаниеОшибки(), СтатусСообщения.Важное);      
        КонецПопытки;            
        Текст = Письмо.Тексты.Добавить();      
        Текст.ТипТекста  = ТипТекстаПочтовогоСообщения.ПростойТекст;
        Текст.Текст = "Текст письма, тест";
        
        Попытка            
        Почта.Послать(Письмо);            
                
        Сообщить("Успех");      
        Исключение            
            Сообщить("Во время отправки письма возникла ошибка" + ОписаниеОшибки(), СтатусСообщения.Важное)      
        КонецПопытки;
        
        Почта.Отключиться();
        
    КонецЕсли;
КонецПроцедуры
   Фрэнки
 
1 - 25.06.20 - 07:53
вот даже не гляда в простыню - обработка проведения - это самое хреновое место, куда просто никто и никогда в здравом уме не ставит вызовы асинхронных подпроцессов.

Ну а дальше думай, что нужно сделать по другому.

Хотя на вопрос о причине ошибки это не ответ
   Галахад
 
2 - 25.06.20 - 08:37
А где 
Почта = Новый ИнтернетПочта;?
   YamEgor
 
3 - 25.06.20 - 08:48
(2) сразу после УчетнаяЗапись стоит Почта = Новый ИнтернетПочта;
   Галахад
 
4 - 25.06.20 - 08:52
(3) Да, точно. Не заметил.

А с сервера вообще интернет окрыт?
   ДенисЧ
 
5 - 25.06.20 - 08:53
Отладчиком встать на нужную строку и посмотреть значения переменных - не предлагать?
   Ёпрст
 
6 - 25.06.20 - 08:54
При проведении рассылать письма? Огонь!
   YamEgor
 
7 - 25.06.20 - 09:13
(4) подскажите как отрывать..
   dka80
 
8 - 25.06.20 - 09:14
Замени переменную Почта на Почта1
   JeHer
 
9 - 25.06.20 - 09:14
(7) ---> бородатый дяденька
   YamEgor
 
10 - 25.06.20 - 09:16
(5) отладчиком посмотрел Почта тип строка почему то
   dka80
 
11 - 25.06.20 - 09:18
(10) см (8) Может у тебя есть реквизит на форме Почта
   YamEgor
 
12 - 25.06.20 - 09:23
(11) да точно заменил Почта на Почта1 и все заработало Спасибо брат!!
   MyNick
 
13 - 25.06.20 - 09:30
(12) но с обработкипроведения нужно ЭТО убрать
   YamEgor
 
14 - 25.06.20 - 09:49
(13) а куда это можно убрать? где тогда это можно все сделать? надо чтобы когда документ проведется, т.е. условия будут выполнены тогда это все и отработать должно
   Fedor-1971
 
15 - 25.06.20 - 11:15
(14) например, при проведении пиши в регистр сведений, типа ДокументыДляОтправки и регламентом отправляй, что отправилось, очищай или ставь признак отправки.

В ДО даже есть количество попыток отправки, т.е. пытаемся отправить 3 (или больше) раза, если не получилось, в дальнейшем запись не обрабатываем

Вот выполнятся твои условия, а почта/интернет глюканёт и получишь непроведённый корректный документ.
Кроме того, откроют на посмотреть и нажмут "Провести и закрыть" - и снова полетит сообщение

Чуть больше глобального взгляда на всю систему
   Галахад
 
16 - 25.06.20 - 11:29
Хм. А чем именно плохо посылать письма при проведении?
   ДенисЧ
 
17 - 25.06.20 - 11:31
(16) Неопределённостью времени этой отправки. И блокировкой транзакции в это время
   acht
 
18 - 25.06.20 - 11:32
(16) Тем же, что и вести диалоги с пользователем.
Ну и на закуску - что ты будешь делать с уже отправленым письмом, если транзакция откатится?
   Галахад
 
19 - 25.06.20 - 11:56
(17) Это можно обойти отправив в фоне.

(18) Диалог предполагает интерактив, а тут не нужно ждать ответа.

Тут да. Прикольно может получиться. "Вам почти выписали заказ. Почти..."
   ДенисЧ
 
20 - 25.06.20 - 11:56
(19) Можно. Но ТС же этого не делает...
   ДенисЧ
 
21 - 25.06.20 - 11:57
И да, с откатом транзакции вопрос остаётся.


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