Имя: Пароль:
1C
1С v8
8.2 Расчет значений в табличной части
0 hawk1
 
22.04.13
14:44
Написал процедуру для расчета зп сотрудников
Процедура РассчитатьЗП()
   Если Объект.КоличествоКалендарныхДней = 0 Тогда
       Сообщить("Не указано количество календарных дней");
       Возврат;
   КонецЕсли;
   Для Каждого Сотр Из Объект.РасчетЗаработнойПлаты Цикл
       ЗП = Сотр.Оклад / Объект.КоличествоКалендарныхДней * Сотр.КоличествоОтработанныхДней;
       Если Число(ЗП) < Константы.МРОТ.Получить() Тогда
           ЗП = Константы.МРОТ;
       КонецЕсли;
       Сотр.НачисленоПоОкладу = ЗП;
   КонецЦикла
КонецПроцедуры
Но она работает когда в табличной части только 1 строка. Если больше - ничего не происходит.
1 Wobland
 
22.04.13
14:46
спасибо, не будем использовать
2 salvator
 
22.04.13
14:48
(0) А что должно произойти?
3 drcrasher
 
22.04.13
14:49
(2) а чего ТС хотел вообще?
4 Рэйв
 
22.04.13
14:50
(3)Кажется чтобы что-то происходило.
5 Галахад
 
гуру
22.04.13
14:51
Наверное, у остальных зарплаты слишком маленькие.
И процедура пытается присвоить числу константу.
6 Wobland
 
22.04.13
14:52
(5) неправда. ЗП магическим образом меняет тип и только
7 drcrasher
 
22.04.13
14:52
(5) это только для тех, у кого зп строкой получается
8 Рэйв
 
22.04.13
14:53
(6)аха..И зарплату все будут получать в константах.
9 Wobland
 
22.04.13
14:53
(6) соврамши, с константами этот фокус не проходит, судя по СП
10 Рэйв
 
22.04.13
14:54
(9)Не, почему, присвоит зп, только это уже никак не число будет:-)
11 Wobland
 
22.04.13
14:54
а тем, кто придумал отрицательные числа, нужно платить зарплату именно в этих величинах. тогда они, я вас уверяю, очень быстро поумнеют ©
12 hawk1
 
22.04.13
16:01
Вообще-то должен выполняться расчет начислений по окладу для всех сотрудников, перечисленных в документе. Остальные документы реализованы аналогичным образом, но там все работает.
13 salvator
 
22.04.13
16:02
(12) Отладчик запускал? Уверен, что вычисления в каждой строке не происходят?
14 hawk1
 
22.04.13
16:11
Разобрался. К константе обращался неправильно.
15 Wobland
 
22.04.13
16:22
(14) на здоровье
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.