bdd2

Автоматическая выгрузка заказов с Joomla (Virtuemart) в 1С УТ 10.3

Опубликовал User_E (User_E) в раздел Обработки - Обработка документов

Стояла задача выгрузить заказы из Joomla в 1С. Посмотрел в интернете, и тут на сайте. Находил либо платные, либо не совсем подходящие для меня решения. Попробовал написать что-то свое.

Обработка работает по принципу:

- Из 1С запускается php-файл, который находится на сервере.

- Он проверяет, появились ли новые заказы (ищет по статусам), при появлении новых - формирует xml-файл

- 1С проверяет ответ ответ от сервера, в случае если он положительный, по ftp забирает сформировавшийся файл и разбирает его. Формирует новых контрагентов, ругается если не нашлась номенклатура (поиск по артикулу). И в финале создает заказ. Работает под немного нетиповую конфигурацию. Думаю, разобраться не сложно. 

 

Может, для кого-нибудь моя доработка пригодится. Буду рад. По аналогии можно выгружать номенклатуру, изменения статусов и т.д. ...  

Скачать файлы

Наименование Файл Версия Размер
Архив с обработкой и php файлом
.zip 7,17Kb
08.11.11
151
.zip 7,17Kb 151 Скачать
Пример xml файла
.xml 1,12Kb
08.11.11
40
.xml 1,12Kb 40 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Сергей Федоров (Bober777) 26 08.11.11 16:56 Сейчас в теме
Честно вот только в одном могу поругать, нафига в картинки поставил заставку с пустой формой обработки - ведь смысловой нагрузки, то в этой картинке ноль! А так молодца. :)
2. User_E (User_E) 49 08.11.11 16:59 Сейчас в теме
(1) Bober777, чтобы опубликовать модератор обязал хоть что-нибудь положить в виде скрина.
3. Сергей Федоров (Bober777) 26 08.11.11 17:26 Сейчас в теме
Ну пример XML-ника надо добавить, тогда тебе же плюсики нужны, а народ на что ведется? Правильно на рекламу. Она как еще говорят двигатель торговли.
4. User_E (User_E) 49 08.11.11 18:02 Сейчас в теме
5. Ярослав Радкевич (WKBAPKA) 199 08.11.11 22:20 Сейчас в теме
а я вот не понял... joomla бесплатный CMS. используется для разработки сайтов... структура сайта во многом зависит от шаблона который натянул, да и от самой структуры сайта... в чем прикол?
6. Ярослав Радкевич (WKBAPKA) 199 08.11.11 22:22 Сейчас в теме
минус поставил за то, что я не понимаю назначение разработки... какие заказы? в чем смысл php файла? как он подключается к MySQL, где задавать параметры подключения, как он определяет структуру таблиц и т.п. и т.п.
че тут коментаторы коментируют, за шо плюсы ставят?
7. Ярослав Радкевич (WKBAPKA) 199 08.11.11 22:25 Сейчас в теме
посыпаю голову пеплом, не полностью прочел заголовок... минус снял, плюс поставил, интересная для джумалы приблуда.. .не знал о ней ранее
8. Ярослав Радкевич (WKBAPKA) 199 08.11.11 22:29 Сейчас в теме
а, виртуал март... тяжелый магазин... сходу в нем не разобрался
9. User_E (User_E) 49 08.11.11 22:36 Сейчас в теме
(8) WKBAPKA, Спасибо за честность. Если какие-то проблемки или что-то не совсем понятно пишите постараюсь ответить.
10. Ярослав Радкевич (WKBAPKA) 199 08.11.11 22:45 Сейчас в теме
User_E пишет:

(8) WKBAPKA, Спасибо за честность. Если какие-то проблемки или что-то не совсем понятно пишите постараюсь ответить.


та напостил я фигни... в заголовке лучше было акцентировать внимание на то что это VirtualMart... я пасатрел, джумла... думаю, как...
а магазин ставили, тяжелый зараза.. но если сможете помочь, буду очень благодарен и в долгу не останусь!
11. Павел (pashamix) 09.11.11 05:17 Сейчас в теме
На форуме джумлы была подобная разработка, но там идёт обмен в двух направления, из УТ выгружаются товары с ценами, а с сайта загружаются заказы. Правда сейчас не знаю в каком она состоянии, доделали ли, но разработка полезная, однозначно!
12. User_E (User_E) 49 09.11.11 09:29 Сейчас в теме
(11) pashamix, у меня задачка была что номенклатура, цены и скидки задаются на сайте. Поэтому пришлось писать свое.
13. Konstantin _Konstantin (konfed) 09.11.11 12:22 Сейчас в теме
хорошо бы было увидеть в описании и ссылочки на другие работы подобной направленности о чем автор и упомянул в начале своей статьи.

интересным моментом стало использование конструкции:

соединение = новый httpсоединение("***********.ru");
соединение.Получить("export.php",каталогвременныхфайлов()+"temp.html");

для запуска на выполнение php скрипта на web-сервере .
14. Павел Опарин (opx) 416 09.11.11 12:56 Сейчас в теме
Может так оно и правильно, но мне кажется, что подключиться к mySQL из 1С и послать несколько запросов было бы куда вернее. А так получается связка такая: 1С - HTTP - PHP - mySQL - XML, а потом еще 1С - FTP.
В моем варианте это просто 1С - mySQL
И самое главное забыл: Так конечно ты молодцом. Интеграция - наше фсе.
15. Ваня Иванов (boygena) 09.11.11 13:05 Сейчас в теме
Автор молодец... Хорошая штука
16. Ийон Тихий (cool.vlad4) 41 09.11.11 13:09 Сейчас в теме
(14) это если доступ к mysql есть. через mysql и быстрее будет. но правильные админы не дают доступ к mysql ... иногда лишь через ssh.
17. Ийон Тихий (cool.vlad4) 41 09.11.11 13:14 Сейчас в теме
есть еще связки 1С-http-mysql и 1С-webservice-xml (как в prestashop, в последних версиях), но самое простое и быстрое(в смысле разработки) это так, как сделал автор.
18. Павел (pashamix) 09.11.11 14:16 Сейчас в теме
konfed пишет:
хорошо бы было увидеть в описании и ссылочки на другие работы подобной направленности о чем автор и упомянул в начале своей статьи.
Вот посмотрите, может пригодится. Ссылка
Я следил за проектом с самого начала. Сейчас вроде работает в двух направлениях и вроде стабильно, не проверял последнюю версию.
19. Павел (pashamix) 09.11.11 14:21 Сейчас в теме
+ (18) Кстати вот ссылка на этом сайте на пример с которого всё и стартовало http://infostart.ru/community/groups/622/
20. Z-z-z (ZLENKO) 09.11.11 16:22 Сейчас в теме
Раз уж речь зашла о Виртуе... По поводу того что Виртуймарт "тяжелый" - вот интернет магазин http://ibaby.com.ua/ с более чем 3500 страниц.
Работает вполне приемлемо по скорости. Причем надо отметить, что кеширование отключено. Просто не стоит использовать в Виртуймарте некоторые его модули, которые неоптимально написаны и реально создают высокую нагрузку на сервер. Это, например, модуль случайных товаров, дерево категорий. Ну и хостинг надо выбирать нормальный не за 2$ в месяц, а за 7-10$ оптимизированный для CMS типа Joomla.
Если говорить о движках ИМ - уже более полугода наблюдаю за проектом http://www.hikashop.com/, но все как то не хватает времени его полностью освоить и интеграцию с 1С сделать. Рекомендую обратить на него внимание. Очень качественно написанный код и обширный функционал, а главное весьма активная команда разработки - все (ну или почти все) пожелания реализуются разработчиками.

По поводу обмена с ИМ - мое мнение, что более оптимального варианта чем прямой доступ через ODBC к базе на MySQL не придумаеш. Можно строить сколь угодно изощренную логику обмена и весь обмен в виде обработки на 1С. По скорости ODBC - наверное не самый быстрый вариант, но при правильном подходе много обменивать и не нужно (только изменения). Недостаток - надо открывать доступ для определенного IP к MySQL.
21. Timur Bashaev (timbax) 12 09.11.11 16:46 Сейчас в теме
А с какой версией Joomla и Virtuemart работает?
22. Z-z-z (ZLENKO) 09.11.11 17:25 Сейчас в теме
(21) Joomla 1.5, Virtuemart точно не помню релиз, кажется 1.6
Направление Virtuemart 2.0 тупиковое - разработчики Виртуя не успевают за разработчиками Joomla 1.6/1.7
Joomla 1.7 мне очень понравилась. Порадовался что при выборе CMS не остановился на Drupal, а выбрал Joomla.
Поэтому "на будущее" выбрал HikaShop. Там есть и бесплатная версия с ограниченным функционалом и за 100 евро бизнес версия с полным функционалом.
Однако "по факту" и Виртуй в целом получается не бесплатный - практически все качественные дополнения к нему от сторонних разработчиков платные.
Сорри за в некотором роде офтопик.
23. User_E (User_E) 49 09.11.11 18:27 Сейчас в теме
(14) opx, Конечно согласен что напрямую запросы гораздо проще.... но когда сайт на хостинге и закрыто все кроме ftp... пришлось извращаться...
(21) timbax, joomla 1.5.15 virtuemart 1.1.9

(13) konfed, обратную загрузку на том же принципе (складсой остаток) выложу на днях
24. Z-z-z (ZLENKO) 09.11.11 18:34 Сейчас в теме
(23) "когда сайт на хостинге и закрыто все кроме ftp"
Ну понятное дело что на хостинге сайт, а как же иначе.
Кто (или что) мешает в админ панели хостинга открыть доступ к MySQL ?
25. Z-z-z (ZLENKO) 09.11.11 18:43 Сейчас в теме
(14) "правильные админы не дают доступ к mysql"
Доступ к MySQL открывается только для заданного списка IP адресов. Угроза безопасности при этом ничтожна. FTP взломать брутфорсом гораздо проще.
Другое дело что может нет доступа к админпанели хостинга... Но что это за хостинг такой несерьезный без админпанели.
26. Ийон Тихий (cool.vlad4) 41 09.11.11 18:46 Сейчас в теме
(25) при чем здесь ip? существуют хостеры, которые просто и тупо закрывают доступ по портам - есть только http, причем здесь админпанелька?
Доступ к MySQL открывается только для заданного списка IP адресов.
это вы за всех хостеров отвечаете?
Угроза безопасности при этом ничтожна. FTP взломать брутфорсом
зачем мне про безопасность втираете? я что ли доступ закрываю? другим и втирайте
27. Ийон Тихий (cool.vlad4) 41 09.11.11 18:50 Сейчас в теме
(24) Зуб даете, что у всех хостеров есть такая возможность? - "Кто (или что) мешает в админ панели хостинга открыть доступ к MySQL ?"
28. Павел Опарин (opx) 416 09.11.11 18:51 Сейчас в теме
(23)А я позвонил хостинг-провайдеру и сказал, что на другой хостинг пойду - у которых есть такая возможность и они мне сразу ее дали. А так бы 100% ушел.
29. Павел Опарин (opx) 416 09.11.11 18:52 Сейчас в теме
(25)Админ-панель? Не очень хорошо знаком с ними, но если порт закроют к mySQL - тут уж никакая админ-панель не поможет. Инфа 100% :)
30. Ийон Тихий (cool.vlad4) 41 09.11.11 18:53 Сейчас в теме
(28) Ну, вы молодец, но здесь решение технической задачи с заданными условиями - зачем как Z-z-z, расширять условия, таким способом, который гарантированно результата может не дать и не зависит от технических условий задачи?
31. Z-z-z (ZLENKO) 09.11.11 19:01 Сейчас в теме
(27) При чем тут все в мире хостеры ? :-) Просто я выбираю хостера по множеству критериев. Возможность доступа к MySQL - это один из критериев.
В эпоху рыночной экономики потребитель голосует своим кошельком. Ограничение какого то определенного хостера - это не повод для построения архитектуры решения.
Я не собираюсь Вам ничего "втирать". Просто высказал свое мнение касательно Вашего поста. И "зубы" мои попрошу оставить в покое :-)
32. Z-z-z (ZLENKO) 09.11.11 19:06 Сейчас в теме
Я ни в коей мере не оспариваю примененное автором решение. Кому что больше нравится - выбирать архитектуру решения в зависимости от хостера или выбирать хостера в зависимости от архитектуры решения. Лично мне больше нравится более простая архитектура. Вот т все что я хотел сказать.
33. dyadka74 (Kristi74) 09.11.11 20:13 Сейчас в теме
Хорошо бы доделать и сделать возможность выбора способа соединения, напрямую к базе проще соединяться.
34. Ярослав Радкевич (WKBAPKA) 199 09.11.11 20:18 Сейчас в теме
а в смысле нету доступа к MySQL?
если нету доступа к скулю, нету магазина... есть доступ, есть магазин... шо вы тут за шкандаль развернули?
35. Ярослав Радкевич (WKBAPKA) 199 09.11.11 20:19 Сейчас в теме
насколько я понимаю, если я дам ссылку по http на файл php то от туда смогу сделать запрос к MySQL
36. GoraChitich 09.11.11 23:04 Сейчас в теме
Автор молодец!!! )))))))))))
Обработка очень помогла.
А каким образом можно загрузить номенклатуру с характеристиками?
37. User_E (User_E) 49 10.11.11 00:22 Сейчас в теме
GoraChitich пишет:

А каким образом можно загрузить номенклатуру с характеристиками?


я писал выше что на днях постараюсь выложить обратный обмен.
38. Ийон Тихий (cool.vlad4) 41 10.11.11 15:27 Сейчас в теме
(34) порты закрыты и все, вот что это значит, открыт только 80 http у внешнего сервака, который является клиентов mysql, а внутри у хостера находится mysql .
(35) да, можно и называется http туннелинг, я это выше указал. Для тех, кто хочет больше http://habrahabr.ru/blogs/sysadm/70381/
39. Алекс Ю (AlexO) 112 11.11.11 01:00 Сейчас в теме
(14) а ваши обработки по php можно посмотреть для примера?
40. Алекс Ю (AlexO) 112 11.11.11 01:01 Сейчас в теме
(17) cool.vlad4, ссылки бы не помешали ))
41. Алекс Ю (AlexO) 112 11.11.11 01:03 Сейчас в теме
User_E, так как у вас доступ к MySQL - через php или напрямую через админа?
42. Павел Опарин (opx) 416 11.11.11 13:52 Сейчас в теме
(39)В принципе можно, но мои обработки не по php, о по mySQL. На что именно вы хотите посмотреть?
43. User_E (User_E) 49 12.11.11 00:37 Сейчас в теме
(41) AlexO, через php... я выложил 2 файла...
44. Ruslan Musa (ruslanmusa) 12.11.11 19:24 Сейчас в теме
ссылочки точно не помешали бы
46. Алекс Ю (AlexO) 112 15.11.11 01:45 Сейчас в теме
(42) сам пример передачи данных 1с-mySQL
Вот есть вариант 1С-php-mySQL
интересно взглянуть, как реализовано напрямую, тем более - говорите, что одной обработкой - сразу в mySQL ))
47. Андрей Мухин (Muhin555) 11 14.12.11 16:27 Сейчас в теме
В общем-то стандартное решение выгрузки.... Но все же есть "НО".
Никто не смотрел на сервере как вызов типа "Соединение = Новый FTPСоединение("",21,"","",,ложь);" подвешивает его хоть при активном, хоть при пассивном соединении? Такая выгрузка приемлема когда не много заказов падает с сайта (100-200 в день) и период "опроса" 1раз >= 20мин. При загрузке 200-300 заказов/в час таким способом, сервера уходят в "максимальную загрузку" и вот тогда начинаются тормоза на самом сайте! Обработать и создать кучу заказов из "килотонных" XML от 1С тоже требует затрат ресурсов....
При этом возникает еще одна задача: передать на сайт информацию "сформирован или нет" заказ в 1С по каждой позиции.... соответственно либо создаем новый файл XML, либо редактируем этот.... А потом пусть сервер переваривает ответный XML.
48. Алексей Меньшиков (zbruy) 15 05.03.12 09:31 Сейчас в теме
(20) Z-z-z, А поделитесь ссылкой на интеграцию hikashop с 1С, а то что-то не нашел (сорри за офтоп)
49. розница.net (ZLENKO) 05.03.12 09:58 Сейчас в теме
(48) Я пока что не делал интеграцию hikashop с 1С :-(
Не приоритетное направление сейчас для меня.
50. Алексей Меньшиков (zbruy) 15 06.03.12 17:38 Сейчас в теме
(49) розница.net, да, у hikashop пока с этим туго как я погляжу(даже в направлении 1С-HS, я уже молчу о HS-1C). Видимо придется и дальше юзать VM)
51. ZLENKO.PRO (ZLENKO) 13.04.13 00:51 Сейчас в теме
(50) Написал экспорт из 1С в базу HikaShop. Прямой экспорт в БД MySQL. Вот результат http://ibaby.com.ua/shop
Поломал голову в плане оптимизации количества запросов, т.к. оно напрямую связано с временем экспорта.
Отслеживаю изменения в 1С при помощи плана обмена и храню в 1С в регистре соответствие HikaShop ID и объектов 1С. Это позволяет понимать надо ли добавлять объект в БД или только обновить. Цены тоже сначала сравниваю, потом обновляю отличающиеся. Вобщем достаточно эффективно получилось. Еще осталось разобраться с экспортом дополнительных полей, которые будут использоваться в фильтре.
52. Стас Д (staspdb) 20.08.14 07:20 Сейчас в теме
Обработка я так понял работает в одну сторону с сайта в 1С заказы , а чем грузите из 1С номенклатуру и картинки