Имя: Пароль:
1C
1С v8
РС. Получить значение ресурса по ключу
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) Лучше простым запросом тогда. А то разные там объектные оптимистичные блокировки и т.п.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс