Получение сообщения с двоичным содержимым в информационной базе «Офис»
Откройте конфигуратор информационной базы Офис и напишите алгоритм получения сообщения с отчетом.
Откройте модуль сервиса интеграции СервисОфиса и напишите тело обработчика СетьМагазинов_ВОфисОбработкаПолученияСообщения
:
Процедура СетьМагазинов_ВОфисОбработкаПолученияСообщения(Сообщение, Отказ)
РазмерСообщения = Сообщение.Параметры.Получить("РазмерСообщения");
Если РазмерСообщения <> Неопределено Тогда
РазмерБуфера = Число(РазмерСообще ния);
Иначе
РазмерБуфера = 1024;
КонецЕсли;
Тело = Новый БуферДвоичныхДанных(0);
Буфер = Новый БуферДвоичныхДанных(РазмерБуфера);
Поток = Сообщение.ПолучитьТелоКакПоток();
Пока Истина Цикл
Прочитано = Поток.Прочитать(Буфер, 0, РазмерБуфера);
Если Прочитано > 0 Тогда
Тело = Тело.Соединить(Буфер);
КонецЕсли;
Если Прочитано < РазмерБуфера Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Отчет = ПолучитьСтрокуИзБуфераДвоичныхДанных(Тело);
ПисьмоОбъект = Справочники.ВходящиеПисьма.СоздатьОбъект();
ПисьмоОбъект.Наименование = "Отчет";
ПисьмоОбъект.Дата = ТекущаяДата();
ПисьмоОбъект.ПочтовыйЯщик = "POP3";
ПисьмоОбъект.ВидСодержимого = Перечисления.ВидСодержимогоВходящегоПисьма.HTML;
ПисьмоОбъект.УстановитьСсылкуНового(Справочники.ВходящиеПисьма.ПолучитьСсылку());
ПисьмоОбъект.Текст = Отчет;
НЗ = РегистрыСведений.СостояниеВходящихПисем.СоздатьНаборЗаписей();
НЗ.Отбор.Письмо.Установить(ПисьмоОбъект.ПолучитьСсылкуНового());
Запись = НЗ.Добавить();
Запись.Письмо = ПисьмоОбъект.ПолучитьСсылкуНового();
Запись.Прочитано = Ложь;
НЗ.Записать();
ПисьмоОбъект.Записать();
КонецПроцедуры