Продожение разговора о взаимодействии 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
Продолжение следует.