Запросы к MS SQL, SQLite, MySQL

08.10.12

Интеграция - Внешние источники данных

Обработка позволяет делать запросы к базам MS SQL, SQLite, MySQL через ADODB. Вы можете воспользоваться как консолью запросов, так и сделать запрос из кода.

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

Наименование Файл Версия Размер
ADODB.epf
.epf 27,70Kb
378
.epf 27,70Kb 378 Скачать

Наглядный инструмент для обращения к SQL базам из 1С. Вы можете просто открыть обработку (тогда вам будет доступна консоль запросов), а можете сделать запрос из кода. Далее пример вызова из кода (если не встраивать в конфигурацию):

    ADODB = ВнешниеОбработки.Создать("c:\Обработки\ADODB.epf");
   
ADODB.База = "base_test";
   
ADODB.Сервер = "192.168.0.1";
   
ADODB.Пользователь = "sa";
   
ADODB.Пароль = "test_password";
   
ADODB.MSSQL_Подключение();

   
// Берем первую попавшуюся таблицу и делаем запрос
   
масТаблиц = ADODB.MSSQL_ПолучитьТаблицы();
   
ТекстЗапроса = "SELECT TOP 10 * FROM " + масТаблиц[0];
   
тзРезультат = ADODB.MSSQL_ВыполнитьЗапросИВернутьТаблицуЗначений(ТекстЗапроса);
   
тзРезультат.ВыбратьСтроку("Выборка");

У обработки есть следующие функции

  • MSSQL_Подключение  - подключится к базе
  • MSSQL_ВыполнитьЗапросИВернутьТаблицуЗначений — Делаем запрос к базе и полученный результат  преобразуем в  таблицу значений.
  • MSSQL_ВыполнитьЗапрос - выполем запрос. Можно воспользоваться для тех запросов которые ничего не возвращают.  Возвращает данные ADODB.RecordSet
  • MSSQL_РезульататЗапросВТаблицуЗначений - Разбирает ADODB.RecordSet в 1С таблицу значений.
  • MSSQL_ПолучитьТаблицы - возвращает массив с именами таблиц в MS SQL
  • СохранитьНастройки – сохраняем настройки подключения в XML файл
  • ПрочитатьНастройки – читаем настройки подключения из XML файла

Добавление от 16.07.2012

Была добавдена поддержка SQLite (ODBC драйвер).
Реквезит "ТекущийТипБазы" указывает с каким типом базы работаем. Поддерживает слежующие значения:

  • MSSQL
  • SQLITE

Добавленны новые функци:

  • SQLite_ПолучитьПоляТаблицы - Возвращает таблицу значений с информации по полям таблицы SQLite
  • SQLite_ПолучитьТаблицы - Возвращает имена таблиц сущесвующие в подключенной базе SQLite


Следующие функции могут использоваться как при работе с MS SQL так и с SQLite:

  • База_ВыполнитьЗапросИВернутьТаблицуЗначений - Выполянет запрос и результат запроса возвращает в таблицу значений
  • База_РезульататЗапросВТаблицуЗначений - На основе результата запроса (База_ВыполнитьЗапрос) создаем таблицу значений
  • База_ВыполнитьЗапрос - Выполянет запрос к базе
  • СелектЗапрос - создает select-запрос для опредленного типа базы

Добавление от 23.08.2012

Добавлена функция получения статистики количества записей во всех таблицах.

Добавление от 08.10.2012

Добавлена поддержка ODBC MySQL

См. также

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22447    19    1    

22

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9206    9    8    

10

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48694    97    163    

86

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81558    128    123    

147

Перенос данных из Парус 10 (Торнадо) в ЗГУ ред.3 через Excel

Внешние источники данных Загрузка и выгрузка в Excel Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.

24000 руб.

16.11.2018    29997    20    31    

21

Загрузка спецификаций в УНФ из системы Базис-мебельщик

Производство готовой продукции (работ, услуг) Внешние источники данных Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

7200 руб.

24.06.2021    19126    52    50    

29
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mitiyV 7 30.05.12 12:20 Сейчас в теме
А в чем разница с консолью запросов ADO? http://infostart.ru/public/62737/
2. BorisMor 310 30.05.12 12:35 Сейчас в теме
(1) mitiyV,
В первую очередь это все таки "обертка-обработка" для выполнения запросов из кода.
Сама консоль запроса - это вторично т.к. была сделана для тестирования функций запроса.
3. Serj1C 483 30.05.12 13:33 Сейчас в теме
(2) Не проще было сделать обертку для обработки (1)? = )
4. BorisMor 310 30.05.12 14:41 Сейчас в теме
(3) Serj1C,
Не понял что вы имели в виду...
Сделал обработку что бы при необходимости вызвать ее из кода (предварительно добавив в конфигурацию) и выполнить запрос к MS SQL. Конечно можно было сделать модуль с 10-ком функциями, но по мне, в виде отдельной обработке понятней.
5. Misanets 340 31.05.12 10:10 Сейчас в теме
Думаю, надо бы добавить возможность доменной авторизации аутентификации средствами ОС на скуле.
6. BorisMor 310 31.05.12 13:11 Сейчас в теме
(5) Misanets,
Добавил. Но требуется проверка. У меня авторизация через sa.
7. Misanets 340 31.05.12 14:57 Сейчас в теме
(6) не работает.
Если аутентификация ОС, строка соединения следующая:
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True; Initial Catalog=<Таблица>;Data Source=<БД>"

Если стандартная:
"Provider=SQLOLEDB.1;Password=<Пароль>;Persist Security Info=True;User ID=<Логин>;Initial Catalog=<Таблица>;Data Source=<БД>"

И в процедуру АвторизацияОСПриИзменении() добавить строку:
ЭлементыФормы.Пароль.Доступность = Не АвторизацияОС;
BorisMor; +1 Ответить
8. BorisMor 310 31.05.12 20:28 Сейчас в теме
(7) Misanets, Поправил. Спасибо за наглядность пояснения.
9. petrov_al 10 01.06.12 12:36 Сейчас в теме
Спасибо автору полезная вещь, появилась почва для фантазий...
10. mike581 06.06.12 09:26 Сейчас в теме
Автору респект. Иногда приятнее написать запрос непосредственно на MS SQL.
Особенно если INSERT, SET, UPDATE и т.д. нужны.
11. avhrst 519 09.06.12 03:38 Сейчас в теме
Интересно наблюдать как программеры по 1С движутся к концепции от которой 10 лет назад отказались: База данных - GUI пользователя (желательно web), 1Сv7 была и базой данных (DBF) и апликейшен сервером, v8.1 "разрешили" в базу напрямую ходить, v8.2 практически стал апликейшен сервером (Middleware) , и от базы данных отстали. А дальше что? 1С v9 - кеширующий web сервер ?
20. frc 18.07.12 17:41 Сейчас в теме
(11) it.net,
v8.1 "разрешили" в базу напрямую ходить

когда и кто разрешил?
12. aximo 2027 09.06.12 09:41 Сейчас в теме
интересно, только вместо йп, надо писать сетевое имя, мне кажется
13. Lyns_owner 355 10.06.12 23:10 Сейчас в теме
Серьезный подход, однозначный плюс)
14. navi 12.06.12 14:07 Сейчас в теме
А запись можно делать?
15. BorisMor 310 16.07.12 14:59 Сейчас в теме
(14) navi,
Можно)
см. MSSQL_ВыполнитьЗапрос и База_ВыполнитьЗапрос
16. kiros 52 16.07.12 16:06 Сейчас в теме
Класс! У нас "Игра с огнем" на сервере не запускается, попробуем этот механизм! Спасибо.
17. K_A_O 538 17.07.12 11:53 Сейчас в теме
Как ни удивительно, мне придется повторить свой комментарий к другой обработке (http://forum.infostart.ru/forum24/topic29874/message336391/#message336391)

----
Есть "ADO Demo" от Михайлова. Несмотря на 2004 год - там функционал поболе.
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=120&lid=2681
----

Эта обработка хорошая, но у Михайлова возвращается типизированная таблица значений, которую можно использовать в дальнейшем в запросах.
18. BorisMor 310 17.07.12 13:20 Сейчас в теме
(17) K_A_O,
У меня не консоль, а интерфейс для доступа до баз. Т.е. Вы можете использовать эту обработку в своем коде для доступа до баз. А консоль используется для тестирования связи.
Спасибо за ссылки.
21. AlexO 135 11.10.12 14:09 Сейчас в теме
(18)
с чего вдруг у вас указано подключение к MySQL? Вы намеренно ввводите в заблуждение, что ODBC-драйвер для подключения к MySQL совершенно не нужен, и достаточно подобного драйвера от MS SQL?
22. BorisMor 310 11.10.12 14:25 Сейчас в теме
(21) AlexO,
В диалоге подключения дается ссылка на ADODB драйвер для MySQL и SQLite.
23. AlexO 135 11.10.12 14:41 Сейчас в теме
(22)
в смысле, "ссылка в диалоге подключения"? в самой статье написано правильно, но только по SQLite и MS SQL, про MySQL надо тогда аналогично дополнить...
19. zfilin 2337 18.07.12 17:27 Сейчас в теме
Однако, мне казалось, что ADO это уже универсальная обертка для доступа к любому типу баз данных, был бы драйвер и строка подключения.
24. Boudybuilder 35 04.06.13 01:39 Сейчас в теме
ТекстЗапроса = "SHOW TABLES";
// подключение к базе MySQL
Соединение = Новый COMОбъект("ADODB.Connection");
СтрокаСоединение = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=;DataBase=;UID=;PWD="; //{MySQL ODBC 3.51 Driver}
Попытка
Соединение.Open(СтрокаСоединение);
Сообщить("Соединение установлено");
Соединено = Истина;
Исключение
Сообщить("Ошибка подключения к базе MySQL!", СтатусСообщения.Важное);
Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
Соединено=Ложь;
Возврат;
КонецПопытки;

Если Соединено Тогда
SQLcmd = New COMОбъект("ADODB.Command");
SQLcmd.ActiveConnection = Соединение;
SQLcmd.CommandText = ТекстЗапроса;
тз = Новый ТаблицаЗначений;
мойЗапрос = Новый COMОбъект("ADODB.Recordset");
мойЗапрос.Open(SQLcmd);
КолвоКолонок = мойЗапрос.Fields.Count();

КонецЕсли;

Я тут шаманю , но никак получить список таблиц не могу...
Прийдется качать обработки и смореть на примере.
25. Boudybuilder 35 04.06.13 01:40 Сейчас в теме
если у пользователя нет никаких привилегий для таблицы, таблица не будет показана в результатах команды SHOW TABLES или mysqlshow db_name.

это о каких привилегиях идет тут речь ,что то я не пойму...
26. PrinzOfMunchen 83 08.06.13 07:30 Сейчас в теме
А почему обязательно подключаться через ADO? Можно же воспользоваться внешними источниками данных...И из обычной консоли запросов уже писать запросы к БД(в том числе удаленных) на языке запросов 1С?
27. HEKPOH 76 12.06.13 00:51 Сейчас в теме
(26) без вызова хранимых процедур и кучи функций SQL :(
Это во-первых.
А во-вторых, исключительно SELECT.
Так что, манипулирование данными с помощью этой обработки и "ВЫБРАТЬ" посредством внешних источников данных - разные вещи
28. sashulyT 201 27.01.16 14:51 Сейчас в теме
При подключение в SQLite из 8.3 вылетает ошибка:
"{ВнешняяОбработка.ADODB.МодульОбъекта(204)}: Ошибка при установке значения атрибута контекста (ActiveConnection): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию"
Tolpinski; +1 Ответить
Оставьте свое сообщение