Как получить из хранилища значений файл/файлы имея ссылку на объект?

1. rtimothy 30.08.10 12:03 Сейчас в теме
Как получить из хранилища значений файл/файлы имея ссылку на объект?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DimaP 63 02.09.10 13:03 Сейчас в теме
Аналогичная проблема.
3. rtimothy 02.09.10 14:35 Сейчас в теме
Источник алгоритма расчёта: Как рассчитать размер данных помещенных в объект ХранилищеЗначения.

// Универсальная функция для определения размера данных (хранилища значения, двоичных данных, картинки, строки)
// Алгоритм расчета размера данных взят отсюда http://kb.mista.ru/article.php?id=386
//
// Параметры
// <Данные> - данные типа хранилище значений, двоичные данные, картинка, строка
//
// Возвращаемое значение:
// РазмерДанных - числовое значение в байтах
//
Функция ПолучитьРазмерДанных(Знач Данные)

Если ТипЗнч(Данные) = Тип("ХранилищеЗначения") Тогда
ДанныеХранилища = Данные.Получить();
Если ДанныеХранилища = Неопределено Тогда
Возврат 0;
КонецЕсли;
Если ТипЗнч(ДанныеХранилища) = Тип("Картинка") Тогда
ДанныеХранилища = ДанныеХранилища.ПолучитьДвоичныеДанные();
ИначеЕсли ТипЗнч(ДанныеХранилища) = Тип("Строка") Тогда
Возврат СтрДлина(ДанныеХранилища);
КонецЕсли;
ДанныеBase64 = Base64Строка(ДанныеХранилища);
ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
ДанныеBase64 = Base64Строка(Данные);
ИначеЕсли ТипЗнч(Данные) = Тип("Картинка") Тогда
ДанныеBase64 = Base64Строка(Данные.ПолучитьДвоичныеДанные());
Иначе
Возврат СтрДлина(XMLСтрока(Данные));
КонецЕсли;

//Base64 - специальный формат хранения данных в текстовом формате
РазмерДанных = СтрДлина(ДанныеBase64) - ?(Прав(ДанныеBase64, 1) = "=", 1, 0) - ?(Прав(ДанныеBase64, 2) = "==", 1, 0);
РазмерДанных = Цел(РазмерДанных / 4 * 3); // в байтах

Возврат РазмерДанных;

КонецФункции
Светлый ум; +1 Ответить
4. tango 543 02.09.10 14:36 Сейчас в теме
тупо посмотреть, как это делают в типовых
5. rtimothy 02.09.10 16:56 Сейчас в теме
Ваш комментарий Михаил нам ни чем не помог,темболее, что решение уже найдено.
6. DimaP 63 02.09.10 16:57 Сейчас в теме
Спасибо за наводку - использовал Base64Строка\значение, чтобы перекинуть данные!
7. DimaP 63 02.09.10 16:57 Сейчас в теме
rtimothy пишет:

Ваш комментарий Михаил нам ни чем не помог,темболее, что решение уже найдено.


Какое решение?
8. пользователь 19.06.14 07:10
Сообщение было скрыто модератором.
...
9. Miket78 22 23.03.16 12:16 Сейчас в теме
Данная функция к сожалению неверно выдает размер картинки в хранилище.
Для точного определения сохраняю в файл и потом уже смотрю размер.
10. IgorXml 725 22.06.16 12:28 Сейчас в теме
а почему нельзя?:
Размер = ДвоичныеДанные.Размер();
tekit; kozorez; +2 Ответить
11. sondarium 177 10.12.19 11:45 Сейчас в теме
Извиняюсь, если не по теме. Может, кому здесь пригодится. В УТ11, имея ссылку на элемент справочника присоединённых файлов, можно сохранить на диск так:
ДД = РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайлСсылка);
ДД.Записать(ПолноеИмяФайлаНаДиске);
user814594; user1894297; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот