Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. Есть табличный часть обработку (внешняя). Пользователь заполняет этот часть с помощью эксель файла. После заполнение программ должен сделать это - Программ выбирает все данные из ТЧ и справочник пользователи потом делает сравнение и показывает те пользователи который нет в справочнике. Для первого шага написал такии запросы чтобы выбрать данные только из ТЧ. В ТЧ для всех колонок есть тип (Строка, 60).
Запрос 1 --

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

Запрос 2 --

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДанныеРаботника.FIN,
    | ДанныеРаботника.Badge,
    | ДанныеРаботника.Employee,
    | ДанныеРаботника.Account
    |ПОМЕСТИТЬ ВТРаботники
    |ИЗ
    | &ДанныеРаботника КАК ДанныеРаботника";

    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("ДанныеРаботника", Объект.ДанныеРаботника);
    Запрос.Выполнить();

    ЗапросВТ = Новый Запрос;
    ЗапросВТ.Текст =
    "ВЫБРАТЬ
    | ВТРаботники.FIN,
    | ВТРаботники.Badge,
    | ВТРаботники.Employee,
    | ВТРаботники.Account
    |ИЗ
    | ВТРаботники КАК ВТРаботники";

    ЗапросВТ.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
    Выборка = ЗапросВТ.Выполнить().Выгрузить();
```

Но программ выдают ошибку -
{Форма.Форма.Форма(32)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выгрузить();
по причине:
{(8, 2)}: Неверные параметры "ДанныеРаботника"
<<?>>&ДанныеРаботника КАК ДанныеРаботника для каждого из этих запросов. Как исправить с этим и записать полный запрос чтобы сравнил с справочникам?
Спасибо всем за ранее.
---
```1c
    | ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
    | И ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
```

Если одновременно Account = РасчетныйСчет.НомерСчета и Account = РасчетныйСчет1.НомерСчета то да.
Возможно нужно использовать ИЛИ
---
Финалный будет так ?

```1c
    "ВЫБРАТЬ
    | ВТРаботники.FIN,
    | ВТРаботники.Badge,
    | ВТРаботники.Employee,
    | ВТРаботники.Account
    |ИЗ
    | ВТРаботники КАК ВТРаботники
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботникиАз КАК РаботникиАз
    | ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
    | ИЛИ ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
    |ГДЕ
    | (РаботникиАз.РасчетныйСчет ЕСТЬ NULL
    | И РаботникиАз.РасчетныйСчет1 ЕСТЬ NULL )"
```
---
А что из себя представляет поле "Объект.ДанныеРаботника"? Судя по коду, это должна быть табличная часть.
---
Возможно в переменной Объект.ДанныеРаботника содержится не таблица значений, а таблица формы. Если это так, то Объект.ДанныеРаботника нельзя использовать как параметр запроса. Попробуйте Объект.ДанныеРаботника.Выгрузить().
---
Спасибо за вниманию. Как это проверят ?
---
Посмотреть в отладчике - самое простое. Ну и попробуйте заменить Объект.ДанныеРаботника на Объект.ДанныеРаботника.Выгрузить().
---
Для какого запроса?
---
```1c
    Запрос.УстановитьПараметр("ДанныеРаботника", Объект.ДанныеРаботника);
```

заменить на

```1c
    Запрос.УстановитьПараметр("ДанныеРаботника", Объект.ДанныеРаботника.Выгрузить());
```

и для 1 и для 2 запроса
---
Работала
Спасибо вам большой.
А как сравнить с справочникам чтобы показал только те пользователи который нет в справочнике
---
Сначала соединяете ЛЕВЫМ соединением таблицу ВТРаботники с таблицей справочника по ключевому полю. В таблице ВТРаботники это ключевое поле должно иметь такой же тип и размерность как и поле справочника. И по условию фильтруете записи, где в результате соединения появился NULL. Примерно вот так

```1c
    | ГДЕ
    | Справочник.Ссылка ЕСТЬ NULL
```

Это и будут все элементы которых нет в справочнике.
---
Так ?

```1c
    "ВЫБРАТЬ
    | ВТРаботники.FIN,
    | ВТРаботники.Badge,
    | ВТРаботники.Employee,
    | ВТРаботники.Account
    |ИЗ
    | ВТРаботники КАК ВТРаботники
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботникиАз КАК РаботникиАз
    | ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
    | И ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
    |ГДЕ
    | (РаботникиАз.РасчетныйСчет ЕСТЬ NULL
    | И РаботникиАз.РасчетныйСчет1 ЕСТЬ NULL )
```
---
```1c
    | ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
    | И ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
```

Если одновременно Account = РасчетныйСчет.НомерСчета и Account = РасчетныйСчет1.НомерСчета то да.
Возможно нужно использовать ИЛИ
---
Финалный будет так ?

```1c
    "ВЫБРАТЬ
    | ВТРаботники.FIN,
    | ВТРаботники.Badge,
    | ВТРаботники.Employee,
    | ВТРаботники.Account
    |ИЗ
    | ВТРаботники КАК ВТРаботники
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботникиАз КАК РаботникиАз
    | ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
    | ИЛИ ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
    |ГДЕ
    | (РаботникиАз.РасчетныйСчет ЕСТЬ NULL
    | И РаботникиАз.РасчетныйСчет1 ЕСТЬ NULL )"
```