| 
    
            
         
         | 
    
    
  | 
Разрядность числовой колонки ТЗ | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Гипервизор    
     12.08.21 
            ✎
    14:50 
 | 
         
        Туплю, не дождавшись пятницы.
 
        Имею 3 варианта запроса: 1) ВЫБРАТЬ КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад И Номенклатура = &Номенклатура) 2) ВЫБРАТЬ Количество ИЗ РегистрНакопления.ТоварыНаСкладах ГДЕ Склад = &Склад И Номенклатура = &Номенклатура 3) ВЫБРАТЬ СУММА(Количество) ИЗ РегистрНакопления.ТоварыНаСкладах ГДЕ Склад = &Склад И Номенклатура = &Номенклатура Заполняю параметры, выгружаю в ТЗ, смотрю разрядность: Таблица = Запрос.Выполнить().Выгрузить(); Разрядность = Таблица.Колонки[0].ТипЗначения.КвалификаторыЧисла.Разрядность; Получаю следующие числа: 38, 15, 0. Почему именно так? Как это вообще работает? Прочитал на ИТС "Разрядность результатов выражений и агрегатных функций в языке запросов" (https://its.1c.ru/db/metod8dev/content/2665/hdoc), но понятней не стало, у меня это единственная запись в регистре. Кроме того, как тогда объяснить, почему именно в 3 варианте разрядность 0?  | 
|||
| 
    1
    
        lodger    
     12.08.21 
            ✎
    14:55 
 | 
         
        запись то приведи     
         | 
|||
| 
    2
    
        Жан Пердежон    
     12.08.21 
            ✎
    14:59 
 | 
         
        Какие числа от какого варианта? 
 
        38 от суммы должно быть по идее  | 
|||
| 
    3
    
        Гипервизор    
     12.08.21 
            ✎
    15:03 
 | 
         
        (1) А что вам даст эта запись? Ну допустим склад: "Москва, ул. Селезневская", а номенклатура: "Патч Бармина универсальный".
 
        А, пардон, количество номенклатуры 1. Всё, одна запись с таким складом и номенклатурой.  | 
|||
| 
    4
    
        Гипервизор    
     12.08.21 
            ✎
    15:05 
 | 
         
        (2) В порядке написания вариантов:
 
        1) 38, 2) 15, 3) 0  | 
|||
| 
    5
    
        lodger    
     12.08.21 
            ✎
    15:08 
 | 
         
        (3) Количество цифр дробной части результата равно количеству цифр дробной части операнда 1 = 0.     
         | 
|||
| 
    6
    
        Жан Пердежон    
     12.08.21 
            ✎
    15:09 
 | 
         
        (2) А не, там же остатки, так что всё норм. 
 
        (4) Разрядность у количества в регистре какая?  | 
|||
| 
    7
    
        Гипервизор    
     12.08.21 
            ✎
    15:13 
 | 
         
        (5) Так я же смотрю Разрядность, а не РазрядностьДробнойЧасти. Количество 1,000.
 
        (6) Число(15,3).  | 
|||
| 
    8
    
        1Сергей    
     12.08.21 
            ✎
    15:15 
 | 
         
        сколько записей в каждом из случаев?     
         | 
|||
| 
    9
    
        серый КТУЛХУ    
     12.08.21 
            ✎
    15:17 
 | 
         
        если не юзаешь "выразить" то функция/формула в запросе в результат возвращает ту разрядность, которая получается де-факто. если получается целое из оперции/функции хоть над стотыщточнотиразрядным ресурсом - возвращается резцльтат с разрядностью 0.
 
        юзай ВЫРАЗИТЬ для функций/формул в запросе  | 
|||
| 
    10
    
        серый КТУЛХУ    
     12.08.21 
            ✎
    15:20 
 | 
         
        ЗЫ: попробуй чтобы сумма(количество) у тебя давало 1,1 - получишь разрядность не 0 а 1. если например 1,11 - получишь 2. а попробуешь чтобы среднее из 5  2 и 3 - получишь разрядность дофигища (3,33333...)     
         | 
|||
| 
    11
    
        Гипервизор    
     12.08.21 
            ✎
    15:54 
 | 
         
        (9) Ну попробовал использовать ВЫРАЗИТь, всё равно разрядность 0.
 
        (10) Вот, например: ВЫБРАТЬ СУММА(ВложенныйЗапрос.Поле1) ИЗ (ВЫБРАТЬ 1 КАК Поле1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 0.1) КАК ВложенныйЗапрос Результат будет 1,1. А разрядность снова 0.  | 
|||
| 
    12
    
        серый КТУЛХУ    
     12.08.21 
            ✎
    16:28 
 | 
         
        (11): ох ё, да.
 
        просто потому что в результате запроса это - всегда(!) составной тип "Null,Число" выжечь оттуда тип "Null" через ЕСТЬNULL, ВЫРАЗИТЬ - у меня не получилось.  | 
|||
| 
    13
    
        МихаилМ    
     12.08.21 
            ✎
    17:10 
 | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |