OraCon (1С+Oracle)

06.03.09

Разработка - Разработка внешних компонент

Внешняя компонента, предназначенная для организации двухсторонней связи с Oracle

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

Наименование Файл Версия Размер
OraCon инсталятор
.1236336946 469,19Kb
124
.1236336946 469,19Kb 124 Скачать

OraCon - внешняя компонента для 1С, предназначенная для выполнения прямых запросов к Oracle

--------------------------------------------------------------------------

0. Установка 

  • Запустить setup.exe
  • После установки зайти в \Program Files\OraCon\ и запустить reg.bat для регистрации компоненты.

Прим. Компонента регистрируется в реестре и ее не надо КОПИРОВАТЬ в папку с 1С и.т.д.


Системные требования.

  • необходим Net Framework 2
  • необходим установленный OracleClient (тестировалось на версии клиента 10g, если с Вашим клиентом не заработает - в \Program Files\OraCon\ есть dll от клиента 10g)  

---------------------------------------------------------------------------

1. Подключение компоненты (глобальный модуль 1С) 

Перем ora Экспорт;

Процедура ПриНачалеРаботыСистемы()
    ...
    // Работа с Ораклом
    ИмяВК = "AddIn.OraCon";
    ок = ПодключитьВнешнююКомпоненту(ИмяВК);
    Если ок=0 Тогда
        Сообщить("Не удалось подключить внешнюю компоненту");
    Иначе
        ora = СоздатьОбъект(ИмяВК);
    КонецЕсли;
    ...
КонецПроцедуры

------------------------------------------------------------------------

2. Использование компоненты.

ora.Открыть();// открытие соединения с ораклом.
// данный метод использует параметры соединения которые можно задать
// на вкладке Сервис - параметры -  Параметры соединения с БД.

-----------------------------------------------------------------

// выполнение запроса, который возвращает множество строк.
ora.ЗапросСтр("select id,name from aaa");

Пока ora.Читать() = 1 Цикл // получение строки
    Сообщить("" + ora.Элем("id") + " " + ora.Элем("name"));
    // получение элемента строки ora.Элем("id") по наименованию 
    // получение элемента строки ora.Элем(0) по номеру
КонецЦикла;

-------------------------------------------------------------------

// получение единичного (скалярного) значения
зн = ora.ЗапросЗн("select count(*) from aaa");

--------------------------------------------------------------------

// выполнение запроса не возвращающего значения 
Если ora.Запрос("insert into aaa(id,name) values(1,'xxx')") = 1 Тогда
    // данные записаны
КонецЕсли;

--------------------------------------------------------------------

// закрытие соединения
ora.Закрыть();

----------------------------------------------------------------------------

Разработчик: Выхрыстюк Алексей (it.net). poshta.it@gmail.com

См. также

HTTP сервер 1С 7.7 + HTTP асинхронный клиент: внешние компоненты для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно параллельно посылать много запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления.

2000 руб.

27.05.2022    7810    19    13    

31

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

Разработка внешних компонент Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4799    1    0    

3

Выбор из большого списка (для 1С 7.7)

Разработка внешних компонент Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    5776    2    19    

4

Внешняя компонента для преобразования файлов из/в кодировку Base64 в 1С 7.7

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    9445    14    softmaker    12    

5

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9048    27    mdbruyfn    10    

9

Протокол UDP: внешняя компонента для 1С 7.7

Разработка внешних компонент Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7316    5    mdbruyfn    0    

6

JSON: Туда и Обратно

Внешние источники данных Платформа 1С v7.7 Конфигурации 1cv7 Украина Абонемент ($m)

Рабочий механизм чтения/записи строк в формате JSON для 1С 7.7. Тестировалось на релизах 7.70.25 и 27.

1 стартмани

16.12.2019    21940    60    Volvo32    33    

25

Клиент HTTP(S): внешняя компонента для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Абонемент ($m)

Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.

1 стартмани

14.11.2019    18137    88    mdbruyfn    82    

15
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ValeriVP 1303 06.03.09 14:07 Сейчас в теме
2. avhrst 519 06.03.09 14:17 Сейчас в теме
Так это и есть ADO.NET, задача была написать максимально простое решение способное использовать стандартный запрос и способное получить в 1С например 100 000 строк.
3. avhrst 519 06.03.09 14:19 Сейчас в теме
Плюс в моем варианте на надо объяснять админу что такое ConnectionString.
И насколько я знаю 1С ADO не поддерживает.
4. Душелов 4013 06.03.09 14:20 Сейчас в теме
(3) 1С поддерживает COM-объекты, к коим ADO и относится.
5. Душелов 4013 06.03.09 14:20 Сейчас в теме
> - необходим Net Framework 2

А без него никак?
6. avhrst 519 06.03.09 14:22 Сейчас в теме
для использования ADO.NET Net Framework 2 обязательное условие.
7. avhrst 519 06.03.09 14:24 Сейчас в теме
Душелов - идея конечно рабочая, но попробуйте привести реальный пример получения в 1С таблицы из Oracle с использованием COM
9. Душелов 4013 06.03.09 14:27 Сейчас в теме
(7) Реального примера не имею, т.к. оракла нет. Но запросы так же спокойно пишутся через ADO
(8) Mono решает...
8. avhrst 519 06.03.09 14:26 Сейчас в теме
Net Framework 2 - наверное проблема для тех кто использует 1С на Unix :)
10. avhrst 519 06.03.09 14:29 Сейчас в теме
Ну если оракла нет, тогда хоть для sql примерчик...
11. avhrst 519 06.03.09 14:30 Сейчас в теме
там разница только в ConnectionString и con,com,reeder объектах
12. Душелов 4013 06.03.09 14:32 Сейчас в теме
Код
DataBaseConnection = CreateObject("ADODB.Connection");
// подстроки user_password, user_name, server_name заменить на свои
DataBaseConnection.ConnectionString = "Provider=MSDAORA.1;Password=user_password;User ID=user_name;Data Source=server_name;Persist Security Info=True";
DataBaseConnection.Open();

RecordSet = СоздатьОбъект("ADODB.Recordset");
RecordSet.ActiveConnection = DataBaseConnection;
RecordSet.CursorLocation = 3; // UseClient

RecordSet.Open("SELECT * FROM clients ORDER BY name");

Для i = 1 По RecordSet.RecordCount Цикл

Сообщить(RecordSet.Fields.Item("name").Value);
RecordSet.MoveNext();

КонецЦикла;

RecordSet.Close();
Показать полностью
13. avhrst 519 06.03.09 14:42 Сейчас в теме
Спасибо за пример. Только ADODB.Recordset и MSDAORA.1 это страшно тормознутые объекты из ADO. Моя же компонента использует ADO.NET, "родной" клиент оракла (можно и sql), более быстрый DataReeder.

16. Душелов 4013 06.03.09 14:46 Сейчас в теме
(13) Это все тоже можно спокойно использовать. "MSDAORA.2" и т.д.
(14) Кому показывать?
14. avhrst 519 06.03.09 14:43 Сейчас в теме
И кстати неразумно всем в коде 1С показывать пароли к Ораклу
15. avhrst 519 06.03.09 14:44 Сейчас в теме
В моей компоненте пароль шифруется средствами .Net
17. Душелов 4013 06.03.09 14:47 Сейчас в теме
(15) А как пароль в компоненту передается?
18. avhrst 519 06.03.09 14:52 Сейчас в теме
MSDAORA.2 - ситуацию не изменит, нужен родной клиент.
Пароль вводится при первоначальной установке в окне свойств внешней компоненты. Затем шифруется и хранится классом Seting (.Net 2.0).
19. avhrst 519 06.03.09 14:56 Сейчас в теме
Требовалось простое решение. с которым смогут работать рядовые программеры 1С (не знающие ADO).
21. Душелов 4013 06.03.09 14:57 Сейчас в теме
(19) Не знающие АДО, могущие писать запросы для него :)))
23. avhrst 519 06.03.09 15:01 Сейчас в теме
(21) Звучит смешно, но к сожалению такое не редкость... (особенно среди 1С ников)
20. Душелов 4013 06.03.09 14:56 Сейчас в теме
В инсталлятор включать регасм - это сильно! :)

Не проще ли в батнике прописать:

Код
@ECHO OFF
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%
regasm.exe oracon.dll /codebase
Показать полностью
24. avhrst 519 06.03.09 15:10 Сейчас в теме
(20) регасм на скорость не влияет...
25. Душелов 4013 06.03.09 15:15 Сейчас в теме
(24) При чем тут скорость?
26. avhrst 519 06.03.09 15:25 Сейчас в теме
(25) скорость не причем, но батничек у себя я уже обновиол :)
22. avhrst 519 06.03.09 15:00 Сейчас в теме
я думаю получилось достаточно просто:
---------------------------------
ora.Открыть();
ora.ЗапросСтр("select id,name from aaa");
Пока ora.Читать() = 1 Цикл
Сообщить(ora.Элем("name"));
КонецЦикла;
ora.Закрыть();
----------------------------------
27. anbxp 07.03.09 00:52 Сейчас в теме
Лично я бы использовал oci. ADO изначально медленнее будет
28. Душелов 4013 07.03.09 01:29 Сейчас в теме
(27) По каким замерам? И oci почему быстрее?
29. avhrst 519 07.03.09 10:02 Сейчас в теме
(28) Полностью согласен. ADO быстрее (пулы соединений, многопотоковость ...)
32. anbxp 07.03.09 11:09 Сейчас в теме
(28) Замеры были ранее, когда я с ораклом плотно работал. Да и по-сути ado - дополнительная прослойка. Которая скорости явно не добавляет:) Хотя, для использования интерфейса occi в 1С нужно будет писать ВК, т.к. этот интерфейс для c++
(29) ADO не может предоставить возможностей больше, чем умеет БД:)
(0) Разработка, безусловно, имеет полное право на существование. Но не лежит у меня душа к .net:)
34. avhrst 519 08.03.09 10:16 Сейчас в теме
(32) Вы имееете в виду ADO, а я использую ADO.NET в котором существвено переработан reeder способный в паре с родным клинтом оракла рганизовать наиболее оптимального клиента (как по скорости так по надежности).
Такж .NET платформа позволяет реализовать позднее связывание, что очень удобно для организации offline клиентов.
30. vip 07.03.09 10:16 Сейчас в теме
Давным давно использую для работы с Ораклом 1С++.
Вплоть до того, что в 1С++ Оракл может быть поставщиком данных для ТабличногоПоля.
31. Abadonna 3958 07.03.09 10:39 Сейчас в теме
(30)>Давным давно использую для работы с Ораклом 1С++.
"– Эти добрые люди, – заговорил арестант и, торопливо прибавив: – игемон, – продолжал: – ничему не учились и все перепутали, что я говорил."
М. Булгаков.
(0) не обижайся, просто шутка ;)
33. vip 07.03.09 11:26 Сейчас в теме
(31) Не поверишь, на неделе перечитал.
35. genych76 21.11.09 17:47 Сейчас в теме
2. Использование компоненты.
ora.Открыть(); // открытие соединения с ораклом.
// данный метод использует параметры соединения которые можно задать
// на вкладке Сервис - параметры - Параметры соединения с БД.


И где же в какой программе я могу посмотреть эту вкладку ? В 1с ее нет....
36. dour-dead 271 07.04.11 23:22 Сейчас в теме
Огромное спасибо автору!
38. user745258 02.03.21 16:00 Сейчас в теме
Оставьте свое сообщение