gifts2017

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

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

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

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

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

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

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

 

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

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

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

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

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

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


та напостил я фигни... в заголовке лучше было акцентировать внимание на то что это VirtualMart... я пасатрел, джумла... думаю, как...
а магазин ставили, тяжелый зараза.. но если сможете помочь, буду очень благодарен и в долгу не останусь!
11. Павел (pashamix) 09.11.11 05:17
На форуме джумлы была подобная разработка, но там идёт обмен в двух направления, из УТ выгружаются товары с ценами, а с сайта загружаются заказы. Правда сейчас не знаю в каком она состоянии, доделали ли, но разработка полезная, однозначно!
12. User_E (User_E) 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) 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) 09.11.11 13:09
(14) это если доступ к mysql есть. через mysql и быстрее будет. но правильные админы не дают доступ к mysql ... иногда лишь через ssh.
17. Ийон Тихий (cool.vlad4) 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) 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) 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) 09.11.11 18:46
(25) при чем здесь ip? существуют хостеры, которые просто и тупо закрывают доступ по портам - есть только http, причем здесь админпанелька?
Доступ к MySQL открывается только для заданного списка IP адресов.
это вы за всех хостеров отвечаете?
Угроза безопасности при этом ничтожна. FTP взломать брутфорсом
зачем мне про безопасность втираете? я что ли доступ закрываю? другим и втирайте
27. Ийон Тихий (cool.vlad4) 09.11.11 18:50
(24) Зуб даете, что у всех хостеров есть такая возможность? - "Кто (или что) мешает в админ панели хостинга открыть доступ к MySQL ?"
28. Павел Опарин (opx) 09.11.11 18:51
(23)А я позвонил хостинг-провайдеру и сказал, что на другой хостинг пойду - у которых есть такая возможность и они мне сразу ее дали. А так бы 100% ушел.
29. Павел Опарин (opx) 09.11.11 18:52
(25)Админ-панель? Не очень хорошо знаком с ними, но если порт закроют к mySQL - тут уж никакая админ-панель не поможет. Инфа 100% :)
30. Ийон Тихий (cool.vlad4) 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) 09.11.11 20:18
а в смысле нету доступа к MySQL?
если нету доступа к скулю, нету магазина... есть доступ, есть магазин... шо вы тут за шкандаль развернули?
35. Ярослав Радкевич (WKBAPKA) 09.11.11 20:19
насколько я понимаю, если я дам ссылку по http на файл php то от туда смогу сделать запрос к MySQL
36. GoraChitich 09.11.11 23:04
Автор молодец!!! )))))))))))
Обработка очень помогла.
А каким образом можно загрузить номенклатуру с характеристиками?
37. User_E (User_E) 10.11.11 00:22
GoraChitich пишет:

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


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