Доступ из 1С к базе данных интернет магазина через «Внешние источники данных»
Многи российские компании для учета используют программы 1С. Если при этом для ведения торговли используется бесплатный скрипт интернет магазина обязательно встанет вопрос об обмене данными между двумя этими системами.
В платных российских скриптах механизм обмена с 1С реализован. В бесплатных — таковых модулей нет (кроме OpenCart). Конечно же в сети можно найти платные модули обмена с 1С для популярных скриптов интернет магазинов, но осуществить обмен можно и своими силами.
В статье Бесплатный способ выгрузить данные из 1С в Интернет магазин мы рассказывали, как можно осуществить выгрузку данных из 1С в интернет магазин через CSV файл. В этой статье мы расскажем о том как осуществить доступ из 1С к данным интернет магазина.
В 1С:Платформе версии 8.2.14 появился новый объект: «Внешние источники данных«. Данный объет позволяет подключаться к внешним источникам данных и использовать эти данные в запросах и в системе компоновки данных (1С-овских отчетах).
Внешними источниками данных могут быть:
- SQL Server
- MySQL
- Microsoft Access (*.mdb),
- Microsoft dBase (*.dbf),
- Microsoft Excel (*.xls),
- Microsoft Paradox (*.db )
- Microsoft Text (*.txt; *.csv),
- Microsoft Visual FoxPro (*.dbf),
- SQL Server Native Client 10.0
Нас интерисует MySQL, т.к. для организации базы данных интернет магазина чаще всего используют именно эту СУБД. Но к сожалению у 1С нет подходящего драйвера для работы с MySQL и нам нужно будет самостоятельно его скачать и установить. Драйвер, который нам нужен называется MySql Connector ODBC. Он бесплатный, так что смело скачиваем и используем.
Категория:Драйвера Дата:18.11.2011
Мы сейчас создадим клиетское приложение на платформе 1С для доступа к базе данных интернет магазина MySQL. Для доступа к базе данных будем использовать новый объект 1С: «Внешние источники данных» и драйвер MySql Connector ODBC. Наше приложение будет только считывать данные. Модифицировать данные в базе данных магазина используя объет «Внешние источники данных» не получится — он предназначен лишь для чтения. (Но это не означает, что это впринципе невозможно, это возможно, но при использовании другого механизма доступа к данным. Об этом в следующих уроках.)
Для демонстрации работы объекта 1С «Внешние источники данных» создадим 2 объекта: отчет для анализа данных с помощью «Компоновки данных» и обработку для считывания данных в базу данных 1С.
Урок №1. Создание отчета для анализа данных.- 1С.Платформа 8.2.14.
- драйвер MySql Connector ODBC.
- установленный на LocalHost скрипт WP e-Commerce.
Сначала нужно сделать подготовительные действия: скачать и установить драйвер MySql Connector ODBC; установить 1С:Платформу 8.2.14; установить скрипт интернет магазина на localhost.
Вы можете использовать и реальный хостинг, но необходимо будет настроить доступ к базе данных с вашего ip. Конечно же скрипт можно использовать любой.
Создаём пустую базу данных и открываем Конфигуратор. В конфигураторе добавляем новый объект «Внешние источники данных» и называем его «ИнтернетМагазин».
Открываем закладку «Данные» у только что созданного объекта и добавляем таблицу. Способ создания таблицы выбираем «Выбрать из списка таблиц внешнего источника данных». Откроется окно «Подключение к источнику данных». И заполняем его как на рисунке: указываем драйвер, имя базы данных, адрес хоста, имя и пароль пользователя (пароль не должен быть пустым).
Жмем «Ок», откроется окно «Конструктор таблиц внешнего источника данных». Выбираем таблицу «wp_posts», как на рисунке. Жмём «Готово».
Добавляем новый объект Отчет, называем его «Товары». Жмём кнопку «Открыть систему компоновки данных». В следующем окошке жмём кнопку «Готово».
Откроется окно Системы компоновки данных. Нам нужно добавить новый набор данных: жмём на пиктограмму с зелёным плюсиком, как на рисунке и выбираем «Добавить набор данных — запрос».
Жмём кнопку «Конструктор запроса» как на следующем рисунке:
Откроется Конструктор запроса. В этом конструкторе из левой колонки нужно выбрать таблицу «wp-posts» и перетащить её в центральный столбец. Далее поля «id» и «post_title» перетащить мышкой в правую колонку.
Жмём Ок. Должен получиться такой запрос:
ВнешнийИсточникДанных.ИнтернетМагазин.Таблица.wp_posts КАК wp_posts
Переключаемся на закладку Настройки. В правой верхней области «Таблица». Жмем кнопочку «Добавить» и выбираем «Новая группировка» — как на рисунке.
В появившемся окне жмём «Ок».
Ниже на закладке «Выбранные поля» добавляем два наших поля; «id» и «post_title». Должно получиться, как на рисунке:
Всё готово. Жмём клавишу F5, нажимаем кнопку «Да» в появившемся окне и у нас откроется наша конфигурация в режиме Предприятие. В интерфейсе должен быть виден отчет Товары — запускаем.
Нажимаем кнопку «Сформировать» — наблюдаем отчет.
Для различных анализов можно соединять таблицы интернет магазина и 1С. Но внутри одного запроса это сделать не получится. Нужно будет создать 2 набора данных (запроса) и связать их на закладке «Связи наборов данных» Системы компоновки данных.
Урок 2. Создание обработки 1С для чтения данных интернет магазина из встроенного языка.Создаём обработку. Создаём форму обработки. Добавляем команду и пишем обработчик команды. Вот текст:
Выводы.Новый бъект «Внешние источники данных», который появился в 1С:Предриятие 8.2.14 даёт возможность напрямую считывать данные из MySQL. С помощью этого объекта можно загружать в базу данных 1С любые данные из интернет магазина: например заказы. Можно производить анализ данных интернет магазина мощным инструментом 1С для создания отчетов «Система компоновки данных». Можно создвать любые виды отчетов используя данные интернет магазина и 1С: например сравнивать цены товаров.
Данный способ прямого доступа к базе данных MySQL имеет свои преимущества перед тем способом который используют платные российские скрипты. Платные скрипты для обмена данными с программами 1С используют модуль «Обмен данными с web сайтом», который присутствует только в конфигурациях «Управление торговлей» и «Управление производственным предприятием». А наш способ будет работать в любой конфигурации 1С, в том числе и не типовой.