Здраствуйте.
Есть сайт с базой данных mysql
Есть 1с с модулем доставки и оформлением ттн.
Нужен совет. Как импортировать заказы с бд
(Не знаю как правильно) в модуль или 1с. Учёт
Заказов росхода прихода в 1 с не ведётся. Нужно только
Для оформления заказов. Как правильно автоматизировать?
! | http://pro1c.org.ua/index.php?act=announce&id=2: 4 |
Идем сюда http://pro1c.org.ua/index.php?act=announce&id=9, в строке поиска пишем 1с mysql, жмем Энтер.
Vasya1976 @ Сегодня, 13:36
,
Разные способы есть, как файлого так и "безшовного" обмена.
Я например, в качестве теста пробовал подключать MySql базу к 1С как внешний источник данных. И дальше уже работал с базой в контексте 1С, т.е. чтение/удаление/запись реализовал через 1С.
Я подключался к базам MySQL и брал оттуда данные напрямую, выполняя запросы SQL.
Одно время довольно плотно работал со сторонними базами на MySQL и даже написал "консоль запросов".
А теперь по существу: что за сайт? Может у них есть API и нет необходимости чесать ухо пяткой?
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 ......
Скорее всего нужно отталкиваться от того что хотите(можете) доработать и как оперативно должны появляться данные в 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