|
РС. Получить значение ресурса по ключу | ☑ | ||
---|---|---|---|---|
0
travelekb
20.12.20
✎
09:42
|
Добрый день.
Заранее прошу прощения за примитивный вопрос, ответ на который вероятно очевиден. Но битых 2 часа не могу справиться. Непереодический неподчиненный регистр сведений. Измерение - СправочникНоменклатура Ресурс - Строка, путь к файлу на жестком диске (типа "C:/myfolder/myfile.jpg") На форме списка регистра сведений делаю поле картинки, при переборе строк в списке в поле должны отображаться миниатюры изображений. Собственно, ТекущаяСтрока дает ключ записи регистра сведений, но среди полей нет ресурса (оно в принципе и понятно) - а путь к файлу хранится именно в нем. Как получить значение ресурса и вывести в поле картинки? Если в ресурсе хранить тип ХранилищеЗначения с самой картинкой - все отлично работает через ПолучитьНавигационнуюСсылку(КлючЗаписи, "Картинка"), но у меня в ресурсе только путь к ней на диске. Прошу помощи, спасибо. |
|||
1
Beduin
20.12.20
✎
09:50
|
||||
2
travelekb
20.12.20
✎
09:54
|
(1) у меня в ресурсе не ХранилищеЗначений, как в примере, а строка с путем к файлу на диске.
|
|||
3
Beduin
20.12.20
✎
10:02
|
(2) Так преобразуй из строки хранилище получи.
|
|||
4
travelekb
20.12.20
✎
10:07
|
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент) КлЗаписи = Элементы.Список.ТекущаяСтрока; АдресВХранилище = ПолучитьИзображениеСервер(КлЗаписи, ЭтаФорма.УникальныйИдентификатор); АдресИзображения = АдресВХранилище; КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьИзображениеСервер(КлЗаписи,ИдФормы) НавСсыл = ПолучитьНавигационнуюСсылку(КлЗаписи, "ПутьКФайлу"); Возврат ПоместитьВоВременноеХранилище(НавСсыл, ИдФормы); КонецФункции Пытаюсь, не работает. |
|||
5
Beduin
20.12.20
✎
10:19
|
АдресИзображения это поле с картинкой?
|
|||
6
travelekb
20.12.20
✎
10:20
|
(5) да, именно.
|
|||
7
acht
20.12.20
✎
10:22
|
(4) Путь к файлу хранится относительно чего - клиента или сервера? Если сервера, то как-то так:
Функция ПолучитьИзображениеСервер(КлЗаписи) ДД = Новый ДвоичныеДанные(КлЗаписи.ПутьКФайлу); Возврат ПоместитьВоВременноеХранилище(НавСсыл, ДД); КонецФункции |
|||
8
acht
20.12.20
✎
10:22
|
точнее
Возврат ПоместитьВоВременноеХранилище(ДД); |
|||
9
travelekb
20.12.20
✎
10:29
|
(8) относительно сервера
|
|||
10
travelekb
20.12.20
✎
10:33
|
(7) Поле объекта не обнаружено (ПутьКФайлу)
В этот то и проблема, что в отладчике среду полей ключа записи - нет поля ресурса регистра. Поэтому и нет возможности обратиться к его имени (ПутьКФайлу) |
|||
11
travelekb
20.12.20
✎
10:36
|
Вот структура регистра
http://joxi.ru/1A5JoYFDlaLKrE?d=1 |
|||
12
ДенисЧ
20.12.20
✎
10:36
|
Дык этта ...
На то он и ключ, чтобы содержать ключевые поля... Создай манагер записи по данным ключа и прочитай... Оттуда и бери адрес. |
|||
13
travelekb
20.12.20
✎
10:44
|
(12) спасибо, добрый человек. Именно так и получилось.
&НаСервереБезКонтекста Функция ПолучитьИзображениеСервер(КлЗаписи) МенеджерЗаписи = РегистрыСведений.ДополнительнаяИнформация.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = КлЗаписи.Объект; МенеджерЗаписи.ИмяФайла = КлЗаписи.ИмяФайла; МенеджерЗаписи.ОсновноеИзображение = КлЗаписи.ОсновноеИзображение; МенеджерЗаписи.Прочитать(); Двоичное = Новый ДвоичныеДанные(МенеджерЗаписи.ПутьКФайлу); Возврат ПоместитьВоВременноеХранилище(Двоичное); КонецФункции |
|||
14
travelekb
20.12.20
✎
10:47
|
или еще короче
&НаСервереБезКонтекста Функция ПолучитьИзображениеСервер(КлЗаписи) МенеджерЗаписи = РегистрыСведений.ДополнительнаяИнформация.СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(МенеджерЗаписи, КлЗаписи); МенеджерЗаписи.Прочитать(); Двоичное = Новый ДвоичныеДанные(МенеджерЗаписи.ПутьКФайлу); Возврат ПоместитьВоВременноеХранилище(Двоичное); КонецФункции |
|||
15
acht
20.12.20
✎
10:52
|
(14) Лучше простым запросом тогда. А то разные там объектные оптимистичные блокировки и т.п.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |