XDTO-пакет и фасет fractionDigits #718505


#0 by Zyka
Доброго времени суток уважаемые друзья, нужна ваша помощь. В чем суть проблемы: необходимо чтобы SOAP отваливался ещё на стороне клиента (при проверке wsdl) если в значение параметра было передано число с разделителем "," ИЛИ количество цифр дробной части превышает три знака. Выходит: Необходимо описать тип значения входного параметра (веб-сервиса) по следующим критериям: НО! Используя базовый тип float . По умолчанию данный фасет нельзя установить на тип значения float в XDTO-пакете, а было бы прекрасно, т.к. сам тип float не предусматривает разделителем знак ",". Пока пришлось делать так: Но как мы с вами знаем, типу decimal плевать на значение разделителя, однако указав разделителем знак "," в значение входного параметра число передается целым, вообще без дробной части. Прошу ваши советы, указы и наставления на эту тему. P.S. Для чего все это - во первых для повышения отказоустойчивости и снижения нагрузку с сервер, т.к. пользователь веб-сервиса может например забыть какой использовать разделитель, тем самым запрос отвалится ещё до обращения к серверу. Но что не мало важно, при стресс-тестах я обнаружил что в параметр можно передать число где дробная часть будет просто заоблачной и размер запроса будет достигать нескольких мегабайт, что разумеется не гуд. Всех откликнувшихся заранее благодарю. КонецСвязи
#1 by Crush
>Прошу ваши советы, указы и наставления на эту тему. Встретится с тобой - большая честь, умный человек! Желаю успехов в твоём правидном деле!:) Где этот Гудвин, который раздает скилы ХДТО?!*мысли вслух*
#2 by Zyka
up
#3 by Jaap Vduul
#4 by Apokalipsec
вот он мастер регэкспа и шаблонов!)
#5 by Apokalipsec
+ На стороне 1Са этот регэксп прописывается в определении типа.
#6 by Zyka
- спасибо за ответ. Однако я не так и не смог найти куда же прикрутить этот RegExp. - спасибо за ответ. "Определение типа" как я понял, является дублированием родителя, просто с установкой иных значений тех же параметров. pattern - в свою очередь в 1С представляется как "Образец" типа значения, т.к. передав туда значение test, в wsdl я вижу: <xs:pattern value="test"/>, однако передать туда RegExp я к сожалению не смог, т.к. 1С молвит: Прошу подсказать где я повернул не туда. Спасибо.
#7 by alexei366
Это норм что он так пишет, это глюк платформы уже тянется с 8.3.3. Так что выгружай схему (там сначала ставишь паттерн test), открываешь xsd, меняешь значение и загружаешь обратно, или тоже самое только через платформу 8.2
#8 by Zyka
- всё прошло успешно. Благодарю каждого откликнувшегося человека, с меня пиво. КонецСвязи
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С