Добрый день! Есть документ Посещения с реквизитами Штатное расписание и Часов и документ Штатное расписание где берется часы работника(сколько должен отработать) на основании этого заполняется графа-часов по каждому сотруднику. Выходит ошибка-РезультатЗапроса = Запрос.Выполнить().Выгрузить();
по причине:
{(8, 45)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
И ШтатноеРасписаниеУпрСотрудники.Сотрудник <<?>>= &Сотрудник

```1c
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ПериодРегистрации",НачалоМесяца(Объект.Дата));
    Запрос.УстановитьПараметр("Сотрудник",Объект.Сотрудники);
    Запрос.Текст = "ВЫБРАТЬ
    | ШтатноеРасписаниеУпрСотрудники.ВсегоЧасов,
    | ШтатноеРасписаниеУпрСотрудники.НомерСтроки
    |ИЗ
    | Документ.ШтатноеРасписаниеУпр.Сотрудники КАК ШтатноеРасписаниеУпрСотрудники
    |ГДЕ
    | ШтатноеРасписаниеУпрСотрудники.Ссылка.ПериодРегистрации = &ПериодРегистрации
    | И ШтатноеРасписаниеУпрСотрудники.Сотрудник = &Сотрудник";

    РезультатЗапроса = Запрос.Выполнить().Выгрузить();

    Для каждого стр Из РезультатЗапроса Цикл
    // Вставить обработку выборки ВыборкаДетальныеЗаписи
    Элементы.Сотрудники.ТекущиеДанные.Часов = стр.Часов;
    Если Элементы.Сотрудники.ТекущиеДанные.Часов <> Элементы.Сотрудники.ТекущиеДанные.ОтработанноеВремя Тогда;
    Сообщить("Не совпадает фактическое время и время по штатному расписанию по сотруднику " +СокрЛП(Элементы.Сотрудники.ТекущиеДанные.Сотрудник));
    КонецЕсли

    КонецЦикла;
```
---
```1c
    Для каждого стр Из Объект.Сотрудники Цикл
    Запрос.УстановитьПараметр("Сотрудник",Стр.Сотрудник);
    //чтобы тут что-то присвоить, нужно это что-то получить, так понимаю, выполнив запрос
    ТЗЗапроса = Запрос.Выполнить().Выгрузить();
    Если ЗначениеЗаполнено(ТЗЗапроса) Тогда
    стр.Часов = ТЗЗапроса[0].Часов;
    КонецЕсли;
    КонецЦикла;
```
---
Потому что:
ШтатноеРасписаниеУпрСотрудники.Сотрудник - это скорее всего СправочникСсылка.Сотрудники, а
Объект.Сотрудники - это ДокументТабличнаяЧасть.Посещения.Сотрудники

Предвосхищая ваш вопрос "что нужно сделать?":

использовать значение из колонки ТЧ документа:

```1c
    ТекущиеДанные = Элементы.Сотрудники.ТекущиеДанные;
    Запрос.УстановитьПараметр("Сотрудник",ТекущиеДанные.Сотрудник);
```
---
уже пробовала получила такую ошибку-Значение не является значением объектного типа (Сотрудник)
Вот пример того, что было-

```1c
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ПериодРегистрации",НачалоМесяца(Объект.Дата));
    Запрос.УстановитьПараметр("Сотрудник",Элементы.Сотрудники.ТекущиеДанные.Сотрудник);
    Запрос.Текст = "ВЫБРАТЬ
    | ШтатноеРасписаниеУпрСотрудники.НомерСтроки,
    | ШтатноеРасписаниеУпрСотрудники.Часов"+СокрЛП(День(Объект.Дата))+" Как Часов
    |ИЗ
    | Документ.ШтатноеРасписаниеУпр.Сотрудники КАК ШтатноеРасписаниеУпрСотрудники
    |ГДЕ
    | ШтатноеРасписаниеУпрСотрудники.Сотрудник = &Сотрудник
    | И ШтатноеРасписаниеУпрСотрудники.Ссылка.Проведен = &ИСТИНА
    | И ШтатноеРасписаниеУпрСотрудники.Ссылка.ПериодРегистрации = &ПериодРегистрации";

    РезультатЗапроса = Запрос.Выполнить();
```
---
Вы же никаких больше подробностей не предоставили, сейчас происходит сплошное гадание.
Название колонки может быть другим, например ФизическоеЛицо/ФизЛицо
---
Понимаете, этот же код(последний) спокойно отрабатывает при активизации строки, но при открытии не работает от слова совсем. Думаю дело не в колонке
---
Понимаете, в момент открытия нет позиционирования курсора на какую-либо строку ТЧ.
Что вы хотите от бедной 1С?
---
Это я тоже поняла) поэтому стала думать в сторону того, как обойти табличную часть(как в первом варианте), но сталкиваюсь с этой ошибкой-Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ШтатноеРасписаниеУпрСотрудники.Сотрудник <<?>>= &Сотрудник
---
Не нужно запихивать в параметр запроса саму ТЧ:
1. СУБД все равно не знает, что с ней делать
2. даже если бы СУБД знала, то не смогла бы сравнить значение ссылки с ней о чем, собссно, сказано в тексте ошибки

Обходите ТЧ правильно и будет вам Щастье © мультик

```1c
    Для Каждого Стр Из Объект.Сотрудники Цикл
    Запрос.УстановитьПараметр("Сотрудник",Стр.Сотрудник);
    //и дальше, что вам там нужно сделать
    КонецЦикла
```
---
```1c
    Для каждого стр Из Объект.Сотрудники Цикл
    Запрос.УстановитьПараметр("Сотрудник",Стр.Сотрудник);
    стр.Часов = Объект.Сотрудники.Часов;
    КонецЦикла;
    все равно ругается. Поле объекта не обнаружено (Часов)
    стр.Часов = Объект.Сотрудники.Часов;
```

Прошу меня простить за глупые ошибки. Опыта пару месяцев. Читаю документацию, но быстро не получается
---
Проблема в Объект.Сотрудники.Часов - вы пытаетесь в колонку "Часов" строки ТЧ присвоить не понятно что у ТЧ Сотрудники нет поля Часов, о чем вам сообщается напрямую
---
да, я понимаю что это за ошибка, я не понимаю как правильно присвоить, вот в чем дело. Наверное вопрос не корректно формулирую
---
```1c
    Для каждого стр Из Объект.Сотрудники Цикл
    Запрос.УстановитьПараметр("Сотрудник",Стр.Сотрудник);
    //чтобы тут что-то присвоить, нужно это что-то получить, так понимаю, выполнив запрос
    ТЗЗапроса = Запрос.Выполнить().Выгрузить();
    Если ЗначениеЗаполнено(ТЗЗапроса) Тогда
    стр.Часов = ТЗЗапроса[0].Часов;
    КонецЕсли;
    КонецЦикла;
```
---
Боже мой Эта кракозябра заработала! Спасибо громадное nomad_irk за прекрасные подсказки! Сама я бы не справилась)
---
Обе процедуры выполняются на клиенте
---
Запрос на клиенте? ;) Ну-ну...
---
опофеоз идиотии пока вижу......
---
Прилагаю рабочий код, мало ли кому-то пригодится.

```1c
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ПериодРегистрации",НачалоМесяца(Объект.Дата));
    Запрос.Текст =
    "ВЫБРАТЬ
    | ШтатноеРасписаниеУпрСотрудники.Часов"+СокрЛП(День(Объект.Дата))+" Как Часов,
    | ШтатноеРасписаниеУпрСотрудники.НомерСтроки
    |ИЗ
    | Документ.ШтатноеРасписаниеУпр.Сотрудники КАК ШтатноеРасписаниеУпрСотрудники
    |ГДЕ
    | ШтатноеРасписаниеУпрСотрудники.Сотрудник = &Сотрудник
    | И ШтатноеРасписаниеУпрСотрудники.Ссылка.Проведен = ИСТИНА
    | И ШтатноеРасписаниеУпрСотрудники.Ссылка.ПериодРегистрации = &ПериодРегистрации";

    Для каждого стр Из Объект.Сотрудники Цикл
    Запрос.УстановитьПараметр("Сотрудник",Стр.Сотрудник);
    ТЗЗапроса = Запрос.Выполнить().Выгрузить();
    Если ЗначениеЗаполнено(ТЗЗапроса) Тогда
    стр.Часов = ТЗЗапроса[0].Часов;
    КонецЕсли;

    КонецЦикла;
```