В начало

Получить двоичные данные картинки из хранилища

 

            Есть справочник «Хранилище дополнительной информации», из которого нужно прочитать данные о загруженных ранее в него файлах/картинках, а потом передать данные в виде массива структур с элементами «Имя файла» и «Хранилище».

 

Рис. Структура справочника «Хранилище дополнительной информации»

 

            Реквизит «Хранилище» справочника «Хранилище дополнительной информации» имеет тип «ХранилищеЗначения». Чтобы в дальнейшем получить двоичные данные из реквизита «Хранилище» нужно использовать методы «Получить().ПолучитьДвоичныеДанные()».

 

Листинг. Пример использования

Функция МассивИсходящихВложений(Знач СсылкаНаЗаявку)

            Запрос = Новый Запрос;

            Запрос.Текст =

                        "ВЫБРАТЬ

                        |           УК_ХранилищеДополнительнойИнформации.Объект КАК Объект,

                        |           УК_ХранилищеДополнительнойИнформации.ИмяФайла КАК ИмяФайла,

                        |           УК_ХранилищеДополнительнойИнформации.ВидВложения КАК ВидВложения,

                        |           УК_ХранилищеДополнительнойИнформации.Хранилище КАК Хранилище,

                        |           УК_ХранилищеДополнительнойИнформации.ТекстФайла КАК ТекстФайла

                        |ИЗ

                        |           Справочник.УК_ХранилищеДополнительнойИнформации КАК УК_ХранилищеДополнительнойИнформации

                        |ГДЕ

                        |           УК_ХранилищеДополнительнойИнформации.Объект = &Объект

                        |           И УК_ХранилищеДополнительнойИнформации.ВидВложения = &ВидВложения

                        |           И УК_ХранилищеДополнительнойИнформации.ПометкаУдаления = ЛОЖЬ";

           

            Запрос.УстановитьПараметр("ВидВложения", Перечисления.УКНСИ_ВидВложения.Исходящее);

            Запрос.УстановитьПараметр("Объект", СсылкаНаЗаявку);

           

            Результат = Запрос.Выполнить();  

            Выборка = Результат.Выбрать();

           

            М1 = Новый Массив;         

 

            Пока Выборка.Следующий() Цикл 

                        С1 = Новый Структура;

                        С1.Вставить("ИмяФайла", Выборка.ИмяФайла);

                        С1.Вставить("Хранилище", Выборка.Хранилище);

                        М1.Добавить(С1);               

            КонецЦикла;

           

            Возврат М1;

           

КонецФункции

 

//Функция получает ссылку на документ «Заявка»

Функция ПодготовитьСписокИсходящихФайловДляЗагрузкиНаСайт(Знач Соединение, Знач Cookie, Знач СсылкаНаЗаявку)

           

            files = "";

 

            МЗ = МассивИсходящихВложений(СсылкаНаЗаявку);

           

            Для Каждого Эл Из МЗ Цикл 

 

                        qquuid = Новый УникальныйИдентификатор;

                        qqfilename = Эл.ИмяФайла;

                        qqfile = Эл.Хранилище.Получить().ПолучитьДвоичныеДанные();

                        files = ?(ЗначениеЗаполнено(files), files + "," + Строка(qquuid), Строка(qquuid));

                       

                        ЗагрузкаФайлаНаСервер(Соединение, Cookie, qquuid, qqfilename, qqfile);    

            КонецЦикла;

           

            Возврат files;

КонецФункции

 

 

 


Рейтинг@Mail.ru