Здравствуйте! Есть необходимость переноса файлов из справочника присоединенных файлов в справочник "Файлы" ERP, как это можно реализовать?
---
Решение проблемы:
1. Пишем запрос к регистру сведений присоединенные файлы где обходим нужные нам файлы.
2. В выборке обрабатываем хранимый файл:

```1c
    ХВ = Выборка.ХранимыйФайл.Получить();
    Адрес = ПоместитьВоВременноеХранилище(ХВ);
```

3. После создаем структуру для процедуры типовой РаботаСФайламиСлужебныйВызовСервера.СоздатьФайлСВерсией(Объект.Спецификация, СведенияОФайле);, где 1 параметром передаем спецификацию, а 2 структуру:

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

И уаля!)
---
Сначала присоединенные файлы сохранить на диск, затем добавить их в справочник файлы.
Это долго и неудобно. Можно написать обработку которая все это сделает.
---
Уточните, пожалуйста, все таки откуда и куда нужно перенести файлы?

Например, в ERP 2.4.7.141 есть библиотечная процедура переноса файлов:

```1c
    РаботаСФайлами.ИзменитьСправочникХраненияФайлов(ВладелецФайлов, ИмяСправочника);
```
Но как я понимаю, она сохраняет за файлом его прежнего владельца. Подходит ли Вам это?
---
Если же Вам требуется "свалить" все присоединенные файлы в одну "кучу", отвязав их от прежнего владельца, рассмотрите следующие процедуры и функции:

```1c
    // получение массива всех присоединенных файлов
    РаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(ВладелецФайла, Файлы);

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

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

А вообще какая-то нелепая задача.
---
ну ладно, раз вы так считаете, что нелепая задача, тогда делать ее не будем. Спасибо, что открыли нам глаза!)
---
(7)
Ладно, убедили, не нелепая.

А по существу решения, что мешает просто скопировать элементы справочника в справочник файлы. А потом пометить скопированные на удаление.
---
Нет такого функционала. Так же как не скопировать элемент одного справочника в элемент другого. Можно только через сохранить на диск и в другом справочнике добавить с диска. Просто я в ЕРП работаю, знаю. Надо в бухгалтерию глянуть как там.
---
Самому написать. На диск сохранять то зачем, файлы хранятся в хранилище значения в виде двоичных данных, их и копировать.
---
прочитайте (6)
---
Нормальная задача, есть присоединенные файлы к куче объектов, а в ЕРП есть хранилище файлов без привязки к объектам.
---
Решение проблемы:
1. Пишем запрос к регистру сведений присоединенные файлы где обходим нужные нам файлы.
2. В выборке обрабатываем хранимый файл:

```1c
    ХВ = Выборка.ХранимыйФайл.Получить();
    Адрес = ПоместитьВоВременноеХранилище(ХВ);
```

3. После создаем структуру для процедуры типовой РаботаСФайламиСлужебныйВызовСервера.СоздатьФайлСВерсией(Объект.Спецификация, СведенияОФайле);, где 1 параметром передаем спецификацию, а 2 структуру:

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

И уаля!)