Имя: Пароль:
1C
1С v8
Помогите с просмотром картинки сохраненной в базе.
0 elCust
 
23.01.17
13:59
Всех приветствую.

Загружаемая картинка сохраняется как двоичные данные в реквизит типа хранилище значения в регистр сведений.

Необходимо сделать просмотр картинки из записи РС.

Если возможно покажите пример реализации.
1 shamannk
 
23.01.17
14:04
2 elCust
 
23.01.17
14:08
(1) Там же нет реализации того, что я прошу.
3 mehfk
 
23.01.17
14:09
А что не получается?
4 Живой Ископаемый
 
23.01.17
14:10
2(2) Как это нет? А что же там?
5 elCust
 
23.01.17
14:16
(3) Да вот все же думаю где хранить изображения. Думаю лучше на FTP. Но, если в базе, то через регистр сведений не получается.
6 Живой Ископаемый
 
23.01.17
14:17
2(5) А почему у всех получается, а у вас - не получается?
Почему например БСП позволяет хранить изображения в базе и имеет целую подсистему для этого, а у вас не выходит? Что вы делаете по-другому?
7 shamannk
 
23.01.17
14:17
(5) Вы первый кто такой вопрос задали))) загугли
8 elCust
 
23.01.17
14:19
(4) Там я так понимаю просмотр реализован через стороннее приложение. А как бы просматривать в 1С.
9 elCust
 
23.01.17
14:20
(7) Конечно я загуглю. Я же обратился к тем, кто это реализовывал и может показать свою реализацию.
10 Живой Ископаемый
 
23.01.17
14:21
2(8) Через объект - картинка, либо через веб-браузер, окно которого показывается внутри 1С.
11 BuHu
 
23.01.17
14:23
(9) как то так
ДанныеКартинки = Данные.Получить();
        Если ТипЗнч(ДанныеКартинки) = Тип("Картинка") Тогда
            ЭлементыФормы.ПолеПредварительногоПросмотра.Картинка = Новый Картинка();
            ЭлементыФормы.ПолеПредварительногоПросмотра.Картинка = ДанныеКартинки;
        Иначе    
            ЭлементыФормы.ПолеПредварительногоПросмотра.Картинка = БиблиотекаКартинок.Скрепка;
        КонецЕсли;
12 elCust
 
23.01.17
14:25
(11) Спасибо. А Данные как получены и сохранены в базу, расскажите пожалуйста.
13 BuHu
 
23.01.17
14:29
(12) данные это ХранилищеЗначения , ресерс регистра сведений
Запись:
Файл = Новый Файл(ИмяФайла);
Если Файл.Существует() И Файл.ЭтоФайл() Тогда
    
    НовЗапись=РегистрыСведений.ФотоАвтомобилей.СоздатьМенеджерЗаписи();
    НовЗапись.Модель=Стр.Модель;
    Попытка
        Данные = Новый ХранилищеЗначения(Новый Картинка(Файл.ПолноеИмя, ЛОЖЬ), Новый СжатиеДанных(9));
    Исключение
        Сообщить("Ошибка добавления файла! Возможно файл открыт другой программой", СтатусСообщения.Внимание);
    КонецПопытки;
    НовЗапись.Цвет=Цвет;
    НовЗапись.Картинка= Данные;
    НовЗапись.Записать();
КонецЕсли;            
Чтение:
Запрос= Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
|    ФотоАвтомобилей.Картинка,
|    ФотоАвтомобилей.Комментарий
|ИЗ
|    РегистрСведений.ФотоАвтомобилей КАК ФотоАвтомобилей
|ГДЕ
|    ФотоАвтомобилей.Модель = &Модель
|    И ФотоАвтомобилей.Цвет = &Цвет";
Запрос.УстановитьПараметр("Модель",СписокМоделей[0].Модель);
Запрос.УстановитьПараметр("Цвет",Цвет);
Выборка=Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    Данные=Выборка.Картинка;
    ОтображениеКартинки();
КонецЕсли;
14 elCust
 
23.01.17
14:31
(13) Отлично. Благодарю. Сейчас реализую у себя.
15 Живой Ископаемый
 
23.01.17
14:33
опять каша из топора.
16 elCust
 
23.01.17
14:42
(15) Все на вас смотрят, ждут пока вы изложите что-то реально стоящее по теме.
17 Живой Ископаемый
 
23.01.17
14:44
2(16) По теме было изложено миллиарды раз и все находится поиском на этом форуме. Тут нечего реально излагать.
Все давным давно пережевано и переварено.
18 elCust
 
23.01.17
14:47
(17) Если вам не интересно обсуждения в этой теме, поищите себя в других темах. Критика тут не уместна.
19 Живой Ископаемый
 
23.01.17
14:49
ну да, критика инвалидов в программировании это кощунственно и бесчеловечно.
Пойду, чего уж там.
20 2dolist
 
23.01.17
14:50
заработало хоть?
21 elCust
 
23.01.17
14:50
(19) Давай давай иди погуляй.
22 elCust
 
23.01.17
14:50
(20) Реализую еще.
23 shamannk
 
23.01.17
15:01
(22) Мда)) Вам дали отрывки когда из хрен знает откуда и вы как слепой бычок ведетесь. Поискать решение которые непросто кое-как работают не хотите. Задумайтесь не изобретаете ли вы велосипед.
24 elCust
 
23.01.17
15:05
(23) Вы с (19) случайно не одно лицо?
25 Живой Ископаемый
 
23.01.17
15:07
2(24) заговор! всюду заговор! все хотят вам зла!
26 shamannk
 
23.01.17
15:07
(24) Как будет все жутко тормозить не пишите.
27 elCust
 
23.01.17
15:08
(26) Да я вынесу наверное фотки на FTP, а а РС буду хранить адрес.
28 elCust
 
23.01.17
15:08
(26) Насчет тормозов 100% точно. Я уже подумал.
29 BuHu
 
23.01.17
15:10
(28) про тормоза - можно подробней ?
30 elCust
 
23.01.17
15:13
(29) Есть подозрения, что когда фоток станет много сохраненных в базе, первое во что это выльется - база вырастет в объеме.

Для варианта клиент-сервер может не так страшно, но в моем случае файловый вариант.

А тормоза могут быть при установке отбора на регистр сведений. Но не факт.
31 Живой Ископаемый
 
23.01.17
15:32
при хранении фалов в базе тормоза происходят в двух местах:
а) При бэкапе-разворачивании
б) при собственно сохранении файла  - это лишний оверхэд по сравнению с вариантом, когда файлы сразу в файловом хранилище.
отбор на рс все равно ставить - что при хранении в базе, что при хранении во вне. В конце концов отбор по самому содержимому хранилища значений не поставить.
32 Живой Ископаемый
 
23.01.17
15:34
Еще нюанс, требующий рассмотрения - чтобы например в одной папке внешнено хранилища не было более какого-то, условно большого количества файлов. например 5000. Как это обеспечить?
Во-вторых дубли файлов - тоже все понятно - при помощи хэшсуммы. Но это при условии что файлы не подвергаются редактированию. Если подвергаются, тогда нужно хранить все копии, даже если у них одинаковая хэшсумма. Потому что позже одна из копий может быть отредактирована, а вторая так и остаться оригинальной
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший