Имя: Пароль:
1C
1С v8
Поиск справочника по коду
0 grasshoper
 
02.03.20
15:52
День добрый. Пробую реализовать такую конструкцию:
Справочники.Договоры.НайтиПоКоду(Код, ИСТИНА, ?(Табл.Свойство("Родитель"), Родитель, Неопределено), ?(Табл.Свойство("Владелец"), Владелец, Неопределено));

Задача: как сделать так, чтобы при наличии у таблицы свойства "Родитель" договор искался в пределах родителя, а при наличии владельца и родителя искался соответственно в подчинении родителя и владельца.

Для подчиненных справочников отрабатывает, а вот для справочника без родителей и владельцев такой метод просто по коду уже не ищет. Что передавать в параметры функции НайтиПоКоду(), чтобы при поиске родитель и владелец игнорировался? Хочу сделать универсально, чтобы не проверять если ли у справочника родитель, то искать в пределах подчинения родителю, а если нет родителя, то в общем списке.
1 grasshoper
 
02.03.20
15:57
"Пока работает так"
Если Табл.Свойство("Родитель") И Табл.Свойство("Владелец") Тогда
    Объект = Справочники.Договоры.НайтиПоКоду(КодДоговора, ИСТИНА, Табл["Родитель"], Табл["Владелец"]);
ИначеЕсли Табл.Свойство("Родитель") Тогда
    Объект = Справочники.Договоры.НайтиПоКоду(КодДоговора, ИСТИНА, Табл["Родитель"]);
ИначеЕсли Табл.Свойство("Владелец") Тогда
    Объект = Справочники.Договоры.НайтиПоКоду(КодДоговора, ИСТИНА, , Табл["Владелец"]);
Иначе
    Объект = Справочники.Договоры.НайтиПоКоду(КодДоговора, ИСТИНА);
КонецЕсли;

"Но не охота лепить такие костыли
2 Ёпрст
 
02.03.20
16:01
(0) запрос же
3 drcrasher
 
02.03.20
16:01
но зачем?
4 grasshoper
 
02.03.20
16:04
(2) нужно именно таким методом. что в пустые параметры ставить? Пустую ссылку на справочник, NULL или Неопределено?
5 shuhard
 
02.03.20
16:05
(1) это не костыль, это навыки ООП =)
6 ДенисЧ
 
02.03.20
16:08
(5) Если это ООП, то я тибетский ёж.
7 shuhard
 
02.03.20
16:09
(6) вот ты какой, горный ёж =)