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 сервер, 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), а затем обрабатывать данные по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.

2000 руб.

27.05.2022    7896    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    4820    1    0    

3

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

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

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

1200 руб.

02.12.2021    5811    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    9488    14    softmaker    12    

5

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

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

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

1 стартмани

08.06.2020    9089    28    mdbruyfn    10    

9

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

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

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

1 стартмани

23.05.2020    7335    5    mdbruyfn    0    

6

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

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

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

1 стартмани

16.12.2019    22030    60    Volvo32    33    

25

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

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

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

1 стартмани

14.11.2019    18230    90    mdbruyfn    82    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ValeriVP 1308 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. Душелов 4017 06.03.09 14:20 Сейчас в теме
(3) 1С поддерживает COM-объекты, к коим ADO и относится.
+
5. Душелов 4017 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. Душелов 4017 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. Душелов 4017 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. Душелов 4017 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. Душелов 4017 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. Душелов 4017 06.03.09 14:57 Сейчас в теме
(19) Не знающие АДО, могущие писать запросы для него :)))
+
23. avhrst 519 06.03.09 15:01 Сейчас в теме
(21) Звучит смешно, но к сожалению такое не редкость... (особенно среди 1С ников)
+
20. Душелов 4017 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. Душелов 4017 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. Душелов 4017 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 Сейчас в теме
Огромное спасибо автору!
+
37. denisbeta 13.09.17 11:31 Сейчас в теме
38. user745258 02.03.21 16:00 Сейчас в теме
39. shia 10.04.24 14:54 Сейчас в теме
Добрый день. При выполнении процедуры подключения ВК выдается сообщение: Не удалось подключить внешнюю компоненту
+
40. shia 10.04.24 14:55 Сейчас в теме
Как правильно сделать?
+
Оставьте свое сообщение