Запрос Временная таблица

1. _7445_ 14.11.19 11:36 Сейчас в теме
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. Есть табличный часть обработку (внешняя). Пользователь заполняет этот часть с помощью эксель файла. После заполнение программ должен сделать это - Программ выбирает все данные из ТЧ и справочник пользователи потом делает сравнение и показывает те пользователи который нет в справочнике. Для первого шага написал такии запросы чтобы выбрать данные только из ТЧ. В ТЧ для всех колонок есть тип (Строка, 60).
Запрос 1 --
ВрТаб  = Новый МенеджерВременныхТаблиц;
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = ВрТаб;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ДанныеРаботника.FIN,
	|	ДанныеРаботника.Badge,
	|	ДанныеРаботника.Employee,
	|	ДанныеРаботника.Account
	|ПОМЕСТИТЬ ВТРаботники
	|ИЗ
	|	&ДанныеРаботника КАК ДанныеРаботника
	|;
	|
    |////////////////////////////////////////
	|
	|ВЫБРАТЬ
    |    ВТРаботники1.FIN,
	|    ВТРаботники1.Badge,
	|    ВТРаботники1.Employee,
	|    ВТРаботники1.Account
    |ИЗ
    |    ВТРаботники КАК ВТРаботники1";
	Запрос.УстановитьПараметр("ДанныеРаботника", Объект.ДанныеРаботника);
    Выборка = Запрос.Выполнить().Выгрузить();  
Показать


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

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

Если одновременно Account = РасчетныйСчет.НомерСчета и Account = РасчетныйСчет1.НомерСчета то да.
Возможно нужно использовать ИЛИ
12. _7445_ 14.11.19 12:13 Сейчас в теме
(11)
Финалный будет так ?
"ВЫБРАТЬ
	|	ВТРаботники.FIN,
	|	ВТРаботники.Badge,
	|	ВТРаботники.Employee,
	|	ВТРаботники.Account
	|ИЗ
	|	ВТРаботники КАК ВТРаботники
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботникиАз КАК РаботникиАз
	|		ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
	|			ИЛИ ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
	|ГДЕ
	|	(РаботникиАз.РасчетныйСчет ЕСТЬ NULL 
	|			И РаботникиАз.РасчетныйСчет1 ЕСТЬ NULL )"
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. dhurricane 14.11.19 11:43 Сейчас в теме
(1) А что из себя представляет поле "Объект.ДанныеРаботника"? Судя по коду, это должна быть табличная часть.
2. mifka186 8 14.11.19 11:42 Сейчас в теме
Возможно в переменной Объект.ДанныеРаботника содержится не таблица значений, а таблица формы. Если это так, то Объект.ДанныеРаботника нельзя использовать как параметр запроса. Попробуйте Объект.ДанныеРаботника.Выгрузить().
4. _7445_ 14.11.19 11:44 Сейчас в теме
(2)
Спасибо за вниманию. Как это проверят ?
5. mifka186 8 14.11.19 11:45 Сейчас в теме
(4) Посмотреть в отладчике - самое простое. Ну и попробуйте заменить Объект.ДанныеРаботника на Объект.ДанныеРаботника.Выгрузить().
6. _7445_ 14.11.19 11:45 Сейчас в теме
7. mifka186 8 14.11.19 11:47 Сейчас в теме
(6)
Запрос.УстановитьПараметр("ДанныеРаботника", Объект.ДанныеРаботника);

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


и для 1 и для 2 запроса
8. _7445_ 14.11.19 11:49 Сейчас в теме
(7)
Работала
Спасибо вам большой.
А как сравнить с справочникам чтобы показал только те пользователи который нет в справочнике
9. mifka186 8 14.11.19 11:56 Сейчас в теме
(8)Сначала соединяете ЛЕВЫМ соединением таблицу ВТРаботники с таблицей справочника по ключевому полю. В таблице ВТРаботники это ключевое поле должно иметь такой же тип и размерность как и поле справочника. И по условию фильтруете записи, где в результате соединения появился NULL. Примерно вот так
|    ГДЕ
|    Справочник.Ссылка ЕСТЬ NULL

Это и будут все элементы которых нет в справочнике.
10. _7445_ 14.11.19 12:01 Сейчас в теме
(9)
Так ?
"ВЫБРАТЬ
	|	ВТРаботники.FIN,
	|	ВТРаботники.Badge,
	|	ВТРаботники.Employee,
	|	ВТРаботники.Account
	|ИЗ
	|	ВТРаботники КАК ВТРаботники
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботникиАз КАК РаботникиАз
	|		ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
	|			И ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
	|ГДЕ
	|	(РаботникиАз.РасчетныйСчет ЕСТЬ NULL 
	|			И РаботникиАз.РасчетныйСчет1 ЕСТЬ NULL )
Показать
11. mifka186 8 14.11.19 12:04 Сейчас в теме
(10)
|        ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
|            И ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета

Если одновременно Account = РасчетныйСчет.НомерСчета и Account = РасчетныйСчет1.НомерСчета то да.
Возможно нужно использовать ИЛИ
12. _7445_ 14.11.19 12:13 Сейчас в теме
(11)
Финалный будет так ?
"ВЫБРАТЬ
	|	ВТРаботники.FIN,
	|	ВТРаботники.Badge,
	|	ВТРаботники.Employee,
	|	ВТРаботники.Account
	|ИЗ
	|	ВТРаботники КАК ВТРаботники
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботникиАз КАК РаботникиАз
	|		ПО ВТРаботники.Account = РаботникиАз.РасчетныйСчет.НомерСчета
	|			ИЛИ ВТРаботники.Account = РаботникиАз.РасчетныйСчет1.НомерСчета
	|ГДЕ
	|	(РаботникиАз.РасчетныйСчет ЕСТЬ NULL 
	|			И РаботникиАз.РасчетныйСчет1 ЕСТЬ NULL )"
Показать
Оставьте свое сообщение
Вакансии
Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 130 000 руб. до 170 000 руб.
Полный день

Программист 1C
Санкт-Петербург
зарплата от 140 000 руб. до 200 000 руб.
Полный день