|
Присоединенные файлы номенклатура сохранить в файл. 🠗 (Волшебник 01.02.2023 16:01) | ☑ | ||
---|---|---|---|---|
0
K1RSAN
01.02.23
✎
15:35
|
В общем, нужно выгрузить из УТ (для Казахстана) картинки номенклатуры.
Пытался получить данные из справочника, из регистра двоичные данные файла. Почему-то в обоих случаях пишет "метод объекта (Записать) не обнаружен". В Файл (из кода) имеет тип "Структура" В "Двоичные данные" - тоже. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайла, | НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка, | Номенклатура.Код КАК Код, | НоменклатураПрисоединенныеФайлы.Расширение КАК Расширение, | НоменклатураПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище, | ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла КАК ДвоичныеДанныеФайла |ИЗ | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО НоменклатураПрисоединенныеФайлы.ВладелецФайла = Номенклатура.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов | ПО НоменклатураПрисоединенныеФайлы.Ссылка = ДвоичныеДанныеФайлов.Файл |ГДЕ | НоменклатураПрисоединенныеФайлы.ВладелецФайла = &ВладелецФайла | И Номенклатура.ФайлКартинки.Ссылка = НоменклатураПрисоединенныеФайлы.Ссылка"; Запрос.УстановитьПараметр("ВладелецФайла", Номенклатура); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Файл = ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла.Получить(); Файл = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ВыборкаДетальныеЗаписи.Ссылка); ФотоХранилище = ПоместитьВоВременноеХранилище(Файл, Новый УникальныйИдентификатор); ПутьКФайлуExcel = ПолучитьИмяВременногоФайла("xlsx"); //Файл.Записать("c:\temp\1.jpg"); ДвоичныеДанные = ПолучитьИзВременногоХранилища(ФотоХранилище); ДвоичныеДанные.Записать("c:\temp\1.jpg"); КонецЦикла; Пока пробую выгрузить по ссылке картинку, но должно в цикле пробежаться потом по всем и выгрузить |
|||
1
Kassern
01.02.23
✎
15:37
|
(0) "метод объекта (Записать) не обнаружен"" - еще бы, у вас переменная ДвоичныеДанные <> тип ДвоичныеДанные. Скорее всего вообще неопределено у вас там)
|
|||
2
Kassern
01.02.23
✎
15:38
|
Файл = ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла.Получить();
Файл = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ВыборкаДетальныеЗаписи.Ссылка); - вот это вы зачем 2 раза переменную переопределили? Что у вас в итоге (в отладке) в Файл находится?) |
|||
3
K1RSAN
01.02.23
✎
15:52
|
Это я просто дописываю разное пытаюсь.
В итоге отладка показывает, что у меня в файле находится некая структура с кучей реквизитов |
|||
4
K1RSAN
01.02.23
✎
15:52
|
А в первом случае - некие двоичные файлы (всякие FF D8 FF и так далее)
|
|||
5
K1RSAN
01.02.23
✎
15:57
|
Разобрался. Первый вариант записать получается. Видимо по ходу экспериментов сам себе испортил всё
|
|||
6
K1RSAN
01.02.23
✎
16:03
|
В общем сохранить удалось
Файл = ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла.Получить(); Файл.Записать("c:\temp\" + ВыборкаДетальныеЗаписи.ВладелецФайла + "." + ВыборкаДетальныеЗаписи.Расширение); Но другая проблема. В наименовании номенклатуры используется символ "/" и 1С воспринимает, что надо создать папку и туда записывать файл с остатком наименования... |
|||
7
lodger
01.02.23
✎
16:05
|
(6) Файл = ВыборкаДетальныеЗаписи.ДвоичныеДанныеФайла.Получить();
Файл.Записать("c:\temp\" + СтрЗаменить(ВыборкаДетальныеЗаписи.ВладелецФайла,"/","") + "." + ВыборкаДетальныеЗаписи.Расширение); |
|||
8
K1RSAN
01.02.23
✎
16:07
|
(7) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |