# MoD (22.11.2014 / 11:24)
движок должен поддерживать синхронизацию с 1с.
Если движок пишется с нуля, как сделать синхронизацию с 1С?
Scorpion, посмотри, как реализованно это в других движках. Благо опенсорц проектов с синхронизпцией 1с хватает.
MoD, Мне бы человек который все это бы сделал за плату!
Scorpion, да как бы еще и сервер надо настроить, пробросить порт, чтоб к серверу можно было достучаться извне
Koenig, А ведь обычно можно же подключаться извне, например FileZilla и т.д. не тоже самое?
Смотри. 1с у нас выгружает хмл вот в таком виде (см. аттач).
Для его разбора юзается обычный хмл парсинг, но для определенно этого файла.
function objectToArray($data){
if(!is_object($data) && !is_array($data)) return $data;
if(is_object($data)) $data = get_object_vars($data);
return array_map('objectToArray', $data);
}
header("Content-type: text/html; charset=utf-8");
$file = 'import2.xml';
$xml= simplexml_load_file($file );
$array_cat = objectToArray($xml);
$array_pocat = objectToArray($array_cat[Классификатор][Группы][Группа]);
echo '<div style="background-color: #fcac34"><div>Категории 1</div>';
echo '<div>Ид: '.$array_pocat[Ид].'</div>';
echo '<div>Наименование: '.$array_pocat[Наименование].'</div>';
echo '</div>';
if(is_array($array_pocat) === true)
{
$array_pocat2 = objectToArray($array_cat[Классификатор][Группы][Группа][Группы][Группа]);
echo '<div style="background-color: #34ac34"><div>Категории 2</div>';
echo '<pre>';
print_r($array_pocat2);
echo '</pre>';
echo '</div>';
}
for($i = 0; $i <= count($array_cat[Каталог][Товары][Товар]); $i++)
{
$array_pocat_podcat = objectToArray($array_cat[Каталог][Товары][Товар][$i]);
if(!empty($array_pocat_podcat[Ид]))
{
echo '<div style="background-color: #23cf53"><div>Ид: '.$array_pocat_podcat[Ид].'</div>';
echo '<div>Наименование: '.$array_pocat_podcat[Наименование].'</div>';
//echo '<div>БазоваяЕдиница: '.$array_pocat_podcat[БазоваяЕдиница].'</div>';
echo '<div>'.$array_pocat_podcat[ЗначенияРеквизитов][ЗначениеРеквизита][2][Наименование].': '.$array_pocat_podcat[ЗначенияРеквизитов][ЗначениеРеквизита][2][Значение].'</div>';
//echo '<div>'.$array_pocat_podcat[СтавкиНалогов][СтавкаНалога][Наименование].': '.$array_pocat_podcat[СтавкиНалогов][СтавкаНалога][Ставка].'</div>';
echo '<div>Ид Группы: '.$array_pocat_podcat[Группы][Ид].'</div>';
echo '</div><hr/>';
}
}
Scorpion, фтп на 21 порт, можно и с фтп забрать, нужны будут данные для подключения
Koenig, там парсер однозначно надо не стандартный. Посмотри пример выгрузки в хмл, как выгружает 1с.
MoD, ты мне лучше файл кинь, а там уже будет более ясно, файл из 1с