|
v7: Помогите разобраться с циклами. | ☑ | ||
---|---|---|---|---|
0
roalang
17.01.13
✎
21:23
|
В документе надо посчитать тариф и разбросать это тариф на каждую квартиру дома. Так как округлять тариф нельзя, нахожу разницу между суммой которую ввожу вручную и суммой которая получается после нахождения тарифа после. Отклонение надо в любой адрес засунуть.
[code] ВыбратьСтроки(); Пока ПолучитьСтроку()=1 цикл если (ПустоеЗначение(Дом)=1) или (ПустоеЗначение(Сумма)=1) тогда Продолжить; конецесли; Кл.ПорядокКодов(); Кл.ВыбратьЭлементыПоРеквизиту("Дом", Дом, 1,0) ; сообщить("++++++++++++++++++++++++++++"); сообщить("Дом :" + Кл.Дом); сообщить("++++++++++++++++++++++++++++"); // цикл где поквартирно собирается площадь дома суммитог=0; ПлДома=0; Пока Кл.ПолучитьЭлемент()=1 цикл ПлДома=ПлДома+ Кл.ОбщПл.Получить(глДатаНачалаПериода); КонецЦикла; тариф=сумма/ПлДома; сообщить("Площадь дома : " + ПлДома); сообщить("Тариф : " + Тариф); сообщить("Сумма : " + Сумма); Кл.ВыбратьЭлементыПоРеквизиту("Дом", Дом, 1,0); Пока Кл.ПолучитьЭлемент()=1 цикл ЖурКв.ВыбратьЗаписиПоОбъекту(Кл.ТекущийЭлемент(), глДатаНачалаПериода, глДатаКонцаПериода) ; Пока ЖурКв.ПолучитьЗапись()=1 цикл если (Нрег(ЖурКв.Расчет.Наименование)="одн электроэнергия") и (ЖурКв.Документ.Вид() = "ПодготовкаОДНЭл") тогда суммитог= суммитог+ журкв.тариф*Кл.ОбщПл.Получить(глДатаНачалаПериода) ; откл= сумма-суммитог; // ФлагОткл=0; конецесли; конеццикла; конеццикла; сообщить(суммитог); сообщить(откл); Кл.ВыбратьЭлементыПоРеквизиту("Дом", Дом, 1,0); Пока Кл.ПолучитьЭлемент()=1 цикл ЖурКв.ВыбратьЗаписиПоОбъекту(Кл.ТекущийЭлемент(), глДатаНачалаПериода, глДатаКонцаПериода) ; Пока ЖурКв.ПолучитьЗапись()=1 цикл если (Нрег(ЖурКв.Расчет.Наименование)="одн электроэнергия") и (ЖурКв.Документ.Вид() = "ПодготовкаОДНЭл") тогда Если Кл.ОбщПл.Получить(глДатаНачалаПериода)=0 тогда прервать иначе ЖурКв.УстановитьРеквизит("Тариф",Тариф); ЖурКв.УстановитьРеквизит("Результат",Кл.ОбщПл.Получить(глДатаНачалаПериода)*тариф - Откл); //ЖурКв.УстановитьРеквизит("Результат",Кл.ОбщПл.Получить(глДатаНачалаПериода)*тариф + ?(ФлагОткл = 0,Откл,0)) ; ЖурКв.УстановитьРеквизит("Количество",0); ЖурКв.УстановитьРеквизит("Рассчитана",1); ЖурКв.Записать(); //ФлагОткл = 1; Конецесли; конецесли; конеццикла; конеццикла; [/code] |
|||
1
monsterZE
17.01.13
✎
22:07
|
мне первое условие понравилось =) такое может быть да?
|
|||
2
monsterZE
17.01.13
✎
22:13
|
(0) как такой код вобще получается?
|
|||
3
Попытка1С
17.01.13
✎
22:17
|
Проверить последнюю строку и разницу накопленного и общего кинуть туда.
|
|||
4
NS
17.01.13
✎
23:00
|
Как внутри цикла по кл может быть цикл по кл?
|
|||
5
NS
17.01.13
✎
23:01
|
А, там код не выровненный. Убивать за такое надо.
|
|||
6
monsterZE
17.01.13
✎
23:05
|
(5) =) пока в конф. не закопипастил.... ппц
|
|||
7
monsterZE
17.01.13
✎
23:06
|
собсно не понятно в чем вопрос у (0)?
|
|||
8
Тьма
17.01.13
✎
23:53
|
(7)У него под дверью пенсионерка, на которую он повесил разницу в округлении. Требует объяснить, как у нее посчитана квартплата. Угрожает дойти до Путина.
|
|||
9
monsterZE
18.01.13
✎
00:05
|
(8) это она =)
|
|||
10
Злопчинский
18.01.13
✎
00:16
|
> Так как округлять тариф нельзя... Отклонение надо в любой адрес засунуть.
. противоречие. |
|||
11
zak555
18.01.13
✎
00:16
|
что такое Кл ?
|
|||
12
zak555
18.01.13
✎
00:18
|
а что площадь переменная часть ?
|
|||
13
КонецЦикла
18.01.13
✎
01:08
|
(7) +1
Работает или нет? |
|||
14
monsterZE
18.01.13
✎
09:21
|
(0) про площадь дома тоже заинтересовало =) ну и это отклонение.. тогда уж пропорционально между всеми квартирами его раскидай..
|
|||
15
lefthander
18.01.13
✎
09:22
|
(11) Справочник.
|
|||
16
ЧеловекДуши
18.01.13
✎
09:29
|
(0)Жесть... и теперь понятно, откуда такие цифры... :)
Автор, беги, беги от туда, если ЖКХ поймет, что ты Лузер, на тебя же все повешают :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |