Пришлось мне как разработчику WCF REST сервисов столкнуться с 1С-разработчиками, которые реализовывали 1С-клиент (как потребителя контента). Так вот, при работе с web-ресурсами по REST, которые принимают запросы в UTF-8, 1С отправляет HTTP-запрос через создание текстового файла, записи в него тела запроса, и отправки (POST или PUT) только что созданного файла. Это я о кросс-платформенном решении (без использовании XMLHTTPRequest, т.к. через вызов COM-объекта все работает):
Особенностью решения 1С-ников было то, что при отправке данных методами POST или PUT, заголовки передаются через аргументы функции, а тело — через файл. Грабли были в том, что при создании файла в кодировке UTF8 1С-ка всегда пишет BOM-символ в начале файла и web-сервис, получая запрос от 1С-клиента с неверным Content-Length'ом (встроенная функция определения длины игнорирует BOM-символ, но это можно исправить вручную) и с BOM-символом в середине тела HTTP-запроса (не в начале) впадает в ступор. Также из-за этого символа.
Может ли автор статьи рассказать, как обстоят дела с кросс-платформенными запросами в 1С 8.3 при работе с веб-сервисами не по SOAP, а по REST? HTTP-api доработали?
Спасибо за пожелания. Многие идеи у нас с вами совпадают. Очень важен ваш опыт, т.е. вы можете оценить объем работы такого сервиса с небольшой, на первый взгляд, функциональностью.
При смене пароля происходит перешифрование данных на лету, т.е. с учетом старого пароля пользовательская инфа расшифровывается и зашифровывается с учетом нового пароля. А ексепшн присылайте конечно же на nikita.selenkov@vkoshelke.ru
Спасибо за ваши структурированные мысли и позитив! :) Предложение по поводу кредитного счета учтем. Мобильный клиент и импорт из других системы будет в ближайшем будущем.
Теоретически можно, но тогда придется в долговом счете доход регистрировать — это знак плюс, расход — знак минус.
Мы планируем автоматизировать этот процесс, реализовав в ближайшее время функциональность работы с долгами — кому должен, кто тебе должен, когда отдавать (отдаст) и сколько (если сумму, отличную от той что была изначальная), простить долг.
HTTPСоединение = Новый HTTPСоединение(urladdress); HTTPСоединение.ОтправитьДляОбработки("c:\code\1.txt", "Service.svc/session", "c:\code\2.txt", "Content-Type:application/json" + Символы.ВК + Символы.ПС + "charset:UTF-8");
Особенностью решения 1С-ников было то, что при отправке данных методами POST или PUT, заголовки передаются через аргументы функции, а тело — через файл. Грабли были в том, что при создании файла в кодировке UTF8 1С-ка всегда пишет BOM-символ в начале файла и web-сервис, получая запрос от 1С-клиента с неверным Content-Length'ом (встроенная функция определения длины игнорирует BOM-символ, но это можно исправить вручную) и с BOM-символом в середине тела HTTP-запроса (не в начале) впадает в ступор. Также из-за этого символа.
Может ли автор статьи рассказать, как обстоят дела с кросс-платформенными запросами в 1С 8.3 при работе с веб-сервисами не по SOAP, а по REST? HTTP-api доработали?
Мы планируем автоматизировать этот процесс, реализовав в ближайшее время функциональность работы с долгами — кому должен, кто тебе должен, когда отдавать (отдаст) и сколько (если сумму, отличную от той что была изначальная), простить долг.