Поиск элемента по дополнительному реквизиту

1. mastak 13.04.20 12:05 Сейчас в теме
Доброе время.
Нужна помощь в написании запроса для поиска элемента владельца дополнительного реквизита по его значению.
Справочнику Подразделения добавлен дополнительный реквизит "Мерт" строка 12
Нужно, зная значение "Мерт" найти владельца - Подразделение.

п.с. Конфигурация БП3.
По теме из базы знаний
Найденные решения
8. ab_initio 95 13.04.20 16:09 Сейчас в теме
Вроде бы вопрос не про "дополнительные сведения" был, а по "дополнительный реквизит". Доп. реквизиты не в регистре лежат. Они лежат в табличной части "ДополнительныеРеквизиты" справочника "ПодразделенияОрганизаций".

В таком случае запрос должен быть следующий:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Различные
| ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты
|ГДЕ
| ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ПодразделенияОрганизацийДополнительныеРеквизиты.Значение = &Значение";

Запрос.УстановитьПараметр("Значение", Значение); // Это значение Вашего реквизита
Запрос.УстановитьПараметр("Имя", "Мерт"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")

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

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;


Только у дополнительного реквизита нужно задать это имя принудительно в карточке самого доп. реквизита в самом низу "Для разработчиков"
yaguarrr; user1002018; FlyBird; dammit666; mastak; mnbvcxz10; +6 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. VictorRGB2 14 13.04.20 12:52 Сейчас в теме
(1) разве что значение доп.реквизита исключительно уникальные в пределах всей БД
в противном случае затея бесперспективная
5. mastak 13.04.20 13:26 Сейчас в теме
(3) пусть выберутся все элементы с совпадающим значением доп реквизита
7. VictorRGB2 14 13.04.20 13:39 Сейчас в теме
(5) как-то так (имя регистра по базе уточните сами )

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ 
|  ДопСведения.Объект КАК Владелец
|ИЗ
|  РегистрыСведений.ДополнительныеСведения КАК ДопСведения
|ГДЕ
|  ДопСведения.Свойство = &Свойство
|  И ДопСведения.Значение ПОДОБНО &Значение";

Запрос.УстановитьПараметр("Свойство", <Ссылка на свойство>);
Запрос.УстановитьПараметр("Значение", "%Мерт%");

Результат = Запрос.Выполнить.Выгрузить();
Показать
2. platonov.e 160 13.04.20 12:19 Сейчас в теме
А в чем проблема то?)
Естественно конфигурацию мы сами додумаем))
alex-l19041; +1 Ответить
4. mastak 13.04.20 13:25 Сейчас в теме
6. platonov.e 160 13.04.20 13:31 Сейчас в теме
(4) Ну смотрите тогда внимательно
Во первых - делаете запрос к РС "Дополнительные сведения", там указываете в условии нужное значение и свойство, и получаете нужный объект.
Во вторых - а нет, это все, во вторых отсутствует.
8. ab_initio 95 13.04.20 16:09 Сейчас в теме
Вроде бы вопрос не про "дополнительные сведения" был, а по "дополнительный реквизит". Доп. реквизиты не в регистре лежат. Они лежат в табличной части "ДополнительныеРеквизиты" справочника "ПодразделенияОрганизаций".

В таком случае запрос должен быть следующий:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Различные
| ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты
|ГДЕ
| ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ПодразделенияОрганизацийДополнительныеРеквизиты.Значение = &Значение";

Запрос.УстановитьПараметр("Значение", Значение); // Это значение Вашего реквизита
Запрос.УстановитьПараметр("Имя", "Мерт"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")

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

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;


Только у дополнительного реквизита нужно задать это имя принудительно в карточке самого доп. реквизита в самом низу "Для разработчиков"
yaguarrr; user1002018; FlyBird; dammit666; mastak; mnbvcxz10; +6 Ответить
9. mastak 17.04.20 11:28 Сейчас в теме
10. ab_initio 95 17.04.20 12:00 Сейчас в теме
(9)
Спасибо !

Пожалуйста! Рад, что удалось помочь.
Пометьте, пожалуйста вопрос, как "решенный", другим пользователям полезно будет.
11. Sanario 27 12.10.20 17:22 Сейчас в теме
Конфигурация УТ11.4
Ребята, воспользовался текстом вашего запроса - значений не возвращает... Что мог упустить? КодСинхронизации_с_УНФ - это имя присвоил реквизиту Имя разработчика
Функция НайтиНоменклатуруВладелецПоРеквизиту(Значение)
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
	|ГДЕ
	|	НоменклатураДополнительныеРеквизиты.Свойство.Имя = &Имя
	|	И НоменклатураДополнительныеРеквизиты.Значение = &ЗначениеПараметра";
	
	Запрос.УстановитьПараметр("ЗначениеПараметра", Значение);   // Это значение реквизита
	Запрос.УстановитьПараметр("Имя", "КодСинхронизации_с_УНФ"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")
	
	Результат = Запрос.Выполнить();
	Выборка  = Результат.Выбрать();
	Пока Выборка.Следующий() Цикл
	     Владелец = Выборка[0].Значение;
	КонецЦикла;	 
	
	Возврат Владелец;

 КонецФункции
Показать
12. kudzia 15 15.02.23 16:53 Сейчас в теме
(11)
= Выборка[0].Значе

Выборка.Значение
Оставьте свое сообщение

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