| 
    
        
     
     | 
    
  | 
перевод слов | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        vip67    
     21.09.15 
            ✎
    10:50 
 | 
         
        Всем привет! 
 
        есть задача перевести наименования в справочнике с одного языка на другой. воспользовался этой функцией: Функция глПеревод(исх,направление = "ru|uk") Экспорт Строка=Исх; fromLang="Ru"; toLang ="Uk"; Урл="http://translate.yandex.net/api/v1.5/tr/translate?lang=ru-uk&text="+Строка; Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP"); Попытка Соединение.open("GET", урл,0); //0 - синхронный (по другому 1с не умеет), 1 - асинхронный Исключение Сообщить("Ошибка обработки"); КонецПопытки; Соединение.send(); Сч=1; Пока (Соединение.readyState) <> 4 Цикл Сч=Сч+1; Если Сч=1000 Тогда Прервать; КонецЕсли; КонецЦикла; ответ = Соединение.responseXML.text; Возврат ответ; КонецФункции но не работает - ответ - всегда пустая строка. Если вручную пользуюсь сервисом - то переводит,автоматом - нет. Помогите найти ошибку.  | 
|||
| 
    1
    
        Fragster    
     гуру 
    21.09.15 
            ✎
    10:53 
 | 
||||
| 
    2
    
        vip67    
     21.09.15 
            ✎
    10:54 
 | 
         
        (1) это что?     
         | 
|||
| 
    3
    
        Fragster    
     гуру 
    21.09.15 
            ✎
    10:55 
 | 
         
        (2) я как бы намекаю, что специально обученный сотрудник сделает это качественнее, чем робот. Ну и второй сотрудник, который потом результат первого будет проверять.     
         | 
|||
| 
    4
    
        vip67    
     21.09.15 
            ✎
    10:56 
 | 
         
        (3) а если позиций около 500?     
         | 
|||
| 
    5
    
        Fragster    
     гуру 
    21.09.15 
            ✎
    10:59 
 | 
         
        (4) меньше двух часов работы, не?     
         | 
|||
| 
    6
    
        Chikko    
     21.09.15 
            ✎
    11:09 
 | 
         
        Глянь сюда еще:
 
        Внимание! Начиная с версии 1.5 доступ ко всем методам API осуществляется по ключу.  | 
|||
| 
    7
    
        Nuobu    
     21.09.15 
            ✎
    11:27 
 | 
         
        (0) Немного переделал твою ф-ю.
 
        Функция глПеревод(исх,направление = "ru-uk") Экспорт Строка=Исх; Урл="http://translate.yandex.net/api/v1.5/tr/translate?lang=ru-uk&text="+Строка; Урл = "https://translate.yandex.net/api/v1.5/tr/translate?key=" + Ключ + "&text=" + Строка + "&lang=" + направление; Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP"); У меня взлетело, только кодировка чуть лагает. Обрати внимание на рыску и на ключ.  | 
|||
| 
    8
    
        Nuobu    
     21.09.15 
            ✎
    11:28 
 | 
||||
| 
    9
    
        vip67    
     21.09.15 
            ✎
    11:51 
 | 
         
        (7) спс! счас попробую, ключ - это что? и чему равно направление?     
         | 
|||
| 
    10
    
        vip67    
     21.09.15 
            ✎
    11:53 
 | 
         
        а... почитал, понял!     
         | 
|||
| 
    11
    
        vip67    
     21.09.15 
            ✎
    12:00 
 | 
         
        (8) с ключем разобрался, а где рыска?     
         | 
|||
| 
    12
    
        Nuobu    
     21.09.15 
            ✎
    12:02 
 | 
         
        (11) В направлении))
 
        У тебя косая, а у меня - рыска. Посмотри самую первую строку. Функция глПеревод(исх,направление = "ru-uk") Экспорт  | 
|||
| 
    13
    
        vip67    
     21.09.15 
            ✎
    12:05 
 | 
         
        это я исправил, но опять возвращает пустую строку :(
 
        и ключ получил...  | 
|||
| 
    14
    
        vip67    
     21.09.15 
            ✎
    12:07 
 | 
         
        хотя, нет, брешу, возвращает не пустую строку, а аброкадабру, че с кодировкой делать-то?     
         | 
|||
| 
    15
    
        vip67    
     21.09.15 
            ✎
    12:19 
 | 
         
        какая кодировка возвращается?     
         | 
|||
| 
    16
    
        Nuobu    
     21.09.15 
            ✎
    12:29 
 | 
         
        (15) Написано, что UTF-8.
 
        Только что тестил, с английского на русский нормально переводит. Как перевести с UTF-8 на Виндоус-1251 пока не знаю.  | 
|||
| 
    17
    
        Nuobu    
     21.09.15 
            ✎
    12:58 
 | 
         
        (15) Нашел!!!
 
        Когда передаётся английский текст, то он нормально прописывается в путь по урл. Поэтому перевод с английского на русский нормально отображается. Когда же прописывается русский текст, то он неадекватно отображается для Яндекса. Я восопользовался этой ссылкой: http://catalog.mista.ru/public/70330/ Там есть код, который переводит строку, которую нужно перевести с русского еще куда-то в УРЛ код: Функция ПреобразованиеСтрокуВURL(Строка="") ScrCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); ScrCtrl.Language="JScript"; Сообщение = ScrCtrl.eval("var uri='"+Строка+"'; encodeURI(uri);") ; Возврат Сообщение; КонецФункции И вместо Строка=Исх; Написал Строка=ПреобразованиеСтрокуВURL(Исх); И взлетело!))  | 
|||
| 
    18
    
        vip67    
     22.09.15 
            ✎
    10:00 
 | 
         
        спс! счас попробую!     
         | 
|||
| 
    19
    
        vip67    
     22.09.15 
            ✎
    10:06 
 | 
         
        Да! взлетело!
 
        СПС!СПС!СПС!  | 
|||
| 
    20
    
        Nuobu    
     22.09.15 
            ✎
    10:07 
 | 
         
        (19) Не за что, самому было интересно, как оно работает.     
         | 
|||
| 
    21
    
        Fragster    
     гуру 
    22.09.15 
            ✎
    11:05 
 | 
         
        Глобальный контекст.КодироватьСтроку (Global context.EncodeString)
 
        Глобальный контекст (Global context) КодироватьСтроку (EncodeString) Синтаксис: КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>) Параметры: <Строка> (обязательный) Тип: Строка. Кодируемая строка. <СпособКодированияСтроки> (обязательный) Тип: СпособКодированияСтроки. Способ кодирования строки. <КодировкаСтроки> (необязательный) Тип: Строка. Кодировка, в которую преобразуется строка перед кодированием. Значение по умолчанию: UTF8. Возвращаемое значение: Тип: Строка. Описание: Кодирует строку в соответствии с выбранным способом кодирования. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: Стр1 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822", СпособКодированияСтроки.КодировкаURL); Стр2 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822", СпособКодированияСтроки.URLВКодировкеURL); Стр3 = РаскодироватьСтроку( "wiki:Шар", СпособКодированияСтроки.КодировкаURL); Сообщить(Стр1); Сообщить(РаскодироватьСтроку(Стр1, СпособКодированияСтроки.КодировкаURL)); Сообщить(Стр2); Сообщить(РаскодироватьСтроку(Стр2, СпособКодированияСтроки.КодировкаURL)); Сообщить(Стр3); Сообщить(КодироватьСтроку(Стр3, СпособКодированияСтроки.URLВКодировкеURL)); См. также: СпособКодированияСтроки Глобальный контекст, метод РаскодироватьСтроку -------------------------------------------------------------------------------- Методическая информация  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |