Имя: Пароль:
1C
1С v8
СКД: неправильный формат вывода числовых значений
,
0 slafor
 
19.12.21
13:46
Есть отчет на СКД, в котором выводится количество приход, количество расход, нач. и кон. остаток. Ну и суммы, соответственно.
Так вот, при выводе отчета у всех числовых показателей почему-то правильный формат, а у одного - Количество расход - нет. То есть у всех 3 знака после запятой, а у него - целое значение. Уж и переписывал, и колонки местами менял - все равно. Где это еще можно посмотреть?

Вот настройка выбранных полей: https://yadi.sk/i/bQIT2eF3q9cmKA .
Вот как выглядит сам отчет: https://yadi.sk/i/nbv_vGC2bonZGw .

В запросе все просто - и количество приход, и количество расход берутся из регистра партий, ОстаткиИОбороты.

Когда запускаю запрос через консоль запросов - там у всех числовых позиций целые значения (если нет цифирек после запятой).
1 SleepyHead
 
гуру
19.12.21
13:56
1. открой набор данных, посмотри, нет ли для этого поля выражения представления или формата
2. открой настройку варианта, посмотри, нет ли для этого поля условного оформления
2 vicof
 
19.12.21
14:16
3. Открой макет. Посмотри нет ли макета для этой группировки.
3 slafor
 
19.12.21
14:16
(1)
1. В наборе данных все у всех одинаково: https://yadi.sk/i/d4C0uzAm-yRR3g .
Причем создавал этот отчет уже в другом виде - с временными таблицами - но как было целое значение в этой колонке, так оно и осталось.
2. Вариант один, и условного оформления там не задавалось.
4 slafor
 
19.12.21
14:17
(2)
3. В макете я задавал только заголовок.
5 slafor
 
19.12.21
14:18
6 SleepyHead
 
гуру
19.12.21
14:25
(3) Разрядность какая у расхода в регистре?
7 серый КТУЛХУ
 
19.12.21
14:26
и как в запросе это поле получается?
8 серый КТУЛХУ
 
19.12.21
14:26
точнее - сравнить как  там эти два (кво) поля получаются
9 slafor
 
19.12.21
15:13
(6) Разрядность у ресурса Количество регистра ПартииНаСкладах 3.

Хотел разбить отчет на части для вытавления сюда, но решил - выставлю уж полный, может быть, я чего-то упустил. Вот:

ВЫБРАТЬ
    ПартииНаСкладахОстаткиИОборотыПриход.Номенклатура КАК Номенклатура,
    ПартииНаСкладахОстаткиИОборотыПриход.Партия КАК Партия,
    ПартииНаСкладахОстаткиИОборотыПриход.Партия.Контрагент КАК Поставщик,
    ПартииНаСкладахОстаткиИОборотыПриход.Партия.Дата КАК ДатаПрихода,
    ПартииНаСкладахОстаткиИОборотыПриход.КоличествоПриход КАК КоличествоПриход,
    ПартииНаСкладахОстаткиИОборотыПриход.СуммаПриход КАК СуммаПриход,
    ПартииНаСкладахОстаткиИОборотыПриход.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ПартииНаСкладахОстаткиИОборотыПриход.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток
ПОМЕСТИТЬ втПартииНаСкладахОстаткиИОборотыПриход
ИЗ
    РегистрНакопления.ПартииНаСкладах.ОстаткиИОбороты(&НачалоПериодаПриход, &КонецПериодаПриход, , , ) КАК ПартииНаСкладахОстаткиИОборотыПриход
ГДЕ
    ПартииНаСкладахОстаткиИОборотыПриход.Партия.Дата МЕЖДУ &НачалоПериодаПриход И &КонецПериодаПриход
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартииНаСкладахОстаткиИОборотыРасход.Номенклатура КАК Номенклатура,
    ПартииНаСкладахОстаткиИОборотыРасход.Партия КАК Партия,
    СУММА(ПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход) КАК КоличествоРасход,
    СУММА(ПартииНаСкладахОстаткиИОборотыРасход.СуммаРасход) КАК СуммаРасход
ПОМЕСТИТЬ втПартииНаСкладахОстаткиИОборотыРасход
ИЗ
    РегистрНакопления.ПартииНаСкладах.ОстаткиИОбороты(&НачалоПериодаРасход, &КонецПериодаРасход, , , ) КАК ПартииНаСкладахОстаткиИОборотыРасход

СГРУППИРОВАТЬ ПО
    ПартииНаСкладахОстаткиИОборотыРасход.Номенклатура,
    ПартииНаСкладахОстаткиИОборотыРасход.Партия
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартииНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ПартииНаСкладахОстатки.Партия КАК Партия,
    СУММА(ПартииНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
    СУММА(ПартииНаСкладахОстатки.СуммаОстаток) КАК СуммаОстаток
ПОМЕСТИТЬ втПартииНаСкладахОстатки
ИЗ
    РегистрНакопления.ПартииНаСкладах.Остатки КАК ПартииНаСкладахОстатки

СГРУППИРОВАТЬ ПО
    ПартииНаСкладахОстатки.Номенклатура,
    ПартииНаСкладахОстатки.Партия
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втПартииНаСкладахОстаткиИОборотыПриход.Номенклатура КАК Номенклатура,
    втПартииНаСкладахОстаткиИОборотыПриход.Партия КАК Партия,
    втПартииНаСкладахОстаткиИОборотыПриход.Партия.Контрагент КАК Поставщик,
    втПартииНаСкладахОстаткиИОборотыПриход.Партия.Дата КАК ДатаПрихода,
    втПартииНаСкладахОстаткиИОборотыПриход.КоличествоПриход КАК КоличествоПриход,
    втПартииНаСкладахОстаткиИОборотыПриход.СуммаПриход КАК СуммаПриход,
    ВЫБОР
        КОГДА втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход ЕСТЬ NULL
            ТОГДА 0
        ИНАЧЕ втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход
    КОНЕЦ КАК КоличествоРасход,
    втПартииНаСкладахОстаткиИОборотыРасход.СуммаРасход КАК СуммаРасход,
    втПартииНаСкладахОстатки.КоличествоОстаток КАК КоличествоКонечныйОстаток,
    втПартииНаСкладахОстатки.СуммаОстаток КАК СуммаКонечныйОстаток,
    втПартииНаСкладахОстаткиИОборотыПриход.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    втПартииНаСкладахОстаткиИОборотыПриход.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток
ИЗ
    втПартииНаСкладахОстаткиИОборотыПриход КАК втПартииНаСкладахОстаткиИОборотыПриход
        ЛЕВОЕ СОЕДИНЕНИЕ втПартииНаСкладахОстаткиИОборотыРасход КАК втПартииНаСкладахОстаткиИОборотыРасход
        ПО втПартииНаСкладахОстаткиИОборотыПриход.Номенклатура = втПартииНаСкладахОстаткиИОборотыРасход.Номенклатура
            И втПартииНаСкладахОстаткиИОборотыПриход.Партия = втПартииНаСкладахОстаткиИОборотыРасход.Партия
        ЛЕВОЕ СОЕДИНЕНИЕ втПартииНаСкладахОстатки КАК втПартииНаСкладахОстатки
        ПО втПартииНаСкладахОстаткиИОборотыПриход.Номенклатура = втПартииНаСкладахОстатки.Номенклатура
            И втПартииНаСкладахОстаткиИОборотыПриход.Партия = втПартииНаСкладахОстатки.Партия
10 slafor
 
19.12.21
15:15
(6) Разрядность не у расхода, а у ресурса Количество )
А в отчете - КоличествоПриход выводится с 3-мя знаками после запятой, а КоличествоРасход - как целое.
11 slafor
 
19.12.21
15:16
+(10) Причем никаких дополнительных манипуляций с настройками я не делаю.
12 серый КТУЛХУ
 
19.12.21
15:34
если не делать "никаких манипуляций с настройкаим" то может выводиться по минимально необходимой разрядности дроной части. т.е. встречается значение 3.000 (три целых ноль тысячных) - и выводится как целое 3 ...
13 серый КТУЛХУ
 
19.12.21
15:34
впиндюрь попробуй в кво-реквизиты в запросе "выразить ... как число(17,3))" например?
14 pechkin
 
19.12.21
16:01
в настройке поля задай формат или тип значения
15 slafor
 
19.12.21
18:28
(14) Да, спасибо, тип значения помог.

Но все равно непонятно, почему у КоличествоПриход тип значения явно не задается, а формат все равно указывается правильно, а у КоличествоРасход - нет ) Чисто спортивный интерес )
16 Ёпрст
 
19.12.21
18:37
(0)

вот из-за этого
    ВЫБОР
        КОГДА втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход ЕСТЬ NULL
            ТОГДА 0
        ИНАЧЕ втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход
    КОНЕЦ КАК КоличествоРасход,

Перепиши так, что ле
ЕстьNULL(втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход,0.000) как КоличествоРасход
17 slafor
 
19.12.21
19:01
(16) Идея хорошая, но почему-то на сработало. Пробовал и так:

ВЫБОР
        КОГДА втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход ЕСТЬ NULL
            ТОГДА ВЫРАЗИТЬ(0 КАК Число(15,3))
        ИНАЧЕ ВЫРАЗИТЬ(втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход КАК Число(15,3))
    КОНЕЦ КАК КоличествоРасход

Тоже в результате выдает целое число. Помогает только явно задать тип значения...
18 pechkin
 
19.12.21
19:04
(15) в одном случае смог определить по метаданным, в другом нет.
ибо поле расход - это вычисляемое поле
19 pechkin
 
19.12.21
19:05
а если вот так
ВЫРАЗИТЬ(ВЫБОР
        КОГДА втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход ЕСТЬ NULL
            ТОГДА 0
        ИНАЧЕ втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход
    КОНЕЦ КАК Число(15,3)) КАК КоличествоРасход
20 slafor
 
19.12.21
20:08
(19) Эксперименты продолжаются ))

Нет, тоже выдает целое число. Равно как и конструкция
ВЫРАЗИТЬ(ЕСТЬNULL(втПартииНаСкладахОстаткиИОборотыРасход.КоличествоРасход, 0) КАК Число(15,3)) КАК КоличествоРасход.
Ошибка? Это не ошибка, это системная функция.