#0
by Sevnet
Куплен движ OWOX, есть 1С 7.7. Возникла следующая неразрешимая самостоятельно проблема. При получении ответа на HTTP запрос, в строке-ответе HTTP кириллица приходит в виде кодировки HTML-entetles - так её называет декодер студии Арт.Лебедева Например: "Антон" → "Антон", "HTML-Entities" → "UTF-8". Готовые примеров декодирования я нигде не нашел, да и не ясно, что это вообще за кодировка такая HTML-Entities??? Строка запроса, например информации о заказе, целиком выглядит так:
#1
by Sevnet
Помогите, плиз, разобраться что за кодировка и как её переводить в кириллицу??? Возможно можно каким-то образом разобрать файл в таблицу или ещё какой-нить более приемлемый вид, чтобы уже обращаться туда?
#2
by Miracle_Miracle
и что тут такого? Какой-то антон при получении товара самовывозом должен оплатить наличными 10874.75
#3
by Sevnet
Тут всё ок, имеется ввиду в 1С 7.7 перевести программным методом кодировку в текст? А при отправке параметров, обратно текст в кодировку??
#7
by Miracle_Miracle
А вообще я твою муть открыл в IE и сохранил в тхт и все сохранилось с кирилицей.
#8
by Sevnet
Miracle_Miracle. за ссылку спс, я искал эту таблицу но находил только в 10тиричном виде, без указание на то что бывает и HEX. Вот с IE я тоже долго долбался, т.к. встречал упоминания об этом методе, но та и не разобрался как в конфигураторе это сделать? Gepard С помощью запроса "open" объекта winhttp: objHTTP = СоздатьОбъект("winhttp.winhttprequest.5.1"); хотя этот же объект эквивалентен Вообще я разницы в них не улавливаю...
#11
by Sevnet
Gepard, попробовал не фига. У меня в заголовках указана кодировка objHTTP.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
#12
by Sevnet
ServerXmlHttpRequest, а что это если вкратце? И как им пользоваться, а то я загуглил всё в основном на аглоязычных сайтах?
#13
by Gepard
кстати, можно попробовать там же добавить SetRequestHeader("Accept-Charset","windows-1251");
#15
by Sevnet
та не, я пробовал выставлять один фиг, тоже самое возвращает, там и в документации к движку OWOX сказано, что возвращает utf-8
#16
by Эмбеддер
после "&#" идет юникокод символа, перевести в строку можно через вызов функции Символ, даже таблиц не надо создавать
#18
by Sevnet
Gepard да раскодировать я смогу, ща где-нить нарою готовый код, только символы кода подменю и засуну в глобальный модуль... Мне бы какой нить метод разбора полей, чтобы не по тупому поиском нужных текстовых частей и отрезания всего вокруг по названию тегов, методом а то это как-то глаза режет...
#19
by Sevnet
Эмбеддер, а юникод разве на 10чином формате??? А у меня HEX, если так, то сначала надо преобразовывать в 10чный, а потом через Символ Gepard, за ссылку спс, я по-моему напарывался на неё, но тут проблема в том что разбор 10чных кодов, а мне сервак возвращает HEX, поэтому он мне не подошел.
#20
by Miracle_Miracle
вот пример чтения xml И тебе все равно нужно знать содержимое каких тегов тебя интересует.
#22
by Эмбеддер
забыл что 7-ка в условии, в 8-ке так срабатывает правильно Сообщить(Символ(4*256+1*16+0));
#23
by Sevnet
Ладно, таблица соответствий символов у меня есть, заварил чай, пойду разбирать своим уродским методом: текст ответа и потом его так же резать до нужных 3х HEX знаков, а их по таблице соответствия HTML символов какой-нить процедуркой провращать в желаемый вид. Чую получится уродский код, ну да я на суперпрограммера и не претендую. Чё получится выкладу сюда.
#24
by Эмбеддер
я правильно понял, ты саму структуру xml хочешь разобрать кодом на 1С? лучше взять готовое. в 8-ке я использовал (и в 7-ке тоже можно) MSXML2.xmlHttp для отправки и получения, Msxml2.DOMDocument для разбора а уже саму строку в этой кодировке можно разбирать в коде 1С
#25
by Sevnet
Эмбеддер, О!, а что за Msxml2.DOMDocument и где есть по нему мануал можешь скинуть? Но есть одно, НО, я получаю данные в ответе в виде сплошной строки... У меня получится её разобрать этим объектом?
#28
by Эмбеддер
если распарсивать средствами 8-ки, то таким образом если средствами 7-ки то только так
#29
by Эмбеддер
с обработкой ошибок DOCToSave.loadXML(xmlHttp.responseText); If DOCToSave.parseError.errorCode <> 0 Then Сообщить("Ошибка разбора XML результата: " + DOC.parseError.reason);
#30
by Эмбеддер
и еще в 8-ке имея XDTO (как в 1-м варианте), можно получить иерархическую структуру данных (мне так было удобнее работать), функция тебе не пригодится но разбор полученных данных можешь сделать подобным образом
#31
by Sevnet
Эмбеддер, xml документ получился без проблем, спс, но вот в 8ке я вообще ничего не знаю, дуплю уже полчаса на последний пост, не могу понять что этот код делает делает. Как я понял ОбъектXDTO - это тот самый файл xml? В виде ссылки на файл или текста? Новый - это аналог СоздатьОбъект? В 7ке есть такие типы значений: Тип("ЗначениеXDTO"), Тип("ОбъектXDTO") ? Что аналог а 7ке этому: Новый Массив; - таблица? Новый Структура; - ???
#32
by Sevnet
Да, и ещё забыл спросить, а что на выходе то после распарсивания xml фала? Таблица? Или какая структура то вообще?
#33
by Эмбеддер
про ОбъектXDTO я зря написал, это в 8-ке, только запутал andrewks для 7-ки выкладывал пример здесь вот такой код полностью распарсивает строку, в том числе и те твои символы нормально понимает))) Функция ВывестиЭлем(ТекЭлем,Знач Смещ); Рез=1; и в результате работы получается Элемент Orders: Элемент record_type: Элемент part: Элемент record: Элемент second_name: Элемент email: Элемент phones: Элемент record: Элемент addresses: Элемент created: Текст элемента: 2014-04-03 20:46:31 Элемент changed: Текст элемента: 2014-04-03 20:46:31 Элемент merchandises: Элемент record: Элемент id: Элемент goods: Элемент record: Элемент comment: Элемент created: Текст элемента: 2014-04-03 20:46:31 Элемент invoices: Элемент record: Элемент payment_method: Элемент title: Текст элемента: Оплата наличными при получении Элемент payment_currency: Элемент amount:
#34
by Sevnet
Эмбеддер, спасибище огромное, всё работает, и кириллица нормально выводится! Но у меня возникло несколько вопросов, т.к. я встретил несколько методов впервые, и сам никогда ими не пользовался: 1. Что за оператор "Знач" Crtl+F1 его не знает, где почитать? Функция ВывестиЭлем(ТекЭлем, Знач Смещ); 2. Где взять файл синтаксис помощника для объекта Msxml2.DOMDocument?? Типо фалик *.als 3. Не знал, что можно вызывать функцию саму в себе), и в упор не могу раздуплится, каким образом эта строчка выводит сообщения в табло? Если можно поясните, плиз, или пошлите куда-нить почитать?
#35
by Злопчинский
ЗНАЧ - параметр передается не по ссылке, а по значению. То есть фактически параметр, передаваемый в процедуру - останется без изменения, в процедуре будет сделана копия, которая даже если изменится - не поменяется исходный параметр
#36
by Злопчинский
Вывод сообщенйи в табло: ВывестиЭлем(...) - очевидно, что внутри этой функции (или внутри других функций/процедур, вызываемых из этой) используется оператор
#39
by Эмбеддер
"2. Где взять файл синтаксис помощника для объекта Msxml2.DOMDocument?? Типо фалик *.als" к 1С это отношения не имеет, поэтому *.als файла не будет. это объект фирмы майкрософт. у меня доки нет, гугль рулит
#42
by Sevnet
сори затупил, чёта думал, что это в 1С какой-то объект. Я просто самоучка, и программирование не основная деятельность, а только сопутствующая.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: Обмен данными между 3 базами 1с.......
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- 1С 8.1 УПП Обмен данными по 1С. ? - Обмен возможен только на одном ПК.
- v7: Через стандартный план обмена настроил обмен между УТ и Бухгалтерией8. Но документы
- обмен БУХ - УТ. Обмен ОбменУправлениеТорговлейБухгалтерия
- Типовой обмен данными: Не найден входящий файл обмена данными??
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- Обмен с помощью плана обмена и правил обмена.
В этой группе 1С
- v7: Выделение строки справочника цветом
- Веб-сервер (сжатие: усиленное)
- УФ: Вывести на форму поле отбора
- Долгое открытие управляемых форм
- Неправильное отображение WEB-страници в 1С 8.3
- Движение документа, созданого программно не учитывается в регистре
- Единицы измерения в УТ 10.3 и нетто - брутто в ТОРГ12
- Должности в УТ 10.3
- Кто-нить подключал весы "DIGI SM 300h" к Рознице?
- Шаблон отчета для обычных форм на СКД где достать?
- v7: Имеется ли аналог chdbfl.exe но для 7.7 ?
- Чем можно заменить таблицу значений
- Интерпретатор 1с на Хабре
- v.7: переход ТиС 9.2 на v.8 УТ 10.3
- Блокировка IP-адреса при неудачных попытках аутентификации на сервере терминалов
- Синхронизация данных между двумя похожими конфигурациями
- Выбор каталога - события поля ввода "ПриИзменении" "ОбработкаВыбора"
- Загрузка Табеля учета рабочего времени из EXCEL в 1c8 ЗиКБУ
- Перебор строк таблицы на форме документа. УТ 11
- v7: перенос остатков и документов из 1С 7.7 УСН в 1С 8.2 Бухгалтерия 2.0