Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.

1. Sanchez2114 02.12.24 11:07 Сейчас в теме
Добрый день! Имеется функция для получния СтавкаЧас из регистра сведений ОкладыСотрудников

Функция ПолучитьОклад(СотрудникОтбора, ПериодОтбора)Экспорт
    
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ОкладыСотрудниковСрезПоследних.СтавкаЧас КАК СтавкаЧас
        |ИЗ
        |    РегистрСведений.ОкладыСотрудников.СрезПоследних(&ПериодСреза, Сотрудник = &СотрудникОтбора) КАК ОкладыСотрудниковСрезПоследних";
    
    Запрос.УстановитьПараметр("ПериодСреза", ПериодОтбора);
    Запрос.УстановитьПараметр("СотрудникОтбора", СотрудникОтбора);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Если РезультатЗапроса.Пустой() Тогда
    
          СтавкаЧасСотрудника = 0;
          
      Иначе
          
          ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
          
          ВыборкаДетальныеЗаписи.Следующий();
          
          СтавкаЧасСотрудника = ВыборкаДетальныеЗаписи.СтавкаЧас;
    
      КонецЕсли;
      
      Возврат СтавкаЧасСотрудника;
    
        
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    

КонецФункции // ПолучитьОклад()
Показать


Так же, процедура, которая подставляет СтавкуЧас сотрудника в таблиную часть Документа Начисление зарплаты, СтавкаЧас

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Для каждого СтрокаСотрудника Из ЭтотОбъект.СписокСотрудников Цикл
    
        СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
        
    КонецЦикла;
    
КонецПроцедуры
Показать

Ошибка следущая
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при вызове метода контекста (Выполнить)
{РегистрСведений.ОкладыСотрудников.МодульМенеджера(17)}:РезультатЗапроса = Запрос.Выполнить();
{Документ.НачислениеЗарплаты.МодульОбъекта(6)}:СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(4, 74)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
РегистрСведений.ОкладыСотрудников.СрезПоследних(&ПериодСреза, Сотрудник <<?>>= &СотрудникОтбора) КАК ОкладыСотрудниковСрезПоследних

Куда мне смотреть и что не так?
Найденные решения
3. spacecraft 02.12.24 11:27 Сейчас в теме
(1)
Для каждого СтрокаСотрудника Из ЭтотОбъект.СписокСотрудников Цикл

СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);

Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.Сотрудник
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. yispepotri 02.12.24 11:20 Сейчас в теме
(1) Сотрудник в регистре предполагаю тип справочник Сотрудники? Параметр СотрудникОтбора какого типа передается?
3. spacecraft 02.12.24 11:27 Сейчас в теме
(1)
Для каждого СтрокаСотрудника Из ЭтотОбъект.СписокСотрудников Цикл

СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);

Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.Сотрудник
4. Sanchez2114 02.12.24 11:49 Сейчас в теме
(3)
Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.С

да, нашел, спасибо, на мисте на такой вопрос 25 ответов уже)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот