|
Программно найти справочник по дополнительным реквизитам и сведениям | ☑ | ||
---|---|---|---|---|
0
Qwerty18
14.04.20
✎
00:22
|
Функция НайдемКонтрагента(КодКонтрагента)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент |ИЗ | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты |ГДЕ | КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство | И КонтрагентыДополнительныеРеквизиты.Ссылка = &Ссылка"; Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КодУт", Истина); Запрос.УстановитьПараметр("Ссылка",КодКонтрагента); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() цикл БКонтрагент = Результат.Контрагент; КонецЦикла; Сообщить(БКонтрагент;); Возврат БКонтрагент; КонецФункции |
|||
1
Qwerty18
14.04.20
✎
00:23
|
Добрый день. Пытаюсь реализовать поиск в справочнике контрагенты по доп. реквизиту КодУт. Но возвращается пустое значение. Что неправильно ?
|
|||
2
Cthulhu
14.04.20
✎
00:26
|
ПланВидовХарактеристик не находится по этому наименованию?
|
|||
3
аспид
14.04.20
✎
00:34
|
>> | КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство
Не задано свойство в параметрах запроса |
|||
4
Builder
14.04.20
✎
00:34
|
Бред какой то написан.
В запросе выбирается ссылка, которая передается как параметр в запрос. Уберите условие на ссылку и поправьте Запрос.УстановитьПараметр("Свойство",КодКонтрагента); |
|||
5
RomanYS
14.04.20
✎
00:37
|
(1) Неправильно делать условие на ссылку если ищешь по значению
|
|||
6
Qwerty18
14.04.20
✎
12:24
|
Спасибо всем. Заработало вот так, кому нибудь пригодится.
&НаСервере Функция НайдемКонтрагента(НаименованиеПоиска,КодКонтрагента) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент |ИЗ | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты |ГДЕ | КонтрагентыДополнительныеРеквизиты.Значение = &Значение | И КонтрагентыДополнительныеРеквизиты.Свойство.Имя = &Имя"; Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КодУТ", Истина); Запрос.УстановитьПараметр("Имя", "КодУТ_7fa830250b37400a8c11df50f9bc7e62"); // Это ИМЯ реквизита (не Наименование которое просто = КодУТ, а Имя "для разработчиков") Запрос.УстановитьПараметр("Значение",КодКонтрагента); // Это значение Вашего реквизита Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() цикл ИскомыйКонтрагент = Результат.Контрагент; КонецЦикла; // Сообщить(ИскомыйКонтрагент); Возврат ИскомыйКонтрагент; |
|||
7
RomanYS
14.04.20
✎
12:30
|
(6) С учетом возврата одного контрагента, я бы заменил "ВЫБРАТЬ РАЗЛИЧНЫЕ" на "ВЫБРАТЬ Первые 1". И добавил сортировку по приоритетам, если вдруг "код УТ" окажется неуникальным. Например, помеченные на удаление должны иметь меньший приоритет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |