Имя: Пароль:
1C
1С v8
Обмен почтовыми сообщениями в управляемой форме.
0 SnikRu
 
19.02.13
08:42
Доброго дня.
Пытаюсь настроить обмен между распределенными базами посредством почтовых сообщений. В качестве инструкции использую материал Волшебника "УРБД за 4 шага". Прекрасная статья, только беда в том, что Форма "Управляемая" упорно не понимает что такое "Почта" и что такое "Почтовое Сообщение"? В обыном приложении даже в пустой базе ошибок не обнаруживается, а в этом:

{ОбщийМодуль.рбРаспределеннаяБаза.Модуль(32,18)}: Тип не определен (Почта)
     Почта = Новый <<?>>Почта();  (Проверка: Сервер)
{ОбщийМодуль.рбРаспределеннаяБаза.Модуль(93,30)}: Тип не определен (ПочтовоеСообщение)
        ПочтовоеСообщение = Новый <<?>>ПочтовоеСообщение;  (Проверка: Сервер)

Пробовал отметить исполнение процедуры &НаКлиенте, синтакситеских ошибок нет, но при выполнении модуля вылетает:

{ОбщаяФорма.ФормаКонстант.Форма(4)}: Метод объекта не обнаружен (рбОтправитьСообщенияОбмена)
   рбРаспределеннаяБаза.рбОтправитьСообщенияОбмена();

Если кто-то настраивал работу почты для Управляемого приложения подскажите Плиз, как проще сделать.
1 SnikRu
 
21.02.13
10:52
Дело немного сдвинулось.
Добавил строку в профиль:
ПочтовыйПрофиль.АутентификацияSMTP =    СпособSMTPАутентификации.Login;
И почта пытается уйти, но недалеко:

{ОбщийМодуль.рбРаспределеннаяБаза.Модуль(93)}: Ошибка при вызове метода контекста (Послать)
        Почта.Послать(ПочтовоеСообщение);
по причине:
Указано недопустимое имя почтового ящика (SMTP error code 553, 5.7.1 Sender address rejected: not owned by auth user.)

Хотя по этим настройкам прекрасно уходит с обычного почтового клиента. Чего не хватает в модуле 1С?
2 Нуф-Нуф
 
21.02.13
10:53
я думаю, у тебя указано недопустимое имя почтового ящика
3 SnikRu
 
28.02.13
09:08
Ребята, как правильно организовать проверку против писем не содержащих вложения. Модуль прекрасно отрабатывает, пока не наткнется на пустое письмо.

Процедура Получение()  Экспорт
                   
   //создадим новый объект
   Профиль = Новый ИнтернетПочтовыйПрофиль;
   
   //Пропишем параметры соединения
   //ip адрес или имя POP3 сервера
     Профиль.АдресСервераPOP3 = Константы.АдресСервераPOP3Обмена.Получить();
   
   
   //Порт SMTP сервера
     Профиль.ПортPOP3 = Константы.ПортСервераPOP3Обмена.Получить();
   
   //Имя пользователя почтового ящика
   Профиль.Пользователь = Константы.ПользовательСервераPOP3Обмена.Получить();
   
   //Пароль доступа к почтовому ящику
     Профиль.Пароль = Константы.ПарольПользователяPOP3Обмена.Получить();

   
   // Создаем объект для работы с почтой
   ИнтернетПочта  = Новый ИнтернетПочта;
   
   //Выполняем подключение, согласно указанный параметров
   Попытка
       ИнтернетПочта.Подключиться(Профиль);
   Исключение
       //При подключении возникла ошибка, сообщим
       Сообщить("Ошибка при подключении к серверу" + ОписаниеОшибки());
       Возврат;
   КонецПопытки;
   
           
      //Выбираем все  письма в массив
      МассивСообщений = Новый Массив;
      МассивСообщений = ИнтернетПочта.Выбрать(Истина);
           
      //Разбираем каждое письмо, и выполняем необходимые действия
       Для Каждого Письмо Из МассивСообщений Цикл
           Тема      =  Письмо.Тема;
           Вложения = Письмо.Вложения;
           //Тексты      =  Письмо.Тексты;
                   
       КонецЦикла;
       
             Для каждого Вложение Из Письмо.Вложения Цикл            
            Вложение.Данные.Записать(Константы.ВременныйКаталог.Получить()+ Вложение.Имя);
            Сообщить("Записан файл- " + Вложение.Имя + ТекущаяДата());
           
       КонецЦикла;
       
   //После получения закрываем соединение
   ИнтернетПочта.Отключиться();
   
КонецПроцедуры
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.