Имя: Пароль:
1C
1С v8
Рассчитать % в СКД
0 Юзер123
 
naïve
13.09.22
11:43
Доброго времени.
Сломался немного.
Не получается корректно получить значение % в отчете.

1 вариант
В итоговом запросе СКД вывожу

    ВЫБОР
        КОГДА НЕ (ВТ_Готово.ПереданоНаКомиссиюКоличество + ВТ_Готово.НачальныйОстатокМаркетплэйсы) = 0
        ТОГДА ВТ_Готово.ПродажиМаркетплэйсыКоличество / (ВТ_Готово.ПереданоНаКомиссиюКоличество + ВТ_Готово.НачальныйОстатокМаркетплэйсы) * 100
        ИНАЧЕ ВТ_Готово.ПереданоНаКомиссиюКоличество + ВТ_Готово.НачальныйОстатокМаркетплэйсы
    КОНЕЦ КАК ПроцентыОтПродажМаркетплэйсы,

Добавляю в ресурсы в отчете 0. всегда.


2. вариант.

в Итоговом Запросе

0 как ПроцентыОтПродажМаркетплэйсы


В ресурсах выражение
Сумма(ПродажиМаркетплэйсыКоличество)/(Сумма(ПереданоНаКомиссиюКоличество)+Сумма(НачальныйОстатокМаркетплэйсы)) *100

По номенклатуре..  В итоге цифра есть, но она не сходится с данными . т.е. если руками  посчитать то она будет другая совсем.  

Как решить?
1 Asmody
 
13.09.22
11:47
Это точно проценты?

ИНАЧЕ ВТ_Готово.ПереданоНаКомиссиюКоличество + ВТ_Готово.НачальныйОстатокМаркетплэйсы
2 toypaul
 
гуру
13.09.22
11:47
может где-то спрятался предательский NULL
3 Юзер123
 
naïve
13.09.22
11:52
ВЫБОР
        КОГДА НЕ (ВТ_Готово.ПереданоНаКомиссиюКоличество + ВТ_Готово.НачальныйОстатокМаркетплэйсы) = 0
        ТОГДА ВТ_Готово.ПродажиМаркетплэйсыКоличество / (ВТ_Готово.ПереданоНаКомиссиюКоличество + ВТ_Готово.НачальныйОстатокМаркетплэйсы) * 100
        ИНАЧЕ 0
    КОНЕЦ КАК ПроцентыОтПродажМаркетплэйсы,
4 Юзер123
 
naïve
13.09.22
11:52
Проверка чтобы на 0 не делилось
5 Ryzeman
 
13.09.22
12:17
Задача из разряда ванговать) В запросе (3) ошибки нет. Либо с ресурсами и вычислямыми полями что то намудрил, либо одно из двух.

Ключевое - мы не понятно что за группировки ты использовал и как по ним должны расчитываться поля.
Потому что если ты в консоли сделаешь

ВЫБРАТЬ
ВЫБОР
        КОГДА НЕ ЛОЖЬ
        ТОГДА 10 / 20 * 100
        ИНАЧЕ 0
    КОНЕЦ

Что равнозначно твоему запросу при определенном наборе данных, то ты получишь правильную цифру.
6 Ryzeman
 
13.09.22
12:18
(5) ну и 1% оставлю на то, что ты не проверил данные и там у тебя постоянные деления и умножения на ноль. Но если говоришь вторым вариантом у тебя там не нули, то наверное всё-таки нет
7 Юзер123
 
naïve
13.09.22
12:25
Выбор
Когда НЕ  ПереданоНаКомиссиюКоличество + НачальныйОстатокМаркетплэйсы = 0
тогда ПродажиМаркетплэйсыКоличество *100/ (ПереданоНаКомиссиюКоличество + НачальныйОстатокМаркетплэйсы)
Иначе 0 Конец

Сделал так в вычисляемых полях. Теперь вообще везде 0 . . .
8 Ryzeman
 
13.09.22
12:28
(7) потому что это равнозначно исходному запросу из (0). Если ты не покажешь нам свои ресурсы, вычисляемые поля и группировки, то никто тебе тут не поможет) Ну или сам их ковыряй. Сделай детальные записи или посмотри в консоли, если всё ок, то дальше смотри что ты не так с группировками делаешь
9 Михаил Козлов
 
13.09.22
12:31
Выведите числитель и знаменатель для ресурса % и гляньте.
10 Юзер123
 
naïve
13.09.22
12:32
11 Ryzeman
 
13.09.22
12:37
(10) ясно. Всё-таки данные кривые. У тебя сырая таблица получается типа

Номенклатура   ДругиеПоля   ПродажиМаркетплэйсыКоличество     ПереданоНаКомиссиюКоличество     НачальныйОстатокМаркетплэйсы  
Яблоко          Набор1                   5                                0                                 0
Яблоко          Набор2                   0                                2                                 10

В запросе и варианте (7) у тебя процент получается 0. И суммируешь ты нули.
В варианте когда СКД считаешь у тебя выходит  5 / 12, и получается цифра, возможно, не так, которую ты ожидаешь... Смотри базовый запрос и пересмотри логику. Возможно, стоит сгруппировать по номенклатуре именно в запросе, а не в СКД
12 Юзер123
 
naïve
13.09.22
12:38
(11)  спс сейчас попробую
13 Юзер123
 
naïve
13.09.22
12:41
(11) https://gyazo.com/ce73b0869d78fe57252aa621306f88a7   а так взлетело вроди
14 Ryzeman
 
13.09.22
12:44
(13) последнюю сумму в скобочки возьми. Ну вообще - вариант. Но я бы так делать не стал) Разве что у тебя там расшифровка до документа продажи или типа того, которая очень будет нужна...
15 Юзер123
 
naïve
13.09.22
12:58
(14)  спасибо)
16 DrZombi
 
гуру
13.09.22
14:05
(10) Смешно, сумма процентов :)
17 DrZombi
 
гуру
13.09.22
14:10
(0)  Вот, читаем комменты, много думаем :)

https://1cskd.ru/2013/12/1691/

https://1cskd.ru/2011/09/procent-dlya-gruppirovki-i-ierarxii/

https://1cskd.ru/2016/12/vybor-iz-tablicy-znachenij/

И примерчик для вас
Добавить Вычисляемое поле в отчет
https://1cskd.ru/2016/08/dobavit-vychislyaemoe-pole-v-otchet/
18 DrZombi
 
гуру
13.09.22
14:12
+(10)  Вместо "Сумма(Выражение)"
Можно указать просто "Выражение" :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший