Есть функция с помощью которой выводится оклад, но как только появляются дополнительные условия, она не работает
Сама функция:
&НаСервере
Функция ПолучитьОкладНаСервере(Дата, Оклад);
Если Элементы.ЗаработнаяПлатаВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
//Оклад
ОкладОтбор = Новый Структура("Сотрудник" ,Оклад);
Если ЗначениеЗаполнено(Объект.Ссылка) тогда
ВременнойМомент=Новый МоментВремени(Объект.Дата, Объект.Ссылка);
Иначе
ВременнойМомент=Неопределено;
КонецЕсли;
Данные = РегистрыСведений.Оклад.ПолучитьПоследнее(ВременнойМомент,ОкладОтбор);
Возврат Данные.Оклад;
//ИначеЕсли Элементы.ЗаработнаяПлатаВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда
// Элементы.ЗаработнаяПлатаНачислено = Неопределено;
//
//ИначеЕсли Элементы.ЗаработнаяПлатаВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Невыход Тогда
// Элементы.ЗаработнаяПлатаНачислено = Неопределено;
Иначе
Возврат Элементы.ЗаработнаяПлатаНачислено = NULL;
КонецЕсли;
КонецФункции
и сам вывод функции:
&НаКлиенте
Процедура ЗаработнаяПлатаСотрудникПриИзменении(Элемент)
СТЧ = Элементы.ЗаработнаяПлата.ТекущиеДанные;
СТЧ.Начислено =ПолучитьОкладНаСервере(Объект.Дата,СТЧ.Сотрудник);
КонецПроцедуры
Подскажите, пожалуйста,что может быть не так?