Имя: Пароль:
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;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;                              

КонецЦикла;
5 2S
 
03.05.26
17:54
>Если СтрокаНачисления.Показатели.Количество()

Вы уверены, что СтрокаНачисления.Показатели это всегда таблица или массив? А если вдруг Неопределено? Имхо, лучше на тип проверить, а не на количество строк.
6 Гена
 
гуру
03.05.26
19:48
(5) Вроде работает. Пусть, я уже близок к финишу для создания премий за любой премиальный период по доле отработанного времени в нём. Например, кварталки.

Вот тут не пойму.
Табло:
СтрокаНачисления[1].ВидыВремени[0].ВидВремени .... Командировка

СтрокаНачисления[1].ВидыВремени[1].ВидВремени .... Рабочее время

А как пытаюсь выцепить колонку через
СтрокаНачисления.ВидыВремени .... Поле объекта не обнаружено
Основная теорема систематики: Новые системы плодят новые проблемы.