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

30.05.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Упрощаем разработку взаимодействия с СУБД в http-сервисах OneScript:
.cf 3,78Mb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Введение

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

См. также

OneScript Программист Бесплатно (free)

Отгремел Infostart Tech Event 2024, топовое событие в мире 1С-разработки, традиционно проходящее в Санкт-Петербурге. Ваш покорный слуга в этот раз отмечал там 10-летний юбилей проекта OneScript. Отмечание проводилось в форме игры-соревнования по забегу роботов в лабиринте. Участники пытались написать алгоритм движения робота на языке 1С и сделать это быстрее других. О том, как это было – под катом.

28.10.2024    1411    Evil Beaver    11    

24

OneScript Программист Бесплатно (free)

OneScript – это скриптовый движок для автоматизации всего и вся. О том, как OneScript помогает в разработке скриптов на языке 1С, пойдет речь в статье.

10.10.2024    2389    ardn    1    

7

Инструментарий разработчика OneScript Программист Руководитель проекта Бесплатно (free)

Все мы хотя бы раз работали с конструктором запросов. Результатом его работы является синтаксически верный запрос, оформленный по некоторому стандарту. Нравится - не нравится, а привыкаешь быстро, и на запрос, написанный руками, уже не хочется смотреть... А почему бы не попробовать сделать то же самое с исходным кодом 1С? Ну я и попробовал...

23.09.2024    617    0    stopa85    4    

5

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

Скрипт для работы с SonarQube и локальным репозиторием Git.<br> Цель проекта – возможность выполнить быструю проверку качества кода перед тем, как помещать доработки в рабочее хранилище. В Sonar и Git выгружается не вся конфигурация, а только объекты из заданного списка.<br> https://github.com/vkrivov/go/

02.07.2024    3561    vkrivov@yandex.ru    8    

19

DevOps и автоматизация разработки OneScript Системный администратор Программист Стажер Бесплатно (free)

Рассмотрим создание самоформирующейся документации через комментарии и соглашения: как это сделать и зачем, с описанием полного цикла от исходников конфигурации до странички в интернете

17.06.2024    5267    bayselonarrend    5    

61

OneScript Программист Стажер Бесплатно (free)

Поговорим про меню, спиннеры, прогресс-бары и прочие свистелки для CLI приложений на OneScript

20.05.2024    2914    bayselonarrend    18    

70

Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Бесплатно (free)

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

25.03.2024    2668    bayselonarrend    3    

42

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

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

17.01.2024    5496    kamisov    23    

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