Добрый день, в базе есть присоединенные файлы привязанные к одному объекту, как мне сделать копию этого файла и привязать к другому объекту?
Пример:
В документе поступления товаров есть файл 11.xls
мне нужно к документу реализация сделать копию этого файла 11.xls и привязать его к этой реализации.
Делаю созданием нового справочника, копирую все данные из исходника и записываю новый справочник присоединенный файл. Сам файл появляется но он пустой, при его открытии система выдает что файл был удален или отчищен.
Пример:
В документе поступления товаров есть файл 11.xls
мне нужно к документу реализация сделать копию этого файла 11.xls и привязать его к этой реализации.
Делаю созданием нового справочника, копирую все данные из исходника и записываю новый справочник присоединенный файл. Сам файл появляется но он пустой, при его открытии система выдает что файл был удален или отчищен.
Прикрепленные файлы:
По теме из базы знаний
- Подключение нового справочника к подсистемам БСП (дополнительные реквизиты, файлы, запрет редактирования)
- Присоединенные файлы в 1С:Бухгалтерии в расширении
- Как не отстать от развития экосистемы 1С
- Присоединенные файлы в новом документе через расширение без изменения основной конфигурации
- Слайдер изображений для номенклатуры
Найденные решения
РЕШЕНИЕ:
Переписал типовую процедуру
Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт
Изначальна она могла копировать прикрепленные файлы только в пределах одинаковых типов справочников, документов и т.д. Переписал так что она может теперь копировать файл из любого документа, справочника и т.д. в любой нужный документ справочник и т.д.
Это оказалось более правильным и простым решением, чем заниматься сохранением файла на диск, затем загрузкой удалением и т.д.
Переписал типовую процедуру
Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт
Изначальна она могла копировать прикрепленные файлы только в пределах одинаковых типов справочников, документов и т.д. Переписал так что она может теперь копировать файл из любого документа, справочника и т.д. в любой нужный документ справочник и т.д.
Это оказалось более правильным и простым решением, чем заниматься сохранением файла на диск, затем загрузкой удалением и т.д.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Увы, сегодня этого нельзя сделать через БСП.
Когда-то это будет реализовано, наверно.
Можно только файл ещё раз прикрепить к другому объекту (будет две копии одного файла).
Только самостоятельно придумать механизм реализации.
Логику можете подсмотреть в linux, где есть файлы и есть ссылки на файлы.
Поиск в интернете: "Символические и жесткие ссылки в Linux"
Когда-то это будет реализовано, наверно.
Можно только файл ещё раз прикрепить к другому объекту (будет две копии одного файла).
Только самостоятельно придумать механизм реализации.
Логику можете подсмотреть в linux, где есть файлы и есть ссылки на файлы.
Поиск в интернете: "Символические и жесткие ссылки в Linux"
(12)
Одной строчкой - нельзя.
А вот если разбить процесс исполнения своей хотелки на три последовательных логических действия - то вполне себе можно обойтись тремя строчками кода из БСП.
Даже двумя из БСП, и одной не из БСП.
Увы, сегодня этого нельзя сделать через БСП.
ЧЕГОЙ_ТО???
Одной строчкой - нельзя.
А вот если разбить процесс исполнения своей хотелки на три последовательных логических действия - то вполне себе можно обойтись тремя строчками кода из БСП.
Даже двумя из БСП, и одной не из БСП.
(16) Не понимаю сложностей
1. Программно получить рандомное имя временного файла (или не получать, а использовать хардкодное)
2. Прочитать по ссылке из Источника ДД (БСП)
3. Сохранить ДД из п.2. в файл с именем из п.1. в темп
4. Добавить рандомный файл из п.3. в Приемник по ссылке (БСП)
5. Удалить рандомный файл из п.3. из темпа. (если он НЕ самоочищающийся)
Пять строчек. ПЯТЬ, КАРЛ!!!
Но можно и исключить 1 и 5 строчки. Останется ТРИ.
1. Программно получить рандомное имя временного файла (или не получать, а использовать хардкодное)
2. Прочитать по ссылке из Источника ДД (БСП)
3. Сохранить ДД из п.2. в файл с именем из п.1. в темп
4. Добавить рандомный файл из п.3. в Приемник по ссылке (БСП)
5. Удалить рандомный файл из п.3. из темпа. (если он НЕ самоочищающийся)
Пять строчек. ПЯТЬ, КАРЛ!!!
Но можно и исключить 1 и 5 строчки. Останется ТРИ.
(19)
То есть ты реально считаешь, что подсказать верное направление - это не помощь. А помощь - это только когда сделать ВМЕСТО.
Верно?
Нужно записать файл.
Да, и что? Это как раз и есть строчка НЕ из БСП
Нужно удалить файл. (одну из ссылок)
Нет такого в постановке автора. У него есть задача СКОПИРОВАТЬ. А не удалять что-то потом.
Нужно помечать на удаление файл.
Читай выше.
То есть ты реально считаешь, что подсказать верное направление - это не помощь. А помощь - это только когда сделать ВМЕСТО.
Верно?
(20) помощь это когда помогли быстро решить вопрос) А не сказали вон лопата, вон куча навоза, копай) тут нужно было бы сказать, вот Васильич у него есть трактор , вызови его он за 3 минуты навоз перекинет)
в общем напишу код выложу тут, кому то может пригодится потом)
в общем напишу код выложу тут, кому то может пригодится потом)
Оттого, что купил точно такой же холодильник как у соседа - соседская водка в холодильнике не появится сама собой.
В присоединенных файлах хранится только описание файла. Самого файла там нет.
А даже если и есть - то при копировании элемента справочника он по любому очищается.
Можешь написать свой механизм копирования элементов справочников присоединенных файлом и заменить им типовой.
В присоединенных файлах хранится только описание файла. Самого файла там нет.
А даже если и есть - то при копировании элемента справочника он по любому очищается.
Можешь написать свой механизм копирования элементов справочников присоединенных файлом и заменить им типовой.
(7) Открыть документацию по БСП по подсистеме Работа с файлами.
Найти метод подсистемы, который добавит файл в присоединенные.
Получить данные существующего присоединенного файла и передать вместе с остальными параметрами в метод.
Чтобы получить данные тоже есть метод.
Какие сложности то?
Найти метод подсистемы, который добавит файл в присоединенные.
Получить данные существующего присоединенного файла и передать вместе с остальными параметрами в метод.
Чтобы получить данные тоже есть метод.
Какие сложности то?
РЕШЕНИЕ:
Переписал типовую процедуру
Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт
Изначальна она могла копировать прикрепленные файлы только в пределах одинаковых типов справочников, документов и т.д. Переписал так что она может теперь копировать файл из любого документа, справочника и т.д. в любой нужный документ справочник и т.д.
Это оказалось более правильным и простым решением, чем заниматься сохранением файла на диск, затем загрузкой удалением и т.д.
Переписал типовую процедуру
Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт
Изначальна она могла копировать прикрепленные файлы только в пределах одинаковых типов справочников, документов и т.д. Переписал так что она может теперь копировать файл из любого документа, справочника и т.д. в любой нужный документ справочник и т.д.
Это оказалось более правильным и простым решением, чем заниматься сохранением файла на диск, затем загрузкой удалением и т.д.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
