Перенос файлов из справочника присоединенных файлов в справочник файлов ERP

1. belovnv 14.11.19 10:53 Сейчас в теме
Здравствуйте! Есть необходимость переноса файлов из справочника присоединенных файлов в справочник "Файлы" ERP, как это можно реализовать?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
14. belovnv 14.11.19 14:31 Сейчас в теме
Решение проблемы:
1. Пишем запрос к регистру сведений присоединенные файлы где обходим нужные нам файлы.
2. В выборке обрабатываем хранимый файл:
ХВ = Выборка.ХранимыйФайл.Получить();
Адрес = ПоместитьВоВременноеХранилище(ХВ);

3. После создаем структуру для процедуры типовой РаботаСФайламиСлужебныйВызовСервера.СоздатьФайлСВерсией(Объект.Спецификация, СведенияОФайле);, где 1 параметром передаем спецификацию, а 2 структуру:
СведенияОФайле.Вставить("АдресВременногоХранилищаФайла", Адрес);
СведенияОФайле.Вставить("ВремяИзменения", Выборка.ПрисоединенныйФайл.ДатаСоздания);
СведенияОФайле.Вставить("ВремяИзмененияУниверсальное", Выборка.ПрисоединенныйФайл.ДатаСоздания);
СведенияОФайле.Вставить("ЗаписатьВИсторию", Истина);
СведенияОФайле.Вставить("ИмяБезРасширения", Выборка.ПрисоединенныйФайл.Наименование);
СведенияОФайле.Вставить("РасширениеБезТочки", Выборка.ПрисоединенныйФайл.Расширение);
СведенияОФайле.Вставить("ХранитьВерсии", Истина);		
СведенияОФайле.Вставить("Автор", "Автор");
СведенияОФайле.Вставить("Зашифрован", Ложь);
Показать

И уаля!)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. lefthander 14.11.19 11:22 Сейчас в теме
(1)Сначала присоединенные файлы сохранить на диск, затем добавить их в справочник файлы.
Это долго и неудобно. Можно написать обработку которая все это сделает.
9. dhurricane 14.11.19 11:51 Сейчас в теме
(1) Уточните, пожалуйста, все таки откуда и куда нужно перенести файлы?

Например, в ERP 2.4.7.141 есть библиотечная процедура переноса файлов:
РаботаСФайлами.ИзменитьСправочникХраненияФайлов(ВладелецФайлов, ИмяСправочника);
Но как я понимаю, она сохраняет за файлом его прежнего владельца. Подходит ли Вам это?
11. dhurricane 14.11.19 12:04 Сейчас в теме
(1) Если же Вам требуется "свалить" все присоединенные файлы в одну "кучу", отвязав их от прежнего владельца, рассмотрите следующие процедуры и функции:
// получение массива всех присоединенных файлов
РаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(ВладелецФайла, Файлы);

// извлечение двоичных данных и прочей информации присоединенного файла
РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные, ДляРедактирования);

// присоединение файла к новому владельцу или папке с файлами
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресФайлаВоВременномХранилище);
2. user633533_encantado 11 14.11.19 11:05 Сейчас в теме
1. Справочников присоединенных файлов много. У вас какой-то конкретный ?
2. Владельцем файла в справочнике файлы могут быть только некоторые объекты, а не что угодно.
3. belovnv 14.11.19 11:09 Сейчас в теме
(2) Разницы то же нету, в данном случае справочник Ресурсные спецификации присоединенные файлы
4. user633533_encantado 11 14.11.19 11:10 Сейчас в теме
(3) вы пункт 2 читали в моем первом посте ?

А вообще какая-то нелепая задача.
5. konyashkingn 2 14.11.19 11:19 Сейчас в теме +0.5 $m
(4) ну ладно, раз вы так считаете, что нелепая задача, тогда делать ее не будем. Спасибо, что открыли нам глаза!)
8. user633533_encantado 11 14.11.19 11:43 Сейчас в теме
(5)
(7)
Ладно, убедили, не нелепая.

А по существу решения, что мешает просто скопировать элементы справочника в справочник файлы. А потом пометить скопированные на удаление.
10. lefthander 14.11.19 11:54 Сейчас в теме
(8)Нет такого функционала. Так же как не скопировать элемент одного справочника в элемент другого. Можно только через сохранить на диск и в другом справочнике добавить с диска. Просто я в ЕРП работаю, знаю. Надо в бухгалтерию глянуть как там.
12. user633533_encantado 11 14.11.19 12:32 Сейчас в теме
(10) Самому написать. На диск сохранять то зачем, файлы хранятся в хранилище значения в виде двоичных данных, их и копировать.
13. lefthander 14.11.19 14:23 Сейчас в теме
7. lefthander 14.11.19 11:29 Сейчас в теме
(4)Нормальная задача, есть присоединенные файлы к куче объектов, а в ЕРП есть хранилище файлов без привязки к объектам.
14. belovnv 14.11.19 14:31 Сейчас в теме
Решение проблемы:
1. Пишем запрос к регистру сведений присоединенные файлы где обходим нужные нам файлы.
2. В выборке обрабатываем хранимый файл:
ХВ = Выборка.ХранимыйФайл.Получить();
Адрес = ПоместитьВоВременноеХранилище(ХВ);

3. После создаем структуру для процедуры типовой РаботаСФайламиСлужебныйВызовСервера.СоздатьФайлСВерсией(Объект.Спецификация, СведенияОФайле);, где 1 параметром передаем спецификацию, а 2 структуру:
СведенияОФайле.Вставить("АдресВременногоХранилищаФайла", Адрес);
СведенияОФайле.Вставить("ВремяИзменения", Выборка.ПрисоединенныйФайл.ДатаСоздания);
СведенияОФайле.Вставить("ВремяИзмененияУниверсальное", Выборка.ПрисоединенныйФайл.ДатаСоздания);
СведенияОФайле.Вставить("ЗаписатьВИсторию", Истина);
СведенияОФайле.Вставить("ИмяБезРасширения", Выборка.ПрисоединенныйФайл.Наименование);
СведенияОФайле.Вставить("РасширениеБезТочки", Выборка.ПрисоединенныйФайл.Расширение);
СведенияОФайле.Вставить("ХранитьВерсии", Истина);		
СведенияОФайле.Вставить("Автор", "Автор");
СведенияОФайле.Вставить("Зашифрован", Ложь);
Показать

И уаля!)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот