Имя: Пароль:
1C
1С v8
Как в выборке полей Запроса разыменовать поле полученное через ВЫРАЗИТЬ
,
0 timgan
 
18.05.15
09:39
ВЫРАЗИТЬ(Регистратор КАК Документ.АвансовыйОтчет).ПодотчетноЛицо, необходимо получить Реквизит ПодотчетногоЛица
1 Славен
 
18.05.15
09:40
(0) А зачем тебе Выразить тут?
2 hhhh
 
18.05.15
09:40
ВЫРАЗИТЬ(Регистратор КАК Документ.АвансовыйОтчет).ПодотчетноЛицо.Реквизит1
3 timgan
 
18.05.15
09:40
Регистратор - составной тип
4 Славен
 
18.05.15
09:41
+(1)  поставь условие Где Регистратор Ссылка  Документ.АвансовыйОтчет
5 timgan
 
18.05.15
09:42
(2) пробовал, так не получает "Реквизит1"
6 be-may
 
18.05.15
09:44
а если левое соединение с ПодотчетноЛицо ?
что по сути и так неявно система будет делать при получении Реквизит1
7 timgan
 
18.05.15
09:44
(4) Так понятно, но хотелось бы через ВЫРАЗИТЬ. Кстати Славен, а если указать, как ты предлагаешь, то соединение с лишними таблицами в запросе не будет?
8 timgan
 
18.05.15
09:45
(6) Так тоже понятно.
9 Славен
 
18.05.15
09:47
(7) не совсем понял вопрос
10 Defender aka LINN
 
18.05.15
09:48
(5) У всех получает, у тебя нет. Странным не находишь?
11 hhhh
 
18.05.15
09:48
(5) что говорит? У всех получает вообще-то
12 Drac0
 
18.05.15
09:49
(5) Не верю. Подотчетное лицо не составной хотя бы?
13 timgan
 
18.05.15
09:55
(12) ПодотчетноеЛицо - нет не составной, справочник "ФизическиеЛица"
14 timgan
 
18.05.15
09:56
(10) (11) нахожу, пошел искать ошибку
15 kosts
 
18.05.15
09:57
Выбор когда Регистратор ссылка Документ.АвансовыйОтчет тогда Документ.АвансовыйОтчет.ПодотчетноЛицо Иначе Справочник.Физлица.пустаяСсылка Конец
16 timgan
 
18.05.15
10:01
(9) Если в секции ГДЕ применяешь Условие: Регистратор Ссылка  Документ.АвансовыйОтчет, тогда в полях выборки запроса можно не использовать конструкцию ВЫРАЗИТЬ с целью оптимизации запроса?
17 Славен
 
18.05.15
10:06
(16) да
18 timgan
 
18.05.15
10:58
(10) (11)  Defender aka LINN, hhhh Спасибо! Ошибку нашел.
(17) Славен спасибо.
Всем спасибо.
19 timgan
 
18.05.15
11:59
(10) (11) Почему нет ПодОтчетноеЛицоНаименование?

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ВЫБОР
|    КОГДА ПрочиеРасходыОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет
|    ТОГДА ВЫРАЗИТЬ(ПрочиеРасходыОбороты.Регистратор КАК Документ.АвансовыйОтчет).ПодотчетноеЛицо
|    КОНЕЦ КАК ПодОтчетноеЛицоСсылка,
|    ВЫБОР
|    КОГДА ПрочиеРасходыОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет
|    ТОГДА ВЫРАЗИТЬ(ПрочиеРасходыОбороты.Регистратор КАК Документ.АвансовыйОтчет).ПодотчетноеЛицо.Наименование
|    КОНЕЦ КАК ПодОтчетноеЛицоНаименование,
|    ПрочиеРасходыОбороты.СуммаОборот КАК СуммаОборот
|ИЗ
|    РегистрНакопления.ПрочиеРасходы.Обороты(&НачДата, &КонДата, Авто, ) КАК ПрочиеРасходыОбороты
|
|ИТОГИ
|    СУММА(СуммаОборот)
|ПО
|    ПодОтчетноеЛицоСсылка";


Запрос.УстановитьПараметр("НачДата",НачалоДня(Отчет.НачДата));
Запрос.УстановитьПараметр("КонДата",КонецДня(Отчет.КонДата));
Результат = Запрос.Выполнить();

ВыборкаПодОтчетноеЛицоНаименование = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаПодОтчетноеЛицоНаименование.Следующий() Цикл
Сообщить("Ссылка: " + ВыборкаПодОтчетноеЛицоНаименование.ПодОтчетноеЛицоСсылка);
Сообщить("Наименование: " + ВыборкаПодОтчетноеЛицоНаименование.ПодОтчетноеЛицоНаименование);
Сообщить("Сумма: " + ВыборкаПодОтчетноеЛицоНаименование.СуммаОборот);
КонецЦикла;
20 timgan
 
18.05.15
12:22
up
21 Basilio
 
18.05.15
12:25
а если без убрать ОбходРезультатаЗапроса.ПоГруппировкам ПодОтчетноеЛицоНаименование есть?
22 kosts
 
18.05.15
12:26
У тебя есть итоги. Это дерево. На данном уровне (первом) есть данные только в поле ПодОтчетноеЛицоСсылка
23 kosts
 
18.05.15
12:26
(22) Ну и в сумме есть
24 kosts
 
18.05.15
12:29

ВыборкаПодОтчетноеЛицоСсылка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ПодОтчетноеЛицоСсылка.Следующий() Цикл
    ВыборкаДетальнаяИнформация  = ПодОтчетноеЛицоСсылка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаДетальнаяИнформация.Следующий() Цикл
        
    КонецЦикла;
КонецЦикла;
25 timgan
 
18.05.15
12:46
(21) Да, я тоже посмотрел, что есть
26 timgan
 
18.05.15
13:19
(24)
наверное так:
ВыборкаДетальнаяИнформация  = ПодОтчетноеЛицоСсылка.Выбрать(ОбходРезультатаЗапроса.Прямой);


тогда почему работает этот запрос:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ПрочиеРасходыОбороты.Регистратор.ПодотчетноеЛицо КАК РегистраторПодотчетноеЛицо,
|    ПрочиеРасходыОбороты.Регистратор.ПодотчетноеЛицо.Наименование КАК РегистраторПодотчетноеЛицоНаименование,
|    ПрочиеРасходыОбороты.СуммаОборот КАК СуммаОборот
|ИЗ
|    РегистрНакопления.ПрочиеРасходы.Обороты(&НачДата, &КонДата, Авто, ) КАК ПрочиеРасходыОбороты
|ГДЕ
|    ПрочиеРасходыОбороты.Регистратор ССЫЛКА Документ.АвансовыйОтчет
|ИТОГИ
|    СУММА(СуммаОборот)
|ПО
|    РегистраторПодотчетноеЛицо";

Запрос.УстановитьПараметр("НачДата",НачалоДня(Отчет.НачДата));
Запрос.УстановитьПараметр("КонДата",КонецДня(Отчет.КонДата));


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

ВыборкаРегистраторПодотчетноеЛицо = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаРегистраторПодотчетноеЛицо.Следующий() Цикл
Сообщить("Ссылка: " + ВыборкаРегистраторПодотчетноеЛицо.РегистраторПодотчетноеЛицо);
Сообщить("Наименование: " + ВыборкаРегистраторПодотчетноеЛицо.РегистраторПодотчетноеЛицоНаименование);
Сообщить("Сумма: " + ВыборкаРегистраторПодотчетноеЛицо.СуммаОборот);
КонецЦикла;
27 kosts
 
18.05.15
13:22
(26) Зачем тогда Итоги в запросе?
28 timgan
 
18.05.15
13:30
(27) Не понял вопрос? я про то:

ВыборкаПодОтчетноеЛицоСсылка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ПодОтчетноеЛицоСсылка.Следующий() Цикл


//Вот Здесь!
    ВыборкаДетальнаяИнформация  = ПодОтчетноеЛицоСсылка.Выбрать();



    Пока ВыборкаДетальнаяИнформация.Следующий() Цикл
        
    КонецЦикла;
КонецЦикла;
29 kosts
 
18.05.15
13:32
(28) Во внутренней группировке это не повлияет на выборку, т.е будет одинаковый результат
30 timgan
 
18.05.15
13:50
без fisher не разобраться!
2 + 2 = 3.9999999999999999999999999999999...