Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите с 1С

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
BespredeL
Отправлено: 04 Февраля, 2015 - 11:29:09
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июль 2010  
Откуда: Кашира


Помог: 0 раз(а)




Всем приветы!
Ребят, измучился весь уж.
Подскажите как сделать обмен 1с с сайтом.
Если не жалко киньте примеров.

Касательно Google и Yandex я уже искал.
К сожалению ничего не нашел подходящего, либо я лошара =)))

Как говориться помогите кто чем может =)))

ps: Версия 1С 8.3
 
 Top
skiphog
Отправлено: 04 Февраля, 2015 - 17:24:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




Код с примером внизу поста
--

Для работы с обменом 1С и вашим сайтом, нужно хотя бы маломальски уметь работать с xml.
Особых знаний не нужно, нужно только взять файл, прочитать, пробежать в цикле по узлам и занести в базу нужные данные.

Протокол обмена данными и как все происходит, почитать можно здесь http://v8[dot]1c[dot]ru/edi/edi_stnd/131/

Далее немного рассмотрим только обмен товаров на сайт. Рассматривать обмен заказами не будем, т.к. если поймете обмен товарами, то с обменом заказов проблем не будет.

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

В 1с настройте обмен данными с web-сайтом. Указав какие товары, цены, остатки будете выгружать.
Отмечайте чекбокс - Выгрузка товаров.
В поле Адрес сайта укажите путь http://site.ru/1c_exchange.php
Логин и пароль пока оставьте пустым.

Сам процесс. Простыми словами.
Обмен товаров происходит в 4 этапа. На каждом этапе 1С будет отправлять разные http-запросы, и ждать ответ от сервера.

1. Начало сеанса

1С пуляет вам http-запрос запрос на аторизацию: /1c_exchange.php?type=catalog&mode=checkauth
*type=catalog - говорит о том, что будет осуществляться выгрузка товаров.
*mode=checkauth - запрос на авторизацию.
Естественно все это дело попадет в массив $_GET.
Далее 1с ждет ответ от сервера в виде строки success или failure
Если вы не проверяете на логин и пароль и не указываете их в 1С, просто отправьте обратно строку echo "success\n";
Если вы хотите работать с авторизацией, то логин и пароль будет лежать в $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'];
Достаете, проверяете на соответствие и оправляете ответ.
Если 1C получает success,- продолжает процесс.

2. Запрос параметров от сайта

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=init
Тут она спрашивает, умеет ли ваша система работать с zip архивами?
PHP прекрасно работает с ZIP, поэтому отвечаем 1C - zip=yes
Иначе, 1с будет загружать файлы не в архиве.

3. Выгрузка на сайт файлов обмена

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=file&filename=<имя файла>
На этом этапе принимаем файл, распаковываем его. Достаем из архива два xml файла.
import.xml и offers.xml
отвечаем 1С success, ну и соответственно failure, если что-то не получилось.

И начинается самая важная часть.

4.1 Пошаговая загрузка каталога

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=import&filename=<имя файла>
В <имя файла> будет храниться значение import.xml
На этом этапе вы берете файл import.xml и начинаете его парсить.
Как известно, самая простая читалка - это simpleXml, но здесь на ваш вкус и цвет Улыбка
Читаете файл, берете данные, записываете себе в базу данных.

Здесь лирическое отступление и вот на что стоит обратить внимание.
1с формирует 2 файла для отправки import и offers
В import она кладет каталоги(категории), товары, а в offers - цены и всякие опции....цвет, размер и т.д.
Естественно у каждой категории и товара 1с дает уникальный идентификатор, по которому идет связь.

НО!
Версии 1с могут отличаться и может случиться так, что выгрузка будет разная, все будет наоборот. Цены с товарами в import, а каталоги в offers.
В общем, перед выгрузкой изучите эти файлы и переделайте загрузчик под себя.

И так. Как только вы распарсили первый файл. отдаем 1с ответ success

4.2 Пошаговая загрузка каталога

Здесь 1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=import&filename=<имя файла>
где <имя файла> уже offers.xml
Точно так же берем файл. Парсим, вставляем в базу.
И говорим 1Ске success

Всё. На этом весь процесс заканчивается и 1С говорит вам - Выгрузка товаров успешно завершена

Привожу пример. Файлик 1c_exchange.php, в котором все происходит.
Оформил в виде простого класса, да бы было все более менее понятно.
Реализация ни в коем случае не претендует на боевые условия, сделан специально для понимания. Хотя вполне себе рабочий вариант, можно поиграться Улыбка Аторизовывает, скачивает файлы, распаковывает. Но ничего не парсит, а эмулирует success))))
Спойлер (Отобразить)


Вот и всё.
За ошибки и кривое повествование простите. Если что-то непонятно - пишите в личку Улыбка

(Отредактировано автором: 04 Февраля, 2015 - 17:45:57)

 
My status
 Top
BespredeL
Отправлено: 20 Февраля, 2015 - 12:31:10
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июль 2010  
Откуда: Кашира


Помог: 0 раз(а)




Большое спасибо за помощь =))
разобрался =)))

skiphog пишет:
Код с примером внизу поста
--

Для работы с обменом 1С и вашим сайтом, нужно хотя бы маломальски уметь работать с xml.
Особых знаний не нужно, нужно только взять файл, прочитать, пробежать в цикле по узлам и занести в базу нужные данные.

Протокол обмена данными и как все происходит, почитать можно здесь http://v8[dot]1c[dot]ru/edi/edi_stnd/131/

Далее немного рассмотрим только обмен товаров на сайт. Рассматривать обмен заказами не будем, т.к. если поймете обмен товарами, то с обменом заказов проблем не будет.

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

В 1с настройте обмен данными с web-сайтом. Указав какие товары, цены, остатки будете выгружать.
Отмечайте чекбокс - Выгрузка товаров.
В поле Адрес сайта укажите путь http://site.ru/1c_exchange.php
Логин и пароль пока оставьте пустым.

Сам процесс. Простыми словами.
Обмен товаров происходит в 4 этапа. На каждом этапе 1С будет отправлять разные http-запросы, и ждать ответ от сервера.

1. Начало сеанса

1С пуляет вам http-запрос запрос на аторизацию: /1c_exchange.php?type=catalog&mode=checkauth
*type=catalog - говорит о том, что будет осуществляться выгрузка товаров.
*mode=checkauth - запрос на авторизацию.
Естественно все это дело попадет в массив $_GET.
Далее 1с ждет ответ от сервера в виде строки success или failure
Если вы не проверяете на логин и пароль и не указываете их в 1С, просто отправьте обратно строку echo "success\n";
Если вы хотите работать с авторизацией, то логин и пароль будет лежать в $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'];
Достаете, проверяете на соответствие и оправляете ответ.
Если 1C получает success,- продолжает процесс.

2. Запрос параметров от сайта

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=init
Тут она спрашивает, умеет ли ваша система работать с zip архивами?
PHP прекрасно работает с ZIP, поэтому отвечаем 1C - zip=yes
Иначе, 1с будет загружать файлы не в архиве.

3. Выгрузка на сайт файлов обмена

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=file&filename=<имя файла>
На этом этапе принимаем файл, распаковываем его. Достаем из архива два xml файла.
import.xml и offers.xml
отвечаем 1С success, ну и соответственно failure, если что-то не получилось.

И начинается самая важная часть.

4.1 Пошаговая загрузка каталога

1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=import&filename=<имя файла>
В <имя файла> будет храниться значение import.xml
На этом этапе вы берете файл import.xml и начинаете его парсить.
Как известно, самая простая читалка - это simpleXml, но здесь на ваш вкус и цвет Улыбка
Читаете файл, берете данные, записываете себе в базу данных.

Здесь лирическое отступление и вот на что стоит обратить внимание.
1с формирует 2 файла для отправки import и offers
В import она кладет каталоги(категории), товары, а в offers - цены и всякие опции....цвет, размер и т.д.
Естественно у каждой категории и товара 1с дает уникальный идентификатор, по которому идет связь.

НО!
Версии 1с могут отличаться и может случиться так, что выгрузка будет разная, все будет наоборот. Цены с товарами в import, а каталоги в offers.
В общем, перед выгрузкой изучите эти файлы и переделайте загрузчик под себя.

И так. Как только вы распарсили первый файл. отдаем 1с ответ success

4.2 Пошаговая загрузка каталога

Здесь 1С пуляет вам http-запрос запрос : /1c_exchange.php?type=catalog&mode=import&filename=<имя файла>
где <имя файла> уже offers.xml
Точно так же берем файл. Парсим, вставляем в базу.
И говорим 1Ске success

Всё. На этом весь процесс заканчивается и 1С говорит вам - Выгрузка товаров успешно завершена

Привожу пример. Файлик 1c_exchange.php, в котором все происходит.
Оформил в виде простого класса, да бы было все более менее понятно.
Реализация ни в коем случае не претендует на боевые условия, сделан специально для понимания. Хотя вполне себе рабочий вариант, можно поиграться Улыбка Аторизовывает, скачивает файлы, распаковывает. Но ничего не парсит, а эмулирует success))))
Спойлер (Отобразить)


Вот и всё.
За ошибки и кривое повествование простите. Если что-то непонятно - пишите в личку Улыбка
 
 Top
smoln
Отправлено: 07 Июня, 2018 - 17:54:11
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




А можете дописать еще и на загрузку и выгрузку заказов с сайта
 
 Top
samson14
Отправлено: 23 Сентября, 2019 - 09:14:56
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Сент. 2019  


Помог: 0 раз(а)




skiphog подскажите а как принять этот запрос из 1с, я должен сделать case какой то на авторизацию или как?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB