Имя: Пароль:
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 будет или где? Анонсируют но не говорят когда ждать
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший