Если в Вашей самописной конфе есть необходимость прикреплять файлы к документам, элементам справочника и т.д. и т.п., а библиотку стандартных подсистем (БСП) тащить не охота, то можно воспользоваться моим решением. Его достоинство - это лёгкость внедрения, нет никаких общих модулей и справочников. Основной функционал расположен в модуле менеджера регистра сведений. Недостатки конечно есть. Это не такой мощный функционал как в БСП, но для многих такой функционал является избыточным. На тонком, толстом клиенте работает без ограничений, на Веб-клиенте работает на Internet Explorer. При первом вызове формы прикрепления файлов система может предложить установить ActiveX от фирмы 1С "Расширение для работы с файлами". Это расширение браузера, которое находится внутри платформы, ничего искать и скачивать не надо.
Вот, что вам нужно будет сделать для внедрения данной подсистемы в свою разработку:
1 Вариант. Вы можете скачать расширение РасшПрикрепФайлы.cfe и внедрить его в свою конфигурацию. Необходимо, чтобы в Вашей конфигурации был установлен "Режим совместимости" не ниже 8.3.12. Вам останется только установить нужный тип для измерения "ОбъектСсылка" в РегистреСведений "ХранилищеФайлов" (см. картинку ниже)
И настроить интерфейс форм документов и элементов справочников для вызова основной формы списка регистра "ХранениеФайлов" (см. пункт "КАК НАСТРОИТЬ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ ДЛЯ РАБОТЫ С ФАЙЛАМИ").
2. Вариант. Перетащите объекты из расширения РасшПрикрепФайлы.cfe в свою конфигурацию.
Перетащите перечисление "Место хранения прикрепленных файлов", а затем два регистра сведений: "Настройка хранения файлов" и "Хранилище файлов". Для удобства я добавил эти объекты в подсистему "Прикрепленные файлы".
Регистр сведений "Настройка хранения файлов" является периодическим в пределах секунды (можете изменить периодичность как вам нужно) с независимой записью данных. Он не имеет измерений т.к. просто хранит текущую для всех настройку. Ресурсы такие:
"МестоХраненияФайлов" имеет тип ПеречислениеСсылка.МестоХраненияПрикрепленныхФайлов
"КаталогФайлов" тип Строка 255
"ИспользоватьСжатие" тип Булево
"МетодСжатия" тип Число (1,0)
"МаксРазмерФайлаДляИБ" тип Число (10,0)
Регистр сведений "ХранилищеФайлов" является периодическим в пределах секунды (можете отключить периодичность, но добавить измерение "ДатаЗагрузки" типа ДатаВремя. Тогда вам придётся допилить программный код в части добавления записей в регистр) с независимой записью данных.
Измерения:
"ОбъектУИД" типа УникальныйИдентификатор. Служит для формирования названия папки на диске в случае, когда файл сохраняется не в базе.
"ОбъектСсылка" типа ДокументСсылка, СправочникСсылка. Для хранения ссылки на объект к которому прикрепляется данный файл.
"МестоХраненияФайлов" типа ПеречислениеСсылка.МестоХраненияПрикрепленныхФайлов
"ИмяФайла" типа Строка 255
"РасширениеИмениФайла" тип Строка (10)
"Автор" типа СправочникСсылка.Пользователь
Ресурсы:
"ХранилищеДвоичныхДанных" типа ХранилищеЗначения
Справедливости ради нужно добавить, что должен быть в конфигурации справочник "Пользователь" т.к. есть в регистре "ХранилищеФайлов" измерение - "Автор", которое имеет тип справочника "Пользователь". В вашей конфе он может иметь другое название, но смысл тот же. Для измерения "Автор" нужно назначить правильный тип.
Проследите! Если в вашей конфигурации применяется механизм разделения данных по средствам использования общего реквизита, то нужно исключить два этих регистра из состава объектов, где определено разделение данных!
КАК НАСТРОИТЬ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ ДЛЯ РАБОТЫ С ФАЙЛАМИ.
На форму объекта нужно добавить реквизит "Файлы" типа "Строка, 255". Затем на форму добавить обычную группу "Сканы и файлы". Теперь перетащите реквизит в группу "Сканы и файлы". Для поля надписи "Файлы" установите флажок "Гиперссылка".
Для события "Нажатие" определим код:
Так же нужно добавить код в стандартный обработчик формы - "ПриСозданииНаСервере":
Проделайте эти действия с формами элементов справочников и документов для которых необходимо прикреплять файлы.
Больше никаких изменений в конфигурации делать не надо.
Для работы системы необходимо добавить запись в регистре "Настройка хранения файлов", например:
Данная статья расчитана на разработчиков прикладных программ. Это решение не является полностью готовой системой для тиражирования. Возможно что-то нужно будет допилить и довести до ума...
Всем удачи и здоровья!