обмен данными с 1с8

#
обмен данными с 1с8
Здравствуйте! возможен ли автоматический обмен между hostcms и 1c8. Необходимо что бы остатки обновлялись в реальном времени.
Модератор
#
Re: обмен данными с 1с8
Реализуется в настоящий момент.
#
Re: обмен данными с 1с8
когда это примерно ждать?
Модератор
#
Re: обмен данными с 1с8
tiv-dima,
Как будет сделано - в обновлениях будет анонс.
#
Re: обмен данными с 1с8
Этот вопрос еще не решен?
Модератор
#
Re: обмен данными с 1с8
koro,
Решен, информация в обновлениях: http://www.hostcms.ru/support/updates/
Анонс будет на след. неделе в новостях.
#
Re: обмен данными с 1с8
Здравствуйте. Проблема с обменом с 1с8: Управление Торговлей.

Имеется: Denwer3 + HostCMS 5.7.9 Free + Демонстрационный сайт
(Скачал HostCMS - 19.10.2009 после того как увидел в новостях: http://www.hostcms.ru/news/1c-v8/)
Все работает как часы, кроме автоматического обмена с 1с - со стороны 1С все нормально, заглядываем после обмена в магазин - ничего не меняется (а ручной обмен через файлы как-то работает:  номенклатура хотя бы загружается).

Мои вопросы:
1. В инструкции по обмену читаем:  "В центре администрирования HostCMS в структуре сайта проверьте существование узла /shop/1c/, если узел отсутствует — создайте его аналогично узлу в демонстрационном сайте."
Насколько я понимаю, узел может быть любым, лишь бы он был привязан к динамической странице "Обмен с 1С:Управление торговлей" с кодом 36.
Я прав?

2.Протокол обмена 1с с веб-сайтом (http://www.v8.1c.ru/edi/edi_stnd/131/) подразумевает многократное обращение к php-скрипту ответственному за обмен.
Находим скрипт с кодом 36 (\lib\lib_36\lib_config_36.php) - и что мы там видим:

а)
....
// Создадим массив для записи в него переданных данных
$array_of_data = array();
.....
elseif (isset($_REQUEST['type']) && $_REQUEST['type'] == 'catalog'
&& isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'file'
&& isset($_REQUEST['filename']))
{
   if(isset($GLOBALS['HTTP_RAW_POST_DATA']))
   {
      //Считываем файл в строку
      $array_of_data[] = $GLOBALS['HTTP_RAW_POST_DATA'];
   }

   echo "success" . "\n";
}
.....
$count = count($array_of_data);

// Проверяем количество принятых файлов
if($count > 0)
{
   for($i = 0; $i < $count; $i++)
   {

Ребята, но если мы каждый раз заново создаем массив, и всего один раз в него записывем данные, там никогда не будет больше одного элемента. К чему циклы???
Или я чего-то не понимаю?

б) Несколько экспериментов синхронно с кодом 1с и с lib_config_36.php показали, что глюк наступает где-то здесь:

      // Получаем структурированный массив данных из CommerceML файла
      $array_of_cml_data = $kernel->Xml2Array($array_of_data[$i]);

      // Отправляем данные на обработку, $shop_shops_id - идентификатор интернет-магазина, 1 - флаг, указывающий что делать с товарами уже существующими в магазине (Обновить информацию для существующих товаров), 0 - идентификатор группы товаров, в которую необходимо выгружать товары (корневая группа)
      $shop->ImportCML($array_of_cml_data, $shop_shops_id, 1, 0);

Потому как файлы из 1С принимаются нормально - проверено (отправлял содержимое $array_of_data обратно в виде ответа сервера).

------------------
Резюме:
  Поскольку не придумал как заглянуть в $kernel->Xml2Array и в $shop->ImportCML, прошу помощи. Заранее спасибо.
Модератор
#
Re: обмен данными с 1с8
zhurba писал(а):
Насколько я понимаю, узел может быть любым, лишь бы он был привязан к динамической странице «Обмен с 1С:Управление торговлей» с кодом 36.
Я прав?

да, узел может быть любым. В примере дан тот узел, который стандартно поставляется с системой.

zhurba писал(а):
Ребята, но если мы каждый раз заново создаем массив, и всего один раз в него записывем данные, там никогда не будет больше одного элемента. К чему циклы???

Что значит каждый раз заново создаем массив? Каждый раз - это когда?

zhurba писал(а):

б) Несколько экспериментов синхронно с кодом 1с и с lib_config_36.php показали, что глюк наступает где-то здесь:

что за глюк?
#
Re: обмен данными с 1с8
1.
HostCMS писал(а):
что за глюк?

тот про который я писал:
zhurba писал(а):
Все работает как часы, кроме автоматического обмена с 1с

обмен с 1С по http - не работает.

2.
HostCMS писал(а):
Что значит каждый раз заново создаем массив? Каждый раз — это когда?

скрипт \lib\lib_36\lib_config_36.php вызывается каждый раз при импорте каждого xml-файла. (Типовая демка "1С:Управление Торговлей" при выгрузке на сайт выгружает два файл и вызывает запуск lib_config_36.php - 6 раз - и это только для экспорта, для импорта, кажется еще 6 раз)
Т.е. для КАЖДОГО (одного) импортируемого файла будет выполняться:

$array_of_data = array();

а потом цикл:

// Проверяем количество принятых файлов
if($count > 0)
{
   for($i = 0; $i < $count; $i++)
   {

Смысл?

Но не в этом проблема (это так, "мелкие" странности). Беда в том, что ни загрузка товаров на сайт, ни выгрузка заказов через http не работает. И мне кажется, что причина где-то тут (касательно загрузки товаров):

    $array_of_cml_data = $kernel->Xml2Array($array_of_data[$i]); //стр.92
    $shop->ImportCML($array_of_cml_data, $shop_shops_id, 1, 0);  //стр.95
Модератор
#
Re: обмен данными с 1с8
zhurba писал(а):
Беда в том, что ни загрузка товаров на сайт, ни выгрузка заказов через http не работает.

протокол обмена с 1С выложите.
Авторизация