|   |   | 
| 
 | РезультатЗапроса.Выбрать(ТипОбхода, ?, ?) | ☑ | ||
|---|---|---|---|---|
| 0
    
        PR 02.09.11✎ 16:50 | 
        Кто-нибудь может доступно объяснить, что означают второй и третий параметры метода "Выбрать" из результата запроса?
  И что означает например Выборка1 = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Клиент"); Пока Выборка1.Следующий() Цикл Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Клиент, Подразделение", "ВСЕ, "); КонецЦикла; ? | |||
| 1
    
        PR 02.09.11✎ 16:51 | 
        Или вопрос по-другому.
  Как при выборке к примеру продаж вывести цифры вручную в кросс-таблицу, в строках клиенты, в колонках подразделения и организации? | |||
| 2
    
        shuhard 02.09.11✎ 16:51 | 
        (0) ВСЕ в связке с периодами идёт     | |||
| 3
    
        PR 02.09.11✎ 16:55 | 
        (2) При чем здесь периоды?     | |||
| 4
    
        PR 02.09.11✎ 17:36 | 
        Как всегда, как потрындеть, сколько должен одинесник получать или почем Украине газ продавать, так бегут наперебой посты писать, а как по профессиональной деятельности спросишь, так никто и не знает оказывается :))     | |||
| 5
    
        acsent 02.09.11✎ 17:38 | 
        третий параметр "все" - это как раз для кроссстаблицы     | |||
| 6
    
        acsent 02.09.11✎ 17:38 | 
        Имя нруппировки - можно не указывать     | |||
| 7
    
        azernot 02.09.11✎ 17:48 | 
        Я для себя это как-то определил с помощью примеров. Понял на каком-то интуитивном внутреннем уровне, объянить постороннему не возьмусь - боюсь ошибиться.
  Вот мой пример: Есть таблица данных !!!!!! ААААА 11111 22222 33333 БББББ 11111 22222 ВВВВВ 11111 ##### ААААА 22222 33333 БББББ 33333 ВВВВВ 11111 33333 44444 $$$$$ БББББ 44444 22222 33333 ВВВВВ 11111 22222 44444 (ресурс для каждой строки равен 1) Запрос ВЫБРАТЬ "!!!!!" КАК Символ, "ААААА" КАК Буква, "11111" КАК Цифра, 1 КАК Ресурс ПОМЕСТИТЬ Группировки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "!!!!!", "ААААА", "22222", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "!!!!!", "ААААА", "33333", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "!!!!!", "БББББ", "11111", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "!!!!!", "БББББ", "22222", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "!!!!!", "ВВВВВ", "11111", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "#####", "ААААА", "33333", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "#####", "ААААА", "22222", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "#####", "БББББ", "33333", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "#####", "ВВВВВ", "11111", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "#####", "ВВВВВ", "44444", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "#####", "ВВВВВ", "33333", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "$$$$$", "БББББ", "44444", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "$$$$$", "БББББ", "22222", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "$$$$$", "БББББ", "33333", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "$$$$$", "ВВВВВ", "11111", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "$$$$$", "ВВВВВ", "44444", 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "$$$$$", "ВВВВВ", "22222", 1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Группировки.Символ КАК Символ, Группировки.Буква КАК Буква, Группировки.Цифра КАК Цифра, Группировки.Ресурс КАК Ресурс ИЗ Группировки КАК Группировки ИТОГИ СУММА(Ресурс) ПО ОБЩИЕ, Символ, Буква, Цифра Обработка результатов запроса ВыборкаОбщихИтогов = РезЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщихИтогов.Следующий(); ВыборкаПоСимволам = ВыборкаОбщихИтогов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Символ", "Все"); Пока ВыборкаПоСимволам.Следующий() Цикл Сообщить("По символам. Символ = "+ ВыборкаПоСимволам.Символ + "; Буква = "+ВыборкаПоСимволам.Буква + "; Цифра = "+ВыборкаПоСимволам.Цифра +"; Сумма итога = "+ ВыборкаПоСимволам.Ресурс); ВыборкаПоСимволамБуквам = ВыборкаПоСимволам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоСимволамБуквам.Следующий() Цикл Сообщить("По символам буквам. Символ = "+ ВыборкаПоСимволамБуквам.Символ + "; Буква = "+ВыборкаПоСимволамБуквам.Буква + "; Цифра = "+ВыборкаПоСимволамБуквам.Цифра +"; Сумма итога = "+ ВыборкаПоСимволамБуквам.Ресурс); ВыборкаПоСимволамБуквамЦифрам = ВыборкаПоСимволамБуквам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоСимволамБуквамЦифрам.Следующий() Цикл Сообщить("По символам буквам цифрам. Символ = "+ ВыборкаПоСимволамБуквамЦифрам.Символ + "; Буква = "+ВыборкаПоСимволамБуквамЦифрам.Буква + "; Цифра = "+ВыборкаПоСимволамБуквамЦифрам.Цифра +"; Сумма итога = "+ ВыборкаПоСимволамБуквамЦифрам.Ресурс); КонецЦикла; КонецЦикла; КонецЦикла; ВыборкаПоВсемБуквам = ВыборкаОбщихИтогов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Буква"); Пока ВыборкаПоВсемБуквам.Следующий() Цикл Сообщить("Все буквы. Символ = "+ ВыборкаПоВсемБуквам.Символ + "; Буква = "+ВыборкаПоВсемБуквам.Буква + "; Цифра = "+ВыборкаПоВсемБуквам.Цифра +"; Сумма итога = "+ ВыборкаПоВсемБуквам.Ресурс); ВыборкаПоВсемЦифрам = ВыборкаПоВсемБуквам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Цифра", "Все"); //В выборке будут все значения цифр встречающиеся в запросе, хотя ресурсы будут посчитаны с учётом группировки по буквам Пока ВыборкаПоВсемЦифрам.Следующий() Цикл Сообщить("Все цифры. Символ = "+ ВыборкаПоВсемЦифрам.Символ + "; Буква = "+ВыборкаПоВсемЦифрам.Буква + "; Цифра = "+ВыборкаПоВсемЦифрам.Цифра +"; Сумма итога = "+ ВыборкаПоВсемЦифрам.Ресурс); ВыборкаПоСимволам = ВыборкаПоВсемЦифрам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Символ", "Буква"); //В выборке будут все только символы встречающиеся на уровне буквы, т.е. не только те, которые присутствуют для текущей Цифры, но и не все встречающиеся в запросе Пока ВыборкаПоСимволам.Следующий() Цикл Сообщить("Все символы. Символ = "+ ВыборкаПоСимволам.Символ + "; Буква = "+ВыборкаПоСимволам.Буква + "; Цифра = "+ВыборкаПоСимволам.Цифра +"; Сумма итога = "+ ВыборкаПоСимволам.Ресурс); КонецЦикла; КонецЦикла; КонецЦикла; Результат в окне сообщений: По символам. Символ = !!!!!; Буква = ; Цифра = ; Сумма итога = 6 По символам буквам. Символ = !!!!!; Буква = ААААА; Цифра = ; Сумма итога = 3 По символам буквам цифрам. Символ = !!!!!; Буква = ААААА; Цифра = 11111; Сумма итога = 1 По символам буквам цифрам. Символ = !!!!!; Буква = ААААА; Цифра = 22222; Сумма итога = 1 По символам буквам цифрам. Символ = !!!!!; Буква = ААААА; Цифра = 33333; Сумма итога = 1 По символам буквам. Символ = !!!!!; Буква = БББББ; Цифра = ; Сумма итога = 2 По символам буквам цифрам. Символ = !!!!!; Буква = БББББ; Цифра = 11111; Сумма итога = 1 По символам буквам цифрам. Символ = !!!!!; Буква = БББББ; Цифра = 22222; Сумма итога = 1 По символам буквам. Символ = !!!!!; Буква = ВВВВВ; Цифра = ; Сумма итога = 1 По символам буквам цифрам. Символ = !!!!!; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 1 По символам. Символ = #####; Буква = ; Цифра = ; Сумма итога = 6 По символам буквам. Символ = #####; Буква = ААААА; Цифра = ; Сумма итога = 2 По символам буквам цифрам. Символ = #####; Буква = ААААА; Цифра = 22222; Сумма итога = 1 По символам буквам цифрам. Символ = #####; Буква = ААААА; Цифра = 33333; Сумма итога = 1 По символам буквам. Символ = #####; Буква = БББББ; Цифра = ; Сумма итога = 1 По символам буквам цифрам. Символ = #####; Буква = БББББ; Цифра = 33333; Сумма итога = 1 По символам буквам. Символ = #####; Буква = ВВВВВ; Цифра = ; Сумма итога = 3 По символам буквам цифрам. Символ = #####; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 1 По символам буквам цифрам. Символ = #####; Буква = ВВВВВ; Цифра = 33333; Сумма итога = 1 По символам буквам цифрам. Символ = #####; Буква = ВВВВВ; Цифра = 44444; Сумма итога = 1 По символам. Символ = $$$$$; Буква = ; Цифра = ; Сумма итога = 6 По символам буквам. Символ = $$$$$; Буква = БББББ; Цифра = ; Сумма итога = 3 По символам буквам цифрам. Символ = $$$$$; Буква = БББББ; Цифра = 22222; Сумма итога = 1 По символам буквам цифрам. Символ = $$$$$; Буква = БББББ; Цифра = 33333; Сумма итога = 1 По символам буквам цифрам. Символ = $$$$$; Буква = БББББ; Цифра = 44444; Сумма итога = 1 По символам буквам. Символ = $$$$$; Буква = ВВВВВ; Цифра = ; Сумма итога = 3 По символам буквам цифрам. Символ = $$$$$; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 1 По символам буквам цифрам. Символ = $$$$$; Буква = ВВВВВ; Цифра = 22222; Сумма итога = 1 По символам буквам цифрам. Символ = $$$$$; Буква = ВВВВВ; Цифра = 44444; Сумма итога = 1 Все буквы. Символ = ; Буква = ААААА; Цифра = ; Сумма итога = 5 Все цифры. Символ = ; Буква = ААААА; Цифра = 11111; Сумма итога = 1 Все символы. Символ = !!!!!; Буква = ААААА; Цифра = 11111; Сумма итога = 1 Все символы. Символ = #####; Буква = ААААА; Цифра = 11111; Сумма итога = Все цифры. Символ = ; Буква = ААААА; Цифра = 22222; Сумма итога = 2 Все символы. Символ = !!!!!; Буква = ААААА; Цифра = 22222; Сумма итога = 1 Все символы. Символ = #####; Буква = ААААА; Цифра = 22222; Сумма итога = 1 Все цифры. Символ = ; Буква = ААААА; Цифра = 33333; Сумма итога = 2 Все символы. Символ = !!!!!; Буква = ААААА; Цифра = 33333; Сумма итога = 1 Все символы. Символ = #####; Буква = ААААА; Цифра = 33333; Сумма итога = 1 Все цифры. Символ = ; Буква = ААААА; Цифра = 44444; Сумма итога = Все буквы. Символ = ; Буква = БББББ; Цифра = ; Сумма итога = 6 Все цифры. Символ = ; Буква = БББББ; Цифра = 11111; Сумма итога = 1 Все символы. Символ = !!!!!; Буква = БББББ; Цифра = 11111; Сумма итога = 1 Все символы. Символ = #####; Буква = БББББ; Цифра = 11111; Сумма итога = Все символы. Символ = $$$$$; Буква = БББББ; Цифра = 11111; Сумма итога = Все цифры. Символ = ; Буква = БББББ; Цифра = 22222; Сумма итога = 2 Все символы. Символ = !!!!!; Буква = БББББ; Цифра = 22222; Сумма итога = 1 Все символы. Символ = #####; Буква = БББББ; Цифра = 22222; Сумма итога = Все символы. Символ = $$$$$; Буква = БББББ; Цифра = 22222; Сумма итога = 1 Все цифры. Символ = ; Буква = БББББ; Цифра = 33333; Сумма итога = 2 Все символы. Символ = !!!!!; Буква = БББББ; Цифра = 33333; Сумма итога = Все символы. Символ = #####; Буква = БББББ; Цифра = 33333; Сумма итога = 1 Все символы. Символ = $$$$$; Буква = БББББ; Цифра = 33333; Сумма итога = 1 Все цифры. Символ = ; Буква = БББББ; Цифра = 44444; Сумма итога = 1 Все символы. Символ = !!!!!; Буква = БББББ; Цифра = 44444; Сумма итога = Все символы. Символ = #####; Буква = БББББ; Цифра = 44444; Сумма итога = Все символы. Символ = $$$$$; Буква = БББББ; Цифра = 44444; Сумма итога = 1 Все буквы. Символ = ; Буква = ВВВВВ; Цифра = ; Сумма итога = 7 Все цифры. Символ = ; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 3 Все символы. Символ = !!!!!; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 1 Все символы. Символ = #####; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 1 Все символы. Символ = $$$$$; Буква = ВВВВВ; Цифра = 11111; Сумма итога = 1 Все цифры. Символ = ; Буква = ВВВВВ; Цифра = 22222; Сумма итога = 1 Все символы. Символ = !!!!!; Буква = ВВВВВ; Цифра = 22222; Сумма итога = Все символы. Символ = #####; Буква = ВВВВВ; Цифра = 22222; Сумма итога = Все символы. Символ = $$$$$; Буква = ВВВВВ; Цифра = 22222; Сумма итога = 1 Все цифры. Символ = ; Буква = ВВВВВ; Цифра = 33333; Сумма итога = 1 Все символы. Символ = !!!!!; Буква = ВВВВВ; Цифра = 33333; Сумма итога = Все символы. Символ = #####; Буква = ВВВВВ; Цифра = 33333; Сумма итога = 1 Все символы. Символ = $$$$$; Буква = ВВВВВ; Цифра = 33333; Сумма итога = Все цифры. Символ = ; Буква = ВВВВВ; Цифра = 44444; Сумма итога = 2 Все символы. Символ = !!!!!; Буква = ВВВВВ; Цифра = 44444; Сумма итога = Все символы. Символ = #####; Буква = ВВВВВ; Цифра = 44444; Сумма итога = 1 Все символы. Символ = $$$$$; Буква = ВВВВВ; Цифра = 44444; Сумма итога = 1 Думаю, если возьмёшь и поиграешься, то тоже для себя что-то прояснишь. | |||
| 8
    
        PR 02.09.11✎ 17:50 | 
        (5) Все понятно до тех пор, пока выводишь одну группировку для колонок, просто для нее указываешь "ВСЕ".
  А если нужно в колонках вывести две группировки, что писать в последней выборке (Выборка3 в моем примере)? Выборка1 = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Клиент"); Пока Выборка1.Следующий() Цикл Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Организация", "ВСЕ"); Пока Выборка2.Следующий() Цикл Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подразделение"); Пока Выборка3.Следующий() Цикл КонецЦикла; КонецЦикла; КонецЦикла; | |||
| 9
    
        Ёпрст гуру 02.09.11✎ 17:50 | 
        (0) второй вообще никак не используется и нахрен он нужен - не ясно.     | |||
| 10
    
        PR 02.09.11✎ 17:52 | 
        (9) Да ну! Вообще-то в нем указываешь, по каким полям обходить группировки.     | |||
| 11
    
        azernot 02.09.11✎ 17:55 | 
        В третьем параметре указываешь перечень группировок с коотрых собирать значения группировок. Т.е. Если в (8) Нужно в Выборке3 перебрать все подразделения для клиента независимо от того, если ли такие подразделения для текущей организации нудно указать Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подразделение", "Клиент");     | |||
| 12
    
        PR 02.09.11✎ 18:00 | 
        (11) Не так.
  В Выборке3 нужно выбрать все подразделения для организации, независимо от того, были ли они в клиенте. | |||
| 13
    
        azernot 02.09.11✎ 18:03 | 
        (12) Тогда у тебя в (8) правильный код..     | |||
| 14
    
        PR 02.09.11✎ 18:05 | 
        (13) Так то и странно, что код правильный, а не получается.
  Лесенка выводится. | |||
| 15
    
        azernot 02.09.11✎ 18:24 | 
        (14) Да, видимо никак... Нужно формировать отдельный список всех подразделений для организаций, перебирать его и юзать "НайтиСледующий"     | |||
| 16
    
        PR 02.09.11✎ 18:33 | 
        (15) Да так и сделали примерно.
  Обыдна просто, что не работает o_O | |||
| 17
    
        PR 02.09.11✎ 18:41 | 
        Так, кстати и осталось покрыто мраком, что значит указание во втором и третьем параметрах нескольких группировок через запятую.
  Например Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Клиент, Подразделение", "ВСЕ, "); | |||
| 18
    
        PR 02.09.11✎ 19:55 | 
        Самый простой вариант обойтись малой кровью видимо такой
  Выборка1 = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Клиент"); Пока Выборка1.Следующий() Цикл Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Организация", "ВСЕ"); Пока Выборка2.Следующий() Цикл Выборка3 = Выборка2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подразделение", "ВСЕ"); Пока Выборка3.Следующий() Цикл //Если здесь подразделение, не входящее в список подразделений для этой организации, то пропускаем КонецЦикла; КонецЦикла; КонецЦикла; | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |