Имя: Пароль:
1C
1С v8
Связать сайт и 1С
0 mc_julik
 
17.07.15
15:21
Добрый день, прошу советы, если возможно примеры связки сайта и приложения 1С 8.3
Задача такова, есть приложение работающее несколько лет и к нему требуется создать сайт, то есть надо подключаться к приложению для чтения данных, думаю их кэшировать на час или два, не знаю если так будет правильно и запись в базу данных 1С оформленных заказов.
Как быть с чего надо начинать и реально ли это сделать?
Я начал копать в сторону SOAP, но увидеть бы какой то рабочий пример и понять принцип работы.
1 Garykom
 
гуру
17.07.15
15:25
2 lanc2233
 
17.07.15
15:43
Подключайся через ODBC к базе.
3 vhl
 
17.07.15
15:46
через внешние источники не проще?
4 Котокот
 
17.07.15
15:54
Обмен файлами XML. Все прочие варианты с подключениями и т.д. это ненадежно. Упал интернет, подвис сервер - заказ не выгрузился. А файлики складируй себе на сервере, скачивай через ftp время от времени. Для "онлайности" можно при создании заказа на сайте создавать xml-файл с его данными и дергать через веб-сервис 1С, чтобы она его моментально подгрузила.
5 Serginio1
 
17.07.15
16:25
6 Garykom
 
гуру
17.07.15
16:31
(2)-(4) а Вам не кажется что мой способ все таки лучше...
надежнее по крайней мере точно
7 Garykom
 
гуру
17.07.15
16:31
(6) (2)-(4) = (2)-(5)
8 Serginio1
 
17.07.15
16:37
(7) Не зная всех подводных камней я бы не стал писать в базу напрямую, кроме непериодических регистров сведений.
Но базы могут быть в том числе и файловые.
9 Serginio1
 
17.07.15
16:38
8+ прошу прощения. Ему только для чтения. Пусть читает напрямую
10 stix2010
 
17.07.15
16:38
(4)  txt и dbf ненадежны?
11 Serginio1
 
17.07.15
16:41
12 Garykom
 
гуру
17.07.15
16:44
Вот серьезно не пойму идиотизма... если магазин на php то это MySQL почти 100%

если заказы в MySQL то какого мешает 1С периодически туда коннектиться и что нужно выкачивать?
13 stix2010
 
17.07.15
16:45
проще всего выгружать данные в файл csv, на сайте  пишется php обработчик отдающий инфу в сsv, 1С кой парсится, дальше фоновым заданием
14 Garykom
 
гуру
17.07.15
16:45
(12)+ в смысле не пойму вот зачем разные "прокладки" изобретать?
http://catalog.mista.ru/public/90666/
15 Garykom
 
гуру
17.07.15
16:46
(13) очередная прокладка в виде выгрузки (писать код?), csv (как туда все засунуть?) и загрузки (ну снова код!)
16 stix2010
 
17.07.15
16:49
(15) Если сервер mysql не будет открыт извне? Висит у хостера?
17 stix2010
 
17.07.15
16:51
и тут код не надо писать?
18 Garykom
 
гуру
17.07.15
16:52
(0) а если Вы "чисто веб разработчик" то чтобы "спихнуть от себя проблему" нет ничего гениальнее чем отсылать заказы по электронке...

и пусть там 1С-ники занимаются любовью с парсингом писем
19 Garykom
 
гуру
17.07.15
16:53
(16) и шо? либо открыть правильно либо веб-обертка на том же php будет надежнее хотя и сложнее
(17) меньше
20 stix2010
 
17.07.15
16:59
csv можно засунуть все - маленький пример правда 10летней давности,
читаемо и файлы минимальны.

orders>
1;20050217;Иванов
<orders
ordersdetail>
1;10;100;15
<ordersdetail

а сейчас кошерны вебсервисы
21 stix2010
 
17.07.15
17:01
а Вы с вашим вебобертками рано или поздно получите гемор по безопасности
22 Garykom
 
гуру
17.07.15
17:02
(20) это не csv а свой "текстовый формат"

(21) я?
23 stix2010
 
17.07.15
17:05
(22) ладно если так  csv?

orders;1;20050217;Иванов;
ordersdetail;1;10;100;15;
clients;Иванов;
24 Garykom
 
гуру
17.07.15
17:09
(23) и это "хрень какая то"

сsv это набор одинаковых записей через ентер, поля которых разделены ";"

для представления объектов нуна все в одну строчку - один объект = одна строка ну или несколько cvs

ЗЫ в общем случае в csv даже порядок строк неважен, по умолчанию поле индекс строки делается
25 Garykom
 
гуру
17.07.15
17:10
(24)+ т.е. выгрузить то в (23) легко... а вот потом как загрузить? как понять в какой строке какая часть заказа?
26 stix2010
 
17.07.15
17:15
Хорошо это txt с разделителями.
orders, ordersdetail,clients - имена таблиц mysql.

Хотя еще раз сейчас xml-ом это проще сделать.
27 Garykom
 
гуру
17.07.15
17:16
(26) да хоть json'ом
28 Котокот
 
19.07.15
12:03
(7) Какой именно способ? Веб-сервисы или прямое подключение? Веб-сервис мы используем только для ускорения процесса обмена, чтобы дернуть 1С, мол, у нас готов файлик для загрузки, приходи за ним. В случае когда пропадает связь (сайт потух, 1С недоступна) веб-сервису некуда (или неоткуда) стучаться. А файлики себе складываются, ждут, когда связь наладится и регламентное задание их заберет.
29 Котокот
 
19.07.15
12:03
(27) JSON'ом, кстати, лучше всего будет. Наконец-то его на уровне платформы реализовали.
30 ProDeveloper
 
19.07.15
12:10
Последние тенденции в плане обменов от 1с это уход от веб-сервисов и переход к интерфейсу odata (REST-запросы).
31 ProDeveloper
 
19.07.15
12:11
Для этих целей нужно опубликовать базу + интерфейс odata на веб сервер.
32 ProDeveloper
 
19.07.15
12:11
Далее все очень просто до безобразия.
33 ProDeveloper
 
19.07.15
12:14
Небольшое описалово odata -> http://v8.1c.ru/o7/201312rest/
34 Котокот
 
19.07.15
12:37
(31) Фикус в том, что для этого надо опубликовывать, открывать - дыры в безопасности в общем.
35 Сниф
 
19.07.15
17:15
(34) тогда любая связка с сайтом - дыра в безопасности. Тогда лучшая защита - сверхсложная структура таблиц сайта и кривой код в 1С.
36 Gepard
 
19.07.15
20:29
(0) php страничка, которая возвращает незагруженные заказы в json. Вторая страничка которая принимает файл с  товарами (csv). Третья, которая подтверждает загрузку заказов по ид.
Можно совместить в одну
37 Gepard
 
19.07.15
20:30
(36) регламентным заданием вызывать с нужной периодичностью
38 Gepard
 
19.07.15
20:32
Данная схема минимизирует требования к дополнительным настройкам и не требует открытия дополнительных портов и т.п.
39 Котокот
 
20.07.15
11:45
(35) Нет
40 Котокот
 
20.07.15
11:46
(35) 1С, открытая по белому айпи, и 1С, сидящая непонятно где и время от времени дергающая сайт - это две большие разницы с точки зрения безопасности.
41 France
 
21.07.15
02:11
Есть рабочий пример. Но, нельзя вот так вот взять и отдать - за него заказчик денежку платил  это его собственность. И создавали эту собственность проги не день и не в одиночку. Но если что - стучись в почту)) чем нибудь промежуточным поделюсь))
42 Котокот
 
21.07.15
10:28
(41) Ой, ну ладно, про собственность заказчика можно было бы не говорить )))
43 Учитель
 
21.07.15
10:39
Очень хорошая тема , сейчас прогер которого я нанял делает что то подобное) Кстати кто разбирается в веб сервисах и проч, пишем на [email protected]
44 Остап Сулейманович
 
21.07.15
10:42
(43) "кто разбирается в веб сервисах и проч, пишем на [email protected]"
Зачем?
45 Maniac
 
21.07.15
10:47
Вот люди - процессионально занимаются и специализируются на любых движках сайтов и обменах с 1С.

http://cms1c.ru

Сам работаю с ними регулярно.
46 miki
 
21.07.15
10:56
(45)что это за нонэйм фирма, находящаяся неизвестно где?
47 rsv
 
21.07.15
11:01
(0) Странный вопрос  .... ну по крайней мере  на текущий момент времени . Скорее способов и методов тьма . Выбирайте самый дешевый и простой.
48 mc_julik
 
03.08.15
15:31
Мда не знаю что случилось что уведомления не пришли, думал о мне тут все забыли, слава богу нет
Вся беда в том что написать любой скрипт php и тем более обработку XML это фигня делов для меня, но я как видел xml сообщения обмена, он с кирилическими тегами и меня это пугает.
Что я понял, так это вот что, для обновления цен услуг или списка клиентов я настраиваю обмен и пишу под него обработчик, а для отгрузки заказов мне надо всего лишь отдать конекты к базе и пусть одинсшники подключаются и забирают заказы?
Как мне сделать для этого тестовую площадку, установить у себя 1С?
Принцип теста такой должен быть, получил XML сохранил ее для кронтаба и потом он запускает скрипт по обработке?
49 gigi789
 
03.08.15
15:54
(48) про какие уведомления речь??
50 Котокот
 
04.08.15
08:24
(48) " для отгрузки заказов мне надо всего лишь отдать конекты к базе и пусть одинсшники подключаются и забирают заказы"
Не надо коннекты отдавать, надо написать на php скрипт, который в режиме реального времени будет формировать необходимые данные в формате xml. Подключаться ЧтениемXML к этому скрипту, указывая в качестве пути URL и работать из 1С с ним как с обычным xml-файлом.
Ну или при записи заказа на сайте формировать xml-файл с его данными, сохранять в определенной папке на сайте, 1С через ftp будет его забирать и загружать, после загрузки удалять с ftp.
51 mc_julik
 
05.08.15
14:45
(49) о том что я имею сообщения в теме
(50) вся беда в том что я остался без 1с программера и мне надо все сделать самому, выход это REST или искать кодера 1с, чтобы работать только через веб-сервисы
52 gigi789
 
05.08.15
14:47
(51) Тут такого нет вроде
53 Котокот
 
05.08.15
15:37
(51) Нанять единоразово, чтобы кодер 1С сделал все грамотно и красиво. ИМХО это лучший вариант.
54 xXeNoNx
 
05.08.15
16:08
(53) +100
55 rs_trade
 
05.08.15
16:11
Прямые запросы. 1С всегда инициатор. Сначала читает измененные данные, потом пишет на сайт нужные.

Веб сервисы круче, но муторней и более трудоемко реализовывать.
56 xXeNoNx
 
05.08.15
16:20
(55) Чем оно трудоемко?
57 xXeNoNx
 
05.08.15
16:20
+(56) делаешь xml и на обмен...
58 rs_trade
 
05.08.15
16:26
(56) Кодить и отлаживать сложнее. Да еще с двух сторон веб-сервисы писать надо. Прямые запросы из 1С быстро, просто и эффективно. Все с одной стороны пишешь. На сайте только флаги измененных данных для 1С сделать надо и доступ.
59 xXeNoNx
 
05.08.15
16:30
(58) На выходе всегда массив данных в том или ином виде, в обработку засунуть исполнение и вуаля, отладка.
Если обмен с сайтом, то вопрос сайтом решает web-программист.
Прямые запросы? - ну фик знает, если база удаленно, то доступ к скулю должен быть.
60 mc_julik
 
06.08.15
13:01
Да как то бы не хотелось напрягать 1с прогера, потому что придется отваливать денег ему от проекта, а я сам не против поработать. Но как не крути придется нанимать и платить, я вот подумал можно ли REST сделать ограничение только на чтение, чтобы не наделать дыр, мне надо только чтение и запись заказов, последнее так и быть отдам ему, чтобы он сам с этим разбирался)))