Имя: Пароль:
1C
1С v8
REST интерфейс для 1С ☑
0 bazvan
 
23.12.13
✎
12:40
Вот они чего наделали
http://v8.1c.ru/o7/201312rest/index.htm

веб расширение хоронят
1 Fragster
 
гуру
23.12.13
✎
12:41
вебрасширение и так не нужно было
2 dj_serega
 
23.12.13
✎
12:41
а как же "тыкать" по кнопочкам в 1с? ых...
3 mikecool
 
23.12.13
✎
12:42
и пусть хоронят, если есть что то более новое и лучшее
4 Fragster
 
гуру
23.12.13
✎
12:42
вообще круть
5 Fragster
 
гуру
23.12.13
✎
12:42
еще бы json прикрутили
6 dj_serega
 
23.12.13
✎
12:43
вот оно че (может кто не дочитает =) ):
Поэтому развитие и поддержку web-расширения мы планируем прекратить.
7 Fragster
 
гуру
23.12.13
✎
12:44
(6) а ты его юзал?
8 Fragster
 
гуру
23.12.13
✎
12:44
(7)+ я ни одного человека не знаю, кто бы юзал.
9 dj_serega
 
23.12.13
✎
12:47
(7) я разрабатывал :) а юзали пользователи :)
как по мне лучше бы и REST и web развивали дальше.
Не хочу ничего стороннего покупать/устанавливать если нужно с web-а в 1С достучаться.
10 Волшебник
 
модератор
23.12.13
✎
12:48
(9) веб-сервер по-любому нужен
11 dj_serega
 
23.12.13
✎
12:50
(10) а Web-расширение жалко.
12 Fragster
 
гуру
23.12.13
✎
12:51
(9) дык соап же.

в тренде json (по крайней мере, безгеморно в обе стороны).

А тут какая-то заляпуха, позволяющая напрямую изменять данные в 1ске вместо публикации методов как в случае с вебсервисами.
13 Fragster
 
гуру
23.12.13
✎
12:51
сделали бы REST над веб сервисами, я бы понял
14 Лодырь
 
23.12.13
✎
12:53
(5) А зачем? Неужели честно скопипасченных функций от BigB недостаточно? Или скорость неустраивает?
15 Fragster
 
гуру
23.12.13
✎
12:54
(14) чтобы юзать напрямую из пхп/жабаскрипта
16 Лодырь
 
23.12.13
✎
12:55
(15) О другой стороне я и не подумал.
17 pumbaEO
 
23.12.13
✎
12:57
RLS, RLS и еще раз RLS надо будет включать.
18 SUA
 
23.12.13
✎
13:02
интересно а обычный тонкий клиент следом полетит?
19 SUA
 
23.12.13
✎
13:04
и будет ли конфигуратор веб-приложений от 1С (отдельно от конфигуратора БД)?
20 dj_serega
 
23.12.13
✎
13:04
(17) если оно туда смотреть будет :)
21 Лодырь
 
23.12.13
✎
13:05
(18) Обычный клиент не полетит. Ибо он дефакто основной клиент 1С вообще.
22 AaNnDdRrEeYy
 
23.12.13
✎
13:18
(18) уж очень этот тонкий клиент стремный, такси вообще ужас.
23 sapphire
 
23.12.13
✎
13:26
(0) Пасиб
24 dj_serega
 
23.12.13
✎
13:29
(0) ах да :) спасибо =)
25 acsent
 
23.12.13
✎
13:31
(22) думаешь кто-то осилит написать норм клиент?
26 sikuda
 
23.12.13
✎
13:32
(0) Движение правильное, но если опять уровень поддержки стандартов так-же как с вэб-сервисами, то опять как всегда...
27 xReason
 
23.12.13
✎
13:35
Молодцы, верное направление выбрали
28 AaNnDdRrEeYy
 
23.12.13
✎
13:43
(25) на wpf можно что то попробовать сделать, там контролы очень гибко настраивать можно. в (26) правильно заметили, если поддержка урезанная то опять только для галочки "у нас REST есть"
29 xReason
 
23.12.13
✎
13:53
(10) Правильно ли я понял, что для этого REST все равно нужен Web-сервер, для того, что бы 1С принимала (получала) запросы. Т.е. когда идет передача (стороний софт) ---> 1C REST

?
30 Dunemaster
 
23.12.13
✎
14:03
Да, правильно
31 Necessitudo
 
23.12.13
✎
14:06
(29) Ну как бы логично - слава богу пока фирма 1С свой веб-сервер писать не стала.
32 xReason
 
23.12.13
✎
14:10
(31) А что им мешает, взять опенсорсный и вкарячить )))
33 daniyar5436
 
23.12.13
✎
14:15
чет я не понял была 1С стала БД в скул и морда 1С сейчас морду заберут нафиг тогда вообще нужна 1С если можно на прямую в Скуль лезть? ну надеюсь поняли направление мысли
34 badboychik
 
23.12.13
✎
14:17
ВААААУ
круто же ) я давно об этом мечтал
35 xReason
 
23.12.13
✎
14:17
(33) В скуль может только 1С лезть ))
ну и сама 1С это фронтэнд и бизнес-логика
36 xReason
 
23.12.13
✎
14:18
Вот только интересно, не надо ли будет клиентская доп. лицензия под это
37 badboychik
 
23.12.13
✎
14:18
(33) 1С становится сервером приложений, обрабатывающем бизнес-логику, как в нормальных системах на яве например, стандартная практика в корпоративных приложениях
38 dj_serega
 
23.12.13
✎
14:19
(36) да наверно нужно будет. web-сервер то нужен же.
39 badboychik
 
23.12.13
✎
14:20
теперь ждем расцвета альтернативных оболочек-клиентов на веб-фреймворках
40 Asmody
 
23.12.13
✎
14:21
(0) это просто праздник какой-то! можно выкидывать всякие левые прокладки
41 badboychik
 
23.12.13
✎
14:21
интеграция с сайтами теперь с полпинка делаться будет, никакие веб-сервисы не надо городить
42 daniyar5436
 
23.12.13
✎
14:22
мне тоже начинает нравиться )))
43 badboychik
 
23.12.13
✎
14:24
сделали бы еще выгрузку форм в XML, вообще песня была бы - нарисовал форму в конфигураторе, а она в твоем веб-интерфейсе преобразовалась в HTML с каким хочешь оформлением
44 Dunemaster
 
23.12.13
✎
14:27
(41) Так просто все не бывает) Наружу, по сути, выставлены потроха конфигурации и выбрать из них информацию нужную для конкретной интеграции может быть не так просто.

Для того, чтобы отдать данные сложного отчета все равно придется программировать на стороне 1С
45 xReason
 
23.12.13
✎
14:30
(38) жаль, несколько раз попадал на ситуацию, когда уперлись в потолок кол-ва лицензий и из-за этого веб-сервис не срабатывал или COM-подсоединение
46 badboychik
 
23.12.13
✎
14:30
(44) это понятно. Просто там ничего не сказано про вызов любых экспортных процедур общих модулей, если это будет, то никаких проблем.
47 Necessitudo
 
23.12.13
✎
14:33
Объясните нубу, в чем принципиальная разница между веб-сервисами и вот этой REST?
48 Ювелир
 
23.12.13
✎
14:34
Да, интересный поворот.
49 badboychik
 
23.12.13
✎
14:34
+(46) а хотя логику клиента можно будет писать прямо на JavaScript, общие модули останутся только серверные в идеале, это даже плюс
50 Necessitudo
 
23.12.13
✎
14:35
Аха, то есть для веб-сервисов мы изначально сами в коде описываем поведением, а в REST будут любые возможности без необходимости нам писать код на встроенном языке?
51 IamAlexy
 
23.12.13
✎
14:36
правильно ли я понимаю что можно тогда написать своего "тонкого клиента" на пыхыпы  и не платить за клиентские лицензии ?
52 xReason
 
23.12.13
✎
14:36
(50) да, это все проще, быстрее и лаконичные
53 badboychik
 
23.12.13
✎
14:39
(52) и REST отлаживать можно в любом браузере, не надо ставить/покупать soapUI
54 Dunemaster
 
23.12.13
✎
14:40
(46) Этот интерфейс ориентирован на CRUD-операции, я бы не стал ждать в нем вызовов экспортных процедур общих модулей в ближайшее время.
55 Asmody
 
23.12.13
✎
14:45
(47) веб-сервисы (которые были) — это SOAP, целое дело. REST — это тоже веб-сервисы, но работать с ними проще
56 Asmody
 
23.12.13
✎
14:46
(46) для этого уже есть SOAP
57 acsent
 
23.12.13
✎
14:46
Запросы то можно будет передавать?
58 badboychik
 
23.12.13
✎
14:46
(54) тогда промежуточный сервер можно свой написать хоть на яве хоть на РНР, хотя бы например для автоматического тестирования - прогонять документы и проверять их результаты в пакетном режиме или для автоматической записи данных в несколько баз - 1С и на сайт например
59 acsent
 
23.12.13
✎
14:47
(57) судя по описанию - нет. Тогда кому они нужны эти рест сервисы?
60 xReason
 
23.12.13
✎
14:47
(57) какие запросы?

Эх еще бы 1С объект JSON - хотя это по сути просто сложная структура.
61 Asmody
 
23.12.13
✎
14:48
самое чудо там — ExecuteTask()
теперь 1Ску можно "дернуть за волосы" без танцев вокруг
62 IamAlexy
 
23.12.13
✎
14:49
так я не понял - потенциально АРМ на рестсервисах сделать можно ?
63 Asmody
 
23.12.13
✎
14:50
(60) хороший JSON (де)сериализатор на 1С есть (на ИСе лежит), осталось только встроить его в платформу
64 pumbaEO
 
23.12.13
✎
14:50
(63) по скорости хороший?
65 badboychik
 
23.12.13
✎
14:51
(63) у 1С есть библиотека для работы с JSON - "Internet Connection Library", я же скачивал с http://www.1c-dn.com, только они ее убрали сразу
66 Serginio1
 
23.12.13
✎
14:51
(47) wiki:REST
(55) Кому проще? Для примера в SOAP есть WS-ReliableMessaging. Но в итоге В REST нет отслеживания из коробки. Так приходится самому строить защиту от повторной записи.
Ты и с SOAP можешь работать через REST. Никто не запрещает.
67 Asmody
 
23.12.13
✎
14:51
(64) для небольших объемов достаточный
68 Asmody
 
23.12.13
✎
14:53
(66) для реализации REST в текущем варианте приходится делать "прокладку", которая REST-запросы конвертирует в вызовы SOAP.
69 Serginio1
 
23.12.13
✎
14:59
(68) Так объясни на счет легкости. SOAP запрос это тот же Get только с данными отформатированными в XML, где сериализация десериализация автоматическая. Заметь в 1С данные все равно передаются через XML только десериализовывать нужно вручную.
Единственный плюс от REST это коды возврата и ручная работа с данными ответа
70 Asmody
 
23.12.13
✎
15:01
(69) легкость в том, что 1Ска построит за тебя интерфейсы со всеми чебурашками по нажатию 1 галки.
71 badboychik
 
23.12.13
✎
15:01
(69) Что непонятного то? Для SOAP надо писать узконаправленные веб-сервисы с определенным набором параметров и одной функцией на каждый веб-сервис. При REST ты получаешь доступ КО ВСЕМ данным, не написав ничего!
72 pumbaEO
 
23.12.13
✎
15:02
(70) вопрос в том, что даст ли возможность отключить для некоторых объектов автогенерацию API...
73 badboychik
 
23.12.13
✎
15:05
короче - вебсервисы пишутся каждый под свою задачу, а REST - универсальный доступ ко всей системе
74 Asmody
 
23.12.13
✎
15:05
все таки не надо путать. SOAP — это протокол. http при этом — лишь один из возможных транспортов (теоретически, можно и по smtp, например, SOAP-вызовы посылать. на практике я такого не видел). REST — это, скорее, паттерн, и он напрямую завязан на http.
75 Asmody
 
23.12.13
✎
15:06
(72) пока известно только [В конфигураторе вы публикуете REST интерфейс - флажок Публиковать стандартный интерфейс OData;
После этого объекты прикладного решения становятся доступны через этот интерфейс;]
76 Asmody
 
23.12.13
✎
15:08
там в примере интересные пространства имен используются:         xmlns:georss=http://www.georss.org/georss и xmlns:gml=http://www.opengis.net/gml

это они тонко намекают, или я чего-то пропустил?
77 Serginio1
 
23.12.13
✎
15:09
(71) Угу. Возьмем для примера
Создание нового элемента данных выполняется POST-запросом. В качестве значения ссылки передается нулевой GUID. При создании и модификации объектов значения свойств передаются в теле запроса в формате XML (здесь текст запроса приведён полностью):
POST  /OData_Tests_Infobase/odata/standard.odata/Catalog_Goods HTTP/1.1
Content-Type: application/atom+xml
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
User-Agent: 1C-Enterprise
Host: test-host:8090
Content-Length: 1610

<?xml  version="1.0" encoding="utf-8"?>
<entry  xmlns=http://www.w3.org/2005/Atom  
        xmlns:d=http://schemas.microsoft.com/ado/2007/08/dataservices  
        xmlns:m=http://schemas.microsoft.com/ado/2007/08/dataservices/metadata  
        xmlns:georss=http://www.georss.org/georss  
        xmlns:gml=http://www.opengis.net/gml>;

   <category term="EnterpriseV8.CatalogGoods"  scheme=http://schemas.microsoft.com/ado/2007/08/dataservices/scheme />
   <id />
   <title />
   <updated>2013-08-12T11:48:25Z</updated>
   <author>
      <name />
   </author>
   <content type="application/xml">
      <m:properties>
         <d:Code>157</d:Code>
         <d:DeletionMark>false</d:DeletionMark>
         <d:Description>Майка синяя</d:Description>
         <d:IsFolder>false</d:IsFolder>
         <d:Parent_Key m:null="true" />
         <d:Ref_Key m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:Ref_Key>
         <d:Артикул m:null="true" />
         <d:Поставщик_Key>F400322D-7AE8-4803-A7BE-0D80E525E8C2</d:Поставщик_Key>
      </m:properties>
   </content>
</entry>

Разбираем различие между методом SOAP

ЗаписатьЭлементСправочника(СериализаторXDTO.ЗаписатьXDTO(Объект))
Тоже из Коробки. При этом ты описание получаешь из XDTO итд.
Единственный минус это тяжеловесность, но никак не сложность на уровне программирования
78 Dunemaster
 
23.12.13
✎
15:11
(76) Это стандартные пространства, используемые OData, т.к. этот протокол поддерживает передачу геолокационных данных
79 Dunemaster
 
23.12.13
✎
15:12
(77) Пока да. А потом будет JSON

А если писать на .NET там вообще с XML работать не надо, просто объект руками собираешь
80 badboychik
 
23.12.13
✎
15:14
(77) вот и надо будет тебе писать огромную SOAP-прослойку в 1С которая будет состоять из функций ЗаписатьЭлементСправочника, ПрочитатьЭлементСправочника, ЗаписатьДокумент, ПрочитатьДокумент, ПрочитатьРегистр, ЗаписатьВРегистр и т.д.
81 Serginio1
 
23.12.13
✎
15:18
(79) Ну у JSONа есть куча недостатков. Но это не суть. в Net. можно по разному сериализовывать. Вот чего не хватает в сериализации объекта то это представление ссылки, что бы на клиенте вообще по минимуму заморачиваться. А может есть?
82 badboychik
 
23.12.13
✎
15:19
(81) В 8.3 можно представление свое формировать давно
83 pumbaEO
 
23.12.13
✎
15:20
(80) ну да с REST все проще, пока не поменяется структура, и дохера клиентов не рухнут, т.к. не обновили код у себя ибо фиг ты сможешь 2 версии держать, даже если одна depricated
84 Serginio1
 
23.12.13
✎
15:21
81+ Ну никто и не занимается сериализацией вручную
В SOAP это легко делается через WSDL,
для модели REST есть WADL, но он пока слабо поддержан инструментально.
85 Serginio1
 
23.12.13
✎
15:24
(80) Зачем одного хватит.
Объект=СериализаторXDTO.ПрочитатьXDTO(ОбъектXDTO);
прекрасно все преобразует.

Ну а Get?POST запросы к святому духу что ли обращаются?
86 badboychik
 
23.12.13
✎
15:25
(83) ну это проблема не REST а разработчиков, внешние интерфейсы в любой системе рухнут если серверный API поменять.
87 Serginio1
 
23.12.13
✎
15:25
85 Вернее хвати 2
ПрочитатьОбъект(Тип)
ЗаписатьОбъект(AnyRef)
88 Asmody
 
23.12.13
✎
15:30
блин, хочу теперь асинхронные вызовы в 1С
89 Asmody
 
23.12.13
✎
15:30
и многопоточность :)
90 pumbaEO
 
23.12.13
✎
15:30
(86) ну да расскажи, как ты будешь разработчикам документацию генерить, как один новый реквизит положит половину клиентов, как сможешь за неделю предупредить, что поменялось API и т.д.

Если по старинке - ща обновим базу, потом посмотрим кто отвалился, если много воя, тогда вернем обратно.
91 Asmody
 
23.12.13
✎
15:31
и функции первого порядка
92 pumbaEO
 
23.12.13
✎
15:31
(88) 5 модальных диалогов подряд сделай :) но только там процедуры.
93 Asmody
 
23.12.13
✎
15:32
(90) с чего-бы новый реквизит положит половину клиентов?
94 Dunemaster
 
23.12.13
✎
15:33
(90) Вообще говоря, OData предполагает, что новый реквизит не должен портить других клиентов, если он не является обязательным. И реализовать это не клиентской  стороне очнеь не сложно, в отличие от SOAP, скажем
95 Asmody
 
23.12.13
✎
15:33
(92) на клиенте не интересно
96 badboychik
 
23.12.13
✎
15:33
Веб-сервис это заранее оговоренная встроенная "единица" системы с прописанными параметрами и названием, и WSDL нужен чтобы разные внешние системы могли эти характеристики прочитать и проверить. А REST слабо регламентирован, зато зная небольшой набор правил, можно совершать любые операции  с данынми в системе.
Короче цели у них разные. Веб-сервисы для конкретных сложных действий типа обменов, команд, а REST - для универсального доступа к любому отдельному объекту данных типа COM-соединения.
97 GunKata
 
23.12.13
✎
15:54
для каких платформ будет актуально это? только 8.3 ?
98 badboychik
 
23.12.13
✎
15:54
это все наверно в 8.3.5 будет или где? Анонсируют но не говорят когда ждать
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой