Упрощаем разработку взаимодействия с СУБД в http-сервисах OneScript

30.05.18

Разработка - OneScript

В статье описана библиотека и подсистема, позволяющие упростить разработку взаимодействия с СУБД в http-сервисах OneScript

Скачать файлы

Наименование Файл Версия Размер
Упрощаем разработку взаимодействия с СУБД в http-сервисах OneScript:
.cf 3,78Mb
1
.cf 3,78Mb 1 Скачать

Введение

В отличие от платформы 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 за прекрасную библиотеку.

См. также

Особенности национального Workflow: Github Actions и OneScript

Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1190    bayselonarrend    3    

37

TCP прокси-сервер хранилища конфигурации 1С

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    2775    kamisov    17    

57

Что такое ОСень? Или как лучшие практики из мира Java прижились в экосистеме OneScript

OneScript Бесплатно (free)

Думаете, на OneScript неудобно создавать сложные инфраструктурные приложения? Ошибаетесь. Благодаря фреймворку ОСень за последний год экосистема библиотек, упрощающих написание собственных приложений, существенно выросла. Расскажем о самых передовых технологиях OneScript. Спойлер: будет много рефлексии, мета-аннотаций, желудей, напильников и дубов с завязями.

21.11.2023    3115    NikitaIvanchenko    16    

46

Библиотека создания клиент-серверных приложений для сценарного языка OneScript

Инструментарий разработчика Работа с интерфейсом OneScript Россия Бесплатно (free)

Представленная библиотека позволяет создать многопоточный TCP сервер, к которому может одновременно подключиться множество TCP клиентов с удаленных компьютеров. Эти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. Методы будут выполнены в контексте скрипта на удаленной машине. Возможна передача параметров в метод и получение результата. Для TCP клиента можно создать графический интерфейс с большим набором элементов управления, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    2018    ahyahy    8    

32

Получаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    3624    ardn    3    

27

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    8038    kamisov    57    

95

OneScript на страже порядка на сервере тестовых баз данных

Администрирование СУБД OneScript Бесплатно (free)

Наводим порядок на сервере тестовых баз с помощью любимого инструмента - OneScript. Находим заброшенные базы на сервере MS SQL, определяем кандидатов на удаление.

14.06.2022    4255    ardn    23    

37

Идем в Serverless с кодом 1С

Облачные сервисы, хостинг OneScript Россия Абонемент ($m)

Запускаем код OneScript в Serverless Container Яндекса.

1 стартмани

29.04.2022    3698    1    papami    2    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 30.05.18 15:58
Сообщение было скрыто модератором.
...
2. пользователь 31.05.18 05:17
Сообщение было скрыто модератором.
...
Оставьте свое сообщение