| 
    
        
     
     | 
    
    
  | 
XDTO-пакет и фасет fractionDigits | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Zyka    
     28.08.14 
            ✎
    23:22 
 | 
         
        Доброго времени суток уважаемые друзья, нужна ваша помощь.
 
        В чем суть проблемы: необходимо чтобы SOAP отваливался ещё на стороне клиента (при проверке wsdl) если в значение параметра было передано число с разделителем "," ИЛИ количество цифр дробной части превышает три знака. Выходит: Необходимо описать тип значения входного параметра (веб-сервиса) по следующим критериям: <xs:minInclusive value="0"/> <xs:maxInclusive value="100000"/> <xs:fractionDigits value="3"/> НО! Используя базовый тип float (http://www.w3.org/2001/XMLSchema). По умолчанию данный фасет нельзя установить на тип значения float в XDTO-пакете, а было бы прекрасно, т.к. сам тип float не предусматривает разделителем знак ",". Пока пришлось делать так: <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100000"/> <xs:fractionDigits value="3"/> </xs:restriction> Но как мы с вами знаем, типу decimal плевать на значение разделителя, однако указав разделителем знак "," в значение входного параметра число передается целым, вообще без дробной части. Прошу ваши советы, указы и наставления на эту тему. P.S. Для чего все это - во первых для повышения отказоустойчивости и снижения нагрузку с сервер, т.к. пользователь веб-сервиса может например забыть какой использовать разделитель, тем самым запрос отвалится ещё до обращения к серверу. Но что не мало важно, при стресс-тестах я обнаружил что в параметр можно передать число где дробная часть будет просто заоблачной и размер запроса будет достигать нескольких мегабайт, что разумеется не гуд. Всех откликнувшихся заранее благодарю. КонецСвязи  | 
|||
| 
    1
    
        Crush    
     28.08.14 
            ✎
    23:32 
 | 
         
        (0) >Прошу ваши советы, указы и наставления на эту тему. 
 
        Встретится с тобой - большая честь, умный человек! Желаю успехов в твоём правидном деле!:) Где этот Гудвин, который раздает скилы ХДТО?!*мысли вслух*  | 
|||
| 
    2
    
        Zyka    
     29.08.14 
            ✎
    11:37 
 | 
         
        up     
         | 
|||
| 
    3
    
        Jaap Vduul    
     29.08.14 
            ✎
    11:58 
 | 
         
        <xs:restriction base="decimal">
 
        <xs:pattern value="[+-]?\d+\.\d{3}"/> </xs:restriction>  | 
|||
| 
    4
    
        Apokalipsec    
     29.08.14 
            ✎
    12:03 
 | 
         
        вот он мастер регэкспа и шаблонов!)     
         | 
|||
| 
    5
    
        Apokalipsec    
     29.08.14 
            ✎
    12:05 
 | 
         
        +(4) На стороне 1Са этот регэксп прописывается в определении типа.     
         | 
|||
| 
    6
    
        Zyka    
     29.08.14 
            ✎
    12:44 
 | 
         
        (3) - спасибо за ответ. Однако я не так и не смог найти куда же прикрутить этот RegExp. 
 
        (5) - спасибо за ответ. "Определение типа" как я понял, является дублированием родителя, просто с установкой иных значений тех же параметров. pattern - в свою очередь в 1С представляется как "Образец" типа значения, т.к. передав туда значение test, в wsdl я вижу: <xs:pattern value="test"/>, однако передать туда RegExp я к сожалению не смог, т.к. 1С молвит: http://clip2net.com/s/iOMUlT Прошу подсказать где я повернул не туда. Спасибо.  | 
|||
| 
    7
    
        alexei366    
     29.08.14 
            ✎
    12:53 
 | 
         
        (6) Это норм что он так пишет, это глюк платформы уже тянется с 8.3.3.
 
        Так что выгружай схему (там сначала ставишь паттерн test), открываешь xsd, меняешь значение и загружаешь обратно, или тоже самое только через платформу 8.2  | 
|||
| 
    8
    
        Zyka    
     29.08.14 
            ✎
    13:15 
 | 
         
        (7) - всё прошло успешно.
 
        Благодарю каждого откликнувшегося человека, с меня пиво. КонецСвязи  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |