#0
by kolesnikov
Добрый день. В связи с тем что 1с-программистов, работающих с веб-сервисами, нет, пришлось самому попробовать взяться за некую авантюру (с 1с, к сожалению, дел имел мало) Дело в том, что у нас на предприятии есть информационная система(бд MSSQL),с поднятым на той стороне веб-сервисом, принимающим и отдающим штатную структуру, приказы по кадрам,список сотрудников и т.п. Есть потребность эти данные из 1С туда перегружать. Для начала хотел попробовать авторизоваться на сервере методом Login(String UserName, String Password), потом получить штатную структуру GetStaffTree(AuthHeader authHeader) и перенести ее в форму 1С. Токен authHeader получается при авторизации Сложность возникла после авторизации на сервисе Описание метода Login POST /ImportStaff.asmx HTTP/1.1 <soap:Envelope xmlns:xsi="; xmlns:xsd="; xmlns:soap="; HTTP/1.1 200 OK <soap:Envelope xmlns:xsi="; xmlns:xsd="; xmlns:soap="; <soap:Envelope xmlns:xsi="; xmlns:xsd="; xmlns:soap="; HTTP/1.1 200 OK <soap:Envelope xmlns:xsi="; xmlns:xsd="; xmlns:soap="; В 1С авторизовался: Прокси = WSСсылки.WSCсылка1.СоздатьWSПрокси(";, "ImportStaff", "ImportStaffSoap"); На форму выносил Поле, отображал там результат авторизации - успешно отображает токен. далее использовал метод GetStaffTree Результат - ошибка несоответствия типов: Ошибка при вызове метода контекста (GetStaffTree) Данные = Прокси.GetStaffTree(Авторизация); по причине: Несоответствие типов (параметр номер '1') Судя по всему проблема в том, что токен получился строковый, а тип, который ждет метод GetSTaffTree, должен быть authHeader Подскажите пожалуйста можно ли как-то выпутаться из этой ситуации и отобразить полученные данные в размещенной таблице на форме? Как корректно оперировать токеном?
#4
by impulse9
В гугле много информации про настройку веб-сервисов в 1С, как со стороны сервера, так и со стороны клиента
#5
by Serginio1
Скорее всего тебе нужно создать AuthHeader и в поле AuthenticatedToken Передать Авторизация.LoginResult
#6
by kolesnikov
>Скорее всего тебе нужно создать AuthHeader >и в поле >AuthenticatedToken >Передать >Авторизация.LoginResult Если несложно подскажите пожалуйста примерно как бы это выглядело?
#8
by kolesnikov
отчасти проблема еще и в том что не совсем получается правильно задать гуглу вопрос чтобы получить правильный ответ. +где-то видел частичные примеры работы 1с и веб-сервисов через xmlhttp и вследствие отсутствия опыта не пойму каким способом легче реализовать задачу в данном случае
#10
by Serginio1
Можно упростить себе проблему. Я так понимаю у вас там сайт написан на .Net то тебе могут помочь тамошние C# ники
#11
by kolesnikov
>Вы должны в XDTO пакетах в 1С описать все используемые типы Должен ли я описывать эти типы, если они в WSСсылке из подтянутой wsdl в Типах объектах лежат? пардон,понимаю что вопросы глупые, но ни разу со всем этим добром дел не имел.
#14
by kolesnikov
промежуточно пока попробовал сделать так Прокси = WSСсылки.Aviabit.СоздатьWSПрокси(";, "ImportStaff", "ImportStaffSoap");
#16
by kolesnikov
после некоторых более осознанных махинаций получилось выгрузить штатку всем спасибо.
#17
by kolesnikov
возник небольшой нюанс. в передаваемой структуре <StaffTree> Есть параметр IsDirectory типа short. В базе,с которой дергаются данные, имеет значения 0-1-2 В реквизите столбца таблицы я выставил тип данных "Число". В итоге числа 1-2 отображаются, 0 нет. Из описания к методу: IsDirectory Тип данных: Целое число Описание: Тип записи со строчными данными проблем нет. short нужно отдельно прописывать через ФабриXDTO.Тип? заполнение таблицы сейчас происходит следующим образом:
#18
by mehfk
>>В итоге числа 1-2 отображаются, 0 нет. У поля формы выбери формат представления нуля.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- 1C и SOAP
- Странная ошибка "ошибка формата потока" с вылетом из сеанса
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- v7: Ошибка СУБД.Внутренняя ошибка dbeng 8
- v8: 1С + SOAP
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- Ошибка SOAP сервера: Неизвестная ошибка.
- Чисто уточнить: 1Совый SOAP (WSПрокси) уже умеет заголовки использовать?
- Ошибка при вызове web-сервиса 1C 8.3 (Внутренняя ошибка. Ошибка инициализации б)
- Ошибка при вызове метода контекста (Записать) Ошибка при выполнении файловой опе
- Ошибка при вызове конструктора (ComОбъект): Ошибка при выполнении приложения-сер
- Ошибка "Произошла внутренняя ошибка OData сервиса" при получении записей РС
В этой группе 1С
- Как в Управляемых формах найти к чему привязана процедура из элементов формы?
- Установка MS SQL 2012 на Windows 10
- узнать разрядность клиента 1С программно
- УТ 11 секции
- Ошибка при вызове веб сервиса
- 8.3.9 толстый клиент 32x и 64x на одном компе.
- Настройка рлс в УТ 11
- Можно ли хранить 2 значение в константе? Например 2 числа в одном константе.
- Организовать обмен между ЗУП и самопиской: срок
- Взаимодействие 1с и PHP
- УПП: План-фактный анализ продаж на СКД
- Цикл Для каждого. Итератор для значения не определен
- НайтиПоНаименованию с учетом родителя
- Передать файл Excel с клиента на сервер
- Вопрос по индивидуальным графикам в ЗУП 2.5
- УНФ 1.6 отображение дополнительной единицы измерения при выборе в документах
- SQL Server тормозит. Диск SSD с базой tempdb загружен на 100%
- Кто работал с OAuth 2.0 Яндекса, в частности с Директом, ошибку выдает?
- Обновление БП 2.0 больше не будет для платформы 8.2 ?
- Как в макет вставить картинку-ценник и поверх нее печатать текст