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

08.10.12

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
ADODB.epf
.epf 27,70Kb
381
381 Скачать (1 SM) Купить за 1 850 руб.

Наглядный инструмент для обращения к 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

См. также

SALE! 15%

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    20821    21    49    

38

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13790    13    48    

25

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

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

48000 руб.

24.04.2017    51139    101    165    

89

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

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

60000 руб.

05.10.2022    10828    13    8    

15

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

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

84000 руб.

19.08.2020    25106    22    1    

25

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

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

10200 руб.

24.06.2021    20748    57    53    

35

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

Перенос данных из Парус-Зарплата Бюджет 7.71 в ЗИКГУ 3.1.27 для начала работы системы. Загрузка информации по физическим лицам, сотрудникам, начальной штатной расстановки и данных для расчета среднего заработка.

19200 руб.

06.07.2012    164894    47    157    

96
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 341 31.05.12 10:10 Сейчас в теме
Думаю, надо бы добавить возможность доменной авторизации аутентификации средствами ОС на скуле.
6. BorisMor 310 31.05.12 13:11 Сейчас в теме
(5) Misanets,
Добавил. Но требуется проверка. У меня авторизация через sa.
7. Misanets 341 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 2099 09.06.12 09:41 Сейчас в теме
интересно, только вместо йп, надо писать сетевое имя, мне кажется
13. Lyns_owner 356 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 539 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 2353 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 84 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 Ответить
Оставьте свое сообщение