Версия для печати темы (https://pro1c.org.ua/index.php?s=8ba6a1ee2ec98e6627d5a4827885bf2f&showtopic=50752)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.1 (8.0) _ Как сделать импорт данных в 1С из mysql?

Автор: Vasya1976 01.03.19, 13:36

Здраствуйте.
Есть сайт с базой данных mysql
Есть 1с с модулем доставки и оформлением ттн.
Нужен совет. Как импортировать заказы с бд
(Не знаю как правильно) в модуль или 1с. Учёт
Заказов росхода прихода в 1 с не ведётся. Нужно только
Для оформления заказов. Как правильно автоматизировать?


 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 4
 

Автор: Vofka 01.03.19, 14:16

Идем сюда http://pro1c.org.ua/index.php?act=announce&id=9, в строке поиска пишем 1с mysql, жмем Энтер.

Автор: Bernet 01.03.19, 16:01

Vasya1976 @ Сегодня, 13:36 * ,
Разные способы есть, как файлого так и "безшовного" обмена.
Я например, в качестве теста пробовал подключать MySql базу к 1С как внешний источник данных. И дальше уже работал с базой в контексте 1С, т.е. чтение/удаление/запись реализовал через 1С.

Автор: Vladal 05.03.19, 9:06

Я подключался к базам MySQL и брал оттуда данные напрямую, выполняя запросы SQL.
Одно время довольно плотно работал со сторонними базами на MySQL и даже написал "консоль запросов".

А теперь по существу: что за сайт? Может у них есть API и нет необходимости чесать ухо пяткой?

Цитата(Vasya1976 @ 01.03.19, 13:36) *
Есть сайт с базой данных mysql

Цитата(Vasya1976 @ 01.03.19, 13:36) *
Заказов росхода прихода в 1 с не ведётся. Нужно только
Для оформления заказов. Как правильно автоматизировать?

Здесь опишите всю задачу - что у Вас есть, что надо сделать ,что Вы уже сделали и что получилось, а что не получилось. Это поможет понимать способ решения задачи.

Либо будем пошагово всем миром угадывать, что хотел автор, и писать по строчке кода.
А по факту надо было изначально задачу решать по-другому.

Автор: mut 11.03.19, 12:47

Vasya1976 @ 01.03.19, 13:36 * ,
1С может обращаться напрямую в mysql используя ODBC драйвер. Драйвер можно найти на сайте MySQL. Примеры работы с ним - гугл. Там все просто, подключились, сделали запрос, читаем. На стороне сервера понадобится настроить разрешение доступа в базу данных.

Пример кода, подключение (1С 7.7)

ODBCDriver = createObject("ADODB.Connection");
        ConnectionString =
            "Driver={MySQL ODBC 3.51 Driver};Server="+trimAll(Server)+
            ";Database="+trimAll(DBName)+
            ";User="+trimAll(DBUser)+
            ";Password="+trimAll(Password)+
            ";Option=3;CharSet=utf8;STMT=set character_set_results=utf8;";
            
        ODBCDriver.Open(ConnectionString);


Пример кода, чтение из таблицы:

Recordset = createObject("ADODB.Recordset");
    Recordset.CursorType = 3;
    Recordset.ActiveConnection = ODBCDriver;    
    
    Recordset.Open("SELECT
                    |oc_product.product_id AS product_id,
                    |oc_product.model AS model,
                    |oc_product_description.name AS name,
                    |oc_product_description.description AS description
                    |FROM oc_product
                    |LEFT JOIN oc_product_description
                    |    ON oc_product.product_id = oc_product_description.product_id");
                    
    if Recordset.EOF()=0 then  ......

Автор: Batchir 13.03.19, 13:54

Скорее всего нужно отталкиваться от того что хотите(можете) доработать и как оперативно должны появляться данные в 1С.

Самый верный способ (ИМХО) -
1. Разработка web/http сервиса в 1С.
2. Разработка вызова методов сервиса 1С непосредственно на сайте.
т.е. в момент попадания заказа в базу сайта сразу же заказ попадает в базу 1С, генерируется ТТН и 1С сразу может (если это необходимо) в качестве ответа вернуть данные по этой ТТН обратно сайту.
Плюс - качественное решение по обмену только согласованными между системами данными. Надежность и безопасность. Базы могут находится на разных территориально разнесенных серверах. Данные оперативно отражаются в обеих системах. И программист 1С и веб программист занимаются каждый своей разработкой, не отвлекаясь на изучение не своей области.
Минус - дорабатываются обе системы, трудозатраты на разработку больше.

Способ №2 - это уже описанный способ подключения напрямую к базе MySQL из 1С.
Плюс - Дорабатывается только 1С.
Минус - Заказы в базу попадают не оперативно. Своеобразная настройка коннекта через ODBC (у которой есть свои ограничения). Разработчик 1С может выполнить какой-то "не правильный" запрос над базой сайта.
Необходимо разбираться программисту 1С во внутренних таблицах MySQL (что, где и как хранится)

Способ №3 - это способ для веб программистов. Можно в базу 1С писать через протокол oData.
Плюс - дорабатывается только веб сайт.
Минус - Нужно разбираться в протоколе и структуре 1С что б понимать что куда писать. Разработчик сайта сможет выполнить какой-то "не правильный" запрос над базой 1С

Файловый способ обмена не рассматриваю, т.к. он подразумевает не оперативный обмен файлами в согласованном формате. А в этом случае уже лучше делать способ №1 и обмениваться уже этими форматами. А ещё это лишний узел в обмене (имею ввиду место где будут хранится файлы обмена), на котором могут возникнуть свои дополнительные проблемы.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua