1с присоединенные файлы

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

Присоединенные файлы.
Присоединенные файлы.

Решение было собрано за 10 минут из информации в интернете.

Для примера возьмем пустую конфигурацию (в конце статьи ссылка на скачивание) и добавим в неё новый документ ‘Задачи’:

Документ: 'задачи'
Документ: ‘задачи’

Отлично! Документ у нас есть, теперь осталось только организовать механизм хранения файлов, чем мы сейчас и займемся.

Файлы мы будем хранить в конфигурации. Все что нам понадобится это создать справочник ‘Файлы’ со следующими реквизитами:

  • ИмяФайла‘ – тип ‘Строка (Неограниченная)’;
  • ВладелецФайла‘ – тип ‘ДокументСсылка, СправочникСсылка’;
  • Файл‘ – тип ‘ХранилищеЗначения’;
Справочник 'Файлы'.
Справочник ‘Файлы’.

И общую команду ‘ПрисоединенныеФайлы’:

Общая команда 'ПрисоединенныеФайлы'.
Общая команда ‘ПрисоединенныеФайлы’.

Добавляем общую команду в интерфейс нашего документа:

Интерфейс документа 'Задачи'.
Интерфейс документа ‘Задачи’.

В модуле команды пишем алгоритм открытия формы списка справочника ‘Файлы‘:

Конструируем форму списка наших файлов:

Форма списка присоединенных файлов.
Форма списка присоединенных файлов.
Реквизит формы 'ВладелецФайла'.
Реквизит формы ‘ВладелецФайла’.

И пишем алгоритмы отображения файлов по владельцу в динамическом списке, загрузку файлов, выгрузку файлов:

Вот и все! Этот простой механизм как минимум решит вашу задачу хранения обработок, отчетов, файлов и т.д. в вашей конфигурации. Не стоит забывать что данное решение было написано за 10-15 минут. В нем наверняка есть косяки, недочеты, ошибки и т.д. Но свой минимальный функционал он выполняет! А мне это и было нужно.

Если что забыл описать или указать, то вы это с легкостью увидите в конфигурации, которую я для вас выкладываю. Всем удачи!

Скачать файлыcraft1c_присоединенныефайлы.dt

Как верно было подмечено в комментариях – данное решение не будет работать в клиент-серверном варианте. Поэтому немного подправил текущую базу и сделал также и для этого варианта.

Скачать файлы craft1c_prisoedinennyefajly_KlientServer.dt

Внимание! Важное уточнение! Для того что бы работал метод ‘ПоместитьФайл’ в вашей конфигурации необходимо включить свойство ‘Режим использования синхронных вызовов расширений платформы и внешних компонент‘:

Режим использования синхронных вызовов расширений платформы и внешних компонент
Режим использования синхронных вызовов расширений платформы и внешних компонент.
2+

2 комментария

  1. Александр

    Здравствуй гуру ! )
    Понадобилась загрузка выгрузка в самописную конфигурацию. Все повторил по вашей статье. Обнаружил неприятный момент. В файловом варианте все работает, а вот в режиме SQL выгрузка файла не происходит. Загрузка идет исправно, выгрузки нет, такое впечатление что не хватает прав на файловую систему, что ли. Есть ли какие то лайвхаки ) ? Спасибо

    1+
  2. Admin (Автор записи)

    Привет) Сегодня проверю. Залью свою файловую на SQL и попробую. Скинь принт-скрин ошибки при выгрузки на любую из почт в контактах.

    0

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *