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