|
Записывать значения которые передаются на сервер (Веб-сервисы) | ☑ | ||
---|---|---|---|---|
0
Олеся999
19.08.15
✎
08:49
|
Нашла пример веб-сервиса https://www.youtube.com/watch?v=CztIhVHyW_U
Подскажите пожалуйста как можно записывать значения которые передаются на сервер ? |
|||
1
Лодырь
19.08.15
✎
08:51
|
(0) Лень смотреть видео.
Лучше расскажи, надо записывать то что передается на сервер, или то что получается на сервере? |
|||
2
Олеся999
19.08.15
✎
08:51
|
||||
3
Олеся999
19.08.15
✎
08:53
|
(1) Я смотрела и написала пример по видео.
На скрине видно что в данном случае нужно записать "Privet". На сервере. |
|||
4
Лодырь
19.08.15
✎
08:56
|
Ну у тебя есть функция - обработчик вебсервиса. Залезь в нее и записывай там полученные параметры куда угодно.
|
|||
5
Ymryn
19.08.15
✎
09:03
|
(3) Куда записать? По примеру, описанный веб-сервис возвращает ответ в зависимости от полученного сообщения. Т.е. на Привет он возвращает Ну, привет. В дальнейшем этот ответ уже обрабатывается в самой обработке. В чем собственно проблема?
|
|||
6
Олеся999
19.08.15
✎
10:35
|
(5) Вот и нужно записывать полученное сообщение ...вне зависимости какой будет ответ.
|
|||
7
Олеся999
19.08.15
✎
10:37
|
(4) Это тут ?) http://lvkr.ru/f/EFFkwR/1280.jpg
|
|||
8
Serginio1
19.08.15
✎
10:42
|
Если параметры это объекты XDTO то
Функция ПоказатьОбъект(ОтветТаблицаЦен) ЗаписьХМЛ= новый ЗаписьXML; ЗаписьХМЛ.УстановитьСтроку(); ФабрикаXDTO.записатьXML(ЗаписьХМЛ,ОтветТаблицаЦен,,,,НазначениеТипаXML.Явное); возврат ЗаписьХМЛ.Закрыть()); КонецФункции А строки сохраняй куда угодно. В файл, Журнал Регистрации, Регистр Сведений куда захочешь. Все зависит от твоей фантазии |
|||
9
Олеся999
19.08.15
✎
11:16
|
||||
10
Serginio1
19.08.15
✎
11:20
|
(9) В чем проблема? Не знаешь куда zapros записать?
Пря в своей функции и записывай. Глобально Перехватить запросы нет возможности. |
|||
11
Олеся999
19.08.15
✎
11:22
|
(10) Добавила функцию и опубликовала на сервере и сразу ошибка возникает в режиме предприятия ...когда отправляю zapros
|
|||
12
Олеся999
19.08.15
✎
11:23
|
||||
13
Serginio1
19.08.15
✎
11:31
|
(12) Я бы весь функционал вынес бы в отдельный общий модуль.
Ты можешь для отладки использовать методы из отчета. А из модуля сервиса уже вызывай методы и записывай переменные. Например Функция CreateOrder(TablePrices) // Вставить содержимое обработчика. Попытка возврат акВэбСервисы.CreateOrder(TablePrices) Исключение СтрОшибки=ОписаниеОшибки(); ЗаписьЖурналаРегистрации("CreateOrder",УровеньЖурналаРегистрации.Ошибка,,,СтрОшибки); ВызватьИсключение СтрОшибки; КонецПопытки КонецФункции |
|||
14
Олеся999
19.08.15
✎
11:47
|
Я просто маленько не въезжаю :)
Это нужно записывать в ИмяПроцедуры? ну у меня сейчас вот так, конфа с веб-сервисом: http://www.fayloobmennik.net/5393877 |
|||
15
Олеся999
19.08.15
✎
12:22
|
(13) А какие графы делать в Журнале Регистрации?
|
|||
16
Serginio1
19.08.15
✎
13:53
|
ЗаписьЖурналаРегистрации(<ИмяСобытия>, <Уровень>, <ОбъектМетаданных>, <Данные>, <Комментарий>, <РежимТранзакции>)
Параметры: <ИмяСобытия> (обязательный) Тип: Строка. Событие указывается строкой. Может содержать точки для обозначения иерархии событий. Запрещена запись событий использующих сочетания символов "_$" и "$_", зарезервированные для системных событий. Например: _$МоеСобытие$_ или _$МояГруппаСобытий$_.МоеСобытие. <Уровень> (необязательный) Тип: УровеньЖурналаРегистрации. Уровень важности события. Значение по умолчанию: Примечание. <ОбъектМетаданных> (необязательный) |
|||
17
Serginio1
19.08.15
✎
13:54
|
Объект метаданных, к которому относится событие.
<Данные> (необязательный) Тип: Произвольный. Данные, с которыми связано событие. Рекомендуется указывать ссылки на объекты данных (элементы справочников, документы, к которым относится событие). <Комментарий> (необязательный) Тип: Строка. Произвольная строка комментария к событию. Значение по умолчанию: Пустая строка. <РежимТранзакции> (необязательный) Тип: РежимТранзакцииЗаписиЖурналаРегистрации. Указывает отношение записи к текущей транзакции. Значение по умолчанию: Независимая. |
|||
18
Олеся999
20.08.15
✎
12:57
|
Сделала так http://lvkr.ru/f/yWtHEW/1280.jpg
Публикую, веб-сервисы работают отлично, но стоит раскомментировать строку "Мод = Модуль_сервер.ЗаписьВРегистр();" то вываливает ошибку. Ошибка:{Обработка.ПриветБаза.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (HelloBaza) Ответ = Сервис.HelloBaza(Приветствие); по причине: Ошибка вызова операции сервиса: {http://127.0.0.1}:Hello:HelloBaza() по причине: Ошибка SOAP сервера: Внутренняя ошибка. Ошибка инициализации библиотеки модулей Может кто знает что делаю не так ? |
|||
19
Serginio1
20.08.15
✎
13:43
|
Галочку сервер у Модуль_сервер поставь.
|
|||
20
Serginio1
20.08.15
✎
13:44
|
И еще раз вынеси весь функционал в отдельный модуль. Проще тестировать
|
|||
21
Олеся999
20.08.15
✎
13:59
|
(19) так вот ?) http://lvkr.ru/bWsDQU.jpg
|
|||
22
Serginio1
20.08.15
✎
16:06
|
(21) Методы вэб сервиса выполняются на сервере
|
|||
23
Олеся999
21.08.15
✎
14:47
|
(22) Ну я написала на сервере.
http://lvkr.ru/f/bJERGe/640.jpg Вот моя конфа если что : https://dropmefiles.com/6Q2Ae |
|||
24
Serginio1
21.08.15
✎
14:50
|
(23) Ты просто галку поставь сервер.
Ну выполняется у тебя? |
|||
25
Serginio1
21.08.15
✎
14:56
|
А Экспорт кто будет ставить
ЗаписьВРегистр (zapros) Экспорт Поставь Сервис/Параметры/Модули/Проверка галочку сервер |
|||
26
Олеся999
24.08.15
✎
08:13
|
||||
27
Олеся999
24.08.15
✎
08:15
|
(25) Вот ошибочка :{Обработка.ПриветБаза.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (HelloBaza)
Ответ = Сервис.HelloBaza(Приветствие); по причине: Ошибка вызова операции сервиса: {http://127.0.0.1}:Hello:HelloBaza() по причине: Ошибка SOAP сервера: Неизвестная ошибка. {WebСервис.Hello.Модуль(12)}: Метод объекта не обнаружен (ЗаписьВРегистр) по причине: {WebСервис.Hello.Модуль(12)}: Метод объекта не обнаружен (ЗаписьВРегистр) |
|||
28
mehfk
24.08.15
✎
08:52
|
А слово "Экспорт" ты так и не написала?
|
|||
29
Олеся999
24.08.15
✎
11:41
|
(28) Дописала и ошибка :
{Обработка.ПриветБаза.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (HelloBaza) Ответ = Сервис.HelloBaza(Приветствие); по причине: Ошибка вызова операции сервиса: {http://127.0.0.1}:Hello:HelloBaza() по причине: Ошибка SOAP сервера: Внутренняя ошибка. Ошибка инициализации библиотеки модулей |
|||
30
Serginio1
24.08.15
✎
12:30
|
(29) Сделай 25 и выполни проверку
Конфигурация-проверка модулей. Видно прав не хватает на запись. Пропиши роль и установи права на все в том числе на метод сервиса и на регистр. Проверь И лучше вынеси функционал в отдельный модуль и проверь |
|||
31
Serginio1
24.08.15
✎
12:31
|
&НаСервере
Функция ЗаписьВРегистр (zapros) НаборЗаписей = РегистрыСведений.РегДанных.СоздатьНаборЗаписей(); НоваяЗап = НаборЗаписей.Добавить(); НоваяЗап.Знач = zapros; НаборЗаписей.Записать(); КонецФункции &НаСервере Функция HelloBaza(zapros) Экспорт Если zapros ="Privet" тогда Ответ= "Nu Privet" ; ИначеЕсли zapros ="Poka" тогда Ответ = "Byvai" ; ИначеЕсли zapros <> "Privet" и zapros <> "Poka" тогда Ответ = "Ne ponimayu" ; КонецЕсли; ЗаписьВРегистр(zapros); Возврат Ответ; КонецФункции В модуле сервиса Функция HelloBaza(zapros) ответ = Модуль_сервер.HelloBaza(zapros); Возврат Ответ; КонецФункции И проверка в обработке Процедура КнопкаВыполнитьНажатие(Кнопка) // Сервис= WSСсылки.WSСсылка1.СоздатьWSПрокси("http://127.0.0.1","Hello","HelloSoap" ); // Ответ = Сервис.HelloBaza(Приветствие); Ответ = Модуль_сервер.HelloBaza(Приветствие); Сообщить(Ответ); КонецПроцедуры |
|||
32
Олеся999
25.08.15
✎
08:34
|
(31) &НаСервере
Функция ЗаписьВРегистр (zapros) НаборЗаписей = РегистрыСведений.РегДанных.СоздатьНаборЗаписей(); НоваяЗап = НаборЗаписей.Добавить(); НоваяЗап.Знач = zapros; НаборЗаписей.Записать(); КонецФункции &НаСервере Функция HelloBaza(zapros) Экспорт Если zapros ="Privet" тогда Ответ= "Nu Privet" ; ИначеЕсли zapros ="Poka" тогда Ответ = "Byvai" ; ИначеЕсли zapros <> "Privet" и zapros <> "Poka" тогда Ответ = "Ne ponimayu" ; КонецЕсли; ЗаписьВРегистр(zapros); Возврат Ответ; КонецФункции Вот так работает вроде без обращения к Общему модулю. Спасибо!)) Только перезаписывает регистр сведений. А как сделать чтобы просто добавлял в регистр сведений отправляемые знач.? |
|||
33
Mankubus
25.08.15
✎
08:44
|
НоваяЗап = РегистрыСведений.РегДанных.СоздатьМенеджерЗаписи();
НоваяЗап.Знач = zapros; НоваяЗап.Записать(); |
|||
34
Олеся999
25.08.15
✎
09:40
|
(33) Так у меня так же)
Она просто перезаписывает, а нужно что бы добавляла. |
|||
35
Mankubus
25.08.15
✎
09:51
|
(34) где так же? у тебя СоздатьНаборЗаписей, а у меня СоздатьМенеджерЗаписи
|
|||
36
Олеся999
25.08.15
✎
09:56
|
(35) Я вижу, но результат то такой же.
Она перезаписывает, а не добавляет. |
|||
37
Serginio1
25.08.15
✎
11:37
|
(36) Так добавь измерения. Какое хочешь хоть Уникальный идентификатор со временем
|
|||
38
Олеся999
25.08.15
✎
11:53
|
(37) Все получилось спасибо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |