Как скопировать присоединенный файл

1. Sakh1CPRO 20.11.24 20:06 Сейчас в теме
Добрый день, в базе есть присоединенные файлы привязанные к одному объекту, как мне сделать копию этого файла и привязать к другому объекту?

Пример:
В документе поступления товаров есть файл 11.xls
мне нужно к документу реализация сделать копию этого файла 11.xls и привязать его к этой реализации.

Делаю созданием нового справочника, копирую все данные из исходника и записываю новый справочник присоединенный файл. Сам файл появляется но он пустой, при его открытии система выдает что файл был удален или отчищен.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
23. Sakh1CPRO 21.11.24 17:28 Сейчас в теме
РЕШЕНИЕ:

Переписал типовую процедуру
Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт

Изначальна она могла копировать прикрепленные файлы только в пределах одинаковых типов справочников, документов и т.д. Переписал так что она может теперь копировать файл из любого документа, справочника и т.д. в любой нужный документ справочник и т.д.

Это оказалось более правильным и простым решением, чем заниматься сохранением файла на диск, затем загрузкой удалением и т.д.
VyacheslavShilov; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
12. vladimir_korshun 87 21.11.24 09:02 Сейчас в теме
(1) Увы, сегодня этого нельзя сделать через БСП.
Когда-то это будет реализовано, наверно.
Можно только файл ещё раз прикрепить к другому объекту (будет две копии одного файла).

Только самостоятельно придумать механизм реализации.
Логику можете подсмотреть в linux, где есть файлы и есть ссылки на файлы.
Поиск в интернете: "Символические и жесткие ссылки в Linux"
13. user2107191 21.11.24 09:26 Сейчас в теме
(12)
Увы, сегодня этого нельзя сделать через БСП.
ЧЕГОЙ_ТО???
Одной строчкой - нельзя.
А вот если разбить процесс исполнения своей хотелки на три последовательных логических действия - то вполне себе можно обойтись тремя строчками кода из БСП.
Даже двумя из БСП, и одной не из БСП.
14. Sakh1CPRO 21.11.24 10:01 Сейчас в теме
(13) НУ вот пример бы, я только пока вижу вариант сохранить файл на сервере во временную папку затем от туда загрузить его в новый документ и прикрепить.
15. user2107191 21.11.24 10:14 Сейчас в теме
(14) И ты конечно же уже его проверил и реализовал? Или все-таки ждешь какое-то заклинание из одной строчки кода?
16. Sakh1CPRO 21.11.24 10:18 Сейчас в теме
(15) да хотелось бы заклинание даже из 3х строчек как ты написал, буду благодарен. Так как заниматься копированием файла на жесткий диск такое себе дело.
17. user2107191 21.11.24 10:20 Сейчас в теме
(16) Ну жди тогда. Если не хочешь читать документацию по ссылке из (8).
Ну или реализуй полностью свой вариант алгоритма, который не использует диск.
Делов-то...
18. user2107191 21.11.24 10:25 Сейчас в теме
(16) Не понимаю сложностей
1. Программно получить рандомное имя временного файла (или не получать, а использовать хардкодное)
2. Прочитать по ссылке из Источника ДД (БСП)
3. Сохранить ДД из п.2. в файл с именем из п.1. в темп
4. Добавить рандомный файл из п.3. в Приемник по ссылке (БСП)
5. Удалить рандомный файл из п.3. из темпа. (если он НЕ самоочищающийся)

Пять строчек. ПЯТЬ, КАРЛ!!!
Но можно и исключить 1 и 5 строчки. Останется ТРИ.
19. vladimir_korshun 87 21.11.24 10:25 Сейчас в теме
(13) Фантазёр))

Нужно записать файл.
Нужно удалить файл. (одну из ссылок)
Нужно помечать на удаление файл.

Вообще странная помощь на форуме, когда говорят иди читай, я тебе не скажу.
Sakh1CPRO; +1 Ответить
20. user2107191 21.11.24 10:28 Сейчас в теме
(19)
Нужно записать файл.
Да, и что? Это как раз и есть строчка НЕ из БСП
Нужно удалить файл. (одну из ссылок)
Нет такого в постановке автора. У него есть задача СКОПИРОВАТЬ. А не удалять что-то потом.
Нужно помечать на удаление файл.
Читай выше.

То есть ты реально считаешь, что подсказать верное направление - это не помощь. А помощь - это только когда сделать ВМЕСТО.
Верно?
21. Sakh1CPRO 21.11.24 10:51 Сейчас в теме
(20) помощь это когда помогли быстро решить вопрос) А не сказали вон лопата, вон куча навоза, копай) тут нужно было бы сказать, вот Васильич у него есть трактор , вызови его он за 3 минуты навоз перекинет)

в общем напишу код выложу тут, кому то может пригодится потом)
22. user2107191 21.11.24 10:53 Сейчас в теме
(21)
вызови его он за 3 минуты навоз перекинет)
И за определенное количество рублей. А бесплатно - могу только посоветовать надеть перчатки перед использованием лопаты.
2. user2107191 20.11.24 20:22 Сейчас в теме
Оттого, что купил точно такой же холодильник как у соседа - соседская водка в холодильнике не появится сама собой.
В присоединенных файлах хранится только описание файла. Самого файла там нет.
А даже если и есть - то при копировании элемента справочника он по любому очищается.

Можешь написать свой механизм копирования элементов справочников присоединенных файлом и заменить им типовой.
3. Sakh1CPRO 20.11.24 20:50 Сейчас в теме
(2) а что нельзя как то указать этим справочника один и тот же файл из хранилища ?
5. user2107191 20.11.24 21:47 Сейчас в теме
(3) Чтобы при удалении из одного документа он автоматически стал недоступным и во втором? Точно такая цель имеется ввиду?
4. Sakh1CPRO 20.11.24 20:50 Сейчас в теме
(2) либо скопировать файл в хранилище ?
6. user2107191 20.11.24 21:48 Сейчас в теме
(4) Так может тогда проще просто взять и присоединить этот же файл типовыми средствами к другому документу? Сохранить на диск из существующего справочника, и записать в другой.
7. Sakh1CPRO 20.11.24 22:59 Сейчас в теме
(6) Буду благодарен за пример =)
8. Sashares 35 20.11.24 23:08 Сейчас в теме
(7) Открыть документацию по БСП по подсистеме Работа с файлами.
Найти метод подсистемы, который добавит файл в присоединенные.
Получить данные существующего присоединенного файла и передать вместе с остальными параметрами в метод.
Чтобы получить данные тоже есть метод.

https://its.1c.ru/db/bsp3110doc#content:1879:hdoc

Какие сложности то?
9. Sakh1CPRO 20.11.24 23:17 Сейчас в теме
(8) можно пример пожалуйста?
10. Sashares 35 20.11.24 23:21 Сейчас в теме
(9) Выше удочка, учитесь ловить рыбу самостоятельно
user2107191; orakool; +2 Ответить
11. пользователь 20.11.24 23:31
Сообщение было скрыто модератором.
...
23. Sakh1CPRO 21.11.24 17:28 Сейчас в теме
РЕШЕНИЕ:

Переписал типовую процедуру
Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт

Изначальна она могла копировать прикрепленные файлы только в пределах одинаковых типов справочников, документов и т.д. Переписал так что она может теперь копировать файл из любого документа, справочника и т.д. в любой нужный документ справочник и т.д.

Это оказалось более правильным и простым решением, чем заниматься сохранением файла на диск, затем загрузкой удалением и т.д.
VyacheslavShilov; +1 Ответить
Оставьте свое сообщение

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