Почему не выбираются только письма с указанной даты, а выбираются все?
НовыеСооб = Почта.ПолучитьИдентификаторы(ИДы,ПараметрыОтбора)
где ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ПослеДатыОтправления", ДатаНачала);
Кратко:
1) Подключаюсь к ИнтернетПочта,
2) проверяю идентификаторы загруженных писем (в документе письмо есть поле идентификатора),
3) ТУТ хотелось бы получить массив писем только начиная с указанной даты и с исключением уже загруженных
4) загружаем в документы полученный массив писем
Код:
Код 1C v 8.х
//получить почту по кнопке
Процедура ПолучитьПочтуПользователя(ТекущийПользователь) Экспорт
ДатаНачала=Дата(2013,09,29); //дату потом получу запросом последнего письма
ВвестиЗначение(ДатаНачала,"С какой даты загружать письма?",Тип("Дата"));
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(ПолучитьПрофильПриПолучении(ТекущийПользователь));
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
//получим идентификаторы загруженных писем
ИДы = Новый Массив;
Запрос=Новый Запрос("ВЫБРАТЬ
| ПочтаВходящая.ИдПисьма
|ИЗ
| Документ.ПочтаВходящая КАК ПочтаВходящая");
ВосЗнач = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдПисьма");
Если ВосЗнач <> Неопределено Тогда
ИДы = ВосЗнач;
КонецЕсли;
//ПолучитьИдентификаторы(<МассивИдентификаторов>, <ПараметрыОтбора>)
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ПослеДатыОтправления", ДатаНачала);
НовыеСооб = Почта.ПолучитьИдентификаторы(ИДы,ПараметрыОтбора);
Если НовыеСооб.Количество() > 0 Тогда
// Получим только новые сообщения, без загруж-ых
Масс = Почта.Выбрать(Ложь, НовыеСооб); //Выбрать(<УдалятьСообщения>, <МассивЗаголовковСообщенийИлиИдентификаторов>)
сообщить("Кол-во писем: "+НовыеСооб.Количество());
Иначе
Сообщить("Новых сообщений нет");
Почта.Отключиться();
Возврат;
КонецЕсли;
Для Каждого Письмо Из Масс Цикл
Если Письмо.ДатаОтправления>=ДатаНачала Тогда
//создаем новый документ Почта для нового письма
НовДок = Документы.ПочтаВходящая.СоздатьДокумент();
НовДок.Дата =ТекущаяДата();//дата получения почты
НовДок.УстановитьНовыйНомер();
НовДок.Пользователь =ТекущийПользователь;
НовДок.ДатаОтправки =Письмо.ДатаОтправления;
НовДок.ТемаПисьма =Письмо.Тема;
НовДок.ИмяОтправителя =Письмо.Отправитель.ОтображаемоеИмя;
НовДок.АдресОтправителя =Письмо.Отправитель.Адрес;
НовДок.ИдПисьма =Письмо.Идентификатор[0];
// Перебираем получателей сообщения
// Перебираем тексты сообщения
Если Письмо.Вложения.Количество()>0 Тогда
НовДок.ЕстьВложения=Истина;
Иначе
НовДок.ЕстьВложения=Ложь;
КонецЕсли;
НовДок.Записать();
КонецЕсли;
КонецЦикла;
// отключение
Почта.Отключиться();
КонецПроцедуры