Как соединить таблицы в запросе через соответствие в форме?

1. Andrey1804 3 21.12.21 15:13 Сейчас в теме
Всем доброго дня! Подскажите возможно ли соединить в запросе две таблицы по реквизиту через соответствие в таблице значений на Форме ?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
7. Sashares 34 21.12.21 15:40 Сейчас в теме
(6)В конструкторе запросов на закладке Связи 1 соединяете со 2 выбираете поля соединения.
Добавляете новую строку в таблицу, в ней 2 соединяете с 3, выбираете поля соединения.
То есть по очереди.
Прикрепленные файлы:
12. hottion 84 21.12.21 15:54 Сейчас в теме
(8)


	ТаблицаПриемник = Новый ТаблицаЗначений;
        ТаблицаПриемник.Колонки.Вставить(0, "Сотрудник ", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150)));


//тут заполняешь типизированную таблицу своими данными


Запрос = Новый Запрос();
	Запрос.УстановитьПараметр("ТаблицаИсточник" , ТаблицаПриемник );
	Запрос.Текст = "ВЫБРАТЬ
	               |	ТаблицаИсточник.Сотрудник КАК СотрудникТекст
	               |ПОМЕСТИТЬ втТаблицаИсточник
	               |ИЗ
	               |	&ТаблицаИсточник КАК ТаблицаИсточник
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ
	               |	втТаблицаИсточник.СотрудникТекст КАК СотрудникТекст,
	               |	Сотрудники.Ссылка КАК Сотрудник,
	               |	Сотрудники.Код КАК Код,
	               |	Сотрудники.ФизическоеЛицо.ДатаРождения КАК ФизическоеЛицоДатаРождения,
	               |	Сотрудники.ФизическоеЛицо.ИНН КАК ФизическоеЛицоИНН,
	               |	Сотрудники.ФизическоеЛицо.СтраховойНомерПФР КАК ФизическоеЛицоСтраховойНомерПФР,
	               |	КадроваяИсторияПрием.Период КАК ДатаПриема,
	               |	ДОБАВИТЬКДАТЕ(КадроваяИсторияУвольнение.Период, ДЕНЬ, -1) КАК ДатаУвольнения,
	               |	СогласиеНаОбработкуПерсональныхДанных.Ссылка КАК СогласиеНаОбработкуПерсональныхДанных,
	               |	ТерриторииСотрудниковСрезПоследних.Территория КАК Территория,
	               |	ЕСТЬNULL(ТерриторииСотрудниковСрезПоследних.Территория.РайонныйКоэффициентРФ, 0) КАК РайонныйКоэффициентРФ
	               |ИЗ
	               |	втТаблицаИсточник КАК втТаблицаИсточник
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияУвольнение
	               |			ПО Сотрудники.Ссылка = КадроваяИсторияУвольнение.Сотрудник
	               |				И (КадроваяИсторияУвольнение.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение))
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияПрием
	               |			ПО Сотрудники.Ссылка = КадроваяИсторияПрием.Сотрудник
	               |				И (КадроваяИсторияПрием.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием))
	               |			ЛЕВОЕ СОЕДИНЕНИЕ Документ.СогласиеНаОбработкуПерсональныхДанных КАК СогласиеНаОбработкуПерсональныхДанных
	               |			ПО Сотрудники.ФизическоеЛицо = СогласиеНаОбработкуПерсональныхДанных.Субъект
	               |				И (СогласиеНаОбработкуПерсональныхДанных.Проведен)
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТерриторииСотрудников.СрезПоследних КАК ТерриторииСотрудниковСрезПоследних
	               |			ПО Сотрудники.Ссылка = ТерриторииСотрудниковСрезПоследних.Сотрудник
	               |		ПО втТаблицаИсточник.СотрудникТекст = Сотрудники.Наименование
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	втТаблицаИсточник.СотрудникТекст,
	               |	Сотрудники.Ссылка,
	               |	Сотрудники.Код,
	               |	Сотрудники.ФизическоеЛицо.ИНН,
	               |	Сотрудники.ФизическоеЛицо.СтраховойНомерПФР,
	               |	Сотрудники.ФизическоеЛицо.ДатаРождения,
	               |	ДОБАВИТЬКДАТЕ(КадроваяИсторияУвольнение.Период, ДЕНЬ, -1),
	               |	КадроваяИсторияПрием.Период,
	               |	СогласиеНаОбработкуПерсональныхДанных.Ссылка,
	               |	ТерриторииСотрудниковСрезПоследних.Территория,
	               |	ЕСТЬNULL(ТерриторииСотрудниковСрезПоследних.Территория.РайонныйКоэффициентРФ, 0)";
	
	ТаблицаИсточник = Запрос.Выполнить().Выгрузить();


Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 21.12.21 15:16 Сейчас в теме
(1)Таблицу соответствия тоже добавляете в запрос, и соединяете эти 3 таблицы.
Таблицу 1 с таблицей соответствия, а таблицу соответствия с таблицей 2.
3. Andrey1804 3 21.12.21 15:23 Сейчас в теме
(2) 3 таблицы тоже можно соединить... не знал
4. Sashares 34 21.12.21 15:24 Сейчас в теме
(3)И 4 тоже. Только тссс...
5. Andrey1804 3 21.12.21 15:26 Сейчас в теме
6. Andrey1804 3 21.12.21 15:34 Сейчас в теме
(3)Две таблицы понимаю как соединить , а три как ?
7. Sashares 34 21.12.21 15:40 Сейчас в теме
(6)В конструкторе запросов на закладке Связи 1 соединяете со 2 выбираете поля соединения.
Добавляете новую строку в таблицу, в ней 2 соединяете с 3, выбираете поля соединения.
То есть по очереди.
Прикрепленные файлы:
8. Andrey1804 3 21.12.21 15:44 Сейчас в теме
(7) А как в конструктор запроса ТЗ с формы внешней обработки засунуть ?
9. Sashares 34 21.12.21 15:45 Сейчас в теме
(8)А как вы две другие таблицы засовываете?
10. hottion 84 21.12.21 15:47 Сейчас в теме
типизировать таблицы и передать их в параметры запроса. После чего их выбрать и поместить в виртуальные таблицы и тогда можно их соединять или к ним присоединять таблицы из базы.
11. Andrey1804 3 21.12.21 15:48 Сейчас в теме
(10)Это наверное слишком для меня сложно еще ))
12. hottion 84 21.12.21 15:54 Сейчас в теме
(8)


	ТаблицаПриемник = Новый ТаблицаЗначений;
        ТаблицаПриемник.Колонки.Вставить(0, "Сотрудник ", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(150)));


//тут заполняешь типизированную таблицу своими данными


Запрос = Новый Запрос();
	Запрос.УстановитьПараметр("ТаблицаИсточник" , ТаблицаПриемник );
	Запрос.Текст = "ВЫБРАТЬ
	               |	ТаблицаИсточник.Сотрудник КАК СотрудникТекст
	               |ПОМЕСТИТЬ втТаблицаИсточник
	               |ИЗ
	               |	&ТаблицаИсточник КАК ТаблицаИсточник
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ
	               |	втТаблицаИсточник.СотрудникТекст КАК СотрудникТекст,
	               |	Сотрудники.Ссылка КАК Сотрудник,
	               |	Сотрудники.Код КАК Код,
	               |	Сотрудники.ФизическоеЛицо.ДатаРождения КАК ФизическоеЛицоДатаРождения,
	               |	Сотрудники.ФизическоеЛицо.ИНН КАК ФизическоеЛицоИНН,
	               |	Сотрудники.ФизическоеЛицо.СтраховойНомерПФР КАК ФизическоеЛицоСтраховойНомерПФР,
	               |	КадроваяИсторияПрием.Период КАК ДатаПриема,
	               |	ДОБАВИТЬКДАТЕ(КадроваяИсторияУвольнение.Период, ДЕНЬ, -1) КАК ДатаУвольнения,
	               |	СогласиеНаОбработкуПерсональныхДанных.Ссылка КАК СогласиеНаОбработкуПерсональныхДанных,
	               |	ТерриторииСотрудниковСрезПоследних.Территория КАК Территория,
	               |	ЕСТЬNULL(ТерриторииСотрудниковСрезПоследних.Территория.РайонныйКоэффициентРФ, 0) КАК РайонныйКоэффициентРФ
	               |ИЗ
	               |	втТаблицаИсточник КАК втТаблицаИсточник
	               |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияУвольнение
	               |			ПО Сотрудники.Ссылка = КадроваяИсторияУвольнение.Сотрудник
	               |				И (КадроваяИсторияУвольнение.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение))
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияПрием
	               |			ПО Сотрудники.Ссылка = КадроваяИсторияПрием.Сотрудник
	               |				И (КадроваяИсторияПрием.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием))
	               |			ЛЕВОЕ СОЕДИНЕНИЕ Документ.СогласиеНаОбработкуПерсональныхДанных КАК СогласиеНаОбработкуПерсональныхДанных
	               |			ПО Сотрудники.ФизическоеЛицо = СогласиеНаОбработкуПерсональныхДанных.Субъект
	               |				И (СогласиеНаОбработкуПерсональныхДанных.Проведен)
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТерриторииСотрудников.СрезПоследних КАК ТерриторииСотрудниковСрезПоследних
	               |			ПО Сотрудники.Ссылка = ТерриторииСотрудниковСрезПоследних.Сотрудник
	               |		ПО втТаблицаИсточник.СотрудникТекст = Сотрудники.Наименование
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	втТаблицаИсточник.СотрудникТекст,
	               |	Сотрудники.Ссылка,
	               |	Сотрудники.Код,
	               |	Сотрудники.ФизическоеЛицо.ИНН,
	               |	Сотрудники.ФизическоеЛицо.СтраховойНомерПФР,
	               |	Сотрудники.ФизическоеЛицо.ДатаРождения,
	               |	ДОБАВИТЬКДАТЕ(КадроваяИсторияУвольнение.Период, ДЕНЬ, -1),
	               |	КадроваяИсторияПрием.Период,
	               |	СогласиеНаОбработкуПерсональныхДанных.Ссылка,
	               |	ТерриторииСотрудниковСрезПоследних.Территория,
	               |	ЕСТЬNULL(ТерриторииСотрудниковСрезПоследних.Территория.РайонныйКоэффициентРФ, 0)";
	
	ТаблицаИсточник = Запрос.Выполнить().Выгрузить();


Показать
13. Andrey1804 3 21.12.21 15:57 Сейчас в теме
(12)спасибо, буду изучать.
14. Andrey1804 3 22.12.21 06:26 Сейчас в теме
(12)Подскажите, возможно ли получить все движения регистра накопления с условием Таблицей или структурой , а потом разобрать их в цикле ?
15. hottion 84 23.12.21 17:06 Сейчас в теме
(14) можно получить выборку движений и по ней сформировать таблицу, а условия задать либо в отборах либо в связях, смотря что именно вы хотите отобрать.
Оставьте свое сообщение

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