• хранение файлов во внешней SQL-базе;
• хранение версий файлов;
• простой доступ к файлам из формы объектов (документ/справочник) в режиме просмотра или редактирования;
• загрузка файлов как с диска, так и со сканера;
• простота интеграции в любую конфигурацию (управляемые формы);
• набор процедур для работы с файловым хранилищем;
• открытый код
Иногда встает вопрос хранения файлов в 1С. Будь то совместный доступ к файлам, или привязка файла к какому-либо объекту ИБ - документу или справочнику. 1С даёт такую возможность путём использования полей с типом ХранилищеЗначения. Однако хранить большой объем файлов внутри базы 1С нерационально.
Вместо хранилища значения можно также использовать ссылки-пути к файлам на сетевом диске. Но также можно использовать для этой цели отдельную SQL-базу. Именно этот метод был выбран, когда возникла необходимость хранить гигабайты файлов в 1С.
В результате родилось нехитрое решение:
Разработка позволяет создать для каждой базы 1С своё файловое хранилище. Также одно общее хранилище может быть использовано для нескольких баз. Регистр сведений ДанныеБазыФайлов в каждой ИБ служит, своего рода, файловой таблицей, связывающей объекты 1С с хранилищем файлов на сервере. В этом регистре содержится информация о том, кто, когда, какие файлы, откуда и какого размера загрузил в хранилище.
Описание интерфейса
Доступ к подсистеме возможен как для обычного пользователя (роль "SQLФайлы"), так и для администратора файлов (роль "SQLФайлыАдминистрирование")
Для обычного пользователя (с установленной ролью "SQLФайлы") существует возможность прикрепления файлов к объекту из панели навигации объекта:
Для прикрепления файла следует нажать кнопку "Создать". В результате откроется форма нового файла:
В этой форме следует выбрать "загрузить с диска" или "получить со сканера".
При выборе "получить со сканера" будет открыта форма сканирования:
Открытые на редактирование и, при этом, измененные файлы будут перезаписаны в базу файлов. Если для подсистемы установлено свойство "Версионирование", то будет сохранена старая версия файла и добавлена новая:
Есть возможность отката к более старой версии файла. Такая возможность есть у автора файла (Ответственный) или для администратора файлов:
Также есть возможность удалить все версии файлов, кроме текущей:
Для администратора есть доступ к полному списку файлов:
Установка и настройка подсистемы
Порядок установки:
1. Конфигуратор => Конфигурация => Сравнить, объединить с конфигурацией из файла
1.1 Снять галку "Свойства" у конфигурации; снять галку у справочника "Пользователи"
1.2 Выполнить обновление
2. Установить роль "SQLФайлы" всем, кто будет использовать функционал подсистемы
3. Установить роль "SQLФайлыАдминистрирование" администратору (настройка соединения с SQL, администрирование файлового хранилища)
4. РегистрСведений.ДанныеБазыФайлов.Команды.Файлы - установить тип параметра команды составным и указать типы объектов, из панели навигации формы которых будет доступ к привязанным файлам
После установки подсистемы следует настроить доступ к серверу, где будут храниться файлы. Для этого в режиме предприятия в подсистеме "Файлы" нужно открыть форму списка файлов и указать параметры подключения к серверу:
После этого жмем кнопку "Тест".
Так как SQL-база файлов еще не создана на сервере, будет предложено создать пустую базу:
При этом будет нужно указать путь на сервере к файлам SQL-базы:
После успешного создания базы на сервере, рядом с кнопкой "Тест" будет отображена иконка успешного подключения к базе:
Разработка была протестирована на версиях платформы: 8.3.10.2580, 8.3.13.1513.
Режим совместимости интерфейса: 8.2, Такси
Версия SQL-сервера: SQL-Server 2014
(!) Работа в Web-клиенте не предусмотрена
(!) Разработка не предусматривает многостраничного сканирования
Проверено на конфигурациях:
• УПП 1.3.59.1;
• Самописная конфигурация на платформе 8.3.13