Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.
Добрый день! Имеется функция для получния СтавкаЧас из регистра сведений ОкладыСотрудников
Так же, процедура, которая подставляет СтавкуЧас сотрудника в таблиную часть Документа Начисление зарплаты, СтавкаЧас
Ошибка следущая
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при вызове метода контекста (Выполнить)
{РегистрСведений.ОкладыСотрудников.МодульМенеджера(17)}:РезультатЗапроса = Запрос.Выполнить();
{Документ.НачислениеЗарплаты.МодульОбъекта(6)}:СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(4, 74)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
РегистрСведений.ОкладыСотрудников.СрезПоследних(&ПериодСреза, Сотрудник <<?>>= &СотрудникОтбора) КАК ОкладыСотрудниковСрезПоследних
Куда мне смотреть и что не так?
Функция ПолучитьОклад(СотрудникОтбора, ПериодОтбора)Экспорт
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОкладыСотрудниковСрезПоследних.СтавкаЧас КАК СтавкаЧас
|ИЗ
| РегистрСведений.ОкладыСотрудников.СрезПоследних(&ПериодСреза, Сотрудник = &СотрудникОтбора) КАК ОкладыСотрудниковСрезПоследних";
Запрос.УстановитьПараметр("ПериодСреза", ПериодОтбора);
Запрос.УстановитьПараметр("СотрудникОтбора", СотрудникОтбора);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
СтавкаЧасСотрудника = 0;
Иначе
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВыборкаДетальныеЗаписи.Следующий();
СтавкаЧасСотрудника = ВыборкаДетальныеЗаписи.СтавкаЧас;
КонецЕсли;
Возврат СтавкаЧасСотрудника;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецФункции // ПолучитьОклад()
ПоказатьТак же, процедура, которая подставляет СтавкуЧас сотрудника в таблиную часть Документа Начисление зарплаты, СтавкаЧас
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Для каждого СтрокаСотрудника Из ЭтотОбъект.СписокСотрудников Цикл
СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
КонецЦикла;
КонецПроцедуры
ПоказатьОшибка следущая
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при вызове метода контекста (Выполнить)
{РегистрСведений.ОкладыСотрудников.МодульМенеджера(17)}:РезультатЗапроса = Запрос.Выполнить();
{Документ.НачислениеЗарплаты.МодульОбъекта(6)}:СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(4, 74)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
РегистрСведений.ОкладыСотрудников.СрезПоследних(&ПериодСреза, Сотрудник <<?>>= &СотрудникОтбора) КАК ОкладыСотрудниковСрезПоследних
Куда мне смотреть и что не так?
Найденные решения
(1)
Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.Сотрудник
Для каждого СтрокаСотрудника Из ЭтотОбъект.СписокСотрудников Цикл
СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.Сотрудник
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.Сотрудник
Для каждого СтрокаСотрудника Из ЭтотОбъект.СписокСотрудников Цикл
СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
СтрокаСотрудника.СтавкаЧас = РегистрыСведений.ОкладыСотрудников.ПолучитьОклад(СтрокаСотрудника, ЭтотОбъект.Дата);
Строка табличной части это не сотрудник.
Должно быть что-то в таком роде: СтрокаСотрудника.Сотрудник
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот