|
http сервис 1с | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
26.08.16
✎
11:45
|
Здравствуйте. Проблема такая. Создал макет html с полями comment1,2.
Сервис открывает HTML ку, но при попытке вставить пост запрос для передачи параметров comment 1,2 выдает ошибку. Помогите разобраться. Вот сервис: Функция formget(Запрос) Ответ = Новый HTTPСервисОтвет(200); Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8"); page = ПолучитьШаблонСтраницы("feedback"); Ответ.УстановитьТелоИзСтроки(page); Возврат Ответ; КонецФункции Функция ПолучитьШаблонСтраницы(page, options=Неопределено, options_value=Неопределено) Экспорт page = ПолучитьОбщийМакет(page).ПолучитьТекст(); Если НЕ options = Неопределено Тогда Для Каждого opt Из options Цикл value = options_value.Получить(opt); page = СтрЗаменить(page, opt, value); КонецЦикла; КонецЕсли; Возврат page; КонецФункции // ПолучитьШаблонСтраницы() Функция formpost(Запрос) Ответ = Новый HTTPСервисОтвет(200); Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8"); option = ОбщегоНазначение.ПолучитьПараметры(Запрос.ПолучитьТелоКакСтроку()); comment1 = ОбщегоНазначение.РаскодироватьСтрокуЭкспорта(option.Получить("comment1")); comment2 = ОбщегоНазначение.РаскодироватьСтрокуЭкспорта(option.Получить("comment2")); Возврат Ответ; КонецФункции Вот модуль общего назначения: Функция РаскодироватьСтрокуЭкспорта(закодСтрока) Экспорт //application/x-www-form-urlencoded //Вместо пробелов ставится +, символы вроде русских букв кодируются их шестнадцатеричными значениями закодСтрока = РаскодироватьСтроку(закодСтрока, СпособКодированияСтроки.КодировкаURL); закодСтрока = СтрЗаменить(закодСтрока, "+", " "); Возврат закодСтрока; КонецФункции // РаскодироватьСтрокуЭкспорта() // Функция возвращает шаблон страницы // page - строка - url страницы // options - массив параметров // options_value - соответствие параметров и значений Функция ПолучитьШаблонСтраницы(page, options=Неопределено, options_value=Неопределено) Экспорт page = ПолучитьОбщийМакет(page).ПолучитьТекст(); Если НЕ options = Неопределено Тогда Для Каждого opt Из options Цикл value = options_value.Получить(opt); page = СтрЗаменить(page, opt, value); КонецЦикла; КонецЕсли; Возврат page; КонецФункции // ПолучитьШаблонСтраницы() // Кодировка application/x-www-form-urlencoded Функция ПолучитьПараметры(Тело) Экспорт Результат = Новый Соответствие; ПарметрыЗначения = ОбщегоНазначение.РазложитьСтрокуВМассивПодстрок(Тело,"&"); Для Каждого Пар Из ПарметрыЗначения Цикл мПар = ОбщегоНазначение.РазложитьСтрокуВМассивПодстрок(Пар, "="); Если мПар.Количество()>1 Тогда Результат.Вставить(мПар[0],мПар[1]); КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт Результат = Новый Массив; Если ПропускатьПустыеСтроки = Неопределено Тогда ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); Если ПустаяСтрока(Строка) Тогда Если Разделитель = " " Тогда Результат.Добавить(""); КонецЕсли; Возврат Результат; КонецЕсли; КонецЕсли; Позиция = Найти(Строка, Разделитель); Пока Позиция > 0 Цикл Подстрока = Лев(Строка, Позиция - 1); Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда Результат.Добавить(Подстрока); КонецЕсли; Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); Позиция = Найти(Строка, Разделитель); КонецЦикла; Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда Результат.Добавить(Строка); КонецЕсли; Возврат Результат; КонецФункции |
|||
1
MAPATNK2
naïve
26.08.16
✎
11:46
|
Идет до сюда
Функция formpost(Запрос) Ответ = Новый HTTPСервисОтвет(200); Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8"); дальше выдает ошибку Если бы можно было отладчик запустить, не спрашивал бы. |
|||
2
Stepa86
26.08.16
✎
12:02
|
Чо за ошибка то? И почему отладчик недоступен? Ты в боевой разрабатываешь, чтоли?
|
|||
3
MAPATNK2
naïve
26.08.16
✎
12:11
|
Ну у сервиса отладчика нет. Не знаю как в версиях выше. у меня ниже 8.3.6 Ошибка инициализации библиотек модулей ( в браузере).
|
|||
4
Stepa86
26.08.16
✎
12:12
|
(3) Отладка - Подключение - Автоматическое подключение - Включи все галки
|
|||
5
MAPATNK2
naïve
26.08.16
✎
12:12
|
Просто месяц назад сервис писал так же, все супер, сейчас не работает. Ошибку посмотреть не могу никак. Может кто подскажет в чем тут проблема.
|
|||
6
MAPATNK2
naïve
26.08.16
✎
12:14
|
(4) Ну поставил, как отлаживаться то. Нажимаю отладку, запускаю сервис. ноль эмоций.
|
|||
7
Stepa86
26.08.16
✎
12:15
|
Точку останова то поставь
|
|||
8
MAPATNK2
naïve
26.08.16
✎
12:16
|
(7) Я ж не утупок. Я везде поставил. Ноль эмоций.
|
|||
9
MAPATNK2
naïve
26.08.16
✎
12:18
|
Как правильно то? Выбрал все галочки у отладчика. Выгрузил базу. Выгрузил сервис, поставил точки останова, дальше - отладка - начало отладки - веб клиент? . Выбрал веб клиент, перезагрузил страницу в браузере. Никакой отладчик не запустился
|
|||
10
4St
26.08.16
✎
12:21
|
(1) Отладчик в веб-сервисе запускается по-другому.
Во-первых, его надо явно разрешить в публикации. Во-вторых, в меню "отладка" надо настроить "автоматическое подключение" - "веб сервисы". И если база серверная, то надо разрешить отладку сервера. |
|||
11
Сниф
26.08.16
✎
12:23
|
Меня вот этот момент часто в ума сводит: надо найти в папке публикации файл default.vrd и там руками прописать <debug enable="true"/>
Например: <?xml version="1.0" encoding="UTF-8"?> <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" base="/uprff" ib="File="D:\Базы 1С\Управление FireFox";" enableStandardOData="true" allowexecutescheduledjobs=""> <debug enable="true"/> <ws enable="false" pointEnableCommon="false"/> <httpServices publishByDefault="false"/> </point> |
|||
12
Сниф
26.08.16
✎
12:24
|
+(11) после чего перезапустить апач
|
|||
13
Stepa86
26.08.16
✎
12:27
|
(11) А у меня прям в окне публикации все есть http://screencast.com/t/TcOrRHJh
|
|||
14
Сниф
26.08.16
✎
12:30
|
(13) Ну, если у коллеги отладка не идет - все равно полезно залезть в default.vrd и лично проконтролировать - появилось ли там <debug enable="true"/> :)
|
|||
15
Сниф
26.08.16
✎
12:31
|
А еще если база не файловая, то сервер 1С нужно запускать в режиме отладки.. Кажется, это все особенности, которые я вспомнил.
|
|||
16
4St
26.08.16
✎
12:47
|
Вот только (9) непонятно. Как веб-сервис связан с веб-клиентом.
И текст ошибки так и не озвучен. Впрочем, не мое дело. |
|||
17
MAPATNK2
naïve
26.08.16
✎
12:51
|
(16) Ну у сервиса отладчика нет. Не знаю как в версиях выше. у меня ниже 8.3.6 Ошибка инициализации библиотек модулей ( в браузере).
4 |
|||
18
MAPATNK2
naïve
26.08.16
✎
12:52
|
(13) Такого нет.
|
|||
19
MAPATNK2
naïve
26.08.16
✎
12:52
|
поэтому и спросил. В чем может быть ошибка. Я указал где она начинается. Отправил полностью весь код.
|
|||
20
MAPATNK2
naïve
26.08.16
✎
12:54
|
(15) Файловая база
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |