#0
by freelog
Всем доброго дня! Вопрос для гуру веб-сервисов. Имеется следующий код: При отрабатывании выдает ошибку: {ВнешняяОбработка.MERLION_API_20.Форма.Форма.Форма}: Ошибка при вызове метода контекста (getCatalog) Результат = ВебСервис.getCatalog("All"); по причине: При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: { по причине: При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Несоответствие типов XDTO: Свойство является списковым по причине: Несоответствие типов XDTO: Свойство является списковым Вопрос: чего ему надо? и как пофиксить? Заранее премного благодарен за конструктивные ответы!
#5
by freelog
Спасибо большое! Это, конечно, крутяк! Но хотелось бы реализовать только средствами 1С. Все это затевалось с целью ухода от MSSOAP, а пришли в итоге к .NET. Кстати, запустить обработку так и не получилось, вываливается ошибка: {ВнешнийОтчет.Мерлион.Форма.ФормаОтчета.Форма}: Ошибка при вызове конструктора (COMОбъект) врап=новый COMОбъект("NetObjectToIDispatch45"); по причине: -2147221005(0x800401F3): Invalid class string не подскажете, чего ему надо?
#8
by Serginio1
Надо зарегистрировать NetObjetToIDispatch45.dll Добавил нужные DLL и методичку Надеюсь в 1С хватит здравого смысла выпустить новую версию Native API, что бы можно было возвращать и передавать в параметрах метода объекты ВК, как это можно делать с COM. Ну, а так когда выпустят .Net Core 1.1? или если найдется, что то интересное
#9
by NoiseRND
На сколько я помню, надо передавать в упакованном виде. А у тебя просто строка передаётся. Попробуй: ПараметрXDTO = СериализаторXDTO.ЗаписатьXDTO(Параметр);
#10
by Serginio1
Кстати несколько некорректное сравнение WCF с MSSOAP. При этом WCF даже удобнее использовать чем родные средства 1С.
#11
by freelog
все отлично стартануло!.. только вот теперь вопрос: можно ли как-то быстро и красиво преобразовать получаемый com-объект в таблицу значений (окромя метода перебора)
#12
by freelog
сравнение было только в контексте использование внешних компонент хотелось реализовать задачу исключительно средствами 1С (это же не 7.7 в конце концов ;) )
#13
by Serginio1
Не ну конечно можно написать метод. Например здесь можно испоьльзовать Scripting API str = "public class ВычислительAngleSharp |{ |public static void ЗаполнитьТз(dynamic ТЗ) | | | |
#15
by freelog
ясно, вопрос снимается, как дурацкий тогда еще один глупый вопрос: как получить название колонки(ключа) в ком-объекте?
#16
by Serginio1
Можно конечно написать универсальный метод для получения данных свойств или полей получив типы через рефлексию и используя люмбды. Например
#17
by Serginio1
Так и получай. Почитай для начала Использование классов .Net для новичков Там совсем немного
#18
by Serginio1
Получить названия поля можно из документации, можно посмотреть сгенерированные классы в VS. Можно через рефлексию как ты видишь в отладчике.
#19
by freelog
Почитал, закипел котелок от такого потока информации =) инфа очень интересная, особенно если вникнуть глубже в классы и их методы. Но так мы все больше отдаляемся от такой родной, но несовершенной 1С. Сейчас, хоть убейте, не могу понять, как получить название поля в COM-объекте? Вот как здесь получить наименование второго по счету поля? Или может каким-то образом весь COM-объект можно преобразовать предварительно в массив, понятный 1С`ке ?
#23
by freelog
Да это я видел. Все дело в том, что нужно написать функцию, которая бы в цикле оббежала элементы массива и создала колонки в ТЧ с таким же названием. Отталкиваемся от того, что названия этих колонок предварительно мы не знаем. Поэтому и спрашиваю - КАК получить именно название поля.
#25
by freelog
интересная конструкция... отладчик на ней начинает просто с ума сходить но главное, что это работает, спасибо=) НО теперь чудеса в другом: Если смотреть на "свойства", то видим все наши атрибуты, как и задумывалось: А когда начинаем их перебирать в цикле, "свойство" принимает какое-то чудное значение ((
#31
by freelog
ну вот... спугнули единственного неравнодушного к страждущим у кого еще какие идеи есть?
#35
by freelog
.net-гуру подскажите, пожалуйста, как избавиться от такой ошибки? и с чем она связана? причем возникает НЕ на всех компьютерах...
#36
by Mauser
Это одна из особенностей использования дотнета в 1С, смирись. "Используйте мою компоненту и спасибо за рыбу" =)
#37
by Serginio1
А какая версия .Net установлена? Возможно сборка дважды загружается из разных каталогов Убедитесь, что файл является допустимым .NET Framework сборки. Это исключение, если файл не является допустимым .NET Framework сборки. Для получения дополнительной информации см Ассамблее. Убедитесь, что сборка или модуль не был загружен дважды с двумя разными свидетельствами. Доказательства есть множество информации, которая представляет собой вклад политических решений безопасности, например, какие права могут быть предоставлены кодом. Для получения дополнительной информации см GacRemove и доказывания При использовании методов RegisterAssembly или UnregisterAssembly, проверьте, чтобы убедиться, что имя сборки не длиннее MAX_PATH символов. Длина имени сборки не может превышать MAX_PATH. Для получения дополнительной информации см RegisterAssembly и UnRegisterAssembly. При загрузке сателлитной сборки, убедитесь, что указанный CultureInfo соответствует CultureInfo файла. Спутниковые узлы содержат локализованные ресурсы, которые содержат не локализуемых исполняемый код и ресурсы для одной культуры, которые служат в качестве значения по умолчанию или нейтральной культуры. Для получения дополнительной информации см GetSatelliteAssembly.
#39
by Bloood
Эх Мерлион Мерлион. За столько лет не может валидный веб сервис сделать. Приходится людям обходные пути искать... А я же им давал исправленный wsdl. С которым 1с работало стандартными методами. Но походу он им пришелся не по душе.
#40
by Serginio1
Выложил Новый отчет под И новый NetObjectToIDispatch45 Нужно проставить вы отчете логин пароль
#41
by Serginio1
На новом АПИ не загружаются данные ни Web client и ClientBase Проблему с Resolve подправил. Раньше такого не было.
#44
by garikxxx
ну, вроде все работает, попробовал и массив передать. остался теперь один вопрос, как вызвать функцию из данной внешней обработки из документа-отчета или как запихнуть функции для работы с API например в общие модули? Прайс грузится из XML/XLSX это уже давно работает, но некоторые функции хотелось бы вживить в разные документы, обработки. Конфиг самописанный, формы обычные...
#45
by Serginio1
Ну вариантов куча. Начать с Использование классов .Net в 1С для новичков Основное это получить обертку над .Net классами Дальше нужно загрузить нужную сборку MLPortClient=врап.ПолучитьТипИзСборки("MerlionApi.com.merlion.api.MLService",ФайлMerlionApi); Файлы можно складывать в общую папку Например в ProgramFilesX86 Environment=врап.ПолучитьТип("System.Environment"); Каталог=Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86); Можно туда же положить и NetObjetToIDispatch45.dll Второе это получить клиента Передавай параметры в метод которые нужны
#46
by garikxxx
столкнулся еще с проблемой... получаю список заказов, начинаю их перебирать по очереди из списка полученных и получаю ошибки превышения лимита запросов. ставил задержку от 2 до 5 секунд, плюс после получения содержимого заказа на его обработку секунда уходит. Сделал чтобы перед запросом выводилось время, т.е. вижу нет превышения 1 запроса в секунду. Даже поддержка подтвердила превышений за день не было. Но ошибки постоянно валятся. Притом в разных местах. Обработка доходит до конца один раз из 3-4. Под этим же паролем открыта страничка с заказами, но в момент работы обработки ничего не делал. второй параментр указан как по умолчанию. У поддрежки одна мысль - "Проверьте, возможно, ошибка закэшировалась у Вас." Кэш я так понимаю имеется в виду связанный с SOAP. Кто что может подсказать?
#49
by garikxxx
это основное окно ошибки, потом еще вылазит и потом уже 1С. в ошибке видно что произошло превышение лимитов. 2 обращения в 1 секунду, хотя и мерлион смотрел логи за день ни одного превышения и у меня запросы шли минимум через 3-6 сек
#50
by garikxxx
короче плюнул и сделал пока через попытку. в случае ошибки приходится нажимать "ок". но зато паузу уменьшил до 1 сек и после "ок" обработка продолжает свою работу - перезапрашивает последний не полученный документ и в итоге доходит до конца.
#51
by Serginio1
Можешь еще скинуть ошибку? Кстати, что бы ошибка не вылезало окно ошибки установи врап.ВыводитьСообщениеОбОшибке=ложь;
#52
by garikxxx
а что не открывается ссылка? нажми на первую ссылку и когда откроется браузер в конце удали кавычку.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Ошибка при конвертации 8.0->8.1 "Ошибка проверки данных XDTO"
- Странная ошибка "ошибка формата потока" с вылетом из сеанса
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- v7: Ошибка СУБД.Внутренняя ошибка dbeng 8
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- v8: Ошибка при вызове конструктора: Несоответствие типов
- Обновил БП, вылезла ошибка "Несоответствие типов"
- Ошибка при вызове метода контекста (Содержит): Несоответствие типов (параметр номер '
- Ошибка - "Несоответствие типов"
- v8: Ошибка СУБД. Внутренняя ошибка компоненты DBENG8 при обмене данными
- СКД: Ошибка "РегистрСведений....Несоответствие типов (Параметр номер ""1"")
- Несоответствие типов XDTO: Свойство является списковым
В этой группе 1С
- Отчет в 1с БП 3.0
- Формат файловой базы 8.3.8. Размер таблицы и разрядность ОС?
- Представление ссылки в табличной части
- В чем различия деления "Административно-территориальное" от "Муниципальное"
- Обращение из 1С к стороннему веб-сервису.
- Как запомнить пароль при Web-доступе к 1С
- Как отменить заказ в УТ 11?
- Вызвать из общего модуля процедуру внешней обработки
- как в BAT файле сделать запуск окна и его автоматическое закрытие?
- как найти макет"Расход с розничных складов в ценах АТТ" в УТТ 10.3?
- отмена объединить при выводе секций
- Построитель отчета не выводит группировки колонок
- Не переключается звук на наушники при подключении их к передней панели ПК
- Проблема с отправкой почты
- Как пользователям запретить удаление условия отбора в отчете 8.1 (УТ)
- Не может загрузить DT в СУБД. Ошибка SQL
- Изменить границу последовательности
- Как сделать корректировку 6 раздела РСВ когда там лишний сотрудник?
- Перенос документов из ЗиК 7.7 в ЗУП 3.1
- ЗУП 3.х Больничный по уходу за ребенком