helpf.pro
Регистрация

v8: Как получить ИнтернетПочту, начиная с указанной даты?

elenapa22
02.10.2013 15:31Прочитано: 6091
Почему не выбираются только письма с указанной даты, а выбираются все?
НовыеСооб = Почта.ПолучитьИдентификаторы(ИДы,ПараметрыОтбора)
где ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ПослеДатыОтправления", ДатаНачала);

Кратко:
1) Подключаюсь к ИнтернетПочта,
2) проверяю идентификаторы загруженных писем (в документе письмо есть поле идентификатора),
3) ТУТ хотелось бы получить массив писем только начиная с указанной даты и с исключением уже загруженных
4) загружаем в документы полученный массив писем

Код:
Код 1C v 8.х
 
//получить почту по кнопке
Процедура ПолучитьПочтуПользователя(ТекущийПользователь) Экспорт

ДатаНачала=Дата(2013,09,29); //дату потом получу запросом последнего письма
ВвестиЗначение(ДатаНачала,"С какой даты загружать письма?",Тип("Дата"));

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

//получим идентификаторы загруженных писем
ИДы = Новый Массив;

Запрос=Новый Запрос("ВЫБРАТЬ
| ПочтаВходящая.ИдПисьма
|ИЗ
| Документ.ПочтаВходящая КАК ПочтаВходящая");
ВосЗнач = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдПисьма");

Если ВосЗнач <> Неопределено Тогда
ИДы = ВосЗнач;
КонецЕсли;

//ПолучитьИдентификаторы(<МассивИдентификаторов>, <ПараметрыОтбора>)
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ПослеДатыОтправления", ДатаНачала);

НовыеСооб = Почта.ПолучитьИдентификаторы(ИДы,ПараметрыОтбора);

Если НовыеСооб.Количество() > 0 Тогда
// Получим только новые сообщения, без загруж-ых
Масс = Почта.Выбрать(Ложь, НовыеСооб); //Выбрать(<УдалятьСообщения>, <МассивЗаголовковСообщенийИлиИдентификаторов>)
сообщить("Кол-во писем: "+НовыеСооб.Количество());
Иначе
Сообщить("Новых сообщений нет");
Почта.Отключиться();
Возврат;
КонецЕсли;

Для Каждого Письмо Из Масс Цикл
Если Письмо.ДатаОтправления>=ДатаНачала Тогда
//создаем новый документ Почта для нового письма
НовДок = Документы.ПочтаВходящая.СоздатьДокумент();
НовДок.Дата =ТекущаяДата();//дата получения почты
НовДок.УстановитьНовыйНомер();
НовДок.Пользователь =ТекущийПользователь;
НовДок.ДатаОтправки =Письмо.ДатаОтправления;
НовДок.ТемаПисьма =Письмо.Тема;
НовДок.ИмяОтправителя =Письмо.Отправитель.ОтображаемоеИмя;
НовДок.АдресОтправителя =Письмо.Отправитель.Адрес;
НовДок.ИдПисьма =Письмо.Идентификатор[0];
// Перебираем получателей сообщения

// Перебираем тексты сообщения

Если Письмо.Вложения.Количество()>0 Тогда
НовДок.ЕстьВложения=Истина;
Иначе
НовДок.ЕстьВложения=Ложь;
КонецЕсли;

НовДок.Записать();
КонецЕсли;

КонецЦикла;

// отключение
Почта.Отключиться();

КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.