Введение
В отличие от платформы 1С:Предприятие, которая имеет информационную базу для хранения данных, в OneScript такой возможности пока нет и для хранения и манипуляции данными надо напрямую взаимодействовать с СУБД. Для работы с СУБД в OneScript, есть наиценнейшая библиотека OneScript SQL, за что огромное спасибо и низкий поклон ret-Phoenix, которая позволяет выполнять произвольные SQL запросы в различных СУБД и без которой, создание более-менее серьезных приложений было-бы невозможно. Поскольку я создаю и отлаживаю web-приложения в среде 1С:Предприятие с использованием каркасной конфигурации, а библиотека была написана до появления http-сервисов OneScript, при создании и отладке кода с ее использованием, возникают определенные неудобства, связанные с переносимостью кода и невозможностью отладки из среды 1С:Предприятие.
К примеру, так выглядит исходный код одного из http-сервисов демонстрационной конфигурации Yep Cart:
Как можно увидеть, код взаимодействия с СУБД закомментирован в среде 1С:Предприятие и должен проверяться и отлаживаться отдельно, что неудобно.
Для того, чтобы облегчить создание кода, взаимодействующего с СУБД в http-сервисах OneScript, была создана настоящая библиотека, которая фактически является надстройкой над библиотекой OneScript SQL, выполненной на основе механизма обработок. В настоящее время используется слегка модифицированная версия библиотеки, адаптированная для использования совместно с механизмом обработок, однако я надеюсь, что Сергей внесет соответствующие изменения и можно будет использовать в работе оригинальную библиотеку.
Состав библиотеки
Настоящая библиотека состоит из двух частей. Первая часть – это реализация работы библиотеки OneScript SQL совместно с механизмом обработок. Вторая часть – это библиотека COM-объектов и подсистема конфигурации 1С:Предприятие, предназначенная для разработки и отладки в среде 1С:Предприятие.
Библиотека доступна в свежем релизе обновления для http-сервисов OneScript OneScript-AspNetEngine 1.4.0.
Установка и настройка
Установка части для OneScript
Действия, необходимые для установки библиотеки в среде OneScript описаны здесь.
Установка части для 1С:Предприятие
Сначала необходимо создать информационную базу загрузить конфигурацию, содержащую компоненты библиотеки или внедрить подсистему HTTPСервисыOneScriptКаркаснаяРаботаСУБД в существующую конфигурацию сравнением/объединением.
Теперь, необходимо зарегистрировать COM-классы в системе. Для этого, надо выгрузить содержимое макета (zip-архив) РаботаСУБДCOMОбъект, в папку на диске, где будут храниться dll COM-объектов и разархивировать содержимое архива в эту папку.
Содержимое папки будет иметь следующий вид:
Далее, запускаем cmd от имени администратора и переходим в папку C:\Windows\Microsoft.NET\Framework\v4.0.30319
Для регистрации, выполняем следующую команду:
Regasm /codebase ПутьКПапкеСDll\SqlDataProcessorCom.dll
Если у Вас 64-битная ОС, необходимо создать COM-приложение. Для этого, в панели управления, выбираем Administrative Tools и запускаем оснастку Component Services.
Раскрываем дерево, выбираем COM+ Applications, нажимаем правой кнопкой мыши и выбираем Add New Application.
В открывшемся окне мастера, выбираем Empty App.
На странице выбора типа приложения выбираем Server Application и вводим имя нашего приложения.
На следующих страницах мастера оставляем предлагаемые настройки и нажимаем Next и OK.
Раскрываем в дереве созданное нами приложение, выбираем пункт Components, нажимаем правой кнопкой мыши и выбираем New->Component.
На приветственном экране мастера нажимаем Next, в появившемся окне выбираем Import components that already registered.
В открывшемся окне, выбираем показывать только 32-битные компоненты, находим и выделяем нижеследующие классы:
OScriptSql.Com.DBConnector
OScriptSql.Com.Query
OScriptSql.Com.QueryResult
И нажимаем Next и Finish
Наши компоненты должны появиться в списке компонентов COM+ приложения
Теперь наша библиотека установлена и готова к работе.
Использование библиотеки
Запустим нашу конфигурацию в пользовательском режиме. Как можно увидеть, на рисунке ниже, подсистема содержит два справочника - Запросы СУБД и Параметры соединений СУБД.
В качестве демонстрациоенной СУБД для настоящей статьи была использована СУБД SQLite и БД демонстрационной конфигурации Yep Cart.
Создание параметров подключения к СУБД
Зайдем в форму списка справочника Параметры подключения к СУБД и создадим новый элемент.
При этом: Код – является идентификатором параметров подключения, Строка соединения – строка соединения с СУБД, а Тип СУБД – это тип СУБД, к которой мы будем подключаться.
Поскольку в нашем web-приложении мы будем хранить эти данные в файле web.ini, для упрощения его редактирования нажмем кнопку Сформировать для web.config. В результате будет сформирован текстовый документ с соответствующими ключами, которые необходимо скопировать и вставить в файл web.ini
Создание SQL Запросов
Создадим новый элемент справочника Запросы СУБД. Форма элемента представляет собой импровизированную консоль запросов
Выберем в качестве параметров соединения с СУБД параметры, созданные нами ранее (1). В качестве типа запроса выберем Запрос, так как наш запрос должен возвратить данные (2). Если запрос не возвращает данные, к примеру создает таблицу, необходимо выбрать тип запроса – Команда. Если нам необходимо установить таймаут выполнения запроса отличным, от значения по умолчанию для СУБД, необходимо установить соответствующий чекбокс и ввести желаемое значение таймаута в секундах (3).
В поле Текст запроса, введем запрос, получающий все записи из таблицы product (4) и нажмем кнопку Выполнить запрос (5).
По окончании выполнения, результаты будут отображены в виде табличного документа в нижней части (6).
Теперь создадим запрос, который получает информацию об определенном продукте. Мы будем идентифицировать продукт по полю id, которое является идентификатором продукта.
Для этого, скорректируем запрос, добавив условие where (1).
Затем, создадим параметр (2), где: Имя – имя переменной, значение которой будет устанавливаться в качестве значения параметра, Имя параметра – имя параметра в sql запросе, Значение – произвольный код на языке 1С:Предприятие, который вычисляет значение параметра и присваивает его соответствующей переменной.
Нажмем кнопку Выполнить запрос (3) и просмотрим получившийся результат (4).
Создание кода
Для получения кода на языке 1С:Предприятие, который выполняет запрос, необходимо нажать кнопку Сформировать код.
Полученный код является полностью переносимым между 1C:Предприятие и http-сервисами OneScript и Вы можете вставить его в необходимое место Вашего web-приложения.
Заключение
Надеюсь, настоящая библиотека поможет вам создавать и отлаживать web-приложения OneScript более быстро и эффективно.
P.S.
Еще раз хочу поблагодарить ret-Phoenix за прекрасную библиотеку.