Добрый день !начал обучение 1 с совсем недавно,прошу помощи :trhregerhg: . Есть задача :На форму «Управляемая форма» добавить таблицу значений, с одной колонкой «ФИО»(Тип Строка).
Необходимо разработать общую команду для поиска всех элементов справочника «Сотрудники», в названии которых есть ФИО из нашей таблицы значений. Понимаю ,что нужно обратиться к справочнику в запросе и применить оператор "Подобно" ..Как правильно это сделать?
Можно выгрузить ТЗ в запрос во временную таблицу, далее соединить таблицу сотрудников с этой таблицей по условию: Сотрудники.Наименование ПОДОБНО "%" + ВТ_ТЗ.ФИО +"%".
По символам, которые использует оператор для поиска по неполной строке и т.д., можно почитать в статье: https://infostart.ru/1c/articles/1199572/
(2)Не проходили этого еще . Как до запроса обойти циклом ТЗ, достать всё нужное и потом уже в запрос передать,чтобы не выполнять несколько запросов (отдельный для каждой строки)? И нужно ,чтобы еще сообщения выводились : сотрудник найден или сотрудник не найден .
(3) Отдельные запросы (запросы в цикле) - запрещены.
Чтобы вытащить данные одним запросом нужно воспользоваться либо выгрузкой ТЗ в запрос и соединением с таблицей сотрудников, либо обойти ТЗ в цикле и сформировать условия запроса для каждой строки ТЗ.
"ВЫБРАТЬ
| Сотрудники.Ссылка КАК Сотрудник
|ИЗ
| Справочник.Сотрудники КАК Сотрудники
|ГДЕ
| &УсловияЗапроса";
ТекстУсловия = "";
Для Каждого Строка Из ТЗ Цикл
ТекстУсловия = ТекстУсловия + ?(ТекстУсловия = "",
"Сотрудники.Наименование ПОДОБНО %" + Строка.ФИО + "%",
"| ИЛИ Сотрудники.Наименование ПОДОБНО %" + Строка.ФИО + "%");
КонецЦикла;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловияЗапроса", ТекстЗапроса);
Показать
Если не проходили соединение таблиц, то как-то так, наверное)
ВЫБРАТЬ
Таблица.ФИО КАК ФИО
ПОМЕСТИТЬ ВТ_ТЗ
ИЗ
&Таблица КАК Таблица
;
///
ВЫБРАТЬ
Сотрудники.Ссылка КАК Сотрудник
ИЗ
Справочник.Сотрудники КАК Сотрудники
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ТЗ
ПО Сотрудники.Наименование ПОДОБНО ВТ_ТЗ.ФИО