|
v7: В определенный период брать разное значение переменной | ☑ | ||
---|---|---|---|---|
0
whitewolf87
16.11.17
✎
09:02
|
Процедура РассчитатьСтроку()
Если ПустоеЗначение(ТабЛС.Адрес)=1 Тогда Возврат; КонецЕсли; Ит=СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ПериодД(НачМесяца(Дата1),КонМесяца(Дата2)); ТабЛС.Количество=0; ТабЛС.Сумма=0; ТабЛС.ОбъемМ=0; ТабЛС.НачислениеМ=0; Если пк_1=1 Тогда л_СчетК=ПоУслуги.СчетК; КонецЕсли; спрБлаг.ИспользоватьВладельца(ТабЛС.Адрес); Если спрБлаг.НайтиПоРеквизиту("Услуга",пл_Услуга,0)=1 Тогда Иначе Предупреждение(ТабЛС.Адрес.Наименование+" не найдена услуга: "+пл_Услуга.Наименование); Возврат; КонецЕсли; //выполняем перерасчет помесячно тд=(Дата1); Пока НачМесяца(тд)<=НачМесяца(Дата2) Цикл Ит.ПериодМ(тд); Если КонМесяца(тд)=КонМесяца(Дата2) Тогда л_Дней=Дата2-тд+1; Иначе л_Дней=КонМесяца(тд)-тд+1; КонецЕсли; Тариф=пл_Услуга.БазовыйТариф.Получить(тд); л_Тариф=спрБлаг.Тариф.Получить(Дата1); Норматив=л_Тариф.Норма.Получить(Дата1); Если пл_Услуга.СпособРасчета=Перечисление.СпособРасчета.ТеплоНаГВЕдиный Тогда л_ОбъемНачТЭ=Ит.КО(л_СчетК,"К",,ТабЛС.Адрес,пл_Услуга); л_ОбъемТННач=Окр(л_ОбъемНачТЭ/Норматив,4); ТабЛС.ОбъемМ=ТабЛС.ОбъемМ+Окр(л_ОбъемТННач*Норматив,4); ТабЛС.НачислениеМ=Окр(ТабЛС.ОбъемМ*Тариф,2); ТабЛС.Количество=ТабЛС.Количество+Окр(л_ОбъемТННач*пл_Норматив,4); КонецЕсли; ТабЛС.Сумма=Окр(ТабЛС.Количество*Тариф,2); тд=НачМесяца(ДобавитьМесяц(тд,1)); КонецЦикла; КонецПроцедуры |
|||
1
whitewolf87
16.11.17
✎
09:02
|
Нужно чтобы значение переменной "Тариф" каждый раз бралось на дату свое, а у меня берется последнее
|
|||
2
whitewolf87
16.11.17
✎
09:16
|
нужно чтобы итоговые суммы за период допустим 2 месяца январь-500 и февраль-400 рублей с разными "тарифами" сложились
|
|||
3
tgu82
16.11.17
✎
09:18
|
(0) тд=(Дата1); А скобки зачем?
|
|||
4
whitewolf87
16.11.17
✎
09:19
|
(3) чтобы дата бралась
|
|||
5
tgu82
16.11.17
✎
09:22
|
(4) Проверь отладчиком ТД
Тариф=пл_Услуга.БазовыйТариф.Получить(тд); л_Тариф=спрБлаг.Тариф.Получить(Дата1); Норматив=л_Тариф.Норма.Получить(Дата1); А почему все на Дата1 а Тариф на дату ТД? |
|||
6
whitewolf87
16.11.17
✎
09:22
|
(5) ок, гляжу
|
|||
7
VladZ
16.11.17
✎
09:23
|
(4) Это понятно. А скобки зачем?
|
|||
8
VladZ
16.11.17
✎
09:24
|
л_Тариф=спрБлаг.Тариф.Получить(Дата1);
Норматив=л_Тариф.Норма.Получить(Дата1); - что такое дата1? И зачем в цикле получать одно и то же значение? |
|||
9
whitewolf87
16.11.17
✎
09:25
|
(8) Норматив - норматив старый пл_норматив - новый
Дата1 период с старым нормативом |
|||
10
VladZ
16.11.17
✎
09:25
|
Ну и самое главное: называй имена переменных по-человечески. Если это дата начала - так и назови "ДатаНачала". А то и сам потерялся в своих "Дата1", "Дата2". Еще и нам этим мозг разрушаешь...
|
|||
11
whitewolf87
16.11.17
✎
09:28
|
Дата 1 начало периода дата 2 конец (10)
|
|||
12
whitewolf87
16.11.17
✎
09:29
|
нужно вот так посчитать:
январь объем по новому нормативу такой то, сумма такая то февраль ---- Итог=январь+февраль |
|||
13
whitewolf87
16.11.17
✎
09:31
|
(12) при том что тариф разный в январе и феврале
|
|||
14
whitewolf87
16.11.17
✎
09:32
|
допустим январь 10 кубов на 300 руб = 3000 руб
февраль 10 кубов на 400 рублей = 4000 руб Итог: 20 кубов за 4000 рублей, а уменя 20 кубов за 8000 рублей |
|||
15
VladZ
16.11.17
✎
09:53
|
(14) Я так понимаю сумму ты вот здесь посчитал:
ТабЛС.Сумма=Окр(ТабЛС.Количество*Тариф,2); ? Согласно твоему алгоритму, берем итоговое количество и умножаем на последний тариф. |
|||
16
whitewolf87
16.11.17
✎
09:53
|
(15) сижу в отладчике понял что не так уже это именно, меняю
|
|||
17
whitewolf87
16.11.17
✎
09:53
|
(15) спасибо!
|
|||
18
whitewolf87
16.11.17
✎
09:54
|
(15) отладчик это вещь!
|
|||
19
whitewolf87
16.11.17
✎
10:01
|
всё получилось! алилуя!
|
|||
20
whitewolf87
16.11.17
✎
10:03
|
просьба закрыть тему
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |