Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:55

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

Автор maxxi, 22 фев 2023, 14:16

0 Пользователей и 1 гость просматривают эту тему.

maxxi

Здравствуйте, в excel-файле есть формула:
1-фото.

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

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

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

Спасибо.


Максим75

maxxi, так выведите сообщения со всеми переменными и посмотрите, где чего не так.

antoneus

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

maxxi

antoneus, не помогло(((

Мой код:
Товар.ДоляВП = Окр(Товар.ВП / Реквизит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  и так далее.

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

Спасибо.



alexandr_ll

maxxi, У меня по вашим формулам получается так

1.(571/571)*100=100

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

3.(2214/(571+89514+2211))*100=2,4

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

Непонятно, откуда вы взяли свои результаты.


maxxi

alexandr_ll, может я ошибся, все равно не выдает нужный результат.

maxxi

 РезультатЗапроса = Запрос.Выполнить();
   
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
    Реквизит1.Очистить();
   
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       
       
         Товар=Реквизит1.Добавить();
       
         ............какойто код

         Товар.ВП=(Товар.ЦенаПродаж-Товар.ЦенаПриход)*Товар.СредПродажиВДень;
       
         .............какойто код
       
     
    КонецЦикла;
   
    Пока Реквизит1.Количество() Цикл
       
            Товар.ДоляВП=Окр(Товар.ЯП/Реквизит1.Итог("ВП")*100,2);
       
    КонецЦикла;

Переделал код, все равно не работает.

antoneus

Это что такое?

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

Срочно заменить на

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

maxxi

antoneus, Получилось, спасибо большое.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск