Имя: Пароль:
1C
1С v8
1С 8.2 УТ 10.3 обмен с php сайтом (с БД MySQL)
,
0 MailRes
 
06.11.14
19:05
Всем привет!

Есть 1С 8.2 УТ 10.3 (немного изменена конфигурация - роли - разграничивал доступ по документам) и сайт написанный на PHP с базой MySQL.

На первом этапе нужно синхронизировать контрагентов в 1С с MySQL (если добавили контрагента в 1с, то он тут или по расписанию выгружался бы в MySQL, если добавили контрагента в MySQL, то он бы добавлялся в 1С). Мне бы пока понять как это делать...

В итоге нужен будет "обычный" обмен для интернет-магазина - обмен заказами, номенклатурами, остатками, ценами.

Собственно вопрос - как это лучше сделать (с помощью чего)? В гугле видел ComerceML и "внешнее подключение", и "обмен XML" - не понял куда копать проще и надёждее...
1 Fragster
 
гуру
06.11.14
19:08
сделай вебсервисы и создавай/обновляй контрагентов онлайн в двух системах
2 Fragster
 
гуру
06.11.14
19:10
хотя на самом деле я бы разграничил сущности, создаваемые на сайте и в 1с (на сайте создавал каких-нибудь "пользователей сайта", которых бы при загрузке привязывал к "стандартным" контрагентам 1с)
3 MailRes
 
06.11.14
19:15
(1) Как это сделать?) Мне бы для начала понять как вытащить справочник контрагентов и синхронизировать его с сайтом. Чтобы в дальнейшем добавив настроек можно было любой инфой из 1С обмениваться в сайтом (точнее качать из 1С в MySQL и на оборот) :)
(2) Это будет после, немного забегаем вперёд... Ведь у одного пользователя может быть 1, 2, 10 и более юр.лиц. Поэтому пользователи сайта отдельно, а контрагенты отдельно (в разных таблицах MySQL будут храниться)
4 MailRes
 
06.11.14
19:17
(1) В вопросе "Как это сделать?" Скорее повторяюсь вопросом с помощью чего проще и надежднее? ComerceML? Внешнее подключение? Обмен XML? Или может еще есть лучше варианты?
5 КонецЦикла
 
06.11.14
19:21
Если на стороне сайта есть тот, кто напишет выгрузку - загрузку то проще будет xml-файлами :)
Передавать идентификатор из 1С - вот и будет синхронизация. Желательно в одном месте добавлять, в 1С.
6 Fragster
 
гуру
06.11.14
19:26
(3).2 надо сначала продумать структуру данных и их потоков, а потом делать, иначе через пол годика будет больно.

ну и опять же - у одной сущности должна быть одна "ведущая" система.
7 MailRes
 
06.11.14
19:34
(5) Идентификатор? Можно подробнее?
Например, спарсить XML, не думаю, что это будет проблемой. Т.к. есть познания как туда сюда из MySQL гонять данные в csv и xls форматы.
(6) вот и хочется сразу понять - через что делать? например, сейчас сделаю выгрузку контрагентов, налажу обмен, а когда придёт время браться за заказы, остатки, номенклатуры, то опять придётся переделывать всё - честно, надоело)))) т.к. нехватка знаний даёт свои побочные эффекты, сначала делаешь и кажется это правильным, через пару месяцев узнаешь новое и понимаешь, что то что делал - это ерундень, можно было было сделать проще и практичнее)))
8 MailRes
 
06.11.14
19:34
p.s. Ну и чтоб автоматом это дело всё синхронизировалось)))
9 Woldemar22LR
 
06.11.14
21:28
(8) 1с битрикс, помоему там это все должно быть проще.
10 Il19
 
07.11.14
04:46
из "нормальных" он-лайн обменов:
как самый универсальный вариант, уже упоминали - вэб-сервисы;
еще в 8.3.5 есть возможность писать прямо в базу мускуля, но это удобно если вэб-сервак "рядом" или нормальный канал;
также в 8.3 есть новая фишка от 1с rest-запросы (надстройка над ws), но не вовсех случаях удобна.

а файловые там просто выгр-загр по расписанию
11 necro
 
07.11.14
07:05
В общем,
1. пишем загрузку / выгрузку через XML
2. пишем вебсервис с методами ЗагрузитьФайл/ВыгрузитьФайл...
...
А еще лучше - сразу веб-сервисы, потому что там есть XDTO и всё круто, хотя и черех тухес. И желательно сразу предусмотреть загрузку/выгрузку порциями, потому что на время работы PHP-скрипта есть ограничение в 30с, да и вообще.
12 necro
 
07.11.14
07:08
В работе вебсервисов (и выгрузке/загрузке файлов) на PHP есть существенный недостаток: php всё-таки обычно обслуживает запросы клиентов, и сам по себе не работает (то есть никакой сервис php не крутится постоянно). Получается, что нужно либо придумывать какое-то задание в планировщике на вебсервере (которое уже не факт что будет на php) либо делать онлайн-обмены при каждом действии пользователя, но тогда будут тормоза и разрывы.
13 Il19
 
07.11.14
08:18
(12) Это точно! Для синхронизаций удобнее инициировать процессы на стороне 1С, а при появлении вэбзаказов тут оптимальный вариант запуск по расписанию ws или rest ... короче: обходится одним способом обмена не всегда эффективно, лучше комбинировать.