|
Запрос oData ( обновление, создание: POST запросы ) из c# (сторонней программы) | ☑ | ||
---|---|---|---|---|
0
lvi15
19.10.16
✎
11:31
|
Добрый день! Стал искать примеры oData (REST) из c# (сторонных приложений), но "с ходу" ничего нет.
Нашел что-то типа: private const string URL = "http://localhost/Demo/odata/standard.odata/Catalog_Организации"; private const string DATA = @"{""object"":{""Description"":""Name""}}"; static void Main(string[] args) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Credentials = CredentialCache.DefaultCredentials; request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = DATA.Length; StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII); requestWriter.Write(DATA); requestWriter.Close(); try { WebResponse webResponse = request.GetResponse(); Stream webStream = webResponse.GetResponseStream(); StreamReader responseReader = new StreamReader(webStream); string response = responseReader.ReadToEnd(); Console.Out.WriteLine(response); responseReader.Close(); } catch (Exception e) { Console.Out.WriteLine("-----------------"); Console.Out.WriteLine(e.Message); } Но как его прикрутить к 1с - ??? Есть ли у кого точные ссылкы |
|||
1
Господин ПЖ
19.10.16
✎
11:33
|
а зачем к 1с прикручивать код c#
|
|||
2
lvi15
19.10.16
✎
11:48
|
Прикрутить код c# для взаимодействия с 1с (в рамках решения более общей задачи интеграции систем). Через com- коннектор примеры есть (когда приложение получает "свой" экземпляр-интерфейс 1с), а чере oData не нашел, хотя решение должно быть ("простым и изящным")...???
|
|||
3
Господин ПЖ
19.10.16
✎
11:52
|
куда еще изящнее то?
спросил сервис, получил ответ, прочитал |
|||
4
lvi15
19.10.16
✎
11:56
|
Про "прочитал" я и не спрашиваю - вроде как читает. Это обычный GET - запрос. А обновления-создание - это POST запросы. И здесь крайне желателен пример (как оформить "заголовок", как "тело" и пр.). Об этом и речь...
|
|||
5
Serginio1
19.10.16
✎
12:36
|
||||
6
Serginio1
19.10.16
✎
12:38
|
5+ Все значительно проще используя Linq
|
|||
7
Serginio1
19.10.16
✎
12:53
|
Если, что то здесь
http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1 Много ссылок по взаимодействию 1С с C# |
|||
8
lvi15
20.10.16
✎
10:03
|
А можно уточнить, LINQ - это прямой доступ к БД 1с?
Если так, то это "как-то подозрительно". Мне кажется, что надо использовать стандартные "интерфейсы" от разработчиков (тот же oData, com - но это уже вчеращний день, web-service - но там вроде как надо "цеплять" замки конфигурации..) |
|||
9
Serginio1
20.10.16
✎
10:18
|
(8) Нет это стандартный доступ для ODATA. Ты хоть статью то почитал?
Дальше берешь в руки фиддлер и смотришь HTTP запросы. Если используешь .Net Core то там немного другой подход https://habrahabr.ru/post/310152/ Кроме того в новыйх версиях 1С обещают использование Expand Code First и Linq to EF на примере 1С версии 8.3 Да есть возможность в ODATA сразу подгружать нужные свойства var result = (from Тестовый in context.Catalog_Тестовый.Expand("РеквизитСправочник") where Тестовый.Ref_Key == new Guid("aada18ad-5308-11e5-8e05-c86000c70663") select Тестовый).SingleOrDefault(); Но пока в 1С Параметр $expand не поддерживается" |
|||
10
Serginio1
20.10.16
✎
10:19
|
В конце статьи полезные ссылки
Полезные ссылки для запросов ODATA https://msdn.microsoft.com/ru-ru/library/vstudio/dd673933(v=vs.100).aspx Обновление, добавление и удаление записей https://msdn.microsoft.com/ru-ru/library/vstudio/dd756361(v=vs.100).aspx |
|||
11
trdm
20.10.16
✎
10:19
|
(8) > А можно уточнить, LINQ - это прямой доступ к БД 1с?
Зачем на .опу приключений искать? Тебе общаться с 1С надо или обрабатывать данные в БД? |
|||
12
Serginio1
20.10.16
✎
10:21
|
(11) Еще один. Linq to ODATA это как раз обртка на HTTP запросами. Ты хоть статью почитай.
|
|||
13
trdm
20.10.16
✎
10:21
|
ИМХО шарп сильно избыточен для разработки БД.
Что-бы его использовать в такой разработке нужны ОЧЕНЬ ВЕСКИЕ ДОВОДЫ. Проще на 1С накатать. |
|||
14
trdm
20.10.16
✎
10:22
|
(12) Да мне больше делать нечего..
|
|||
15
Serginio1
20.10.16
✎
10:26
|
Вот статья про интеграцию с 1С https://habrahabr.ru/company/1c/blog/308420/
В 8.3.9 есть Expand (13) Угу. На Шарпе намного удобнее работать с БД чем даже из 1С Code First и Linq to EF на примере 1С версии 7.7 Code First и Linq to EF на примере 1С версии 8.3 Но это уже другая песня, когда нужна скорость и удобство например из Asp.Net (14) Главное ветку поднять. |
|||
16
Господин ПЖ
20.10.16
✎
10:33
|
>ИМХО шарп сильно избыточен для разработки БД.
шарп - избыточен 1с - недостаточен за пределами справочник-документ-проводка такая вот трагедия |
|||
17
trdm
20.10.16
✎
10:42
|
(16) Верно.
май крези смайл выход использовать С++ с патерном интертрепатор. Можно работать на любом уровне абструкции. |
|||
18
trdm
20.10.16
✎
10:45
|
(15) Давно хотел спросить по синтаксису шарпа.
специфокаторы доступа привате/публик приколочены гвоздями к определениям мемберов и функций или можно определять зонально: публик: бла-бла-переменная; бла-бла-переменная2; .. бла-бла-переменнаяN; |
|||
19
Serginio1
20.10.16
✎
10:49
|
(18) Нет так в C++.
В шарпе можно объявить в любом месте. По умолчанию если не указан (public и прочее), то считается private |
|||
20
Serginio1
20.10.16
✎
10:50
|
(17) Уже реализовано, через .Net
|
|||
21
trdm
20.10.16
✎
10:56
|
(20) этих реализаций - просто море. дотнет в этом случае не уникален.
|
|||
22
trdm
20.10.16
✎
10:57
|
(19) и нет разницы между класами и структурами? В с++ в структурах помнится публик по укричанию, а в классах - привате.
|
|||
23
Serginio1
20.10.16
✎
11:15
|
(21) Покажи аналог v8: v8: Использование сборок .NET в 1С 7.x и 8.x на C++
Есть кстати на питоне. http://catalog.mista.ru/public/186206/ (22) Все одинаково для классов и структур. На самом деле на С++ то нет большой разницы между классами и структурами Кстати в C# тоже хотят дать возможность создавать классы на стеке http://xoofx.com/blog/2015/10/08/stackalloc-for-class-with-roslyn-and-coreclr/ |
|||
24
trdm
20.10.16
✎
11:37
|
Что именно надо показать? Какую технологию?
|
|||
25
Serginio1
20.10.16
✎
11:58
|
Я же написал. Аналог
Использование сборок .NET в 1С 7.x b 8.x. http://catalog.mista.ru/public/238584/ Любые классы из 1С через COM, Так как в Native API не поддерживается возврат и передача объектов в параметрах. 1С,Linux,Excel,Word,OpenXML,Net Core |
|||
26
trdm
20.10.16
✎
12:03
|
(25) pyQt к примеру.
По его подобию можно подключить к 1С библиотеку Qt с её функционалом. Просто в здравом уме это никто не будет делать, т.к. получится большой оверхед по памяти. |
|||
27
trdm
20.10.16
✎
12:07
|
+(26) в здравом уме конечно при необходимости пишется отдельная библиотека с определенным функционалом, а не тянутся все либы в отведенную процессу память.
|
|||
28
Serginio1
20.10.16
✎
12:11
|
(26) Во во в здравом уме пишутся отдельные ВК на каждый случай итд. Ты то говорил про
>> выход использовать С++ с патерном интертрепатор. Можно работать на любом уровне абструкции. У меня через COM и кроссплатформенный .Net Core через Native API это реализовано, в отличие от. При этом я могу использовать и динамическую компиляцию http://catalog.mista.ru/public/466196/ http://catalog.mista.ru/public/547389/ |
|||
29
Serginio1
20.10.16
✎
12:12
|
(26) Можно и на Java. Только никто не делает.
|
|||
30
trdm
20.10.16
✎
12:16
|
(28) Да флаг тебе в руки. Когда проснешся и обнаружишь, что закон Мура не работает, может чего дойдет.
На белазе за семками гонять - это надо быть альтернативным до ужаса. |
|||
31
Serginio1
20.10.16
✎
12:29
|
(30) А где ты белаз то увидел, В отличие от С++, в .Net Джитится только необходимое.
А вот твои библиотеки как раз будут тянуть и не нужные классы и код к ним. А вот использовать .Net можно те только для Sleep. Сначала используешь одно, затем другое и в итоге задействуешь кучу классов и сборок |
|||
32
trdm
20.10.16
✎
12:34
|
да, с тобой ясно. Только одно непонятно, нафига тебе 1С?
Этот овнонет регистрируется в реестре и при каждом пуке перечитываются мегабайты. Спасибо, проходили эту тормозуху. Впрочем для садомазо - самое то что надо. Оверхедный синтаксис, оверхедные объемы в процессе, оверхед по созданию классов, оверхед по привязке к производителю. Накуй надо. |
|||
33
Serginio1
20.10.16
✎
12:44
|
(32) А можно поподробне про
>> регистрируется в реестре и при каждом пуке перечитываются мегабайты Особенно для .Net Core. Меня поражает твое отношение к оверхеду, при том, что код вызывается из интерпритатора 1С. А ты работаешь на Линукс? .Net Core тебе в руки |
|||
34
Serginio1
20.10.16
✎
12:46
|
32 Я же забыл ты ненавистник MS но обожатель QT.
Заметь, что я против QT, Java и прочего ничего не имею. А вот откуда у тебя такая ненависть. |
|||
35
trdm
20.10.16
✎
13:00
|
(33) > А можно поподробне про
При одной из инсталляций видел что оно пишет в реестр. Регспаем пользовался. Что такое реестр объяснять не надо надеюсь. Многомегабайтная спец БДшка. После этого шустрота компа пропала. Пока это овно не вычистил комп работал с неторопливостью катка асфальтоукладчика. Есть вариант, что эту тормозуху починили, наверняка даже. Но впечатление осталось. |
|||
36
trdm
20.10.16
✎
13:06
|
(34) Позицию я свою озвучивал.
|
|||
37
trdm
20.10.16
✎
13:09
|
+(36) майкрософт - один из участников экономической атаки на Россию.
Я подлянок не прощаю. И отношусь с презрением к тем, кто служит подобным уродам. |
|||
38
Serginio1
20.10.16
✎
13:53
|
(37) Ну, дык ты работаешь на Windows и себя презираешь?
Сочувствую. (35) Ну в коде не только из .Net можно писать или читать из реестра. Наверное это было очень давно. А вот .Net Core этого не делает однозначно, хотя конечно можно через интероп, но это не кроссплатформенно. |
|||
39
trdm
20.10.16
✎
14:01
|
(38) Я форточки не распространяю и не рекламирую. Данность есть данность.
А вот ты прививаешь эту заразу. |
|||
40
Serginio1
20.10.16
✎
14:07
|
(39) Так, а кто тебе мешает приводить свои реализации на QT.
Я делюсь своим опытом. Кто то использует, большинство нет. Сделай так, что бы все на Линукс перешли. Я например рекламирую .Net Core и показываю примеры его использования. Чем больше выбор тем лучше. Или ты за безальтернативность? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |