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