1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

VM 2.x Интеграция VM2 и 1С8

Тема в разделе "Virtuemart", создана пользователем Sergkkk, 7 авг 2014.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. Sergkkk

    Sergkkk Создатель

    Регистр.:
    7 авг 2014
    Сообщения:
    2
    Симпатии:
    0
    Вопрос интересующий наверно не только меня. Интеграция 1с и VM. Тема не новая, но информации как и кто делает очень мало. Надеюсь модераторы не зарубят тему. На данный момент занят написанием этого обмена.
    Если есть у кого опыт и знания по этому поводу, прошу делиться.
    Схема работы: запрос MySQL формирует сама 1С, передается на сайт, там php-шник прямым запросом обращается к базе. В зависимости от результата ответ в xml который разбирается на стороне 1с .(Так же, пробовал без пхпшника обращаться к базе, так безопаснее, но жутко неудобно для пользователя. (безопасные подключения к базе, с драйвером DBO и тп.))
    Реализовано:
    -загрузка товара каталогов и цен с сайта в 1с (так пожелал клиен:))
    -загрузка на сайт изменений в номенклатуре(создание несуществующей)

    Кому интересно могу делиться идеями и практикой.
    Очень буду благодарен идеям и подсказкам.
    Вопрос к ГУРУ - возможно ли реализовать интеграцию не прямым обращением к базе средствами джумлы, использовать функции создания тогоже товара в VM/
     
  2. Sergkkk

    Sergkkk Создатель

    Регистр.:
    7 авг 2014
    Сообщения:
    2
    Симпатии:
    0
    Вопрос к знатокам, безопасно так обращаться, если нет то как правильно?
    <?php

    $host = $_POST["host"];
    $user = $_POST["user"];
    $pass = $_POST["pass"];
    $base = $_POST["base"];
    $sql = $_POST["zapros"];
    $razdel = $_POST["rasdel"];

    $db = mysql_connect($host,$user, $pass); /*Подключение к серверу */

    mysql_query ("SET NAMES ' utf-8'");
    mysql_query("SET CHARACTER SET 'utf-8'");

    mysql_select_db( $base ,$db); /*Подключение к базе данных на сервере*/
    //дальше разделы запросов, к какому разделу идиет обращение
    if ($razdel=='poluchit')
    {
    $result = mysql_query($sql,$db);
    echo '<?xml version="1.0" encoding="utf-8"?>'."\r\n";
    print "<dataset>\r\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    print "<row>\r\n";
    foreach ($line as $k => $col_value)
    {
    $str = HtmlSpecialChars($col_value);
    print'<column name="'.$k.'">'.$str."</column>\r\n";
    }
    print "</row>\r\n";
    }
    print "</dataset>\r\n";
    }
    ?>


    данный фрагмент пишет результаты запроса в XML файл, и на стороне 1с его уже разбираю.
     
  3. Messir

    Messir

    Регистр.:
    24 июл 2011
    Сообщения:
    238
    Симпатии:
    35
    А чего не пользоваться CSVI? Последние версии легко настраиваются по крону и мудрить ничего не надо... У меня (правда версия 1С7.7), обработка формирует csv-файл, простенький скриптик кидает его по ФТП на сайт, а уже CSVI по крону его загружает.
     
  4. alejandro

    alejandro Постоялец

    Регистр.:
    15 мар 2007
    Сообщения:
    52
    Симпатии:
    3
    а есть какие-то готовые решения или подробные описания?
     
  5. VitalijjP

    VitalijjP Постоялец

    Регистр.:
    22 янв 2013
    Сообщения:
    67
    Симпатии:
    16
    Вот тут например - есть скрипт. http://infostart.ru/public/346241/

    он платный - 8000 руб!. А это демо - версия. Скрипт обмена данными между 1C 8 и VirtueMart 2 (демо)
     
  6. Ekzamenator

    Ekzamenator Постоялец

    Регистр.:
    29 июн 2009
    Сообщения:
    54
    Симпатии:
    11
    Могу бесплатно помочь со стороны 1С. В РНР не силен, тем более в связке с виртумартом.
    Пора бы уже сделать общественную разработку такой связки.
     
    Последнее редактирование модератором: 30 июл 2015
  7. nayman

    nayman Писатель

    Регистр.:
    11 дек 2013
    Сообщения:
    9
    Симпатии:
    1
    Можно подробнее как все это реализовать?
     
  8. Messir

    Messir

    Регистр.:
    24 июл 2011
    Сообщения:
    238
    Симпатии:
    35
    Куда уж подробнее?))) Формируете в 1с файл выгрузки с нужными полями (у меня выгружается артикул, группа, наименование, цена, остаток на складе), заголовки полей должны совпадать с названиями полей в ВМ, в планировщике настраиваете выгрузку этого файла на ФТП в какую-нибудь папку. На сайте заходите в CSVI, загружаете нужный шаблон импорта, в графе источник выбираете "загрузить с сервера", в следующем поле указываете абсолютный путь к вашему файлику и справа вверху нажимаете кнопку "запуск по расписанию". Компонент выдаст строку типа:
    Код:
    php "/var/www/аккаунт/data/www/домен_сайта/administrator/components/com_csvi/helpers/cron.php" username="" passwd="" template_id="10" jform:general:source="fromserver" jform:general:local_csv_file="/var/www/аккаунт/data/www/домен_сайта/upload/имя_файла.csv"
    Эту строчку копируете и вставляете в задание cron-а. В кавычках прописываете имя юзера и пароль, от чьего имени будет выполняться выгрузка и назначаете время выполнения... Все.
    У меня все делается из планировщика на сервере 1с. Сначала 1ска формирует файлик, через минуту батник отправляет файл на ФТП сайта и еще через минуту CSVI загружает его в базу сайта. Все делается быстро и незаметно для глаза. На сайте всегда актуальные остатки и цены (период выгрузок - 2 часа).
    Вот как-то так...
     
    Евгений96 и nayman нравится это.
  9. Евгений96

    Евгений96 Постоялец

    Регистр.:
    29 июн 2014
    Сообщения:
    66
    Симпатии:
    5
    Messir здравствуйте,
    Могли бы вы пожалуйста для ознакомления выложить ваш батник (его конфигурацию настроек);
    Подсказать где cron в joomla настраивается, и как это выглядит;
    Сказать пожалуйста username="" passwd="" это пароли от ftp или админки сайта (или от чего то другого)?
    И как у вас CSVI цепляет csv файл экспорта (как он определяет что это уже новый файл экспорта а не старый на ftp загружен)?

    P.S. у меня схема сейчас реализована с помощью MS Access (он тоже файл экспорта формирует в виде csv), но на ftp я его руками закачиваю, и в CSVI тоже в ручную, а хотелось бы автоматизировать как у вас
    Благодарю за внимание!
     
  10. Messir

    Messir

    Регистр.:
    24 июл 2011
    Сообщения:
    238
    Симпатии:
    35
    Как я понимаю, батник интересует, который выгружает файл на ФТП. Создаете два файлика, первый, например set_ftp.txt со следующим содержимым:
    логин_фтп
    пароль_фтп
    cd путь_к_папке_загрузки/папка_загрузки
    binary
    mput путь_к_локальной_папке_в_которой_находится_файл_выгрузки\*.csv
    bye
    Затем готовим батник, например load.bat, в него кидаем следующий текст:
    C:\WINDOWS\system32\ftp.exe -s:Буква_диска:\полный_путь_к_файлу\set_ftp.txt -i Ай_Пи_фтп
    Когда эти два файлика готовы, остается батник засунуть в планировщик и назначить ему время.
    cron-a в joomla нету, настраивать его надо в панели управления хостингом. Выглядеть это может совершенно по разному, все зависит от того, какая панель используется на Вашем хостинге. Наверняка это есть в ФАКе хостинга или можно спросить саппорт.
    username="" passwd="" это логин пользователя joomla, от чьего имени будет производиться загрузка файла. Естественно, он должен иметь права доступа к CSVI.
    Определять новизну файла мне не надо. Даже если и будет какой-то сбой и файл на ФТП не обновится, то просто зальется инфа из старого, криминала в этом нету.
     
    Последнее редактирование: 14 сен 2015
    Евгений96 нравится это.