Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: некорректная работа почтового клиента
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
kapacb
Добрый день.

Пробую подружить "Бухгалтерия для Украины" 2.0 с почтой. Почтовый сервер в организации использует нестандартный порт imap. Почему-то какой порт ни указываю в настройках учетной записи эл. почты, 1с все равно берет 993.

в функцииРаботаСПочтовымиСообщениямиСлужебный.ИнтернетПочтовыйПрофиль(УчетнаяЗапись, ДляПолучения = Ложь) Экспорт

есть такой код:

    Результат = Новый ИнтернетПочтовыйПрофиль;
    ЗаполнитьЗначенияСвойств(Результат, Выборка, ТребуемыеСвойства, ИсключаемыеСвойства);

после этого Результат.ПортIMAP = 993

если немного подправить:
    Результат = Новый ИнтернетПочтовыйПрофиль;
    ЗаполнитьЗначенияСвойств(Результат, Выборка, ТребуемыеСвойства, ИсключаемыеСвойства);
    Результат.ПортIMAP = Выборка.ПортIMAP;

то все работает и порт заполняется корректно.
ИсключаемыеСвойства = неопределено. ТребуемыеСвойства = "АдресСервераIMAP,ПортIMAP,ИспользоватьSSLIMAP,ПользовательIMAP,ПарольIMAP,ТолькоЗащищеннаяАутентификацияIMAP"

Почему ЗаполнитьЗначенияСвойств() может пропускает свойство "ПортIMAP"?

daveal
По ходу он заполняет, но использование порта по умолчанию на изменение флага "ИспользоватьSSLIMAP" завязано - т.е. при изменении флага, меняется и порт. Перенесите порт в конец списка свойств
"АдресСервераIMAP,ИспользоватьSSLIMAP,ПользовательIMAP,ПарольIMAP,ТолькоЗащищеннаяАутентификацияIMAP,ПортIMAP"
kapacb
daveal @ Сегодня, 14:34 необходимо зарегистрироваться для просмотра ссылки ,
действительно, перенос в конец списка помог. Но не совсем понятно почему так? Насколько я понимаю ЗаполнитьЗначенияСвойств() просто копирует значения. Причем тут порядок следования?
daveal
kapacb @ Сегодня, 17:43 необходимо зарегистрироваться для просмотра ссылки ,
ПортIMAP меняется на 993 при изменении флага ИспользоватьSSLIMAP. Вот если сначала изменить порт, потом изменить флаг, то порт будет 993. Если сначала меняем флаг, потом порт, то соответственно остается указанный порт
kapacb
daveal,
на форме? После установки флага заменяю порт на тот, что мне нужен. нажимаю сохранить. после чего жму проверить... в структуру выборки порт правильный попадает, но... после заполнения в результате оказывается порт 993. ну или 143 если флаг не стоит.
daveal
kapacb @ Сегодня, 18:07 необходимо зарегистрироваться для просмотра ссылки ,
Свойства копируются в том порядке, который указан в строке.
Флаг не на форме, а у почтового профиля. Даже если просто вызвать, код

    Результат = Новый ИнтернетПочтовыйПрофиль;
    Результат.ПортIMAP = 55; // любой порт не 143, 993
    Результат.ИспользоватьSSLIMAP = Ложь; // или Истина, не важно

то после установки значения флага ИспользоватьSSLIMAP порт сбрасывается.
kapacb
daveal @ Сегодня, 18:27 необходимо зарегистрироваться для просмотра ссылки ,
Понял. Спасибо за объяснение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.