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

Неправильный подсчет по формуле

Автор ruiner2012, 23 июл 2018, 08:31

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

ruiner2012

1с ТСЖ ЖСК ЖКХ 3.0.63.1
8.3.11

Делаю отчет с использованием СКД, в запросе создаю еще один столбик для подсчета %(процента) собираемости в доме. Почему считает не верное совсем, пробовал и так и эдак. Сам код ниже, может носом тыкнуть, что не так?

ВЫБРАТЬ
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Организация КАК Организация,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.ЛицевойСчет.Адрес.Владелец КАК Здание,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Услуга.ВидУслуги КАК ВидУслуги,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияНачальныйОстаток КАК НачальныйОстаток,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияКонечныйОстаток КАК КонечныйОстаток,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияПриход КАК Начисления,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияРасход КАК Оплата,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияРасход * -1 / (КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияНачальныйОстаток + КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияПриход) * 100 КАК Собираемость
ИЗ
РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.ОстаткиИОбороты КАК КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты

СГРУППИРОВАТЬ ПО
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Организация,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Услуга.ВидУслуги,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.ЛицевойСчет.Адрес.Владелец,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияНачальныйОстаток,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияКонечныйОстаток,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияПриход,
КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.СуммаНачисленияРасход

Вот что получается, вместо 18,47%, какие то 67 734
40 473,44/(188 864,66+30 268,51)*100 = 18,47


Каримдат

А в виде запроса проверяли, какие данные подхватываются? Отладка что показывает?

pavl_vs

ruiner2012, уберите последнюю строку блока ВЫБРАТЬ (с формулой), а вычисления сделайте в Вычисляемых полях СКД, а то совсем непонятно, что ищется в регистре накопления.

ruiner2012

Сделал вычисляемые поля, и получил почти тоже самое только с длинной запятой X)
67 734,7026115238536693600501159259927058
Добавлено: 24 июл 2018, 08:21


Через консоль запроса, выводит правильный подсчет.

НачальныйОстаток   КонечныйОстаток Начисления   Оплата           Собираемость (%)
    0              -137,26              75,49   212,75            281,825407
    0               118,92              87,44   -31,48            -36,00183
    0               2 031,42      12 340,34   10 308,92    83,538379
Добавлено: 24 июл 2018, 08:24


Может в ресурсах выбрать выражение не сумма? .-. или что то так :dfbsdfbsdf:

Sy4a

Покажите что в вычисляемых поля написали и что в ресурсах? в ресурсах должно быть что то типо такого:
сумма(Оплата)/(Сумма(НачальныйОстаток)+Сумма(Начисления))*100
а лучше просуммировать всё в запросе, так как если группировака без сумм то запрос например 2 совершенно одинаковые строчки превратит в одну и тем самым вы потеряете часть данных.
Ваше число 67 734,7026115238536693600501159259927058 получилось в процессе сложения всех процентов в вашей группировке. если в СКД уберете группировку и выведите все поля в строку то увидите что построчно всё скорее всего считается верно.

ruiner2012

Написал:
Оплата * (-1) / ( НачальныйОстаток + Начисления) * 100
А из запроса группировку всю снимать? Попробую вашу.
Добавлено: 25 июл 2018, 07:17


Попробовал убрать группировку, ничего не изменилось. Все так же :trhregerhg: и не знаю что дальше

Sy4a


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

СГРУППИРОВАТЬ ПО
    КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Организация,
    КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Услуга.ВидУслуги,
    КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.ЛицевойСчет.Адрес.Владелец

сделай так в запросе а в рессурсах пропиши:
сумма(Оплата*(-1))/(Сумма(НачальныйОстаток)+Сумма(Начисления))*100
При этому убери все остальные свои ресурсы и вычисляемые поля и посмотри результат

ruiner2012

Цитата: Sy4a от 25 июл 2018, 13:09

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

СГРУППИРОВАТЬ ПО
    КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Организация,
    КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.Услуга.ВидУслуги,
    КВП_ВзаиморасчетыПоЛицевымСчетамОстаткиИОбороты.ЛицевойСчет.Адрес.Владелец

сделай так в запросе а в рессурсах пропиши:
сумма(Оплата*(-1))/(Сумма(НачальныйОстаток)+Сумма(Начисления))*100
При этому убери все остальные свои ресурсы и вычисляемые поля и посмотри результат

Теперь получилось. :ooifh: Теперь понять не могу, почему тут считает, а в запросе нет? Хм.., Спасибо за ответ.


ГВС нагрев при содержании в МКД   9,8904369413045763274349347546493734   8 467,27      837,45   7 629,82
ГВС при содержании в МКД   -5,9564574918727218993202640133976948   2 291,94   245,81   -151,16   2 688,91
Отведение сточных вод в МКД   16,1055162572414286346778011259335951   4 587,68   1 284,78   945,79   4 926,67
Содержание жилья   19,4788415278862200700413330430311358   156 228,99   26 523,10   35 597,99   147 154,10
ХВС при содержании в МКД   16,7329350331655454673754527920214518   3 966,91   1 347,34   889,23   4 425,02
ЭЭ при содержании в МКД для СОИ   13,0716130766104224645132918294505807   16 883,66   1 125,90   2 354,14   15 655,42
Итого   18,1533197657734545221965237755085839   192 426,45   30 526,93   40 473,44   182 479,94
Добавлено: 26 июл 2018, 10:07



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

Рейтинг@Mail.ru

Поиск