Изменение информации на удаленном веб сайте из 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 секунд.

См. также

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

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

22440 руб.

19.12.2023    6139    40    11    

37

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

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

36000 руб.

03.08.2020    18560    20    22    

18

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

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 3.0. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер). Интегрировано в Чек ККМ, Рабочее место кассира (РМК)

24000 руб.

02.11.2024    766    3    0    

4

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

Склад Вашего магазина онлайн в Telegram. С картинками, ценами, описанием и характеристиками. Используйте Telegram как торговую площадку и увеличивайте продажи.

54000 руб.

10.09.2024    1036    2    4    

3

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20701    13    19    

18

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

Программа позволяет одним кликом настроить сбор цен ваших конкурентов или дилеров в интернете. Автоматически собирает данные результата поиска Яндекса (вам не придется вручную добавлять каждый сайт, за которым нужно следить). Обновление цен происходит по заданному вами расписанию автоматически. Можете легко отслеживать позиции вашего сайта в Яндексе по ключевым словам и фразам. Этот инструмент даст вам лучшее понимание того, как ваша SEO-стратегия влияет на видимость вашего сайта в поисковой выдаче, и поможет вам улучшить контент и структуру сайта для повышения его позиций. Функция доступна во всех тарифах.

19950 руб.

23.09.2019    31308    8    12    

31
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cool.vlad4 2 22.09.11 10:38 Сейчас в теме
Я бы добавил, что это не для всех "удаленных веб сайтов ". По причинам безопасности ODBC закрывают на удаленных веб сайтах, да и к тому же размещают внутри сети - т.е. по хорошему напрямую через интернет БД не должна быть видна. Так, что можно добавить способ через туннелирование - ssh, http. ssh - через putty. а http через скрипт на сайте.
3. jorikfon 290 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 2365 22.09.11 10:54 Сейчас в теме
Добавьте еще выборку данных и как сказано в (2) пакетную вставку данных, ибо вставлять по одной записи, когда база MySQL висит в вебе - кощунство :-)
jorikfon; +1 Ответить
5. jorikfon 290 22.09.11 10:57 Сейчас в теме
(4) Alxd, Выборку делаем через внешние источники используя язык запросов 1С.
Вставлять группами наверное не проблема, дайте текст запроса, я проверю и допишу в статью. Не умею, не пробовал :)
8. salexdv 2365 22.09.11 11:13 Сейчас в теме
(5) Попробуйте, вам понравится :-)
6. salexdv 2365 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 2365 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
Оставьте свое сообщение