Имя: Пароль:
1C
1С v8
1C OData RESTFull API библиотека python
,
0 sbryu
 
05.10.15
09:37
Привет!

Опубликовал зачатки библиотеки python для работы с 1C OData. Пока только чтнени.

https://github.com/surge-/1c_odata_python
1 Cyberhawk
 
05.10.15
09:38
Привет, а вопрос какой?
2 sbryu
 
05.10.15
09:44
Есть некоторое непонимание как создавать документы при помощи POST запроса. Вопрос задам в отдельном посте.
3 sbryu
 
05.10.15
09:56
Запрос POST возвращает ошибку

code: 8
message: Сущность 'Document_ЗаказПокупателя'

В чем может быть проблема?

Чать кода которая влияет на ошибку

conn = httplib.HTTPConnection("1c_IP_address")
sufix = u'ЗаказПокупателя'.encode('UTF-8')
doc = u'/xx/odata/standard.odata/Document_'.encode('UTF-8') + sufix
conn.request("POST", doc, postData, headers)
4 DDwe
 
05.10.15
09:58
 - "'Document_ЗаказПокупателя' "?
5 pumbaEO
 
05.10.15
09:59
вопрос, чем не удовлетворил https://github.com/odata/odatapy-client ?
6 sbryu
 
05.10.15
10:03
Я бы с радостью )
Есть пример как использовать с 1С? Можно ли доставать все поля XML документа? С кодировкой и именами полей в Кирилице работате?
7 Гёдза
 
05.10.15
10:04
Пишешь свою реализацию одата? Но зачем???
8 sbryu
 
05.10.15
10:09
Просто делаю зарпосы POST и GET стандартными билиотеками.
Пишу лишь обработку 1C XML и работу со структурой данных.

Столкнулся с проблеммой POST и кодировкой. Думаю любой другой билиотекой получил бы туже ошибку.

Повсяуому вертел свой код. Есть ли мысли откуда пришла ошибка:

Сущность 'Document_ЗаказПокупателя' не найдена

Может в сервере 1С что-то нужно настривать?
9 pumbaEO
 
05.10.15
10:11
если еще поискать то вот https://github.com/swl10/pyslet тут есть odata клиент тоже и по bsd лицензии.
10 sbryu
 
05.10.15
10:15
pumbaEO, спасибо, смотрел я эту библиотеку. Нет проблем с формированием запросов средсвами POST и GET для OData, но есть задача систематизировать работу со структурой данных 1C передаваемой через OData.
11 sbryu
 
05.10.15
10:16
Есть ли мысли почему 1С POST запрос возвращает:

Сущность 'Document_ЗаказПокупателя' не найдена
12 Гёдза
 
05.10.15
10:17
(11) с кодировкой точно все так?
13 pumbaEO
 
05.10.15
10:18
(10) почему-бы тогда не сделать зависимость от этой библиотеки и уже сверху городить уровень метанаднных 1с.


(11) версия питончика какая? В чем отправляешь, в чем принимаешь?
14 sbryu
 
05.10.15
10:20
Гёдза, первым делом с кодировкой в коде эксперементировал. Разные кодировки пробовал. Мысли в сторону сервера 1C уводят удачные с точки зрения кодировки GET запросы.

sufix = u'ЗаказПокупателя'.encode('UTF-8')
doc = u'/xx/odata/standard.odata/Document_'.encode('UTF-8') + sufix
15 Гёдза
 
05.10.15
10:21
(14) Откуда тогда
Document_ЗаказПокупатеР
16 Serginio1
 
05.10.15
10:25
(14) Она тебе на sufix и ругается. Он не в той кодировке
17 Serginio1
 
05.10.15
10:26
(14) Фиддлер в руки и смотри
18 Гёдза
 
05.10.15
10:27
может стоит urlencode использовать?
19 Serginio1
 
05.10.15
10:27
У тебфя urlUncode должен стоять
Code First и Linq to EF на примере 1С версии 8.3
20 Asmody
 
05.10.15
11:13
А зачем эти заморочки, если в начале модуля стоит coding: utf-8 ?
21 sbryu
 
05.10.15
11:44
Всем спасибо!  urlencode помог!


conn = httplib.HTTPConnection("95.79.53.147:9080")
doc = u'/motul_backup/odata/standard.odata/Document_ЗаказПокупателя'
doc = urllib.quote(doc)
conn.request("POST", doc, postData, headers)

Разбираюсь с POST дальше..
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший