1C

Стас

Троечник
1C

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

RomikChef

Guest
стас, ты не первый день на форуме, а правила не соблюдаешь
прочти, пожалуйста.
 

Alexandre

PHPПенсионер
прошу великодушно простить, не уследил как сломался скрипт - все работает....
 

Alexandre

PHPПенсионер
некотыры рекомендации
1) не пытайся использовать XML от 1С или SQL сервер. Потратишь больше времени. Форматы там сумашедние...
2) разработай структуру простую xml-сообщений.
чем проще тем лучше что-то типа:
PHP:
<pricelist date="12.06.2003">
     <item>
          <cargo>телевизор<cargo>
          <price>320</price>
          <cod>USD</cod>
     </item>
     <item> ....     </item>
</pricelist>
XML изобрели не запутовать людей а для структурированной передачи информации между разными системами
3) напиши скрипт на 1С, который формирует сообщение XML.
4) для контроля выведи его в отдельный файл и проверь.
5) так как 1С это Winдовозная примочка, то для обработки используй msxml, скрипт 1С свободно позволяет работать с СОМ.
5а) для загрузки XML данных используй класс DomDocument
метод loadXML("xml-data")
6) для отправки на сервер используй класс HTTPRequest метод Open(....) и Send
обязательно используй метод POST
http://www.edocs.phpclub.net/xml/B2bXML.html

7) серверная часть (сайт) будет принимать твои данные в переменную: $HTTP_POST_ROWS
8) далее рекомендую использовать парсер SAX - это быстрее чем DOM

в общем будут вопросы готов ответить
 

HEm

Сетевой бобер
Автор оригинала: Alexandre
в общем будут вопросы готов ответить
У меня вопрос - если данные будут загоняться в MySQL, то подразумевается что структура БД статична, передаваемые данные никакой гибкостью не обладают (пардон за мутные выражения, я имел в виду что для вышеупомянутых <item> никаких новых опций не появится, будут скажем всегда одни и те же <cargo>, <price> и <cod>)
Так вот - какие причины заставляют использовать в этом случае не банальный csv а xml, обработка которого тем же php-скриптом на порядок ресурсоемкая и медленная?
 

Alexandre

PHPПенсионер
какие причины заставляют использовать в этом случае не банальный csv
причины таковы, что не все структуризируется в банальном csv:
PHP:
<packagelist date="12.06.2003" from="Балтика" to="ООО Селикон"> 
     <item> 
          <cargo>пиво бутылочное<cargo> 
          <price>17.20</price> 
          <num>25</num>
     </item> 
     <item> ....     </item> 
</pricelist>
в этом случае придется слать два файла на два адреса, или как-то еще изощрятся.

А ресурсоемкость дело относительное, если компания обрабатывает большие потоки информации, то ей ничего не стоит поставить более мощный сервер, если пользуешься хостингом, то у провайдера как правило стоят хорошие мощные сервера, если хостинг неудовлетворяет, всегда за лишние $30-100 можно найли отличный хостинг - все зависит от запросов Компании.

Например для Балтики - $100 за хостинг - это не та сумма, о из-за которой стоит выбирать не ресурсоемкий и быстрый csv
 

HEm

Сетевой бобер
Автор оригинала: Alexandre
в этом случае придется слать два файла на два адреса, или как-то еще изощрятся.
не совсем понял, но, имхо, тут изощряться особо не придется, просто отводим первую(последнюю) строчку в csv-файле под адреса

А ресурсоемкость дело относительное, если компания обрабатывает большие потоки информации, то ей ничего не стоит поставить более мощный сервер
Если проблему предлагается решать путем экспансивного роста то это мне (и не только мне) не нравится. :(

Я вот вообще думаю, поскольку для оффлайна время выполнения задачи не критично, то может стоит даже формировать не файл с данными который надо парсить медленным языком а сразу готовый SQL-запрос апдейта данных...
 

Alexandre

PHPПенсионер
просто отводим первую(последнюю) строчку в csv-файле под адреса
значить отводим первую строку под адреса, вторую под сопроводительную информацию, третью под... а остальное под прайс.... тоже вариант - тогда это уже не csv-файл
то может стоит даже формировать не файл с данными который надо парсить медленным языком а сразу готовый SQL-запрос
на уровне идей - тянет...(в отдельных случаях)
 

Линк

Guest
когда то я объеденял 1С с сайтом

есть несколько способов:

из 1С сгенерить файлы и послать их на сервер (по ftp файлом или через POST)
там подхватить скриптом и сложить в базу (или куда надо)

из 1С подключиться к MS-SQL (читать подробнее про 1С)

из 1С через ODBC подключиться к вашему серверу (от mysql до oracle - любой) но врядли Вы захотите открыть порт mysql наружу

вот... решения я предложил не самые красивые, но действенные
 

HEm

Сетевой бобер
Автор оригинала: Линк
есть несколько способов:

из 1С сгенерить файлы и послать их на сервер (по ftp файлом или через POST)
там подхватить скриптом и сложить в базу (или куда надо)
минус - скрипт (пхп) работает довольно медленно
из 1С подключиться к MS-SQL (читать подробнее про 1С)
Ты наверное имел в виду из PHP?
из 1С через ODBC подключиться к вашему серверу (от mysql до oracle - любой) но врядли Вы захотите открыть порт mysql наружу
вряд ли

в настоящий момент выбираю между прямым подключением к MSSQL из скрипта и генерированием готового SQL-запроса на полное обновление базы
 

Alexandre

PHPПенсионер
из всего перечисленного катит только первый способ, т.к. у хостера как правило к MySQL проблематично удаленно подключится, хотя некоторые дают такую возможность.
 
Сверху