[FAQ] Opencart + 1С + Tecdoc + etc.

Тема в разделе "OpenCart", создана пользователем Vlad-i-Slav, 23 апр 2014.

?

Что дальше?

  1. Sphinx

    15 голосов
    53,6%
  2. Asterisk

    12 голосов
    42,9%
  3. Свой вариант (в личку)

    1 голосов
    3,6%
  1. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    Часть 1: Opencart и 1С:Предприятие
    1.0 Общее описание и требования
    1.1 Запросы к БД 1С
    1.2 Простой веб-сервис 1С
    1.3 Массивы для веб-сервисов (XDTO)
    1.4 Подключение Opencart (SOAP)
    1.5 Синхронизация (Cron)

    [​IMG]
    Схема работы сайта и 1С, которую будем реализовывать в 1 части:
    • Все товары обновляются из 1С раз в сутки автоматически
    • При генерации страницы товара данные об остатке и цене дополнительно обновляются из 1С
    • При заказе товара с сайта, заказ так же поступает в 1С

    1.0 Общее описание и требования
    1.1 Запросы к БД 1С
    1.2 Простой веб-сервис 1С
    1.3 Массивы для веб-сервисов (XDTO)
    1.4 Подключение Opencart (SOAP)
    1.5 Синхронизация (Cron)
    Материалы к 1 части
    Дополнительно
    Часть 2: Opencart и TecDoc
    2.0 Общее описание и требования
    2.1 Структура БД TecDoc

    2.2 Подключение к БД TecDoc
    2.3 Конвертация Transbase->MySQL
    2.4 Подключение TecDoc к Opencart
    2.5 Оптимизация таблиц и запросов
    [​IMG]

    Пункты второй части кликабельны
     
    Последнее редактирование: 11 май 2014
    denndy, and1, zerofirefox и 3 другим нравится это.
  2. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    1.3 Массивы для веб-сервисов (XDTO)
     
    Последнее редактирование: 27 апр 2014
    Pelmen и nikfakel нравится это.
  3. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    306
    Симпатии:
    94
    Хм.. сайт в черном списке НОДА. С чего бы?
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.483
    Симпатии:
    960
    Как я понимаю, без поднятия сервера на машине с 1С не обойтись?

    И переименуйте тему в соответствии с содержанием!
     
  5. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    какой именно?

    веб-сервер нужно поднимать на машине с клиентской частью 1С. Именно с его помощью происходит публикация.
    При этом использовать можно не только Apache, IIS тоже подойдет


    Название такое, потому что будет не только 1С. Еще попробую описать Текдок. А так же может кто из форумчан посоветует актуальную тему
     
    nikfakel нравится это.
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.483
    Симпатии:
    960
    И тем не менее, название не соответствует содержимому. Оно, в принципе, не подходит для техничской темы. Вы бы смогли по этому названию понять о чём тема?


    Я не могу понять логику взаимодействия 1С с этим сервером. Но важнее, что я не могу понять, как мне из ОпенКарт получить доступ к этому серверу. Как должен выглядеть адрес, по которому будет отправлять запросы ОпенКарт?
     
  7. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    об этом в следующей части.
    На данный момент мы подняли в 1С два сервиса - для полной синхронизации и для разового запроса информации о конкретном товаре. Со стороны 1С больше делать ничего не нужно. Просто продолжаем в ней работать.
    Опенкарт в нужный момент запрашивает информацию, обратившись к веб-сервису по адресу (в нашем случае http://localhost/demo/ws/ostatok_tovara.1cws?wsdl) и получает массив ответа, который можно просто вывести на страничку или заинзертить в БД Mysql
     
    nikfakel нравится это.
  8. biolion

    biolion

    Регистрация:
    27 окт 2013
    Сообщения:
    306
    Симпатии:
    94
    Сайт на котором скрины "24.04.2014 23:19:10 http://vlad-i-slav.ru/images/articles/3-5.png Заблокировано во внутреннем "черном" списке C:\Program Files (x86)\Opera\20.0.1387.91\opera.exe biolion-N\biolion"
    Странно, что этот сайт в черном списке нода, или на сайте есть ключи в ноду, и поэтому в черном списке?

    Как Вы обрабатываете прайсы поставщиков? в 1С?
    Чем и как товары наполняете?
    Как фильтра на сайте у Вас устроены? Все с 1С
    Раньше задавался тоже этой идеей с 1С, даже битрикс купил, но потом уперся в обработку прайсов. Сейчас пользуюсь етрейд.

    В Вашей теме именно заинтересовало динамическое обновление данных - цена, и наличие у поставщика (остатков как таковых у меня нет), и выгрузка заказов в 1С

    И возможно ли все это дело привязать по API по такой схеме:
    Два поставщика ЕРС и БРЕЙН у обеих есть Самсунг С5, только цена разная.
    У ЕРС есть Прайс, а у БРЕЙН B2B портал с АПИ.
    Можно ли цену и наличие брать по АПИ у БРЕЙНА и с прайса ЕРС, а в итоге 1С выберет поставщика где цена ниже (как пример ЕРС) + применить наценку/скидку минус 15% от прайса, минус 5% для производителя Самсунг, и +10% моя наценка.

    Кстати сейчас посматриваю на опенерп, Вы случайно не задавались этим вопросом?

    ЗЫ И спасибо Вам огромное за такую отличную тему!!!
     
    Последнее редактирование: 25 апр 2014
  9. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    Очень много вопросов) На самом деле для каждого проекта нужен свой подход, в этом-то и гибкость программирования - всегда ситуации разные.
    Здесь я пытаюсь рассказать об общей типовой схеме, никакой конкретно сайт ввиду не имеется. Главное понять принцип обмена. А там - по ситуации: можно всё вести в 1С и полностью информацию подтягивать на сайт, заполняя БД, можно разделить объем информации - дело каждого.

    Что касается динамичной работы - в этом вся и фишка метода, особенно когда много точек продаж и интернет-магазинов, а база товаров - общая.
    По поводу заблокированного сайта ничего сказать не могу. Это мой сайт, начатый и не особо законченный - сказывается нехватка времени. В общем-то все будет появляться сначала там, чуть позже - здесь.
    А по вашему вопросу - думаю лучше в личку, чтобы не засорять тему.

    Поскольку всё в одно сообщение не помещается, придётся дописывать где попало)

    1.4 Подключение Opencart (SOAP)
     
    Lasted edited by : 28 апр 2014
    affgon и nikfakel нравится это.
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.483
    Симпатии:
    960
    Это неправильно! По логике, где весь код в одном месте - это хорошо, нужно вообще весь код сайта держать в одном файле.
    Я видел (и работал с ним) магазин написанный на Parser, где в одном файле был код всех страниц магазина и из которого отправлялись и запросы в БД.
    Было острое желание оторвать руки (и голову) тому, кто до такого додумался.

    А в случае с обменом данными с 1С лучше вообще сделать отдельный класс (в отдельном файле). И вызывать методы из него в контроллерах.


    Очень часто 1С стоят на компьютерах без прямого доступа в интернет, то есть получают интернет через локальную сеть от роутера. Как получить в таком случае доступ к сервису?
     
  11. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    Всё правильно, так и делают нормальные люди) Это только пример, а когда знаешь КАК - можно написать что угодно.

    Обычная схема такая:
    Сервер 1С + Веб-сервер, на который ставится толстый клиент 1С, с которого и публикуются сервисы. В таком случае на веб-сервере можно и сайт разместить - получится тот же localhost
    Или Сервер 1С + Веб-сервер с клиентом 1С + дополнительный веб-сервер для сайта. Тогда просто указывается IP-адрес 1С-клиента - внешний или внутренний.

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

    Поскольку всё в одно сообщение не помещается, придётся дописывать где попало)

    1.5 Синхронизация (Cron)
     
    Lasted edited by : 28 апр 2014
  12. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.483
    Симпатии:
    960
    Для 1С нужна винда. Хостить ОпенКарт на винде - мазохизм. Вообще, хостить на винде что-либо не требующее в обязательном порядке IIS - это и мазохизм и идиотизм.
    Да и вообще хостить магазин на сервере в офисе - это очень плохая идея по целому ряду причин.


    Ну, внутренний быть не может, иначе ОпенКарт же к не му доступ не получит. Нужен либо статический ip либо динамический DNS и дополнительный домен. А дальше танцы с бубном на роутере, чтоб дать через него внешний доступ к серверу с 1С.

    Это будет работать только в версии 1.5.6.1 (или даже 1.5.6.3, точно не помню) и выше. В более старых версиях MySQLi драйвер нерабочий + у классов драйверов БД нет префикса DB.
     
  13. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    Dotrox, ну что тут скажешь? Вариантов-то, конечно, много. Проблема лишь в том, что для публикации нужен клиент 1С, а его для Linux пока не придумали. И это -
    главная проблема. Что же до адресов,
    конечно может быть, если сервер с ОС имеет 2 карточки, одна из которых смотрит внутрь сети, в которой 1С. Просто слать запросы на IP 1С - проблемы вообще никакой нет (тут ты прав на счет статического адреса).
    Класс можно и не подключать, просто создать соединение классически
     
  14. KoHcTaHTuHblLj

    KoHcTaHTuHblLj

    Регистрация:
    9 ноя 2012
    Сообщения:
    157
    Симпатии:
    11
  15. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.483
    Симпатии:
    960
    Вариант, где ОС стоит на локальном сервере - это один случай на тысячу (и даже так это очень оптимистичный процент). Стоит считать, что стандартный вариант - это OC на хостинге и единственный вариант связи с 1С - это интернет и, соответственно, адрес 1С для OC должен выглядеть как домен или интернет ip.

    KoHcTaHTuHblLj, в какой версии появилась поддержка Linux?
     
  16. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    282
    Симпатии:
    41
    Друзья, может не совсем в кассу, но
    Какая прога (Вин или Мак) может послужить БД для опенкарта, чтобы работать как в локальной сети, так и на отдельном компе, а сам опенкарт в интернете будет только витриной этой программы с возможностью синхронизации?

    Т.е. чтобы описания товаров, атрибуты, опции, категории и прочее хранились не в экселях примитивных, а программе (как в 1С) с поддержкой HTML, выбором того какое поле из этой проги куда в БД будет импортироваться и прочее.
     
  17. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    Лучше создать отдельную тему, но в двух словах так: любая программа складского учета, имеющая API для взаимодействия. Конечно, 1С - монстр для большинства проектов.
    Но в то же время что мешает использовать разные аккаунты для доступа к админке?
     
  18. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    2.0 Общее описание и требования

    2.1 Структура БД TecDoc
     
    Последнее редактирование: 4 май 2014
    biolion нравится это.
  19. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    262
    Симпатии:
    160
    2.2 Подключение к БД TecDoc
     
    biolion нравится это.
  20. vlavlat

    vlavlat

    Регистрация:
    7 ноя 2012
    Сообщения:
    72
    Симпатии:
    8
    А вариант подключить/развернуть TecDoc на обычном хосте (Linux) существует?