Имя: Пароль:
1C
 
ЗУП. Новый показатель НормаЧасовЗаПериод. Как всегда плутаю в трёх соснах ТЗ
0 Гена
 
гуру
02.05.26
16:18
Задумал разобраться с премиями за период, например, квартальными. Чтобы использовать новые собственные показатели в любых формулах. Например, НормаЧасовЗаПериод

Есть ТЗ СтрокаНачисления (рис.1)
В ней есть колонка «Показатели»

В цикле перебираю начисления сотрудника и после оклада и РК заходит новое начисление с нужным мне показателем «Норма часов за квартал» (рис. 2)

Как мне присвоить, пусть к примеру, число 100 этому значению (понятно, что пока оно нулевое)?

Когда я пытаюсь тупо:
Если СтрокаНачисления.Показатели[0].Показатель <> Неопределено И СтрокаНачисления.Показатели[0].Показатель = "Норма часов за квартал" Тогда
    СтрокаНачисления.Показатели[0].Значение = 100;    
КонецЕсли;

то программа слетает на первом же начислении у которого нет показателей )
Да и [0] плохо. Надо как-то найти мне строку эту.

Предвосхищая вопросы: да, нет напарника кодера рядом, и давно )
1 Anarki
 
02.05.26
22:41
Ща Гена ответит
2 vicof
 
02.05.26
22:45
Если СтрокаНачисления.Показатели.Количество() > 0 не?
или
Для Каждого Показатель из СтрокаНачисления.Показатели Цикл
3 Anarki
 
02.05.26
22:46
(0) что значит "программа слетает"?
4 Гена
 
гуру
03.05.26
07:31
Благодарю, коллеги, утро вечера мудренее )
Сработал код:
// 1. Обходим таблицу начислений
Для Каждого СтрокаНачисления Из Начисления Цикл
        
// 2. Нам нужна колонка Показатели, но её может и не быть
    Если СтрокаНачисления.Показатели.Количество() > 0 Тогда
        Для Каждого Показатель из СтрокаНачисления.Показатели Цикл
            Если Строка(Показатель.Показатель) = "Норма часов за квартал" Тогда
                Показатель.Значение = 100;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;                              

КонецЦикла;
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший