0. Mleg 279 08.10.13 22:43 Сейчас в теме

Универсальный обмен данными XML через web-сервисы

Организация онлайн-обмена данными в формате "Конвертации данных" через web-сервисы

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. GoodZone 9 09.10.13 06:35 Сейчас в теме
тестовую бы конфу, чтоб не с нуля пробовать.
2. т1951 09.10.13 09:22 Сейчас в теме
очень интересно. Спасибо
3. KliMich 09.10.13 09:26 Сейчас в теме
Идея довольно интересная. Спавибо!
Буду пробовать
4. Tedman 09.10.13 10:04 Сейчас в теме
Mleg, ну что тут скажешь?!
Красавец! Сам частенько занимаюсь процессом обмена данными, и думал разобраться с тем, можно ли его проводить через web-сервисы, а тут статья такая отличная.
Во всём этом есть только один (как мне кажется) очень неприятный момент. Если (теоретически) некий злоумышленник перехватит пакет (если используется незащищенное http-соединение), то с помощью обработки обмена с привилегированным режимом сделать он сможешь что угодно. Вероятность, конечно, не велика, но, тем не менее, сделать это не сложно.
5. stanru1 85 09.10.13 10:46 Сейчас в теме
элегантно! ценю такой подход, когда по максимуму используется типовой функционал. автор молодец!
6. Yashazz 2384 09.10.13 10:56 Сейчас в теме
Достаточно подробно, грамотно расписано. Наконец кто-то озаботился, спасибо.
Жаль, самые скользкие и интересные грабли (как публикация веб-сервисов) оставлены за кадром. Ибо, на самом деле, документации на эту тему крайне мало, а труднообъяснимых граблей и багов платформы там много.

И да, веб-сервисы 1С это страшенная дыра в безопасности, конечно. Поэтому, увы, в серьёзных проектах либо не используются, либо требуют дополнительных мер защиты сторонними средствами.
18. bonv 10.10.13 13:37 Сейчас в теме
(6)Yashazz,
А можно примеры
страшенная дыра в безопасности
?
7. ZLENKO 09.10.13 11:38 Сейчас в теме
8. peterxx 20 09.10.13 12:24 Сейчас в теме
Прекрасно, интересная, добротная, актуальная статья. Думаю будет очень полезно.
9. Yashazz 2384 09.10.13 12:33 Сейчас в теме
Такие статьи, конечно, были и раньше, например, http://infostart.ru/public/159824/
Но здесь достаточно толково расписано то, что ранее было изложено более скомканно.

А вот то, что действительно сложно в веб-сервисах (публикация), здесь не освещено и считается само собой разумеющимся. Поэтому плюсить не буду.
10. Mleg 279 09.10.13 13:30 Сейчас в теме
(9) Да, я смотрел эту статью, перед тем как писать свою. Она немножко на другую тему, там не про передачу данных в формате Универсального обмена.
Да, публикация веб-сервисов – это не всегда просто. Я не считаю это само собой разумеющимся. Но это за рамками статьи, совсем другой вопрос, моей целью не было покрыть и эту тему. С таким же успехом можно было бы упрекнуть в том, что я не рассмотрел вопросы установки платформы.
Однако, "Пожелание зарегистрировано" ©
Atrocity; Dmitrii D; Unk92; AganinEvgeniy; w-divin; SirYozha; +6 Ответить
11. Yashazz 2384 09.10.13 13:46 Сейчас в теме
(10) Не согласен. Милейшая строка "http://server1c8/db_buh/ws/xml-exchange.1cws?wsdl" вызовет вопросы у ваших читателей. Откуда она взялась? По каким принципам сформирована? Что в ней есть что?
Вы никак специально не заостряете на ней внимание, в результате произойдёт копипаст, а потом ваша процедура не заработает, и вам же предъявят, что публикуете фигню на ИС. Оно надо?
16. WKBAPKA 212 10.10.13 11:07 Сейчас в теме
(9) Yashazz,
в публикации веб-сервисом сложного ничего нет если веб сервис и 1С установлены на одном сервере. Если же на разных серверах, то:
1. Если сервера крутяться под виндой, установить клиента 1С на сервер с веб сервисом (это самый простой вариант), или публиковать с помощью утилиты.
2. Если сервера крутяться под другой операционкой, пробывать публиковать с помощью утилиты входящей в платформу, но прийдется повозиться.
Но всеже проще иметь отдельный тазик с виндой для оного дела, который будет светиться в интернете.
19. Yashazz 2384 10.10.13 14:57 Сейчас в теме
(16) Берёте 1 локальный комп (сам себе сервер), винду7 и iis7.5, простейшую файловую базу, и я посмотрю, как для вас "в публикации ничего сложного нет". При наличии всех нужных прав и прочая, разумеется.
(17) Вот так писать не надо. Первый параметр - это, цитирую, "МестоположениеWSDL" (Местоположение WSDL файла, откуда будет получено определение веб-сервисов), а отнюдь не URI. И формируется не как левая пятка хочет, а по чётким принципам, внимание на которых заостряют редко.

Идею изложил хоть и давнюю, но хорошую. Изложил чётко, внятно, доступно. НО: допустил недосмотр, который не позволяет воспользоваться статьёй без доработки кода напильником. Фактически, "скачал - не работает". Согласны?

(18) Покурите старые дискуссии насчёт веб-сервисов с участием Трактора. Я щас навскидку не найду.
20. WKBAPKA 212 10.10.13 16:22 Сейчас в теме
(19) Yashazz,
1. А чего пробывать? У меня дома развернутый сервер установлен под Апач, я на нем гонял свои веб сервисы. И у клиента установили без проблем. Была только проблема с настройками кодировки самого веб-сервера, а опубликовать вообще не проблема. Кстати, на эту тему, тему публикации, как раз много информации в интернете, даже есть видео на ютубе.
2. сорри, спутал с WSПрокси... но как бы там не было, можно WSПрокси использовать без создания определения. Ну уж если Вам так надо, почитайте про веб сервисы в интернете, ведь эта технология не разработка 1С. Там же найдете и правила формирования строки.
23. Yashazz 2384 10.10.13 16:44 Сейчас в теме
(20) Ключевое слово - "под Апач". Под IIS всё не так просто. И нигде, ни на каком ютюбе, нет подробностей и тонкостей авторизации, к примеру.
(20)(21) Мне - в общем, ничего не надо, кроме предупреждения автора крупными буквами, что без доработки это вообще ни у кого не взлетит. Или правки строки, о которой я говорю, в сторону шаблонизации.
Я-то и правила шаблона знаю, и другие моменты (которые, к слову, и на http://its.1c.ru есть), но автор об этом ни слова.

Повторяю, напильником придётся поработать не "возможно", а наверняка. Или я чего-то упустил, и "httр://server1c8/db_buh/ws/xml-exchange.1cws?wsdl" это уже стандартизованный дефолтный путь подключения?

(22) Ага, а полные права отдельным товарищам/группам на bin и папку базы, если она файловая? )) Золотую середину, при которой и веб-сервисы работают, и по доступу не "проходной двор", найти бывает трудно.
24. WKBAPKA 212 10.10.13 17:10 Сейчас в теме
(23) Yashazz,
я такие варианты про файловые базы даже не рассматриваю... зачем кому то что то публиковать, если база файловая??? Если у людей нет денег на приобретения сервера 1С, то значит у них нет денег и на организацию безопасности...

ПЫ СЫ: название данной публикации "Организация онлайн-обмена данными в формате "Конвертации данных" через web-сервисы". Т.е. предполагается что читатель знаком с понятием веб-сервис и умеет с ним работать. Вы еще предъявите претензии автору, почему он не расшифровал, что такое конвертация и не привел примеры и описания, как работать с этой конфигурацией.

AganinEvgeniy; l_men; +2 Ответить
26. Yashazz 2384 10.10.13 17:31 Сейчас в теме
(24) Оффтопить не буду, но, по-твоему, пользователи файловых БД почти как "недочеловеки", с чем не согласен.

Если б автор предполагал, что читатель знаком с веб-сервисами, достаточно было бы 1 предложения: "Выгрузку и загрузку делаем как вызов обработки обмена из методов веб-сервиса", и код этих методов.

Ну и странновато для знакомых с веб-сервисами выглядят фразы вроде "Расширение «1cws» тоже лучше не менять (не пробовал, если честно)." - RTFM руководство админа, господа; расширение это идёт в алиасе, а дёргать можно как по name (имени, как в конфе), так и по alias (предложенному имени файла).
В общем, нелогично - что-то разжёвано, что-то упущено.
Ладно, видимо, это я один такой не такой )))
awk; vano-ekt; holostyak; +3 Ответить
22. WKBAPKA 212 10.10.13 16:30 Сейчас в теме
(19) Yashazz,
Что касается дыр в безопасности, я читал статью на которую вы ссылаетесь... Но! в ней речь шла о публикации базы и опасность заключалась в том, что можно получить данные о пользователях и их паролях, что равносильно получить доступ к самой базе. Веб сервисы же напротив, предоставляют ограниченную информацию. При всех тех же параметрах, злоумышленник не получит больше, чем ему может дать сервис + можно еще организовать дополнительную аутентификацию, на уровне базы на случай, если кто то перехватит логин и пароль для авторизации!
12. Yashazz 2384 09.10.13 14:15 Сейчас в теме
Я уж не говорю про управление доступом. Вот возьмёт прокси и не создатся, ваши дальнейшие действия? Отсылать к "Руководству администратора"? А там это изложено, во-первых, для "одминов", а во-вторых, очень скудно и неполно. У 1С есть несколько багов, выдаваемых за фичи, в вопросе авторизации (что динамического подключения, что статического).

Без описания этого ценность вашей публикации снижается.
mr.Samuelson; +1 Ответить
13. Yashazz 2384 09.10.13 18:57 Сейчас в теме
Ну так что, автор, я минусую, т.к. нифига не работает?
14. Yashazz 2384 10.10.13 10:35 Сейчас в теме
Понятно. У всех, вишь ты, всё работает, и лишь у одного меня хардкодинг типа
Определения = Новый WSОпределения("http://server1c8/db_buh/ws/xml-exchange.1cws?wsdl", "WebServices", "12345");
вызывает дурацкие вопросы.
alexgt; kirinalex; +2 Ответить
17. WKBAPKA 212 10.10.13 11:12 Сейчас в теме
(14) Yashazz,
вот так писать не надо. Первый параметр, это пространство имен. Должен быть уникальным и может быть представлен любым уникальным адресом. Формируется произвольно, как вашей душе угодно.
Мне кажется, зря Вы на автора наезжаете. Он изложил хорошую идею для обмена данными между веб сервисами!
15. WKBAPKA 212 10.10.13 11:02 Сейчас в теме
бегло пробежался... статья хорошо написана... вот бы она была написана когда я искал пути передачи данных через WEB...
единственное, что хотелось бы посоветовать - методы веб-сервиса определять на английском языке, что бы при настройке веб-сервера не было проблем с кодировками. По крайней мере, я с этим столкнулся и потратил время на то, что бы разобраться в причине ошибки "Ошибка разбора SOAP сообщения: неверная версия сообщения" веб-сервиса.
21. WKBAPKA 212 10.10.13 16:26 Сейчас в теме
Автор предложил очень хорошую идею до которой еще нужно додуматься... а это уже дорогого стоит. Плюс, автор еще и реализацию описал. А то что напильником немного возможно прийдется поработать, так уж увольте. Отправте автору пару сот вечно зеленых президентов и он лично для вас напишет статью со всеми подробностями.
vkm1980; pm74; SerebanSK; Redokov; +4 Ответить
33. zarucheisky 30.10.13 15:49 Сейчас в теме
(21) Не, не совсем так, самой идее ровно столько лет, сколько платформе 8.1...
Все, кто сталкивался, знали, он, молодец, озвучил :)
25. WKBAPKA 212 10.10.13 17:11 Сейчас в теме
что касается IIS, документаций на эту тему полно... лично я рекомендую апач, т.к. проще...
27. awk 693 15.10.13 14:33 Сейчас в теме
(0) Круто. Вот только забыли недостатки SOAP:

1. Передача больших объемов двоичных данных требует наличия большого объема оперативной памяти. Получение ошибок: Out of memory.
2. Медленный ответ от 1С приведет к зависанию сессии веб сервера, что может отрицательно сказаться на его работе и работе ОС в целом.
3. На промежуточных узлах могут быть ограничения на размер POST запроса, что приведет к неожиданным вылетам обмена, и долгом курении травы поиске в интернете и документации.
4. Для отладки(при возникновении проблем) на клиент-серверных базах придется ставить отладку сервера, что не способствует производительности.
FSmile; mr.Samuelson; ZLENKO; CeHbKA; Totoro; kostas; +6 Ответить
28. kostas 10 28.10.13 18:17 Сейчас в теме
(27) awk,
За п.3 плюсанул Вам! Важная информация.

35. Трактор 1187 30.10.13 20:40 Сейчас в теме
(27) awk,
1. Передача больших объемов двоичных данных требует наличия большого объема оперативной памяти. Получение ошибок: Out of memory.

Я как-то гигабайтный файл передавал через веб сервис. Долго, но передался. Если обмен делать небольшими порциями и клиентов не очень много, то может прокатить.
38. awk 693 31.10.13 01:22 Сейчас в теме
(35) Трактор, Да. Может прокатить, а может и не прокатить. Если на промежуточных узлах нет ограничений - прокатит. А если есть ограничения, то порежут сообщение и кирдык.
39. awk 693 31.10.13 01:25 Сейчас в теме
(35) Трактор, Ночь. Читаю плохо. И не на то отвечаю.
По объему оперативки:

Один гиг - не показатель. Редко встретишь сейчас объем ОЗУ меньше гига. Плюс свап. Прокатит. Но не быстро. Проще кинутся ссылкой на ресурс.
29. psamt1k 28.10.13 21:55 Сейчас в теме
эх! Где же ты был полгода-год назад!!! Я себе весь мозг вскрыл, пока разобрался как тут все работает и смог добавить свои плюшки.
Но тем не менее плюсую!
30. Kamikadze 46 29.10.13 20:03 Сейчас в теме
У себя сделал немного проще - только выгрузку из системы НСИ. Идея хороша.
31. Kamikadze 46 29.10.13 20:07 Сейчас в теме
У меня, для примера, обмены через СОМ работали с каждой базой по 2 минуты, сильно нагружая сервер. Теперь - 20 сек. За 3 месяца потерь данных не было. так что идея перевода обменов на веб - сервисы очень даже актуальная. По - моему в последней СБП есть такие механизмы.
32. zarucheisky 30.10.13 15:15 Сейчас в теме
(31) обмены через СОМ работали с каждой базой по 2 минуты, сильно нагружая сервер. Теперь - 20 сек.
Скорее всего львиная доля времени уходила на инициализацию COM-объекта+авторизацию.
Грубо говоря, при одном и том же объеме передаваемых данных вызов тех же методов через COM/ws будет одинаков по быстродействию.
44. ZLENKO 11.07.14 12:22 Сейчас в теме
(32) zarucheisky, "обмены через СОМ работали с каждой базой по 2 минуты"

COM соединение можно сохранять между сеансами обмена и не инициализировать каждый раз заново.
48. ZLENKO 382 01.09.16 15:31 Сейчас в теме
(44) ZLENKO.PRO, "COM соединение можно сохранять между сеансами обмена и не инициализировать каждый раз заново."

Кстати в 8.3.8 уже нельзя :-)
34. kostik_love 273 30.10.13 18:31 Сейчас в теме
Ребята, может вопрос не в тему- но как выполнять отладку web-сервисов?
может автор напишет такую же полезную и подробную статью)))
36. Трактор 1187 30.10.13 20:42 Сейчас в теме
(34) kostik_love,
как выполнять отладку web-сервисов?

Как обычно. Включаешь отладку на сервере, в отладчике, там где предметы отладки, ставишь галку "отладка веб сервисов" и отлаживаешь. Отлаживать возможно только если ты сам делаешь запросы. Рабочую базу не отладишь - слишком много запросов.
37. Трактор 1187 31.10.13 00:48 Сейчас в теме
36+
(34) kostik_love, запросы к 1С можно посылать специализированной приблудой soapui http://sourceforge.net/projects/soapui/files/soapui/3.6.1/
40. kostik_love 273 31.10.13 10:01 Сейчас в теме
(37) Трактор, Спасибо за ответ- буду пробовать- очень своевременно
41. sarun 31 06.05.14 08:50 Сейчас в теме
Спасибо за хорошую обзорную статью. Только начинаю изучение вэбсервисов,поэтому статья очень помогла.
Вот только непонятным остался вопрос как передавать правила обмена в вэб сервисы, автор это намеренно опустил:

"Клиент (обращение к web-сервису)

Тут просто приведу примеры обращения к веб-сервисам. Откуда берутся правила обмена , правила выгрузки, значения параметров и т.п. – это уже вопрос вашей прикладной задачи и её реализации"

Подскажите, пожалуйста, кто сталкивался.
42. inesik 10.07.14 10:09 Сейчас в теме
(41) sarun, я тоже думала, куда их добавить, решила добавить в реквизит узла обмена, как хранилище значения.
43. Kamikadze 46 10.07.14 11:14 Сейчас в теме
так в БСП это уже работает
45. sarun 31 25.08.14 13:34 Сейчас в теме
46. БизнесРешение 23.09.14 09:57 Сейчас в теме
Отличная идея и описание процесса её реализации - доступно и всерьёз! :))
47. user_2010 418 11.11.14 15:10 Сейчас в теме
Есть такой вопрос: сделала веб-сервис в 1С, опубликовала, он работает в SoapUI, еще проверяли из других программ - работает... Но нужно его использовать в программе, которая работает на платформе SharePoint. Так вот у них мой веб-сервис не работает. Как они объясняют: не тот синтаксис веб-сервиса.

Вот такой синтаксис делает 1С:
xs:schema targetNamespace=
xs:element name=

А вот так надо SharePoint:
s:schema elementFormDefault=
s:element name=

Почему 1С делает "xs", а не "s"?

Т.е. вместо "<xs:..." должно быть "<s:...".

Как это сделать в 1С? Как изменить синтаксис опубликованного веб-сервиса?
51. user_2010 418 18.02.19 17:33 Сейчас в теме
(47) напишу, хоть и времени с тех пор прошло много. Проблема была не в 1С, 1С все правильно делала!
49. strafer 28.07.17 10:15 Сейчас в теме
Попробовал сделать описанное выше, но получил ошибку
Процедура или функция с указанным именем не определена (ПолучитьПравилаОбмена)
	ПравилаОбмена = <<?>>ПолучитьПравилаОбмена(); (Проверка: Сервер)

Конфигурация УТП.
50. Smal 18.02.19 16:43 Сейчас в теме
Возникла задача скрестить ужа с ежом через вэб обмен по правилам обмена из конвертации. Прочитал статью ..
сделал у себя на тестовой вэбсервис. при проверке начала выдавать ошибку (... переменная не найдена). увидел что автор в статье (на скрин)
в вэбсервисе переменная называется по одному(ПравилаОбмена, ПравилаВыгрузки, ЗначенияПараметров) , а в коде по другому (ПравилаОбмена, ПравилаВыгрузкиXDTO, ЗначенияПараметровXDTO) - я так понимаю, что это просто опечатка автора ? Если не так поправьте плиз.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Москва
Полный день

Консультант-аналитик 1С
Москва
Полный день

Консультант ERP-систем
Москва
Временный (на проект)

Программист 1С
Москва
зарплата от 140 000 руб.
Полный день