![]() |
![]() |
![]() |
|
Получить данные из присоединенного файла | ☑ | ||
---|---|---|---|---|
0
Веселый Джузеппе
01.12.15
✎
15:44
|
Добрый вечер. Есть справочник, подключенный к подсистеме двоичные данные. Сделан в самописной системе по аналогии с номенклатурой в УТ 11. Как программно получить значение хранилища с файлом? Визуально картинка храниться и отображается. Пытаюсь сделать так:
&НаСервере Процедура ппппНаСервере() Запрос = Новый запрос("ВЫБРАТЬ | ОбъектПрисоединенныеФайлы.ТекстХранилище КАК ТекстХранилище, | ОбъектПрисоединенныеФайлы.Представление КАК Представление, | ОбъектПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище |ИЗ | Справочник.ОбъектПрисоединенныеФайлы КАК ОбъектПрисоединенныеФайлы"); Для каждого строка из Запрос.Выполнить().Выгрузить() Цикл аа = ПолучитьРазмерДанных(строка.ФайлХранилище); сообщить(аа); сообщить(строка.Представление); КонецЦикла; КонецПроцедуры &НаСервере Функция ПолучитьРазмерДанных(Знач Данные) Если ТипЗнч(Данные) = Тип("ХранилищеЗначения") Тогда ДанныеХранилища = Данные.Получить(); Если ДанныеХранилища = Неопределено Тогда Возврат 0; КонецЕсли; Если ТипЗнч(ДанныеХранилища) = Тип("Картинка") Тогда ДанныеХранилища = ДанныеХранилища.ПолучитьДвоичныеДанные(); ИначеЕсли ТипЗнч(ДанныеХранилища) = Тип("Строка") Тогда Возврат СтрДлина(ДанныеХранилища); КонецЕсли; ДанныеBase64 = Base64Строка(ДанныеХранилища); ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда ДанныеBase64 = Base64Строка(Данные); ИначеЕсли ТипЗнч(Данные) = Тип("Картинка") Тогда ДанныеBase64 = Base64Строка(Данные.ПолучитьДвоичныеДанные()); Иначе Возврат СтрДлина(XMLСтрока(Данные)); КонецЕсли; КонецФункции Но и ФайлХранилище и ТекстХранилище после Данные.Получить(); = нНеопределено. |
|||
1
Веселый Джузеппе
01.12.15
✎
15:51
|
Запрос = Новый запрос("ВЫБРАТЬ
| ОбъектПрисоединенныеФайлы.ТекстХранилище КАК ТекстХранилище, | ОбъектПрисоединенныеФайлы.Представление КАК Представление, | ОбъектПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище, | ОбъектПрисоединенныеФайлы.Ссылка |ИЗ | Справочник.ОбъектПрисоединенныеФайлы КАК ОбъектПрисоединенныеФайлы"); Для каждого строка из Запрос.Выполнить().Выгрузить() Цикл ДвоичныеДанные = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(строка.ссылка); Строка64 = Base64Строка(ДвоичныеДанные); КонецЦикла; разобрался. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |