![]() |
![]() |
![]() |
|
Как скопировать прикрепленные файлы | ☑ | ||
---|---|---|---|---|
0
SelivanovMusic
24.04.17
✎
03:04
|
Нужно скопировать все файлы из всей номенклатуры в табличной части и прикрепить их к документу (этому же).
При копировании меняю родителя файла на документ, остальные поля без изменения. Файлы копируются, но выдается ошибка при попытке предпросмотра. Пытался скопировать простую картинку. Со стороны пользователя, крепится без всяких косяков, значит что-то не так делаю в коде. Текст ошибки: Ошибка при выполнении файловой операции '/e1cib/tempstorage/a0833b85-9030-4bcf-a474-d89989e67807'. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено) Код: &НаКлиенте Процедура СкопироватьФайлы(Команда) СкопироватьФайлыСервер(); КонецПроцедуры &НаСервере Процедура СкопироватьФайлыСервер() Для Каждого Строка из Объект.Запасы Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураПрисоединенныеФайлы.Автор, | НоменклатураПрисоединенныеФайлы.ВладелецФайла, | НоменклатураПрисоединенныеФайлы.ДатаМодификацииУниверсальная, | НоменклатураПрисоединенныеФайлы.ДатаСоздания, | НоменклатураПрисоединенныеФайлы.Зашифрован, | НоменклатураПрисоединенныеФайлы.Изменил, | НоменклатураПрисоединенныеФайлы.ИндексКартинки, | НоменклатураПрисоединенныеФайлы.Описание, | НоменклатураПрисоединенныеФайлы.ПодписанЭП, | НоменклатураПрисоединенныеФайлы.ПутьКФайлу, | НоменклатураПрисоединенныеФайлы.Размер, | НоменклатураПрисоединенныеФайлы.Расширение, | НоменклатураПрисоединенныеФайлы.Редактирует, | НоменклатураПрисоединенныеФайлы.СтатусИзвлеченияТекста, | НоменклатураПрисоединенныеФайлы.ТекстХранилище, | НоменклатураПрисоединенныеФайлы.ТипХраненияФайла, | НоменклатураПрисоединенныеФайлы.Том, | НоменклатураПрисоединенныеФайлы.ФайлХранилище, | НоменклатураПрисоединенныеФайлы.Наименование |ИЗ | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы |ГДЕ | НоменклатураПрисоединенныеФайлы.ВладелецФайла В(&ВладелецФайла)"; Запрос.УстановитьПараметр("ВладелецФайла", Строка.Номенклатура); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Спр = Справочники.ЗаказПокупателяПрисоединенныеФайлы.СоздатьЭлемент(); Спр.Наименование = Выборка.Наименование; Спр.Автор = Выборка.Автор; Спр.ВладелецФайла = Объект.Ссылка; Спр.ДатаМодификацииУниверсальная = Выборка.ДатаМодификацииУниверсальная; Спр.ДатаСоздания = Выборка.ДатаСоздания; Спр.Зашифрован = Выборка.Зашифрован; Спр.Изменил = Выборка.Изменил; Спр.ИндексКартинки = Выборка.ИндексКартинки; Спр.Описание = Выборка.Описание; Спр.ПодписанЭП = Выборка.ПодписанЭП; Спр.ПутьКФайлу = Выборка.ПутьКФайлу; Спр.Размер = Выборка.Размер; Спр.Расширение = Выборка.Расширение; Спр.Редактирует = Выборка.Редактирует; Спр.СтатусИзвлеченияТекста = Выборка.СтатусИзвлеченияТекста; Спр.ТекстХранилище = Выборка.ТекстХранилище; Спр.ТипХраненияФайла = Выборка.ТипХраненияФайла; Спр.Том = Выборка.Том; Спр.ФайлХранилище = Выборка.ФайлХранилище; Спр.Записать(); КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
1
Cyberhawk
24.04.17
✎
07:33
|
Сколько платят за решение вопроса?
|
|||
2
Мимохожий Однако
24.04.17
✎
07:54
|
Разве у справочника нет метода Копировать вместо СоздатьЭлемент()?
|
|||
3
FIXXXL
24.04.17
✎
08:54
|
(2) плюс ЗаполнитьЗначенияСвойств()
(0) поищи ссылки на справочник файлов, возможно надо еще в РСы писать |
|||
4
FIXXXL
24.04.17
✎
08:57
|
и вот это
Спр.ФайлХранилище = Выборка.ФайлХранилище; если тип ХЗ, не взлетит |
|||
5
SelivanovMusic
25.04.17
✎
06:08
|
(2) Файлы Номенклатуры и файлы документа хранятся в разных справочниках
|
|||
6
SelivanovMusic
25.04.17
✎
06:10
|
(4) тип именно ХЗ
|
|||
7
Мимохожий Однако
25.04.17
✎
06:33
|
Попробуй получить ХЗ, поместить во временное ХЗ и потом поместить в новый элемент справочника.
|
|||
8
AneJIbcuH
25.04.17
✎
08:11
|
(0) Не хилый запрос в цикле, руки оторвать..
|
|||
9
SelivanovMusic
25.04.17
✎
08:21
|
(7)
АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(Выборка.ФайлХранилище.Получить()); ДвоичныеДанные = Новый ДвоичныеДанные(АдресФайлаВоВременномХранилище); Спр.ФайлХранилище = Новый Картинка(ДвоичныеДанные, истина); Ошибка: Каталог не обнаружен 'e1cib\tempstorage\ee970c5d-3c36-4784-b24a-eb0d8f37905c' e1cib\tempstorage\ee970c5d-3c36-4784-b24a-eb0d8f37905c это адрес, полученный в АдресФайлаВоВременномХранилище ДвоичныеДанные = Неопределено Складывается впечатление, что не находится сам файл который я пытаюсь записать. |
|||
10
SelivanovMusic
25.04.17
✎
08:22
|
(8) Этот запрос написан для тестирования, чтобы видеть все значения, которые хранит справочник. В работу соответственно пойдет общий запрос перед циклом.
|
|||
11
FIXXXL
25.04.17
✎
08:36
|
(9) ты путаешь ХЗ и временное хранилище, не надо так
получи из реквизита ДД = Выборка.ФайлХранилище.Получить(); ХЗ = Новый ХранилищеЗначения(ДД); Спр.ФайлХранилище = ХЗ; |
|||
12
SelivanovMusic
25.04.17
✎
08:51
|
(11) ДвоичныеДанные выходят пустые в обоих случаях.
В случае получения ДД из временного "Каталог не найден" (теперь понятно почему) В случае получения ДД из ХранилищеЗначения.Получить() Файлы записываются. Но выходит та самая ошибка в первом посте. "Ошибка при выполнении файловой операции...Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)" |
|||
13
FIXXXL
25.04.17
✎
10:19
|
(12) ну значит пусто там
|
|||
14
SelivanovMusic
25.04.17
✎
11:03
|
Конфа:
1С:Управление небольшой фирмой, редакция 1.6 + CRM, редакция 2.0 (1.6.6/2.0.12) (1.6.6.45) Справочник НоменклатураПрисоединенныеФайлы Там только два реквизита ХранилищеЗначений - ФайлХранилище(который и пытаюсь получить) и ТекстХранилище. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |