Подсчитать доля от прибыли.

1. nadyusha22 22.02.23 14:28 Сейчас в теме
Здравствуйте, в excel-файле есть формула:
1-фото.

Хочу реализовать эту же формулу во внеш.обработке, вот код:
2-фото.

Но результат не правильный.

Подскажите пожалуйста, где я допустила ошибку.

Спасибо.
Прикрепленные файлы:
Найденные решения
6. user856012 14 23.02.23 14:39 Сейчас в теме
(4)
Как раз наоборот доля считается от общей суммы.
Может быть - я так понял, что пример расчета в (2) - это как должно быть, т.е. правильно.

А если наоборот - это как есть и это неправильно, то все еще проще: ключевое слово тут "при заполнении" в (5) - например, заполнили только первую строку - итог 571, вторую - 571+89514 и так далее. Соответственно, и расчет при заполнении производится из этих сумм, а не из 100848 - нижележащих строк еще нет, от слова "совсем".

В таком случае решение проблемы очевидно: сначала заполнить всю ТЧ, а потом, в еще одном цикле - рассчитать долю прибыли. Фсё.
nadyusha22; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nadyusha22 23.02.23 11:06 Сейчас в теме
Мой код:

Товар.ДоляВП = Окр(Товар.ВП / Реквизит1.Итог("ВП") * 100, 2);



Сейчас считает например так:

1.(571/571)*100=100

2.(89514/(571+89514))*100=99,89

3.(2214/(571+89514+2211))*100=91,7

4.(8549/(571+89514+2211+8549))*100=96,7 и так далее.

Подскажите пожалуйста, где допустила ошибку.

Спасибо.
Прикрепленные файлы:
3. user856012 14 23.02.23 12:17 Сейчас в теме
(2)
Подскажите пожалуйста, где допустила ошибку.
Ошибка в том, что значение Реквизит1.Итог("ВП") равно сумме всех строк ТЧ, а вам, судя по вашим примерам расчетов, надо получить итог строк от первой до текущей, не включая нижележащие.

Иными словами, ваш код будет правильным только для последней строки.
nadyusha22; +1 Ответить
4. vadim1011985 101 23.02.23 13:38 Сейчас в теме
(3) Как раз наоборот доля считается от общей суммы.
(2) В отладке посмотрите что у Вас возвращается в Реквизит1.("Итог") там должна сумма 100 848
nadyusha22; +1 Ответить
5. nadyusha22 23.02.23 14:05 Сейчас в теме
(4) отладка показывает правильно, но при заполнении считается не правильно.
6. user856012 14 23.02.23 14:39 Сейчас в теме
(4)
Как раз наоборот доля считается от общей суммы.
Может быть - я так понял, что пример расчета в (2) - это как должно быть, т.е. правильно.

А если наоборот - это как есть и это неправильно, то все еще проще: ключевое слово тут "при заполнении" в (5) - например, заполнили только первую строку - итог 571, вторую - 571+89514 и так далее. Соответственно, и расчет при заполнении производится из этих сумм, а не из 100848 - нижележащих строк еще нет, от слова "совсем".

В таком случае решение проблемы очевидно: сначала заполнить всю ТЧ, а потом, в еще одном цикле - рассчитать долю прибыли. Фсё.
nadyusha22; +1 Ответить
7. nadyusha22 23.02.23 14:46 Сейчас в теме
8. nadyusha22 23.02.23 14:52 Сейчас в теме
(6) Пока Реквизит1.Количество Цикл

Товар.ДоляВП=Товар.ВП/Реквизит1.Итог("ВП");

КонецЦикла
9. nadyusha22 23.02.23 18:29 Сейчас в теме
(8)
Для каждого Товар Из Реквизит1 Цикл
    
        Товар.ДоляВП=Окр(Товар.ВП/Реквизит1.Итог("ВП")*100,2);        
    
    КонецЦикла; 


Так все работает норм.
Всем спасибо.
10. user856012 14 23.02.23 20:32 Сейчас в теме
(9)
Так все работает норм.
Мы все оч. рады! Да что там рады - просто счастливы!

P.S. И почему зачастую а женских ветках бОльшая часть времени тратится на то, чтобы понять - в чем проблема автора, а не на то - как ее решить?
nadyusha22; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот