Имя: Пароль:
1C
1С v8
Обмен с использованием Web сервисов
,
0 Myti
 
28.09.11
13:45
Разбирал недавно чужую конфигурацию, наткнулся на интересный механизм обмена данными с использованием Web сервисов, к сожалению все модули поставляются без текста =((. Так вот возникла идея реализовать что то подобное.....
Собственно принимаю мысли по этому поводу.....
1 Myti
 
28.09.11
13:45
Есть идея регистрировать измененные объекты стандартным механизмом планами обмена.
2 mzelensky
 
28.09.11
13:49
(0) как разберешься, можешь сюда написать:

v8: Работа с веб-сервисами
3 Myti
 
28.09.11
13:50
Тут интересна сама структура обмена, вот если делать обмен через xml то там и сериализация и получение объекта, все оп полочкам,,,,а как же обстоят дела у xdto??? У него голые реквизиты..
4 sda553
 
28.09.11
14:08
(0) Ну собственно что я вижу своим аналитическим мозгом. Это отсутствие необходимости передавать xml пытаясь вшить ее в XDTO. Зачем? Представляете как будет передаваться 100 наборов записей с 50-тысячами записей. Это приблизительно 1 Гиг. Конечно инеты сейчас толстые, но если эту xml хотя бы банально зазиповать, то мир становится ярче  

- Делаем сообщение у которого в одном из параметров наша xml. Но не просто xml а ее zip код, т.е. зазипованная xml. Но естественно zip не засунешь в параметр в виде текста и тут нам на помощь приходит Base64 Итого получаем что то такое

<НомерСообшения>6440</НомерСообщения>
<НомерПринятого>5800</НомерПринятого>
<Отправитель>Москва</Отправитель>
<Получатель>Москва</Получатель>
<иксэмэлька>TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0
aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1
c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0</иксэмэлька>
5 Myti
 
28.09.11
14:14
эээээээээээээээ....я в ступоре.....походу (4) наизусть Web сервисы знает
6 sda553
 
28.09.11
14:17
(5) А что именно непонятно? Главная идея передавать всю xml в одном из реквизитов объекта xdto
7 Myti
 
28.09.11
14:18
(6) - хорошо....вот только еще и механизм кодирования/декодирования BASE64 придется привертыватьт =(
8 sda553
 
28.09.11
14:22
(7) Они есть в 1С прямо в встроенном языке
9 Myti
 
28.09.11
14:25
(8) - интересненько....попробую сейчас замутить =)))
10 probably
 
29.09.11
17:11
(0) У тебя 1с выступает поставщиком web-сервиса или клиентом?
11 Myti
 
30.09.11
14:45
Одна 1с поставщиком, другая клиентом...
Я реализовал передачу через BASE64 и ее десериализацию )))
12 probably
 
30.09.11
16:12
(11) Сможешь рассказать КАК сделать 1с поставщиком?
Мне достаточно простейшего примера, чтобы при обращении к сервису возвращалось, например, число
13 Юрий Лазаренко
 
30.09.11
16:15
(12) Давно этим занимался, подробностей не помню. Но диска ИТС с примером мне вполне хватило, чтобы разобраться. Там в принципе ничего сложного нет.
14 probably
 
30.09.11
16:55
(13) я как раз с ним и пытаюсь разобраться. У меня, наверное, основная проблема: я не понимаю понятия "пространство имен".
Поставщиком сервиса будет 1с, данные в нем он будет выдавать и получать только простых типов (строки и числа). Что туда написать и как оформить - вот в чем проблема
15 Юрий Лазаренко
 
02.10.11
13:22
(14) У тебя при вызове веб-сервиса будет вызываться функция общего модуля. В нее в качестве параметров будут передаваться твои "простые типы". Результат функции - строка или ХТМЛ-код.
16 sda553
 
03.10.11
16:56
(14) О пространстве имен

Представь себе 1С-ную конфигу. Какую нибудь типовую бухию. В ней есть Расходная накладная, Приходная накладная, перемещение и т.п. документы. И справочники Контрагенты,склады и т.п. и всякие функции типа "ПолучитьОстатки()"

Теперь представим конфигу-самописку какую нибудь с нуля. И вот в ней тоже есть Приходная, Расходная, Перемещение, Контрагенты, склады и функция "ПолучитьОстатки"

Но естественно конфиги отличаются и у справочников разные реквизиты и документы несовместимы и функция "ПолучитьОстатки" не работает в другой конфиге.

И вот, чтобы отличать Контрагента самописки и КОнтрагента типовой - вводят такую вещь как Пространство имен. Оно выглядит как URL адрес, но не имеет к нему никакого отношения. оно просто обозначает некий набор метаданных и функций над ними, чтобы не путать с похожими наборами метаданных и функций
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн