1с php mysql обмен данными

Обновлено: 05.07.2024


MySQL в качестве системы управления базой данных доминирует в интернет-проектах. Приложение 1С:Предприятие может устанавливать соединения с серверами MySQL для обмена данными в обоих направлениях. Это может использоваться например:

  • для публикации сведений в интернет;
  • для получения сведений из интернет;
  • для обмена данными с другими приложениями 1С через общее интернет-хранилище.

Для установки соединения с сервером MySQL и подключения к одной из DB такая возможность должна быть предусмотрена целым комплексом серверных настроек, которые осуществляет администратор сервера, и здесь они не будут рассматриваться. Тем не менее, в ряде случаев доступ к каждой отдельной DB должен быть настроен администратором хостинга соответствующими средствами.

DirectAdmin Web Control Panel

При использовании для управления хостингом DirectAdmin Web Control Panel следует выполнить следующую последовательность действий:

Проверить наличие драйвера в системе можно в Панель управления -> Источники данных ODBC -> Администратор источника данных ODBC, драйвер должен присутствовать в закладке Драйверы в списке установленных драйверов, в списке будет отражено имя и версия. Окно администратора источника данных ODBC можно вызвать командами:

  • x32 версия: %windir%\syswow64\odbcad32.exe
  • x64 версия: %windir%\system32\odbcad32.exe

Другой способ проверить наличие драйвера, который можно реализовать программно, это просмотреть список параметров реестра в ветке установленных драйверов:

[ HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST . INI \ ODBC Drivers ]

Точное имя установленного драйвера будет необходимо для установки соединения в программном модуле 1С.

Все операции с сервером MySQL в программе необходимо выполнять через установленное соединение, которое реализуется универсальным COM-объектом типа Connection в его методе .Open(<строка подключения>, [<логин>], [<пароль>], [<опции>]) использующем специально подготовленную строку подключения.

Пример установки соединения:

СтрокаПодключения = СтрШаблон ( "DRIVER=; SERVER=%1; DATABASE=%2; PORT=%3; UID=%4; PWD=%5; MULTI_STATEMENTS=1; MULTI_RESULTS=1; STMT=SET CHARACTER SET utf8" , Хост , БазаДанных , Порт , Логин , Пароль ) ;

При успешной установке соединения свойство .State устанавливается в 1, а в случае ошибки остается в состоянии 0. Коллекция ошибок типа Errors доступна в объекте соединения, однако в нее попадают ошибки только уровня сервера, которые возникают после установки соединения с сервером. Если ошибка возникла до установки соединения по сетевой или иной причине, ошибка в коллекцию .Errors не попадет.

Для завершения работы с установленным соединением его желательно закрыть:

После успешного установления соединения сервером MySQL можно управлять посредством sql-выражений в пределах прав установленных для пользователя, логин которого был использован при подключении. Существует два способа выполнения sql-выражений: непосредственно через объект соединения; через дополнительный объект команды.

Запросы Соединения

Успешно открытый объект соединения типа Connection может передать на сервер MySQL sql-выражение для выполнения используя метод .Execute(<выражение>[, <обработано>[, <опции>]]), где:

1с и mysql

Продолжаем настраивать рабочее окружение для курса по интеграции 1С с web сайтами, и в данном уроке установим MySQL. Для этого надо скачать MySQL с сайта. Скачиваем версию MySQL Community Edition (GPL) в виде zip архива, а не установщика. Ознакомится с полным курсом по интеграции вы можете здесь.

Базу данных мы будем использовать при разработке на PHP и урок по его установке и настройке вы можете посмотреть по ссылке.

Установка MySQL для интеграции с 1С

В папке нашего локального web сервера установленного в предыдущем уроке, создайте папку DB. В ней будет хранится наша база данных.

Разархивируйте скачанный файл и скопируйте его содержимое в папку MySQL в каталоге Bin нашего web сервера.

Настройка 1С и MySQL

Я подготовил файл с настройками my.ini. Его надо скопировать в папку MySQL. Ниже его содержание:
[ mysqld ]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir="c:/Server/DB/"
default_authentication_plugin=mysql_native_password

Немного опишу, что означают наши параметры:

STRICT_TRANS_TABLES

Включает «строгий режим» для всех таблиц, поддерживающих транзакции, т.е. на InnoDB и BDB. Этот режим возвращает ошибку, вместо предупреждения в следующих случаях:
1. Тип входных данных не соответствует заданному типу. Например, вставка строки в колонку c числовым типом
2. Число или дата находится вне допустимого диапазона. Диапазон определяется типом данных. Например, для типа unsigned tinyint допустимым диапазоном являются числа от 0 до 255
3. При вставке данных пропущено значение колонки, для которой не задано значение по умолчанию и имеет атрибут NOT NULL
4. Длина значения выходит за пределы заданного диапазона. Например, для колонки типа CHAR(5) вы не сможете вставить строку более 5 символов
5. Для типов ENUM и SET отсутствует вставляемое или обновляемое значение
Более подробно об особенностях работы данного режима будет рассказано отдельно в последующей ниже главе.

datadir

Каталог где расположена наша база данных, обратите внимание на слеши

default_authentication_plugin

Для того чтобы избежать появление ошибки «The server requested authentication method unknown to the client [caching_sha2_password]»

Установка базы данных

Теперь откроем командную строку от имени администратора и выполним поочередно 3 команды для инициализации и установки нашей СУБД MySQL.

C:\Server\bin\mysql\bin\mysqld --initialize-insecure --user=root
C:\Server\bin\mysql\bin\mysqld --install
net start mysql

На этом установка MySQL завершена и для управления базами данных нам необходимо установить phpmyadmin. Чем мы и займемся в следующем уроке.

Читайте также: