|
8.2 управляемая форма отправка СМС | ☑ | ||
---|---|---|---|---|
0
2307861c
07.11.11
✎
18:01
|
Отправляю вот таким кодом
WinHttp= Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"Windows-1251"); WinHttp.Open("GET","http://smpp.sms-project.ru/submit_sm.php?system_id=" + Логин + "&password=" + Пароль + "&source_addr=" + СокрЛП(Объект.Отправитель) + "&destination_addr=" + Получатель + "&short_message=" + ТекстДляСМС,0); WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");// WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "Windows-1251"); // WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); WinHttp.Send(); А на этом сайте в статистике, да и на телефон приходит Р¢РµСС‚ Р¾С‚Р¿С€Р°Р²РºРё Р¡РœР¡ Коддировку указал Windows-1251 (как просила служба техподдержки сервиса) В чем может быть дело? |
|||
1
H A D G E H O G s
07.11.11
✎
18:02
|
В том, что 1С работает с utf-8
|
|||
2
2307861c
07.11.11
✎
18:04
|
(1) Хорошо. Пробовал перед отправкой вот так тест обработать
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла); ЗаписьТекста.Записать(ТекстДляСМС); ЗаписьТекста.Закрыть(); ЧтениеТекста = Новый ЧтениеТекста(ИмяВременногоФайла, "windows-1251"); ТекстДляСМС = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); УдалитьФайлы(ИмяВременногоФайла); |
|||
3
2307861c
07.11.11
✎
18:05
|
(1)Результат тот же иероглифы вместо текста в СМС.
|
|||
4
H A D G E H O G s
07.11.11
✎
18:11
|
ТекстДляСМС = ЧтениеТекста.Прочитать();
преобразование в utf8 |
|||
5
Gonya
07.11.11
✎
18:17
|
Установи консольный wget
Сформируй средствами 1с cmd файл "wget http://****************" Запусти его |
|||
6
2307861c
07.11.11
✎
18:20
|
(4)А как его вытянуть без переобразования?
|
|||
7
2307861c
07.11.11
✎
18:39
|
Может кто стыкался с этой проблемой?
|
|||
8
Wobland
07.11.11
✎
18:41
|
(6) фар, к примеру, многое умеет. используй внешние средства
|
|||
9
H A D G E H O G s
07.11.11
✎
18:47
|
||||
10
2307861c
07.11.11
✎
19:08
|
(9)Помоему и них нет такой возможности. А рабочего пользователя не могу дать.
|
|||
11
2307861c
07.11.11
✎
19:08
|
Вобще их сайт вот sms-project.ru
|
|||
12
xazrad
07.11.11
✎
19:23
|
(0) была такая проблема на 7.7 решение на 7.7. тут V7HttpReader UTF-8 может поможет
|
|||
13
2307861c
07.11.11
✎
19:43
|
(12)А какую функцию использовать? Пробовал вторую вобще пустую строку возвращала.
|
|||
14
zladenuw
07.11.11
✎
19:50
|
(13) надо не строку а ссылку юзать
xazrad 1 - 03.10.11 - 17:05 нашел http://infostart.ru/public/18816/ |
|||
15
2307861c
07.11.11
✎
19:52
|
(14)Так я вот и брал из инфостарта эти функции перваю вобще вернулу пустую строку
|
|||
16
2307861c
07.11.11
✎
19:53
|
(14)Первая функция также дала иероглифы в результате
|
|||
17
zladenuw
07.11.11
✎
19:56
|
хм, ОС какая ?
|
|||
18
acsent
07.11.11
✎
19:56
|
А если URL encode попробовать?
|
|||
19
zladenuw
07.11.11
✎
19:57
|
Код 1C v 8.х
Если Код=208 Тогда Если Код2=129 Тогда Итог=Итог+"Ё"; Иначе Итог=Итог+Симв(КодСимв("А")+Код2-144); КонецЕсли; ИначеЕсли Код=209 Тогда Если Код2=145 Тогда Итог=Итог+"ё"; ИначеЕсли Код2=150 Тогда Итог=Итог+"і"; // украинская ИначеЕсли Код2=151 Тогда Итог=Итог+"ї"; // украинская Иначе Итог=Итог+Симв(КодСимв("р")+Код2-128); КонецЕсли; КонецЕсли; |
|||
20
2307861c
07.11.11
✎
19:58
|
(17)Windows 7? 1c 8.2
(18)Это что? |
|||
21
2307861c
07.11.11
✎
20:00
|
(19)Откуда переменная Код2, там только Код есть переменная
|
|||
22
zladenuw
07.11.11
✎
20:02
|
вообщем нарыл у себя.
Функция ПреобразоватьСтрокуВУТФ8(Стр) Длина=СтрДлина(Стр); Итог=""; Для Н=1 По Длина Цикл Знак=Сред(Стр,Н,1); Код=КодСимвола(Знак); Если Код<128 Тогда Итог=Итог+Знак; Иначе Если (Код>=КодСимвола("А"))И(Код<=КодСимвола("п")) Тогда Итог=Итог+Символ(208)+Символ(144+Код-КодСимвола("А")); ИначеЕсли (Код>=КодСимвола("р"))И(Код<=КодСимвола("я")) Тогда Итог=Итог+Символ(209)+Символ(128+Код-КодСимвола("р")); ИначеЕсли (Знак="ё") Тогда Итог=Итог+Символ(209)+Символ(145); ИначеЕсли (Знак="Ё") Тогда Итог=Итог+Символ(208)+Символ(129); КонецЕсли; КонецЕсли; КонецЦикла; Возврат Итог; КонецФункции //ПреобразоватьСтрокуВУТФ8 |
|||
23
zladenuw
07.11.11
✎
20:03
|
использовал для перевода в гугле, пока не закрыли его :).....
|
|||
24
acsent
07.11.11
✎
20:03
|
(20) у тебя текст смс передается в строке адреса
wiki:URL |
|||
25
2307861c
07.11.11
✎
20:04
|
(22)У меня такая ж функция, не помагает
|
|||
26
zladenuw
07.11.11
✎
20:04
|
с ос 7 может разные приколы быть.... вернее ОС 7 + 1С
|
|||
27
zladenuw
07.11.11
✎
20:10
|
есть комп где нет 7 ?
|
|||
28
zladenuw
07.11.11
✎
20:11
|
вариант создать текст, конвертнуть в utf-8 и его отправить.
|
|||
29
zladenuw
07.11.11
✎
20:12
|
в 7 нет 1251...
|
|||
30
2307861c
07.11.11
✎
20:20
|
(29)Есть, попробую
|
|||
31
2307861c
07.11.11
✎
20:34
|
(29)на виндовс XP тоже самое
|
|||
32
2307861c
07.11.11
✎
20:40
|
Вот ссылка как отображает текст смс-ок сервис http://s017.radikal.ru/i426/1111/38/27577f452eb0.jpg
|
|||
33
acsent
07.11.11
✎
20:41
|
А если кодировку в заголовках указать как утф?
|
|||
34
2307861c
07.11.11
✎
20:42
|
Отправляюю вот так
WinHttp= Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"windows-1251"); WinHttp.Open("GET", "http://smpp.sms-project.ru/" + ТекстДляСМС,0); WinHttp.SetRequestHeader("Accept-Language", "ru"); WinHttp.SetRequestHeader("Accept-Charset","windows-1251");// WinHttp.setRequestHeader("Content-Language", "ru"); WinHttp.setRequestHeader("Content-Charset", "windows-1251"); // WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251"); WinHttp.Send(); Уже пробовал и UTF-8 ставить меняются только иероглифы |
|||
35
acsent
07.11.11
✎
20:59
|
urlencode уже пробовал?
|
|||
36
2307861c
07.11.11
✎
21:00
|
(35) Сейчас пробую, разбираюсь
|
|||
37
2307861c
07.11.11
✎
21:03
|
(35)УРА. Большое спасибо заработало.
|
|||
38
2307861c
07.11.11
✎
21:03
|
Вот перевод в анкоде
&НаСервере Функция КодСимволаASCII(Символ) КодUNICODE = КодСимвола(Символ); Если ((КодUNICODE > 1039) И (КодUNICODE < 1104)) Тогда Возврат (КодUNICODE - 848); ИначеЕсли КодUNICODE = 8470 Тогда Возврат 185; ИначеЕсли КодUNICODE = 1105 Тогда Возврат 184; ИначеЕсли КодUNICODE = 1025 Тогда Возврат 168; Иначе Возврат КодUNICODE; КонецЕсли; КонецФункции &НаСервере Функция URLEncode( value ) table = "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14" + "%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28" + "%29%2A%2B%2C%2D%2E%2F%30%31%32%33%34%35%36%37%38%39%3A%3B%3C" + "%3D%3E%3F%40%41%42%43%44%45%46%47%48%49%4A%4B%4C%4D%4E%4F%50" + "%51%52%53%54%55%56%57%58%59%5A%5B%5C%5D%5E%5F%60%61%62%63%64" + "%65%66%67%68%69%6A%6B%6C%6D%6E%6F%70%71%72%73%74%75%76%77%78" + "%79%7A%7B%7C%7D%7E%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8C" + "%8D%8E%8F%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F%A0" + "%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF%B0%B1%B2%B3%B4" + "%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C6%C7%C8" + "%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC" + "%DD%DE%DF%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0" + "%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF"; result = ""; length = СтрДлина( value ); Для i = 1 По length Цикл symbol = Сред( value, i, 1 ); //code = КодСимвола( symbol ); code = КодСимволаASCII( symbol ); result = result + Сред( table, code*3 + 1, 3 ); КонецЦикла; Возврат result; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |