Имя: Пароль:
1C
1С v8
Расчет данных в табличной части
0 Lavr
 
08.01.12
19:40
Здравствуйте.
Есть арендаторы которые платят не только за аренду, но и соответственно за электроэнергию. Расчет происходит так: записываю текущие показания счетчика на 1 число каждого мес. (как в примере КВатт/час - 1500), вычитаю от текущих показаний предыдущие - за 1 число предыдущего мес. и получаю отработанные КВатт/час (как в примере: КВатт/час-отработанные - 500), затем умножаю на стоимость 1-го КВатт/час - 18.52, получаю сумму к оплате (как в примере: 9260).
Пример скрина: http://imagepost.ru/images/e/le/elektroenergija.jpg
Это как хочется, получилось только это:
Процедура ЭлектроэнергияКВатт_часОтрабПриИзменении(Элемент)
   ЯчейкаСумма=ЭлементыФормы.Электроэнергия.ТекущиеДанные;
   ЯчейкаСумма.Сумма=ЯчейкаСумма.КВатт_часОтраб*"18,52";
   КонецПроцедуры
т. е. расчеты ведутся только в разрезе текущих данных. Как сделать такой расчет чтобы при вводе данных в ячейку КВатт/час расчитывалось все?
Пробовал с индексом работать: получить индекс строки, -1 для перехода к предыдущей, но не получается - пока знаний мало.
Благодарю!
1 sanja26
 
08.01.12
19:43
1 Киловатт - 18.52?
2 sanja26
 
08.01.12
19:44
сделай регистр сведений и храни в нем данные за прошлые месяцы
3 Lavr
 
08.01.12
19:48
К сожалению про регистры пока ничего не знаю - еще не дошел по изучению, конфигурацию начал делать параллельно изучению 1с для закрепления пройденного материала. Про регистры мне тоже подсказывали.
4 Lavr
 
08.01.12
20:16
Стоимость 1 Киловатт в час - 18 тенге 52 тиын
5 GROOVY
 
08.01.12
20:23
Вопроса не понял. Что пробовал? Почему не получилось?
6 Lavr
 
08.01.12
20:30
Как сделать такой расчет чтобы при вводе данных в ячейку КВатт/час расчитывалось все?
Не получилось сделать расчет в табличной части.
7 GROOVY
 
08.01.12
20:32
Что ВСЕ?
Смотри события ПриИзменении в поле ввода и перебирая данные рассчитывай значения.
Понятно?
8 Lavr
 
11.01.12
11:24
С расчетом цены и количества в сумму все в порядке - это получилось.
> Дело в том что необходимо от вписываемого числа (показания счетчика) отнимать число из той же ячейки предыдущей строки, полученная разность умножается на цифру 18,52 и получается сумма.
> Строка1= КВатт/час | КВатт/часОтраб | Сумма
> Строка2= КВатт/час | КВатт/часОтраб | Сумма
> Строка3= ...
>
> Строка2.КВатт/час-Строка1.КВатт/час=Строка2.КВатт/час отраб
> Строка2.КВатт/часОтраб*18,52=Строка2.Сумма
> и тд.
>
> Примерно так, извини за такую форму записи.
> В общем, я не знаю как доставать предыдущее значение Строка1= КВатт/час при заполнении Строка2= КВатт/час и так далее.
9 Lavr
 
11.01.12
20:58
Я все сделал!! Тема закрыта!
Код:

Процедура ЭлектроэнергияКВатт_часПриИзменении(Элемент)
ДанныеТекущие=ЭлементыФормы.Электроэнергия.ТекущиеДанные;
Индекс=Электроэнергия.Индекс(ДанныеТекущие);
Если Индекс = 0 Тогда
ДанныеТекущие.КВатт_часОтраб=ДанныеТекущие.КВатт_час;
ДанныеТекущие.Сумма=ДанныеТекущие.КВатт_час*"18,52";    
Иначе
ДанныеПредыдущие=Электроэнергия.Получить(Индекс-1);
ДанныеТекущие.КВатт_часОтраб=ДанныеТекущие.КВатт_час-ДанныеПредыдущие.КВатт_час;
ДанныеТекущие.Сумма=ДанныеТекущие.КВатт_часОтраб*"18,52";
КонецЕсли;
КонецПроцедуры
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.