Если Почта.Подключиться("SMTP") = 0 тогда сообщить("Не получилось"); Возврат; иначеЕсли Почта.Подключиться("Отправка") = 1 тогда сообщить("Получилось "); Иначе Сообщить("Просто капец"); КонецЕсли;
Если я запускаю обработку в 1с то мне выдает сообщение "Просто капец", а если я прохожу этот же код в отладчике, то выдает сообщение "Не получилось". С чем это может быть связано?
Если Почта.Подключиться("SMTP") = 0 тогда сообщить("Не получилось"); Возврат; иначеЕсли Почта.Подключиться("Отправка") = 1 тогда сообщить("Получилось "); Иначе Сообщить("Просто капец"); КонецЕсли;
КонецПроцедуры
Тут вопрос не в том почему у меня не работает обработка, а в том почему условие Если тогда себя непонятно ведет.
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
есть мнение, чтоооо... "не думай... о секундах.... свысока... (пам-пам-пам-пам)" (с)
Функция ПопробуемПочту(Почта,тПараметр="",тОшибка="") Перем тВопрос,тРезультат,СчПопыток; СчПопыток=1; тРезультат=""; тВопрос=""; Если ПустоеЗначение(тПараметр)+ПустоеЗначение(тОшибка)<>0 Тогда тПараметр="SMTP"; тОшибка="Не получилось"; КонецЕсли; Сообщить("<"+ТекущееВремя()+"> с параметром """+тПараметр+""" - попытка номер "+СчПопыток,""); Пока Почта.Подключиться("SMTP")<>1 Цикл Если ПустоеЗначение(тВопрос)<>1 Тогда Если Найти("Нет,Отмена",Вопрос(тВопрос,"Да+Нет+Отмена",1))<>0 Тогда тРезультат="Не получилось"; Прервать; КонецЕсли; КонецЕсли; тВопрос="Попробовать с параметром ""SMTP"" ешшо разок ("+СчПопыток+"-ый), ммм?.."; СчПопыток=СчПопыток+1; Сообщить("<"+ТекущееВремя()+"> с параметром ""SMTP"" - попытка номер "+СчПопыток,""); КонецЦикла; Если ПустоеЗначение(тРезультат)<>1 Тогда Сообщить(тРезультат+", попыток = "+СчПопыток+" (потом - надоело).","!!!"); Если Найти("Нет,Отмена",Вопрос("Попробовать с параметром ""Отправка""?..","Да+Нет+Отмена",12))<>0 Тогда Возврат(тРезультат) Иначе Возврат(ПопробуемПочту(Почта,"Отправка","Просто капец")) КонецЕсли; КонецЕсли; КонецФункции //ПопробуемПочту // ПРИМЕР использования: // Если ПустоеЗначение(ПопробуемПочту(Почта))<>0 // Тогда тРезультат="Уря!!! Получилось!!!!!!!"; Сообщить(тРезультат,"i"); Предупреждение(тРезультат,12); КонецЕсли; // // ну и рассказать нам - что там в окне сообщений...
Если я запускаю обработку не в отладчике то: <10:08:48> с параметром "SMTP" - попытка номер 1 Уря!!! Получилось!!!!!!!
А если через отладчик то:
<10:07:34> с параметром "SMTP" - попытка номер 1 <10:07:47> с параметром "SMTP" - попытка номер 2 <10:07:54> с параметром "SMTP" - попытка номер 3 <10:07:58> с параметром "SMTP" - попытка номер 4 <10:08:02> с параметром "SMTP" - попытка номер 5 <10:08:06> с параметром "SMTP" - попытка номер 6 <10:08:09> с параметром "SMTP" - попытка номер 7 <10:08:12> с параметром "SMTP" - попытка номер 8 <10:08:15> с параметром "SMTP" - попытка номер 9 <10:08:18> с параметром "SMTP" - попытка номер 10 <10:08:22> с параметром "SMTP" - попытка номер 11 <10:08:25> с параметром "SMTP" - попытка номер 12 <10:08:28> с параметром "SMTP" - попытка номер 13 <10:08:31> с параметром "SMTP" - попытка номер 14 <10:08:34> с параметром "SMTP" - попытка номер 15
И я прервал отладчик, не понимая почему по разному отрабатывает код.
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0
Ловите фарш. Реально работает. Начинаем, когда длл уже загружена.
Почта.СерверОтправки ="mail.ХХХ.ua"; Почта.ПортОтправки ="26"; Почта.Логин ="base@ХХХ.ua"; Почта.Пароль ="пароль"; Почта.АутентификацияПриОтправке =1; Если Почта.Соединение=0 Тогда Если Почта.Подключиться("Отправка")=0 Тогда Результат="Неудачная попытка подключиться к почтовому серверу."; Возврат 0; КонецЕсли; КонецЕсли;
//отправка Если Почта.Соединение=0 Тогда Сообщить("Потеряно соединение с почтовым сервером"); ИначеЕсли Почта.Отправить()=1 Тогда Сообщить("Отправлено"); Иначе Сообщить("НЕ отправлено..."); КонецЕсли;
Группа: Пользователи
Сообщений: 96
Спасибо сказали: 8 раз
Рейтинг: 0
Вот ещё из реально работающей конфигурации вариант :
глобальник :
Перем глПочта Экспорт; Перем Почта Экспорт;
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда Предупреждение("Не удалось загрузить компоненту работы с почтой"); Возврат; глПочта=0; Иначе глПочта=1; Сообщить("Модуль работы с почтой успешно загружен"); КонецЕсли;
документ :
// отправляем по почте
Если глПочта=1 Тогда Почта=СоздатьОбъект("AddIn.AddInMail"); Иначе Возврат; КонецЕсли;
Почта.СерверОтправки=СокрЛП(Константа.СерверОтправки); Почта.ПортОтправки=Константа.ПортОтправки; Почта.АутентификацияПриОтправке=1; Почта.Логин=СокрЛП(Константа.Логин); Почта.Пароль=СокрЛП(Константа.Пароль); Если Почта.Соединение=0 Тогда Если Почта.Подключиться("Отправка")=0 Тогда Сообщить("Не удалось подключиться к почтовому серверу","!"); Возврат; КонецЕсли; КонецЕсли; //сообщение Почта.Важность=0; Почта.Кодировка="windows-1251"; Почта.ТипПисьма=2; Почта.АдресОтправителя=СокрЛП(Константа.АдресОтправителя); Почта.ИмяОтправителя=СокрЛП(Константа.ИмяОтправителя); //получатели Почта.АдресПолучателя=СокрЛП(Адрес); Почта.ПодтверждениеДоставки=1; Почта.ПодтверждениеПрочтения=1; ТемаПисьма="Накладная "+Накладная; ТекстПисьма="Накладная "+Накладная; //вложения ФС.УстТекКаталог(СокрЛП(ПутьПромФайлов)); Почта.Вложения=""; Если Запаковали=1 Тогда Почта.Вложения=СокрЛП(ПутьПромФайлов)+ИмяФайла+".rar;"; Иначе Почта.Вложения=СокрЛП(ПутьПромФайлов)+ТекФайл+";"; КонецЕсли; Почта.Тема=СокрЛП(ТемаПисьма); Почта.Тело=СокрЛП(ТекстПисьма); //отправка Если Почта.Соединение=0 Тогда Сообщить("Соединение потеряно","!"); ИначеЕсли Почта.Отправить()=1 Тогда Сообщить("Почтовое сообщение отправлено","i"); Результат=1; Иначе Сообщить("Не удалось отправить сообщение","!"); КонецЕсли; //отключение Почта.Отключиться(); Почта="";
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!