Имя: Пароль:
1C
 
Ноги или крылья? Головоломка в простом запросе для отчета в расширении
0 Aleks73
 
24.04.25
15:09
База ОФ, режим совместимости Версия 8.3.14. С расширением.
Запрос = Новый ПостроительЗапроса;
Запрос.Текст =
    "ВЫБРАТЬ
    |    Портфели.Владелец.Ссылка КАК Договор,
    |    Портфели.Владелец.Владелец КАК Клиент,
    |    Портфели.Ссылка КАК Портфель
    |    Портфели.Владелец.Стратегия
        |  ИсторияСтратегийСрезПоследних.Стратегия
    |ИЗ
    |    Справочник.Портфели КАК Портфели
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияСтратегий.СрезПоследних(&ДатаКон, ) КАК ИсторияСтратегийСрезПоследних
    |        ПО Портфели.Ссылка = ИсторияСтратегийСрезПоследних.Объект
    
Регистр ИсторияСтратегий и реквизит Стратегия - в расширении.
Если я добавляю отчет с этим запросом в расширение -
конструктор запроса не видит

Портфели.Владелец.Ссылка
Портфели.Владелец.Владелец
Портфели.Владелец.Стратегия

Так как в конструкторе реквизит Владелец не имеет подчинённых реквизитов (справочник - владелец портфеля добавлен в расширение!),
если делаю отчет внешним - не видит регистр и реквизит, добавленные в расширение.
Кто победил такую головоломку?
1 Волшебник
 
24.04.25
15:10
У Вас синтаксические ошибки в запросе. Вы его хотя бы запускали?!
2 Aleks73
 
24.04.25
15:13
(1) Я его упростил, удалив лишние реквизиты. Запятые подохли,да. Всё равно его открыть со всеми реквизитами в конструкторе невозможно.
3 Волшебник
 
24.04.25
15:11
(2) Вы его испортили и показываете нам туфту.
4 Garykom
 
гуру
24.04.25
15:14
(0) Используй консоль запросов в режиме предприятия и не пудри мозг
5 Aleks73
 
24.04.25
15:18
(3) Вот он полностью
    Запрос = Новый ПостроительЗапроса;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Портфели.Владелец.Ссылка КАК Договор,
    |    ИСТИНА КАК Включать,
    |    Портфели.Владелец.Владелец КАК Клиент,
    |    Портфели.Ссылка КАК Портфель,    
    |    ИсторияСтратегийСрезПоследних.Стратегия КАК Стратегия,    
    |    Портфели.Владелец.СтратегияПоДоговору КАК СтратегияПоДоговору
    |ИЗ
    |    Справочник.Портфели КАК Портфели    
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияСтратегий.СрезПоследних(&ДатаКон, ) КАК ИсторияСтратегийСрезПоследних
    |        ПО Портфели.Ссылка = ИсторияСтратегийСрезПоследних.Объект    
    |ГДЕ
    |    Портфели.Владелец.ДоговорДУ = ИСТИНА
    |    И Портфели.Владелец.Организация = &Организация";
6 Aleks73
 
24.04.25
15:19
(4) Мне нужно не прочитать запрос, а сделать его работающим. Немного разные вещи. Он не работает, при этом ошибку не выдаёт.
7 Волшебник
 
24.04.25
15:23
Покажите, как Вы его выполняете.

У вас объект ПостроительЗапроса, а не Запрос.

ПостроительЗапроса.Выполнить() ничего не вернёт.

Кроме того, проверьте параметры.
8 Garykom
 
гуру
24.04.25
15:26
(5) владельцев разверни в соединения и перепиши на объединить
один хрен это будет выполняться на низком уровне в плане запроса (причем по всем а не только нужным)

ЗЫ
или через выбор когда тогда
9 Aleks73
 
24.04.25
15:24
(7) Для теста я удалял ГДЕ и всё, что после него. Пусто.
Блок, обрабатывающий построитель, сейчас выложу.
10 Aleks73
 
24.04.25
15:27
(7)     Запрос.ЗаполнитьНастройки();
    Запрос.Параметры.Вставить("Организация", Организация);
    Запрос.Параметры.Вставить("ДатаКон", ДатаКон);    
    Запрос.Выполнить();
    Результат = Запрос.Результат.Выгрузить();
    Результат.Свернуть("Включать, Договор, Клиент, СтратегияПоДоговору");    
    СписокКлиентов.Загрузить(Результат);
11 Aleks73
 
24.04.25
15:29
(8) СвежО, попробую конечно, но конструктор не видит владельца как объект, поэтому не верю в то, что соединение что-то даст.
12 Волшебник
 
24.04.25
15:34
Запрос = Новый Запрос("ВЫБРАТЬ
	|	ИСТИНА КАК Включать,
	|	Портфели.Владелец КАК Договор,
	|	Портфели.Владелец.Владелец КАК Клиент,
	|	Портфели.Владелец.СтратегияПоДоговору КАК СтратегияПоДоговору
	|ИЗ
	|	Справочник.Портфели КАК Портфели
	|ГДЕ
	|	Портфели.Владелец.ДоговорДУ");

тзДоговоры = Запрос.Выполнить().Выгрузить();
13 Aleks73
 
24.04.25
15:44
-
14 Мультук
 
гуру
24.04.25
16:02
(13)

Вчитался.
P.S.
Добавлять справочник-владелец в расширении. Это свежо и необычно.
Такое вроде как первый раз на мисте
15 Гипервизор
 
24.04.25
15:52
(0) Переходите на 8.3.23, насколько я помню, там подкручивали доступность в редакторе запросов расширения объектов основной конфигурации.
16 Aleks73
 
24.04.25
16:41
(12) Станислав, ты прав! Не все построители одинаково полезны. Большое тебе спасибо!
P.S. А конструктор твой запрос не берёт, ругается на Владелец.Владелец.
(14) Я тупо перебирал все варианты.
(15) Где это можно точно посмотреть? Я думал, что режим совместимости за это отвечает.
17 Rovan
 
гуру
24.04.25
17:44
|    Портфели.Владелец.Ссылка КАК Договор,

тут Ссылка лишняя
18 Aleks73
 
24.04.25
18:48
(17) Я взял (12), спасибо.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший