Изменение информации на удаленном веб сайте из 1С через ODBC драйвер для mysql

22.09.11

Интеграция - Сайты и интернет-магазины

В статье описана технология взаимодействия с mysql базой данных из 1С:Предприятия через ODBC драйвер.

В продолжение статьи о использовании внешних источников данных в 1С.

 

У меня появилась интересная задача. Необходимо на интернет сайте держать список актуальных телефонов клиентов компании. Самый актуальный список этих телефонов есть в нашей CRM системе.

Задача простейшая.
Скачиваем свежий ODBC драйвер для mysql с сайта производителя.

В 1С создаем обработку с следующим кодом.

Код
СтрокаСоединенияСАстерискСервером   =   "
 |DRIVER={MySQL ODBC 5.1 Driver};
 |SERVER=wwwhost_na_korotom_stoit_mysql_base;
 |DATABASE=imya_database_s_telefonami; 
 |UID=user_s_pravami_zapisi_v_database;
 |PWD=password_usera_s_provami_zapisi; 
   
Соединение = Новый COMОбъект("ADODB.Connection");
   
Соединение.ConnectionString = (СтрокаСоединенияСАстерискСервером);
   
Попытка
      Соединение.Open();
      Сообщить("MySQL база подключена!!!");
Исключение
      Сообщить("Не могу подключиться к базе!!! ");
КонецПопытки;



Если верхний код отработал без ошибок, значит, мы успешно соединились с базой данных и теперь можем с ней делать, что нам нужно.

Очищаем все записи из таблицы с телефонами

Код
Попытка
      Соединение.Execute("truncate table callerid;");
      Сообщить("Мы успешно все подчистили!");
Исключение
      Сообщить("Что то пошло не так :( ");
КонецПопытки;



Добавляем новую строчку с контактной информацией

Код
АбонентТранслит = "Vaisya Pupkin";
НомерТелефона  = "74952293042";

Стр = "INSERT INTO `callerid` SET `number`  ="+""""+НомерТелефона+ """"+",  `name`  ="+""""+АбонентТранслит+"""";

Попытка
      Соединение.Execute(Стр);
      Сообщить("Запись с Васей добавлена в базу сайта");
Исключение
      Сообщить("Что то пошло не так :( ");
КонецПопытки;


p.s. В реальной жизни этим методом я ежедневно обновляю информацию на нашей АТС (asterisk) о контактных телефонах клиентов. Задача выполняется фоновым заданием на сервере 1С. Около 1200 записей заливается 12 секунд.

См. также

API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3

Сайты и интернет-магазины Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Беларусь Россия Управленческий учет Платные (руб)

Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress. При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси. Поддержка искусственного интелекта GigaChat

59990 руб.

05.09.2023    7121    87    74    

68

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15745    10    17    

11

Оплата покупок "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку.

18000 руб.

19.12.2023    1179    6    1    

6

SALE! 15%

Обмен данными с сайтом. БП 3.0

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обмен данными с сайтом на платформе 1С:Битрикс (и подобными) для 1С: Бухгалтерия предприятия 3.0.

12000 10200 руб.

18.03.2019    31273    109    100    

62

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17548    6    15    

13

SALE! 33%

«Мониторинг цен» – сервис для отслеживания цен конкурентов на ведущих маркетплейсах России

Маркетплейсы Сайты и интернет-магазины 8.3.14 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Сервис помогает отслеживать цены на ведущих маркетплейсах России только для одного региона – Москва и Московская область. Выполняйте анализ и контролируйте цены Ваших конкурентов сразу в системе 1С.

2400 1608 руб.

29.05.2023    6652    25    37    

15

Выгрузка для АВИТО

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Россия Платные (руб)

Выгрузка товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    15345    42    56    

37
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. cool.vlad4 2 22.09.11 10:38 Сейчас в теме
Я бы добавил, что это не для всех "удаленных веб сайтов ". По причинам безопасности ODBC закрывают на удаленных веб сайтах, да и к тому же размещают внутри сети - т.е. по хорошему напрямую через интернет БД не должна быть видна. Так, что можно добавить способ через туннелирование - ssh, http. ssh - через putty. а http через скрипт на сайте.
3. jorikfon 324 22.09.11 10:51 Сейчас в теме
(1) cool.vlad4, Конечно вы правы, просто вопросы безопасности я вынес за рамки стати для ее упрощения. Ведь механизмов удаленного взаимодействия с сайтом действительно много, да и сама субд позволяет настраивать авторизацию по IP. В моем конкретном случае сайт находится внутри локальной сети в DMZ зоне и я имею все инструменты безопасного доступа к нему из LAN.

(2) cool.vlad4, К сожалению, я не владею языком запросов MYSQL. Если кто-то в комментариях напишет пример, я допишу его в пост. По сути описанным способом можно выполнять любой произвольный MYSQL запрос. Меня в этом случае всегда выручает гугл. :)
10. CrazyDave 02.05.12 16:06 Сейчас в теме
(3) насчёт odbc. Делал тут одному мужику, который офигенно любит автономоность во всём, внешнюю компоненту для связи MySQL c 1C. Компонента работает без установленных на клиенте odbc драйверов и т.п, позволяет выполнять как select запросы к БД - результат возвращается как ТаблицаЗначений так и insert delete update. Как вы думаете - стоит такое поделие выложить или нет? )))) Просто одно portable-чудо уже выложил (делал изначально тому же человеку)- http://infostart.ru/public/125392/ - ну так , ни шатко ни валко))))
11. Jatz 16.05.12 11:40 Сейчас в теме
(10) CrazyDave, компонента в 64х системе работает?
2. cool.vlad4 2 22.09.11 10:40 Сейчас в теме
Да и для общего интереса можно рассмотреть техники генерации запросов для пакетной вставки, для обновления данных.
jorikfon; +1 Ответить
4. salexdv 2327 22.09.11 10:54 Сейчас в теме
Добавьте еще выборку данных и как сказано в (2) пакетную вставку данных, ибо вставлять по одной записи, когда база MySQL висит в вебе - кощунство :-)
jorikfon; +1 Ответить
5. jorikfon 324 22.09.11 10:57 Сейчас в теме
(4) Alxd, Выборку делаем через внешние источники используя язык запросов 1С.
Вставлять группами наверное не проблема, дайте текст запроса, я проверю и допишу в статью. Не умею, не пробовал :)
8. salexdv 2327 22.09.11 11:13 Сейчас в теме
(5) Попробуйте, вам понравится :-)
6. salexdv 2327 22.09.11 11:01 Сейчас в теме
// Выборка данных
RS = Новый COMОбъект("ADODB.Recordset");
RS.ActiveConnection = Connection;	

query = "SELECT бла-бла-бла"

Попытка                      
 RS.Open(query);
Исключение
 Предупреждение(ОписаниеОшибки());
 Возврат Ложь;	
КонецПопытки;
	
Если RS.EOF() И RS.BOF() Тогда
  (результат запроса пустой)
   Предупреждение("Нет запрашиваемых данных.");
Иначе
  RS.MoveFirst();
  Пока НЕ RS.EOF() Цикл
    Поле1 = RS.Fields.Item("BlaBla");
    RS.MoveNext();	
  КонецЦикла;
КонецЕсли;
RS.CLOSE();
Показать


Как-то так делается выборка
7. salexdv 2327 22.09.11 11:04 Сейчас в теме
Пакетная вставка
query = "INSERT INTO products_
        |(product_id , product_name )
	|VALUES 
        |('1', 'Товар №1'),
        |('2', 'Товар №2'),
        |('3', 'Товар №3')";
Попытка
      Соединение.Execute(query);
      Сообщить("Мы успешно все вставили!");
Исключение
      Сообщить("Что то пошло не так :( ");
КонецПопытки;
Показать
jorikfon; +1 Ответить
9. fr.myha 27.03.12 12:20 Сейчас в теме
12. atol_zlat 28.05.15 07:40 Сейчас в теме
Спасибо за пакетную вставку, 2500 тысячи записей вставляются за 2 сек. Спасибо.
13. Nkolp 16 11.09.15 14:54 Сейчас в теме
Не могу подключиться с MS Server 2012 к базе MySQL на удаленном виртуальном сервере (ни по IP, ни по имени сайта)
ODBC на сервере MS настроил (Тест подключения в панели управления - проходит, список баз выдает).
Хочу подключить внешний источник данных 1С, тестирую по ADODB.
АДО = Новый ComОбъект("ADODB.Connection");
 СтрокаСоединения = "
// |Provider=MSDASQL;
 |DRIVER={MySQL ODBC 5.3 Unicode Driver};
 |Server=95.ььь.ььь.ььь;
 |PORT=3306;
 |DATABASE=.......;
 |User=.......; // сначала пробовал UID и PWD соответственно
 |Password=......;
 //|Socket=MySQL;
 |Option=3;
 |";
 Попытка
  АДО.Open(СтрокаСоединения);
Показать

... Попытка не проходит ...
Пробовал разные варианты с сайта http://www.connectionstrings.com/mysql/#mysql-connector-odbc-5-1
Оставьте свое сообщение