Имя: Пароль:
1C
1С v8
Отладка web-сервиса
0 Armando
 
16.07.13
14:53
Есть клиент-серверная база. Есть апач. Есть веб-сервис.
Сервер 1С запущен с ключом -debag
В default.vrd дописал <debug enable="true" url="tcp://localhost"/>
Флаг на автоподключение веб-сервиса воткнул.
Отладка не работает.

ЧЯДНТ?
1 ДенисЧ
 
16.07.13
14:54
"Сервер 1С запущен с ключом -debag "
Это как? Избавление от сумок?
2 Armando
 
16.07.13
14:54
На ИТС пишут
26.1.1.1.4. Отладка Web-сервиса

Для указания Web-сервису необходимости запуска в отладочном режиме (только для файлового варианта информационной базы) используются настройки, размещенные в файле default.vrd, который должен располагаться в каталоге виртуального приложения. В этом файле необходимо указать элемент debug, отсутствие которого означает невозможность отладки Web-сервиса.

Пример элемента debug из файла default.vrd:

<debug enable="true" url="tcp://localhost"/>
Подробнее о файле default.vrd можно посмотреть в книге «1С:Предприятие 8.2. Руководство администратора».

Если для элемента debug указан атрибут url, то к моменту обращения к Web-сервису по указанному URL должен быть доступен конфигуратор. В противном случае исполнение Web-сервиса будет приостановлено и система будет ожидать доступность конфигуратора. При этом для продолжения работы в конфигураторе следует подключить необходимый предмет отладки.

Для необходимости отладки Web-сервиса в клиент-серверном варианте информационной базы следует включить режим отладки на сервере с помощью ключа командной строки debug. Подробнее о ключах командной строки запуска сервера «1С:Предприятия» можно посмотреть в книге «1С:Предприятие 8.2. Клиент-серверный вариант. Руководство администратора».
3 Armando
 
16.07.13
14:55
(1) в смысле debug))
4 arsik
 
гуру
16.07.13
14:59
Точно должно быть url="tcp://localhost"/ ?
5 Fragster
 
гуру
16.07.13
14:59
а слабо отладить функцию, вызываемую веб сервисом, а потом воткнуть ее в сам веб-сервис?
6 arsik
 
гуру
16.07.13
15:00
+(4)может быть url="tcp://серверприложения"
7 Armando
 
16.07.13
15:06
(4)(6) Всё находится на одной тачке
8 Serginio1
 
16.07.13
15:06
Помню помучился с отладкой Вэб сервисов и проще выделить отдельный модуль из которого и вызывать методы Вэб сервиса
Функция Hello()
   // Вставить содержимое обработчика.
   возврат акВэбСервисы.Hello()
КонецФункции


При этом отлаживать можно из толстого клиента
9 Armando
 
16.07.13
15:07
(5) Я не знаю в каком виде ко мне данные приходят
10 Fragster
 
гуру
16.07.13
15:08
(9) эээ?
11 Джинн
 
16.07.13
15:09
(5) +100500
12 Джинн
 
16.07.13
15:10
(9) А какая разница? Тип данных параметра известен. А дальше обработка исключительных ситуаций на Вас.
13 Fragster
 
гуру
16.07.13
15:11
для логов - дарю:

Функция ПолучитьXMLИзОбъекта(Объект, Знач Фабрика = Неопределено) Экспорт
   Запись = Новый ЗаписьXML;
   Запись.УстановитьСтроку();
   Если Фабрика = Неопределено Тогда
       Фабрика = ФабрикаXDTO;
   КонецЕсли;
   Попытка
       Фабрика.ЗаписатьXML(Запись, Объект);
   Исключение
       СериализаторXDTO.ЗаписатьXML(Запись, Объект);
   КонецПопытки;
   Возврат Запись.Закрыть();
КонецФункции


фигачишь при вызове сервиса в текстовый файл или еще куда, потом смотришь, что у тебя спросили...
14 Armando
 
16.07.13
15:13
(13) Да, тоже вариант. Но это все костыли. Хочу православную отладку по точке останова.
15 Fragster
 
гуру
16.07.13
15:15
мне для написания ИМ с онлайн формированием заказов в 1с - хватило...
16 Armando
 
16.07.13
15:19
Да я уже и так почти разобрался. Интересно с отладку победить.
17 Serginio1
 
16.07.13
15:37
(14) Тебе все равно придется отлавливать исключения и сохранять входные параметры, т.к. вариантов куча и простой отладкой всего не уловишь.
18 zmaximka
 
16.07.13
15:43
я тоже почти день убил, но так и не осилил отладку((. Если победишь отпиши решение
19 Armando
 
16.07.13
18:01
(18) Пока забил на это. Как-нибудь потренируюсь, а то тут доступа мало к сервакам
Ошибка? Это не ошибка, это системная функция.