БЛОГОДЖУМЛА - БЛОГ О ДЖУМЛА

1C и Virtuemart. Часть 2. Установка связи через MYSQL.

  • Категория: Virtuemart 1
  • Автор:
  • Просмотров: 11649

mysql импорт-экспорт

Продожение разговора о взаимодействии 1С и Virtuemart. 

Вводные данные:

Joomla Версия 1.5.25, VirtueMart 1.1.4 stable, MySQL:     Версия 5.0, PHP:      Версия 5.3.3

1C 8.2 Самописная конфигурация, Сервер Microsoft Windows Server 2008 R2

Заказчику была необходима выгрузка только в одну сторону - это обновление и добавление товара (и фото) на сайте. Закачивать в 1С полученные заказы необходимости не было.

Так как конфигурация самописная - буду рассказывать только ключевые моменты.

Для обмена мы обойдемся без промежуточных файлов обмена - пусть 1С пишет напрямую в базу MySQL сайта. То есть со стороны сайта нам делать ничего не придется. 

В первую очередь нам нужно настроить обмен данными между 1С и MySQL. Для этого скачиваем и устанавливаем на свой сервер с 1С mysql odbc driver. Причем именно версию 3.51. Последняя версия 5.2.2 в этой связке не работает. Страница загрузки - http://dev.mysql.com/downloads/connector/odbc/3.51.html или скачать без регистрации.

Инсталируем драйвер. Далее заходим в Пуск - Панель Управления - Администрирование , и запускаем Источники данных (ODBC), в появившемся окне на закладке Драйверы находим MySQL ODBC 3.51 Driver.

Все. Драйвер установлен и готов к работе.

Одно обязательное условие - на хостинге Вашему пользователю MYSQL (под которым 1С будет соединяться с MYSQL) должен быть разрешен Удалённый доступ. Я включил это разрешение в панели ISPManager. Вам же нужно будет обратиться к своему хостеру и узнать как это сделать.

Практически, мы уже установили связь между нашим сервером с 1с и удаленным MYSQL.

Проверить можно простой обработкой 1С :

Создайте новую обработку, форму.

В форме таблицу значения с именем тттб и данными  ТЗостатоков.

Создайте кнопку и в обработчике кнопки напишите:



	СтрПодключения = "DRIVER={MySQL ODBC 3.51 Driver};";

	 СтрПодключения = СтрПодключения+"SERVER=url_сервера;";

	 СтрПодключения = СтрПодключения+"Database=имя_базы;";

	 СтрПодключения = СтрПодключения+"Uid=имя_пользователя; PWD=пароль;Option=3;";

	

	Connection = Новый COMОбъект("ADODB.Connection");

	Connection.Open(СтрПодключения);

	Connection.Execute("SET NAMES cp1251");

	

	RS = Новый COMОбъект("ADODB.Recordset");

	Command = Новый COMОбъект ("ADODB.Command");

	Command.ActiveConnection = Connection;

	query = "SELECT * FROM jos_vm_product";

	//Вместо jos  - префикс который Вы используете

	RS.Open(query, Connection);

	ТЗСайт = Новый ТаблицаЗначений;

	

	// Создать нужные колонки.

	ТЗСайт.Колонки.Добавить("product_id");

	ТЗСайт.Колонки.Добавить("product_name");

	ТЗСайт.Колонки.Добавить("product_sku");

	ТЗСайт.Колонки.Добавить("product_in_stock");

	ТЗСайт.Колонки.Добавить("product_weight");

	ТЗСайт.Колонки.Добавить("mdate");

	ТЗСайт.Колонки.Добавить("cdate");

	ЭлементыФормы.тттб.Значение = ТЗостатоков;

	ЭлементыФормы.тттб.СоздатьКолонки();


 

Сохраните и запускайте. В результате в 1С Вы увидите таблицу jos_vm_product

Продолжение следует.
  

Back to top