Практическое применение NET в 1С8 с помощью Serginio1 #775298


#0 by DES
Есть Инструкция Напрямую с 1с8 не функциклирует. Но можно скачать код и с скомпилировать C# свою DLL, которую можно задействовать с помощью "обертки" от Serginio1 зарегистрировав её на сервере и с помощью нее получить доступ к DLL.         ServiceEfactura.ServiceReference.InvoicesResponse GetAcceptedInvoices(ServiceEfactura.ServiceReference.ActorBaseRequest request);          вопрос как получить _client  ?
#0 by DES
Есть Инструкция Напрямую с 1с8 не функциклирует. Но можно скачать код и с скомпилировать C# свою DLL, которую можно задействовать с помощью "обертки" от Serginio1 зарегистрировав её на сервере и с помощью нее получить доступ к DLL.         ServiceEfactura.ServiceReference.InvoicesResponse GetAcceptedInvoices(ServiceEfactura.ServiceReference.ActorBaseRequest request);          вопрос как получить _client  ?
#0 by DES
Есть Инструкция Напрямую с 1с8 не функциклирует. Но можно скачать код и с скомпилировать C# свою DLL, которую можно задействовать с помощью "обертки" от Serginio1 зарегистрировав её на сервере и с помощью нее получить доступ к DLL.         ServiceEfactura.ServiceReference.InvoicesResponse GetAcceptedInvoices(ServiceEfactura.ServiceReference.ActorBaseRequest request);          вопрос как получить _client  ?
#0 by DES
Есть Инструкция Напрямую с 1с8 не функциклирует. Но можно скачать код и с скомпилировать C# свою DLL, которую можно задействовать с помощью "обертки" от Serginio1 зарегистрировав её на сервере и с помощью нее получить доступ к DLL.         ServiceEfactura.ServiceReference.InvoicesResponse GetAcceptedInvoices(ServiceEfactura.ServiceReference.ActorBaseRequest request);          вопрос как получить _client  ?
#1 by Garykom
>Но можно скачать код и с скомпилировать C# свою DLL нафига нужна обертка от Serginio1?
#2 by Кирпич
видимо автор адепт секты мазохистов, возглавляемой Serginio1
#3 by Serginio1
Там же есть в инструкции _client = new EFacturaApiRef.ServiceClient; _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";
#4 by Serginio1
Ну да есть готовая библиотека которую можно использовать это мозахизм. А переписывать на 1С совского Вэб сервис клиента это наше всё?
#5 by Garykom
Если есть исходники этой библиотеки то сделать нормальную ВК для 1С и не страдать
#6 by Serginio1
Кстати 1С не поддерживает  <security mode="TransportWithMessageCredential" />
#7 by Serginio1
А зачем масло маслянное?
#8 by Garykom
Масло масляное это использовать спец код к универсальной ВК для работы с другой dll
#9 by Garykom
ваша ВК отличная штука, но для данного случая избыточно и затратна
#10 by Кирпич
зачем переписывать на 1с. можно скопипастить. Автор, есть работающий пример на C#?
#11 by Serginio1
Это не ВК а нетовская DLL. А вот писать ВК с кучей объектов это как раз мозахизм. В шапке PDF
#12 by Serginio1
3 + Тебе нужен либо 1. Сделать файл 1с.exe.config куда скопировать <bindings>             <basicHttpBinding>                 <binding name="BasicHttpBinding_IService">                     <security mode="TransportWithMessageCredential" />                 </binding>             </basicHttpBinding>         </bindings>         <client>             <endpoint address="; binding="basicHttpBinding"                 bindingConfiguration="BasicHttpBinding_IService" contract="E_FacturaService.IService"                 name="BasicHttpBinding_IService" />         </client>
#13 by Serginio1
Либо положить этот файл рядом с DLL Сборка=врап.загрузитьСборку(ИмяФайлаСборки);
#14 by Serginio1
endpointConfigurationName="BasicHttpBinding_IService"
#15 by Кирпич
Автор, ты сначала напиши тестовую программу, которая будет работать 100%, а потом уже рисуй в 1с эту галиматью с врапами. А то ты так до пасхи будешь высоким дотнет программированием заниматься.
#16 by Serginio1
Либо
#17 by Serginio1
Я как раз и писал изначально для таких случаев. Когда куча классов. Либо вручную через COM оборачивать либо автоматически.
#18 by Serginio1
#19 by Garykom
Есть готовый код на C#, не вижу проблем повторить его в в 1С встроенными средствами. Или вызывать этот готовый код на C# из 1С любым из 10-ка способов/методов, в т.ч. самым простейшим через КомандаСистемы
#20 by Serginio1
Угу вот это как раз мозахизм. Да и не поддерживает 1С TransportWithMessageCredential
#21 by Serginio1
Сделай. Все для написания автор дал.
#22 by Garykom
не плотют
#23 by Serginio1
_client= Врап.СоздатьТип("EFacturaApiRef.ServiceClient",binding,addres);
#24 by Serginio1
За советы тоже не плотют. Дело в том, что мои советы то рабочие. А вот твои ...
#25 by Serginio1
Кстати это уже делали к 7 ке
#26 by Serginio1
Даже результат уже был получен
#27 by DES
и благополучно потерян. ;(
#28 by DES
ругается на _client = new EFacturaApiRef.ServiceClient(binding,addres); хотелось бы обойтись без конфиг файлов... можно ?
#29 by Serginio1
Ну и пространства имен соответствующие
#30 by DES
сделал в отладчике binding & addres - нормально выглядят. и получил {Форма.Форма.Форма}: Метод объекта не обнаружен (СоздатьТип)
#31 by Serginio1
ПолучитьТип
#32 by Serginio1
Но смотри какое у тебя пространство имен
#33 by DES
а почему тип, а не оъбект ?
#34 by Serginio1
Да СоздатьОбъект
#35 by DES
да, взлетело так: пишет {Форма.Форма.Форма}: Ошибка при вызове метода контекста (GetAcceptedInvoices) по причине: Неизвестная ошибка
#36 by Serginio1
Попробуй для начала с Config файлом. Покажи как заполняешь request string newid = Guid.NewGuid.ToString;                 var request = new ActorBaseRequest                 {                     RequestId = newid                 };                 var response = _client.GetAcceptedInvoices(request);                   foreach (var info in response.Results)                 {                     Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message);                 }
#37 by Serginio1
А что выводит при ошибке?
#38 by Serginio1
Пришли мне на почту обработку и DLL. Посмотрю.
#39 by DES
а туда ли я послал то?
#40 by DES
откатился на 1с 7.7 дает ошибку _client = врап.СоздатьКлиентаWCFConfigFile(ConfigFile, TChannel, endpointConfigurationName, , _UserName_, _Password_); {Обработка.API_eFactutra.Форма.Модуль}: System.Configuration:  В файле конфигурации ServiceEfactura.dll.config отсутствует корневой тег <configuration> (D:LXServiceEfactura.dll.config line 1) хотя там текст из документации
#41 by DES
не принимать к сведению (Прим. автор)
#42 by Кирпич
похоже, вы так и не приняли к сведению :) а эта матня (е фактура) только в Молдавии работает или еще где?
#43 by Serginio1
Туда сейчас посмотрю. Конечно лучше тестить в VS а затем переносить в 1С.
#44 by DES
в 7 взлетело, но похоже не проходит идентификация
#45 by DES
принял, но не выбрал.
#46 by DES
за "еще где" не знаю, но принципы работы явно не молдавского изобретения
#47 by Кирпич
ты чо! вон даже ваш пастор так делает
#48 by DES
Зафиксирую
#49 by Serginio1
Ну молодец! Посрамил скептиков.
#50 by Кирпич
скептики по прежнему считают, что без врапов будет код в восемь раз короче и результат будет  в течение часа, а не недели.
#51 by DES
да , нет.  Похоже не создается канал с логином. Идет как аниномоус.
#52 by DES
зафиксирую для v8          но таже фигня, запускает как анонимуса, а для него там нет места.
#53 by Serginio1
Ну клава в руки и вперед. Теоретики.
#54 by Serginio1
Сейчас нет времени потом посмотрю. Обратись в поддержку. Можешь фиддлером посмотреть запрос и им отправить
#55 by Serginio1
При работе с 1С вским клиентом кода будет даже больше.
#56 by DES
у них спросить невозможно, вероятно они не местные, а их каких-нибудь штатов...
#57 by Кирпич
так это ты теоретик. практики не станут два раза писать одно и то же - сначала на C#, потом это всё в 1С переделывать.
#58 by Serginio1
Угу а заполнять будешь как? Теоретик. Кстати кода на C# даже будет больше
#59 by Serginio1
Есть в любом случае служба поддержки. Просто на англицком. А логин и пароль правильные?
#60 by DES
ну вроде бы логин и пароль сам создаешь, я еже 2 логина создал, ни один не подхватывается.
#61 by DES
как в 1С будет выглядеть типа var request = new TaxpayersRequest { FiscalCodes = new[]   {
#62 by DES
сделал клиента по 2-м вариантам      Все равно одинаковая реакция, пишет про анонимуса
#63 by DES
во втором варианте, под отладчиком, можно посмотреть COM-объект, видно что поля с логином заполнены правильно.
#64 by Serginio1
BasicHttpsBinding и System.ServiceModel.BasicHttpsSecurityMode У тебя соединение по HTPS
#65 by Serginio1
64 к 35
#66 by DES
{Форма.Форма.Форма}: Ошибка при вызове метода контекста (ПолучитьТипИзСборки)         BasicHttpBinding = Врап.ПолучитьТипИзСборки("System.ServiceModel.BasicHttpsSecurityMode ","System.ServiceModel.dll"); по причине: Произошла исключительная ситуация (NetObjetToIDispatch45):  неверный тип System.ServiceModel.BasicHttpsSecurityMode  в сборке C:WindowsMicrosoft.NetassemblyGAC_MSILSystem.ServiceModelv4.0_4.0.0.0__b77a5c561934e089System.ServiceModel.dll
#67 by Serginio1
System.ServiceModel.BasicHttpsSecurityMode
#68 by DES
ну вроде бы так и записано. сделал еще так ошибки нет, но опять анонимоус входит
#69 by Serginio1
Ну значит проблема с логин пароль. Ладно. Все времени нет. Позже как появится на C# проверю. Можешь кстати и сам проверить.
#70 by DES
как в 1с массив строк объявить ? FiscalCodes = new[] {"1003600106115","1002600046027"}
#71 by Serginio1
Проще так. Можно через safeArray врап.СоздатьМассив
#72 by DES
Подскажите , где нужно проставить "https" в случае https ? NameSpace = "ServiceEfactura.ServiceReference.";
#73 by Serginio1
По идее одно и тоже, только по умолчаию The basicHttpsBinding is similar to basicHttpBinding, only it has the following defaults: •Client credential type = None Ипользуй обычный, без s
#74 by DES
да и так и так юзаю, бестолку... техподдержке рассказываю где у них мануал по этому API лежит.
#75 by Garykom
Так понимаю сменить сервис на адекватный никак?
#76 by Serginio1
А логин пароль получил как по инструкции?
#77 by Serginio1
Ты на сайте авторизируешься?
#78 by Serginio1
Вернее есть и на русском
#79 by Serginio1
#80 by Serginio1
#81 by Serginio1
У тебя доступ к Есть?
#82 by DES
ну ясный день, все там облазил и насоздавал API юзеров пачку. Если не заполняю UserName - отвечает чтоб заполнил, а заполняю пишет что аноним
#83 by DES
Nu sunte?i autorizat s? accesa?i pagina dat?! You are not allowed to see this page!
#84 by DES
хотя вроде я ж оттуда качал исходники ранее
#85 by DES
но исходники сборки есть
#86 by Serginio1
Видно это было давно. Узнай у них еще раз. Тогда кстати работало?
#87 by DES
VS оттуда же брал описание для DLL ?
#88 by DES
попробовал так
#89 by Serginio1
Вот их новый адрес И соотвеиственно адрес
#90 by Serginio1
#91 by DES
черт, ты прав!
#92 by DES
всмысле, спасибо.
#93 by DES
а как заюзать enumerator ? Для Каждого Taxpayers Из response.Result Цикл
#94 by DES
с енумератором решилось вот еще бы расковырять цифроподпись, было бы совсем зашибись <Signatures> <SignatureContent> <Signature xmlns="; <SignedInfo> <CanonicalizationMethod Algorithm="; /> <SignatureMethod Algorithm="; />   <DigestMethod Algorithm="; /> Какой приблудой можно подписывать XMLs ?
#95 by DES
а как COMSafeArray сохранить в файл ?
#96 by Serginio1
Посмотри Но и в инструкции должны быть примеры
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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