Имя: Пароль:
1C
1С v8
Растолкуйте неграмотному крестьянину как работает это запрос из самописной конфы
0 Pavel__SSS
 
01.09.13
19:15
Запрос=Новый Запрос;
                
            Запрос.УстановитьПараметр("Дата1",СтрТЗД.Док.Дата);
            Запрос.УстановитьПараметр("Дата2",СтрТЗД.Док.Дата);
            Запрос.УстановитьПараметр("Счет62",СчетПоКоду("62"));
            Запрос.УстановитьПараметр("Счет682",СчетПоКоду("68.02.01"));
            Запрос.УстановитьПараметр("Регистратор",СтрТЗД.Док);
            
            М=Новый Массив;
            М.Добавить(СчетПоКоду("90"));
            М.Добавить(СчетПоКоду("91"));
            М.Добавить(СчетПоКоду("98"));
            Запрос.УстановитьПараметр("СчетаРеал",М);
            
            Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
            
            Запрос.Текст="ВЫБРАТЬ
                         |    ХозрасчетныйОборотыДтКт.СуммаОборот
                         |ПОМЕСТИТЬ Оборот901
                         |ИЗ
                         |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, Регистратор, СчетДт В ИЕРАРХИИ (&Счет62), , СчетКт В ИЕРАРХИИ (&СчетаРеал), , ) КАК ХозрасчетныйОборотыДтКт
                         |ГДЕ
                         |    ХозрасчетныйОборотыДтКт.Регистратор = &Регистратор";
            Запрос.Выполнить();
            Запрос.Текст="
                         |
                         |////////////////////////////////////////////////////////////////////////////////
                         |ВЫБРАТЬ
                         |    ХозрасчетныйОборотыДтКт.СуммаОборот
                         |ПОМЕСТИТЬ Оборот903
                         |ИЗ
                         |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, Регистратор, , , СчетКт = &Счет682, , ) КАК ХозрасчетныйОборотыДтКт
                         |ГДЕ
                         |    ХозрасчетныйОборотыДтКт.Регистратор = &Регистратор
                         |";
            Запрос.Выполнить();
            Запрос.Текст="
                         |
                         |////////////////////////////////////////////////////////////////////////////////
                         |ВЫБРАТЬ
                         |    Оборот901.СуммаОборот КАК Сумма,
                         |    0 КАК СуммаНДС
                         |ИЗ
                         |    Оборот901 КАК Оборот901
                         |
                         |ОБЪЕДИНИТЬ ВСЕ
                         |
                         |ВЫБРАТЬ
                         |    0,
                         |    Оборот903.СуммаОборот
                         |ИЗ
                         |    Оборот903 КАК Оборот903";
                        
            ТЗР=Запрос.Выполнить().Выгрузить();
            
            СтрТЗД.Сумма=ТЗР.Итог("Сумма");
            СтрТЗД.СуммаНДС=ТЗР.Итог("СуммаНДС");

Особенно интересно как работает     "0 КАК СуммаНДС"
и
|ОБЪЕДИНИТЬ ВСЕ
                         |
                         |ВЫБРАТЬ
                         |    0,
1 mikecool
 
01.09.13
19:18
почитай про то, как объединяются запросы
можно писать и так
выбрать "а" как полеА
выбор некоей константы
2 GROOVY
 
01.09.13
19:25
3 Любопытная
 
01.09.13
19:30
(0)Добавление недостающих для объединения полей.
В итоге получается таблица с двумя полями - Оборот и НДС, но для в таблицу Оборот901 надо добавить поле СуммаНДС, а в таблицу Оборот903 - поле СуммаОборот
4 Pavel__SSS
 
01.09.13
19:50
Непонятно вот это место:

0 КАК СуммаНДС

почему ноль! как СуммаНДС

обычно в этом месте пишут имя поля таблицы из которой выбирают данные, а почему здесь 0?
5 Wobland
 
01.09.13
19:51
(4) для того, чтобы поле было. в него данные поедут во втором запросе
6 Pavel__SSS
 
01.09.13
20:03
Спасибо, теперь понятно.
7 Pavel__SSS
 
01.09.13
20:16
Еще не понятно по какому полю таблицы соединятся.
8 Славен
 
01.09.13
20:25
(7)jyb yt cjtlbyz.ncz jyb cevvbhe.ncz gj jlbyfrjdsv gjkzv
9 Wobland
 
01.09.13
20:25
(7) говорят, у тебя объединение
10 Славен
 
01.09.13
20:26
тьху... они не соединяются, они суммируются по одинаковым полям
11 Wobland
 
01.09.13
20:26
(10) суммируются - это плюсиком?
12 Лефмихалыч
 
01.09.13
20:47
>как работает это запрос
этот запрос работает раза в 4 медленее, чем работал бы, если бы Выполнить() было только 1 раз
13 Славен
 
01.09.13
21:18
(11)нет это добавлением строк в таблицу )
14 mikecool
 
01.09.13
21:21
-как работает трансформатор?
-уууууууууу
15 Бертыш
 
01.09.13
21:22
(2) Давно пора. Как то сильно много последнее время непонимания запросов у новичков
16 mikecool
 
01.09.13
21:31
(15) если бы только у новичков...