Имя: Пароль:
1C
 
Насколько это г-код? Или норм?
0 Галахад
 
01.11.23
12:33
ВЫБРАТЬ
    Т.Ссылка
ИЗ
    ОбъектМетаданных.АА КАК Т
ГДЕ
     Т.ББ = (&СС)
     ИЛИ Т.ББ = (&СС).Родитель
1 PLUT
 
01.11.23
12:45
(0) работает - не трогай
2 Momus
 
01.11.23
12:50
3 Галахад
 
01.11.23
12:52
(1) В смысле работает? Я сам написал. :-)

(2) А вот тут кстати вопрос.
4 arsik
 
01.11.23
12:54
На 150 для Москвы норм
5 vi0
 
01.11.23
12:56
(0) Если на боевых данных оптимально работает, то сойдет
6 vi0
 
01.11.23
12:56
(2) "Не следует использовать ИЛИ в секции ГДЕ запроса. Это может привести к тому"
Ключевое слово МОЖЕТ.
7 vi0
 
01.11.23
12:57
(2) это из тех инструкций, когда программист не понимает как работает его конкретная СУБД, тогда ему нужно следовать инструкции
8 Галахад
 
01.11.23
12:57
(4) Окей, а как будет на 300?
9 Momus
 
01.11.23
13:01
(7) ок, просветите на примере ТС почему в данном случае можно игнорировать стандарты разработки
10 arsik
 
01.11.23
13:04
(8) Через объединить
11 Галахад
 
01.11.23
13:11
Хм, а как же "когда оператор ИЛИ можно заменить на оператор В"?
12 Галахад
 
01.11.23
13:21
А вообще вопрос изначально был по конструкции
(&СС).Родитель
1С-кий конструктор такой конструкции не воспринимает.
13 Hmster
 
01.11.23
13:24
(6) тут от многих факторов зависит, в том числе и от железяк.
14 eklmn
 
01.11.23
13:27
плохо...
Т.ББ В (&СС)
СС - массив
15 Галахад
 
01.11.23
13:31
(14)
ВЫБРАТЬ
    Т.Ссылка
ИЗ
    ОбъектМетаданных.АА КАК Т
ГДЕ
     Т.ББ В ((&СС), (&СС).Родитель)

Так что-ли?
16 PLUT
 
01.11.23
13:37
(12) попробуй заклинание Выразить( ну или добавь переменную &РСС (родитель СС)
17 Garykom
 
01.11.23
13:37
(0) Писать запрос который упадет если вместо ссылки передать простой тип это конечно гм
18 Garykom
 
01.11.23
13:38
(16) +1
причем лучше через ВТ
19 Галахад
 
01.11.23
13:42
(16) А зачем?

(17) Хм. С каких это пор правильно передавать в параметры всякую фигню?
20 Garykom
 
01.11.23
13:54
(19) С тех пор когда правильно передать две ссылки или список

И простейший запрос

ВЫБРАТЬ
    Т.Ссылка
ИЗ
    ОбъектМетаданных.АА КАК Т
ГДЕ
     Т.ББ В (&СС)

МассивСсылок = Новый Массив;
МассивСсылок.Вставить(Ссылко);
МассивСсылок.Вставить(Ссылко.Родитель);
Запрос.УстановитьПараметр("СС", МассивСсылок);
21 ptiz
 
01.11.23
14:06
(20) За "Ссылко.Родитель" в коде сейчас делают ай-яй-яй
22 rphosts
 
01.11.23
14:25
(21) ну получи ее так: СсылкоРодитель = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылко, "Родитель");

ну или сам запросом.
23 vi0
 
01.11.23
14:44
(22) Для (&СС).Родитель возможно 1с и так оптимально сделает конечный запрос к субд если. Тут второй вопросы:
- на какой субд работаем
- что важнее простой код или возможность быстро перейти на другую субд
- итп
24 toypaul
 
01.11.23
15:40
(10) неверный ответ. на 300 будет - в зависимости от размера справочника. если там 100. да пусть даже 1000 элементов, то без разницы как
25 TStan
 
01.11.23
15:49
(24) надо еще учесть частоту вызовов.
26 rphosts
 
02.11.23
09:25
(23) если выбирать между "возможно" и "гарантированно" - каждый сам себе выборщик
27 mikecool
 
02.11.23
09:36
а если Родителя у &СС не будет?
28 АнализДанных
 
naïve
02.11.23
10:23
(0)
ВЫБРАТЬ
    Т.Ссылка
ИЗ
    ОбъектМетаданных.АА КАК Т
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.контрагенты КАК Т2
    ПО &СС В (Т2.Ссылка, Т2.Родитель)
       И Т.ББ В (Т2.Ссылка, Т2.Родитель)