OData создание записи и заполнение табличной части из C# не работает #785017


#0 by alexP2016
1С убив web расширение 1.1 и опубликовав Odata уничтожила стабильно работающую компоненту интеграции веб сайтов с 1С. В Odata данные читаются норм. Но создание записей с заполнением табличной части не работает. Если кто сталкивался с этой проблемой помогите ее решить. очень не хочется возвращаться к com сщединению. 1С походу дела просто обозначила теперь у нас есть REST, но по факту его не реализовала.
#1 by Mauser
Обратитесь в спортло... к ,  у него есть Ъ.
#2 by PR
Пурга какая-то. Гон, в смысле.
#3 by alexP2016
Это не гон а факт.Вы пытались реализовать REst предоставляемый 1С??????
#5 by alexP2016
создавали справочники и доки с табличными частями? Если реализовали, то подскажите что надо сделать, чтоб это чудо заработало.
#6 by alexP2016
Когда пришлось делать интеграцию сайта с 1С нам предлагали Ellisy.Bussine.Connector. По началу было непонятно, почему это предлагается при наличии REST у 1С. Теперь становится понятно, что стандартный REST от 1С работает только на чтение данных, но никак на запись, поэтому начали появляться компоненты типа Ellisy.Bussine.Connector или аналог веб расширения metfdata.js
#7 by MrStomak
Вот какой помощи ты вообще ожидаешь, если ворвался в воплями "нихрена не работает", не описав ровным счетом ничего? Только такой же ответ - "Всё работает". Удачной разработки.
#8 by alexP2016
Есть 1С:Предприятие 8.3 (8.3.8.1652) публикуем веб клиента. Веб клиент работает претензий нет. Публикуем Odata сервисы. Данные через REst читаются проблем нет. Формируем прокси класс с описанием метаданных, так вот данные читаются без пробдем если вызывать методы Create... и затем addTo... c Save к примеру для справочников партнеры и конрагенты то получаю ошибки на контактную информацию или дополнительные реквизиты с кодом 4, подобная ветка где-то была год назад, но как я понял челеовек помыкался, а проблему так и не решил. Если кто-то с подобным сталкивался, то помогите разобраться почему это не работат.
#9 by MrStomak
Ты ничего не объяснил. Odata нормально работает. Всё пишется. Табличные части - тоже.
#10 by alexP2016
Вы можете привести пример кода на C# как к примеру вы записываете справочники контрагенты, партнеры, документы заказы покупателя или заказы поставщику.
#11 by MrStomak
А почему тебе нужен пример на C#, если мы говорим про http-запросы? Какая разница, чем их формировать?
#12 by MrStomak
вот пример содержания с patch запроса на json для обновления ТЧ справочника с партнерки: PATCH HTTP/1.1 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 { "odata.metadata": ";, }, } ] }
#13 by alexP2016
Есть сайт написан на C#. С веб морды идет регистрация клиентов, которые должны создаться в 1С а так же их заказы. Поэтому разговор и идет про C#
#14 by alexP2016
Из приведенного вами примера следует, что запись данных в 1С надо делать не через прокси клас, а через веб запрос методом post?
#15 by MrStomak
Мы говорим про REST, можешь хоть вручную наколотить этот запрос.
#16 by MrStomak
Я не знаю, возможно и через какой-то прокси-класс возможно. Но документация 1С говорит про http-запросы - get, post, etc
#17 by alexP2016
Зачем тогда на дисках итс пудрят мозги с прокси классами для wcf клиентов?
#18 by MrStomak
Про какие статьи на итс с прокси классами ты говоришь?
#19 by PR
Создавал. Например, вот . Пользователь "Пользователь" без пароля. В чем проблема-то? В том, что ты не умеешь работать с rest и сразу верещишь, что 1С гуано?
#20 by alexP2016
Вопросов к веб клиенту нет, а вот про статьи здесь , , . Я не прошу запускать веб клиента, это я и сам могу сделать. А помочь разобраться, как записывать доки и справочники с табличными частями из клиентов с помощью REST запросов PUT и PATCH, к примеру который реализован на C#.
#21 by alexP2016
Сейчас нет диска ИТС, где был повторен пример из статьи как реализовать клиента wcf на C# для обмена данными с 1С через ODTA
#22 by Mauser
Ненене, 1С какашка, с которой никто не будет связываться, ты что?
#23 by PR
Ты дебил что ли? Причем здесь веб-клиент? Я тебе привел пример, где с помощью реста создается контрагент с заполненной табличной частью. Специально для самых тугих при нажатии открывается сразу все, что нужно, только поля заполни и кнопочку жмакни, после чего ищи нового контрагента в списке, открывай и удивляйся.
#24 by alexP2016
я сейчас не хочу обсуждать, что является какашкой, а что нет. Мне необходимо заставить работать сайт совместно с 1С через REST, хотя бы на том уровне как это было реализовано в 1C web-раширение 8 1.1, которое сейчас сняли к сожалению с производства и заменили REST.
#25 by PR
Ты это, может стоит кого пригласить? Чтобы сделали. А то задача-то для тебя не из простых, я смотрю.
#26 by alexP2016
Дебилу отвечаю. Мне Patch не нужен. речь идет про PUT к конкретному справочнику ПАРТНЕРЫ.
#27 by Mauser
Вот я почему-то не вижу твоих вопросов к авторам там, в обсуждении приведенных статей. А вот тут прям буйство - "я хочу, мне нужно"
#28 by PR
Рукалицо. Причем здесь Patch? Контрагент создается _новый_.
#29 by MrStomak
Это всё к ИТС отношения не имеет, претензии адресуй авторам.
#30 by alexP2016
Авторам написано в личку, но ответов нет. Решил задать вопрос здесь, так как считал этот форум последней надеждой в вопросах интеграции 1с. Но к сожалению кроме дешевых понтов и ненорматиивной лексики никто здесь ничем мне не поможет.
#31 by MrStomak
у тебя какие-то сложности с генерацией http-запросов? Воспользуйся советом из
#32 by PR
Наркоман что ли, не пойму. Бегает что-то, суетится, по делу сказать ничего не может, но 1С в чем-то виновата, а все кругом уроды.
#33 by Mauser
И ты больше никогда не будешь сюда писать, существо с сегодняшней регистрацией? Честно-честно?
#34 by MrStomak
Тебе ответили - рисуй http-запросы, ты начал в отчет визжать "Да мне обещали что ррраз-раз и всё работает, а тут запросы какие-то"!
#35 by PR
Хрен знает, но я вообще предполагал, что у него все работает, кроме табличных частей. Если у него и шапка не работает, тогда вообще непонятно, с какого перепою он про табличные части верещит.
#36 by PR
ТС по ходу решил переосмыслить прожитые годы и перегрузиться
#37 by Mauser
Александр на нас обиделся. Ему не дали кусок кода для связки с ненавистной ему 1С
#38 by PR
Так там и кода нет, там кусок запроса. Который, опять же, в его конкретном случае будет индивидуальный.
#39 by PR
+ Ну код, точнее, есть, потому что этот кусок запроса надо как-то сгенерить, но это уже так, мелочи.
#40 by Mauser
Ему нужна сишарпная обвязка, что бы наружу класса торчали методы создания и т.п. Он в нее не осиливает, но виновата в этом исключительно какашка 1С
#41 by PR
Тогда бы вместо "Но создание записей с заполнением табличной части не работает" в было бы "Но создание записей не работает".
#42 by Mauser
Голова - предмет темный, исследованию не подлежит.
#43 by alexP2016
Годова не голова. Делаю запрос как описано в и получаю ошибку "Удаленный сервер возвратил ошибку: Не найден." Что сделал не так???? HttpWebRequest hwreq = (HttpWebRequest)WebRequest.Create(ConfigurationManager.ConnectionStrings["ProductionOData"].ConnectionString + "Catalog_Партнеры HTTP/1.1");         string query = @"<?xml  version='1.0' encoding='utf-8'?>         <entry  xmlns=           xmlns:d=           xmlns:m=           xmlns:georss=           xmlns:gml=;         DataSet ds = new DataSet;
#44 by alexP2016
URI запроса такой _Партнеры HTTP/1.1
#45 by PR
А причем здесь табличная часть, если ты даже без табличной части запрос выполнить не можешь?
#46 by PR
Что такое "HTTP/1.1" в конце?
#47 by PR
Пример текста запроса <?xml  version="1.0" encoding="utf-8"?> <entry  xmlns=";         xmlns:d=";         xmlns:m=";         xmlns:georss=";         xmlns:gml=";
#48 by alexP2016
HTTP/1.1 казано в доке 1С и ветки 13 вашим коллегой
#49 by alexP2016
Вы приводите текст запроса для PATCH?
#50 by alexP2016
Решил сделать DELETE запрос получаю ответ "Удаленный сервер возвратил ошибку: Внутренняя ошибка сервера".                      }
#51 by alexP2016
В чем проблема? Может на стороне 1С надо что-то сделать. Почему кроме чтения данных методом GET другие методы не работают?
#52 by alexP2016
По ходу дела придется возвращаться к старому медленному ComConnector.
#53 by Юрий Лазаренко
О, как раз по последнем Инфостарте мне говорили, что odata это круто и зачем использовать http-запросы, если есть odata. Заюзай http-запрос, кинь в нем id и количество товаров, обработай все это в модуле http-сервиса и сделай по-человечески.
#54 by MrStomak
Выкинь в сторну свой C# ВОзьми fiddler. Убедись, что всё работает прекрасно без "действий на стороне 1с" Потому бери книжки по С# и учить писать http-запросы
#55 by alexP2016
Через свой API у нас интеграция работает+внешняя обработка на стороне 1С. Но задача стоит в онлайн интеграции, когда клиент регистрируется на сайте он должен сразу попадать в 1С, так же его заказы, при этом заказчик выдвигает требование на запрет внесение изменений в 1С. Пришел ответ от гуру s6996, да же у него не получилось сделать записи через Odata в 1С. Зато попробовали Ellisy.Bussines.Connector и все заработало. Записи в ИБ 1С создаются с различными уровнями иерархии. Всем спасибо за внимание и данные советы, пока будем использовать Ellisy.Bussines.Connector и ждать исправление "граблей" в REST 1C
#56 by alexP2016
По поводу fiddler. Вот его ответ на запрос из C# 500 ошибка HTTP/1.1 500 Internal server error Content-Length: 198 X-Powered-By: ASP.NET Date: Mon, 14 Nov 2016 17:56:27 GMT <m:error xmlns:m=";     <m:code>-1</m:code>     <m:message>Error running processor - 'ПередУдалением'</m:message> </m:error> То же самое 500 ошибка на PATCH и POST. Делаю вывод или надо донастраивать 1С, как и что еще надо сделать не знаю 1С то же не дает дополнительной информации,  или ЗАПИСЬ через REST не работает. Зато Ellisy все делает как надо.
#57 by Юрий Лазаренко
"при этом заказчик выдвигает требование на запрет внесение изменений в 1С" - там всего один http-сервис надо добавить, конфа останется на поддержке.
#58 by alexP2016
Да, вы правы, только так и надо действовать.
#59 by MrStomak
Ну так ты запрос правильно должен научится делать, чтобы получать правильные ответы.
#60 by alexP2016
И что же в запросе DELETE неправильного?
#61 by Serginio1
Скорее всего в событии перед удаление используется директива НаКлиенте Проверь модули. А в параметрах - модули-проверка поставь сервер и внешнее соединение
#62 by Serginio1
А зачем так сложно?
#63 by Serginio1
Еще  .Net Core, WCF и ODATA клиенты
#64 by Serginio1
У меня не получилось, потому что я не пробовал.
#65 by alexP2016
Serginio1 наверное кроме вас здесь никто не поможет. Дело в том что все варианты из выше перечисленных статей перепробованы. Данные читаются отлично, но когда дело доходит до записи приходит код ошибки 4 и ругается на табличные части. если использовать запросы то возникает 500 ошибка сервера.
#66 by Serginio1
Надо смотреть, что фиддлер показывает. По ошибке 56 смотри 61
#67 by Serginio1
Так же можешь проверить и через Web и HHTP сервис
#68 by alexP2016
Serginio1, спасибо ваши советы помогли только для метода DELETE. При POST начали появляться ошибки самой платформы, где другие участники форума за такие ошибки предложили руки программистам 1С вправить куда надо. В общем время идет а воз и ныне там. РЕшили для чтения использовать REST , а данные писать через ELLISY. Будем ждать с надеждой, что 1С допилит REST или саму платформу для записи данных в свои же типовые конфы. Варианты с созданием своей простенькой конфы без бизнес логики и других вкусностей от 1С мы не рассматриваем, и примерами, как присылал PR дело не решить, потому что они сделаны на простенькой конфе с одним двумя справочниками без обработчиков подобных типовым конфигурациям 1С.
#69 by Serginio1
Проблема не в REST, а в событие ПередУдалением. Там и копать нужно. Можешь создать свою конфу и поэксперементировать на ней. ELLISY использует протокол Вэб клиента, который могут изменить в следующей версии.
#70 by Serginio1
Используй не рукопашный POST, а 62. За Нас уже все придумали. И используй для создания классов VS  2015 апдейт 3
#71 by alexP2016
Да, мы уже сделали пустую конфу создали пару справочников, так все работает. Не работает в типовой, потому что при попытке создать спр или док должны быть соответствующие методы на сервере, а их по факту нет. Поэтому чтобы это все заработало надо дописывать код 1С, но заказчик в данном случае запрещает это делать и требует чтобы это все работало на неизмененой конфигурации. Поэтому мы создаем доки и справочники используя Ellisy, которая эмулирует работу тонкого клиента и позволяет засылать чистый код 1С вот пример Elisy.BusinessConnector.Connection connection = new Elisy.BusinessConnector.Connection(connectionString);         GlobalContext gc = new GlobalContext(connection); все работает очень эффективно и без глюков используя непоссредственно бизнес логику 1С. Но здесь есть своя проблема, часть компонент разработчик уже не поддерживает из - за маленького спроса, и при выходе нового релиза платформы скорее всего надо будет дописывать эту компоненту. Приходим к мысле создания собственного эммулятора наподобие ellisy.
#72 by Юрий Лазаренко
"заказчик в данном случае запрещает это делать и требует чтобы это все работало на неизмененой конфигурации" - рукалицо
#73 by mistеr
>Да, мы уже сделали пустую конфу создали пару справочников, так все работает. Не работает в типовой Оу, значит все-таки не REST не работает, а кое-кто не разобрался в причинах. Не стыдно теперь за весь этот срач?
#74 by mistеr
>задача стоит в онлайн интеграции, когда клиент регистрируется на сайте он должен сразу попадать в 1С А хорошо ли вы подумали насчет "онлайн"? Ведь злой конкурент может примитивным скриптом положить не только сайт, но и 1С. Фронт и бэк не просто так разделяют.
#75 by Юрий Лазаренко
Достаточно просто устраняется
#76 by mistеr
Конечно просто: не давать прямой доступ к бэку.
#77 by Юрий Лазаренко
Именно
#78 by alexP2016
Вопрос в том, что мы как потребители услуги от 1С ожидаем, что заявленная технология на 100% применима к типовой конфе написанной 1С. А получается так, что технология есть, а чтоб применить на 100% к типовой конфе самой 1С надо костыли изобретать, извините меня - это извращение какое-то. Возьмем сбер или аэрофлот, у них REST. Создаем оберкту ввиде прокси класса за секунды, используем обертку и через пару минут вы уже интегрировали эквайринг сбера на сайт заказчику или сервисы аэрофлота, вот именно так и должен работать rest у 1С с ее иповыми не изменеными конфигурациями, а так это просто профонация.
#79 by alexP2016
По поводу бека. Данные с фронта сначала льются в обычную БД. А в админке по кнопочкам импорт и экспорт 1С данные переливаются туда и обратно. Просто вопрос весь в том, что сайт стоит на хостинге, а 1С лежит на сервере географически за тысячи километров от хостинга на другом сервере, вы просто в буквальном смысле воспринимаете онлайн.
#80 by mistеr
>мы как потребители услуги от 1С ожидаем, что заявленная технология на 100% применима к типовой конфе написанной 1С. С чего это вдруг 1С тебе что-то должна? Весь функционал типовых, заявленный в их описаниях, присутствует. А "интеграцию со сбером за секунды" никто не обещал.
#81 by alexP2016
так в том то и дело, что 1С никогда никому ничего не обещает, и не отвечает, доделывайте сами и костыли придумывайте сами, чтоб все работало по человечески. Поэтому в Европе их старт провалился, потому что такое наплевательское отношение там не прокатывает.
#82 by alexP2016
Да и в отличие от 1С, сбер является голубой фишкой России. И своим потребителям оказывают услугу на 100%, И ОБЕЩАЮТ И ВЫПОЛНЯЮТ
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С