Идея использования внешней базы данных появилась после того как столкнулся с необходимостью размещения большого количества файлов (Сканы документов, конструкторско-технологическая документация. Всего около 10 Гб.) в базе УПП с привязкой к справочникам и документам. И соответственно при их размещении стандартными средствами в Хранилище дополнительной информации начал увеличиваться размер самой базы и размеры архивных копий.
Решил использовать для хранения файлов NoSQL СУБД CouchDB т.к. для данной задачи нет необходимости в использовании реляционных СУБД. CouchDB является документо-ориентированной СУБД, не требующей описания данных. Все данные в базе данных хранятся в виде записей (документов). Любая запись (документ) в базе данных может содержать произвольное количество полей и вложений (файлов).
Доступ к данным осуществляется через REST интерфейс по протоколу HTTP. Все данные передаются в JSON формате.
Скачать CouchDB можно здесь, а прочитать хорошую статью для начального знакомства с СУБД можно здесь.
Установка и настройка СУБД.
Установка СУБД очень простая - со всеми пунктами соглашаемся и жмем "Далее".
После установки запускаем консоль администрирования СУБД (Futon)
Создаем новую базу данных
Присваиваем ей имя
Создаем пользователя с административными правами
Назначаем ему имя и пароль
Теперь нам требуется создать две функции, которые обеспечат возможность получать содержимое и версию документа.
Для этого выбираем вид "Temporary view"
Пишем код функции для получения содержимого документа СУБД (параметром будет идентификатор документа в СУБД, которым является GUID объекта из базы 1С).
Сохраняем функцию в СУБД
Теперь пишем код функции для получения версии документа СУБД
Тоже сохраняем функцию в СУБД
Работа с базой данных 1С.
Далее можно запускать демонстрационную базу 1С, которая может подключаться к созданной базе данных.
База данных состоит из справочников "Настройки для подключения к СУБД CouchDB" и "Справочник данных", а также общей формы "Просмотр файлов содержащихся во внешней СУБД" и общего модуля "NoSQL".
Для доступа к данным используются COM объекты "WinHttp.WinHttpRequest.5.1", "ADODB.Stream" и разработан парсер данных в формате JSON.
Справочник "Настройки для подключения к СУБД CouchDB"
Справочник "Справочник данных"
Элемент справочника "Справочник данных"
Форма "Просмотр файлов содержащихся во внешней СУБД"
Далее открываем форму и добавляем файлы. Файлы можно добавить, заменить, удалить или отрыть (открываются приложениями, которые установлены по умолчанию для расширений этих файлов).
Просмотр содержимого СУБД.
После довавления файлов, через консоль администрирования (Futon) можно просмотреть новые документы идентификаторы которых равны GUID элементам справочника "Справочник данных".
и можно просмотреть содержимое самих документов
Сохраненные функции тоже являются документом базы данных и их содержимое можно просмотреть или изменить
Важной особенностью СУБД CouchDB является то что она поддерживает версионирование документов. И поэтому любой файл даже после случайного удалению можно восстановить
Для удаления всех старых версий документов служит операция "Compact & CleanUp..." в базе данных.
Заключение.
Был показан пример настройки СУБД CouchDB, организован доступ к ней из базы 1С для возможности работы с файлам.
Разработан парсер данных в формате JSON (находится в общем модуле NoSQL).