|
Перенести картинку из номенклатуры в характеристику | ☑ | ||
---|---|---|---|---|
0
Олдж
24.01.25
✎
22:46
|
Доброго всем дня, прошу помочь с методикой переноса картинки в базе УНФ из номенклатуры в характеристику. Сами картинки хранятся в НоменклатураПрисоединенныеФайлы и ХарактеристикиПрисоединенныеФайлы.
Делаю вот так: КартинкаХарактеристики = Справочники.ХарактеристикиНоменклатурыПрисоединенныеФайлы.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(КартинкаХарактеристики, Номенклатура.ФайлКартинки,,"Родитель,Владелец"); КартинкаХарактеристики.ВладелецФайла = Характеристика.Ссылка; КартинкаХарактеристики.Записать(); ХарактеристикаСКартинкой = Характеристика.ПолучитьОбъект(); ХарактеристикаСКартинкой.ФайлКартинки = КартинкаХарактеристики.Ссылка; ХарактеристикаСКартинкой.Записать(); Ошибок нет, но картинка у характеристики не появляется. |
|||
2
lEvGl
гуру
24.01.25
✎
23:05
|
судя по коду
ЗаполнитьЗначенияСвойств(КартинкаХарактеристики, Номенклатура.ФайлКартинки,,"Родитель,Владелец"); КартинкаХарактеристики - элемент справочника, Номенклатура.ФайлКартинки - хранилище значения (наверно), как ЗаполнитьЗначенияСвойств должно тут отработать? Может Номенклатура? Ну и потом, хранилище значения (возможно) надо Получить(), потом копировать, хотя, может и так отработает, попробуйте зы. УНФов не было, но ЗаполнитьЗначения тут не по теме, либо параметры по-другому передавать надо |
|||
3
Олдж
24.01.25
✎
23:56
|
(2) у файлкартинки из характеристики тип "Справочник.ХарактеристикиНоменклатурыПрисоединенныеФайлы", у файлкартинки из номенклатуры "НоменклатураПрисоединенныеФайлы". Справочники НоменклатураПрисоединенныеФайлы и ХарактеристикиНоменклатурыПрисоединенныеФайлы имеют одинаковый набор реквизитов, поэтому и появилась мысль перенести данные таким образом
|
|||
4
НоваяВолна
24.01.25
✎
23:57
|
(3) Т.е. понимания что есть Номенклатура и чем отличается от ХарактеристикиНоменклатуры за все годы работы так и не появилось?
|
|||
5
Олдж
25.01.25
✎
00:06
|
(4) у Номенклатуры реквизит "ФайлКартинки" тип "Справочник.НоменклатураПрисоединенныеФайлы". У характеристики номенклатуры реквизит "ФайлКартинки" тип "Справочник.ХарактеристикиНоменклатурыПрисоединенныеФайлы". оба этих справочника имеют одинаковый набор реквизитов. Необходимо скопировать картинку из номенклатуры в характеристику.
Если есть понимание методики просьба помочь |
|||
6
lEvGl
гуру
25.01.25
✎
08:14
|
(5) ну чтобы уж точно, то из одного справочника - файл.получить(), это будут двоичные данные, в другом.файл = ДвоичныеДанные первого
ЗаполнитьЗначения наверно должно отработать, но есть сомнения из за типа ХранилищеЗначения, это "обертка" а, ну да в другом.файл = Новый ХранилищеЗначение(ДвоичныеДанные первого, Новый СжатиеДанных(1-9)) |
|||
7
Сергиус
25.01.25
✎
03:50
|
(0)А там случаем не в регистре сведения сами данные то хранятся?
|
|||
8
Олдж
25.01.25
✎
11:01
|
(7) Похоже, что да
|
|||
9
Олдж
25.01.25
✎
11:20
|
(7) Вот так заработало, благодарю
Запрос = Новый Запрос; Запрос.Текст =" |Выбрать | Файл, | ХранилищеДвоичныхданных |ИЗ | РегистрСведений.ХранилищеФайлов |ГДЕ | Файл = &выбФайл"; Запрос.УстановитьПараметр("выбФайл",Характеристика.Владелец.ФайлКартинки.Ссылка); Выборка = Запрос.Выполнить().Выгрузить(); Если Выборка.Количество()>0 Тогда КартинкаХарактеристики = Справочники.ХарактеристикиНоменклатурыПрисоединенныеФайлы.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(КартинкаХарактеристики, Характеристика.Владелец.ФайлКартинки,,"Родитель,Владелец"); КартинкаХарактеристики.ВладелецФайла = Характеристика.Ссылка; ДвоичныеДанные = Характеристика.Владелец.ФайлКартинки.ТекстХранилище.Получить(); КартинкаХарактеристики.ТекстХранилище = Новый ХранилищеЗначения(ДвоичныеДанные); КартинкаХарактеристики.Записать(); ДвоичныеДанные = Характеристика.Владелец.ФайлКартинки.ФайлХранилище.Получить(); КартинкаХарактеристики.ФайлХранилище = ДвоичныеДанные; КартинкаХарактеристики.Записать(); Запись = РегистрыСведений.ХранилищеФайлов.СоздатьМенеджерЗаписи(); Запись.Файл = КартинкаХарактеристики.Ссылка; Запись.ХранилищеДвоичныхДанных = Выборка[0].ХранилищеДвоичныхданных; Запись.Записать(Ложь); ХарактеристикаСКартинкой = Характеристика.ПолучитьОбъект(); ХарактеристикаСКартинкой.ФайлКартинки = КартинкаХарактеристики.Ссылка; ХарактеристикаСКартинкой.Записать(); КонецЕсли; |
|||
10
Tarlich
27.01.25
✎
09:34
|
(9) Похоже вы не перенесли, а скопировали картинку из номенклатуры в её характеристику, а если много характеристик у одной номенклатуры?
|
|||
11
Гений 1С
гуру
26.01.25
✎
14:46
|
||||
12
Олдж
26.01.25
✎
17:39
|
(10) Да, так и есть, так и нужно :) Было 10 номенклатур, стало одна номенклатура и 10 характеристик. Из неиспользуемых номенклатур задача скопировать картинку в соответствующую характеристику.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |