Имя: Пароль:
1C
 
Записывать значения которые передаются на сервер (Веб-сервисы)
,
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
(25) Поставила http://lvkr.ru/f/wzgNqd/1280.jpg



та же ошибка.
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) Все получилось спасибо :)
Закон Брукера: Даже маленькая практика стоит большой теории.