|   |   | 
| 
 | Вывод результата запроса в древовидной структуре | ☑ | ||
|---|---|---|---|---|
| 0
    
        LivingStar 24.09.13✎ 05:12 | 
        Давно не выводил результат запроса в древовидной структцре применяя автогруппировку. И вот поступило такое задание. Нет ли у кого доступно читаемого примера кода, который отображает принцип вывода в подобном формате. Главное правильно вывести. Вывести в древовидной структуре хочу имея вот такой запрос, склад, а в складе качество номенклатуры:
 Запрос.Текст = " |ВЫБРАТЬ | ВозвратТоваровПоставщикуТовары.Номенклатура КАК Номенклатура, | ВозвратТоваровПоставщикуТовары.Качество КАК Качество, | СУММА(ВозвратТоваровПоставщикуТовары.Количество) КАК Количество, | СУММА(ВозвратТоваровПоставщикуТовары.Сумма) КАК Сумма, | ВозвратТоваровПоставщику.Склад КАК Склад |ИЗ | Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары | ПО ВозвратТоваровПоставщику.Ссылка = ВозвратТоваровПоставщикуТовары.Ссылка |ГДЕ | ВозвратТоваровПоставщикуТовары.Ссылка.Склад В ИЕРАРХИИ(&Склад) | И ВозвратТоваровПоставщикуТовары.Качество В ИЕРАРХИИ(&Качество) | И ВозвратТоваровПоставщикуТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата | |СГРУППИРОВАТЬ ПО | ВозвратТоваровПоставщикуТовары.Номенклатура, | ВозвратТоваровПоставщикуТовары.Качество, | ВозвратТоваровПоставщику.Склад | |УПОРЯДОЧИТЬ ПО | Склад, | Качество"; | |||
| 1
    
        LivingStar 24.09.13✎ 05:34 | 
        как то сделал но почему то под группой сворачивается только 1 строка, следующей группы     | |||
| 2
    
        Rie модератор 24.09.13✎ 05:35 | 
        ИТОГИ     | |||
| 3
    
        LivingStar 24.09.13✎ 05:43 | 
        (2) вот как я вывожу, пока не получается (((
 Для Каждого Стр Из ТабЗнач Цикл ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ Если СкладГр <> Стр.Склад и СкладГр <> "" Тогда // ВЫВОД ИТОГОВ ->> // ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтоги1,3,"СТРОКИ",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги5,,,); ОбластьИтоги6.Параметры.КоличествоИтог = Формат(КоличествоИтог, "ЧЦ=10; ЧДЦ=3"); ОбластьИтоги7.Параметры.СуммаИтог = Формат(СуммаИтог, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ // ВЫВОД ГРУППЫ СКЛАД ->> //ОбластьГр1.Область("R1C2").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево; //ОбластьГр1.Область("R1C2").ЦветТекста = ЦветСклада; ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрСклад1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад2,,,); КонецЕсли; ОбластьГрСклад3.Параметры.НазваниеГруппы = Стр.Склад; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ СКЛАД Ном = 1; НомКач = 1; КоличествоИтог = 0; СуммаИтог = 0; КачествоГр = ""; ИначеЕсли СкладГр = "" Тогда // ВЫВОД ГРУППЫ СКЛАД ->> //ОбластьГр1.Область("R1C2").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево; //ОбластьГр1.Область("R1C2").ЦветТекста = ЦветСклада; ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрСклад1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад2,,,); КонецЕсли; ОбластьГрСклад3.Параметры.НазваниеГруппы = Стр.Склад; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ СКЛАД КонецЕсли; Если КачествоГр <> Стр.Качество и КачествоГр <> "" Тогда // ВЫВОД ГРУППЫ КАЧЕСТВО ->> //ОбластьГр1.Область("R1C2").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; //ОбластьГр1.Область("R1C2").ЦветТекста = ЦветКачества; ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрКач1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач2,,,); КонецЕсли; ОбластьГрКач3.Параметры.НазваниеГруппы = Стр.Качество; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ КАЧЕСТВО НомКач = 1; ИначеЕсли КачествоГр = "" Тогда // ВЫВОД ГРУППЫ КАЧЕСТВО ->> //ОбластьГр1.Область("R1C2").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право; //ОбластьГр1.Область("R1C2").ЦветТекста = ЦветКачества; ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрКач1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач2,,,); КонецЕсли; ОбластьГрКач3.Параметры.НазваниеГруппы = Стр.Качество; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ КАЧЕСТВО КонецЕсли; // ОбластьСтроки1.Параметры.Ном = Ном; ОбластьСтроки2.Параметры.НомКач = НомКач; ОбластьСтроки3.Параметры.Номенклатура = Стр.Номенклатура; ОбластьСтроки4.Параметры.Склад = Стр.Склад; ОбластьСтроки5.Параметры.Качество = Стр.Качество; // ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтроки1,3,"СТРОКИ",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки5,,,); ОбластьСтроки6.Параметры.Количество = Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3"); ОбластьСтроки7.Параметры.Сумма = Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки7,,,); // Ном = Ном + 1; НомКач = НомКач + 1; // КоличествоИтог = КоличествоИтог + Число(Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3")); СуммаИтог = СуммаИтог + Число(Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2")); // СкладГр = Стр.Склад; КачествоГр = Стр.Качество; // ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ // КонецЦикла; // // ВЫВОД ОБЛАСТИ ИТОГИ ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтоги1,3,"СТРОКИ",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги5,,,); ОбластьИтоги6.Параметры.КоличествоИтог = Формат(КоличествоИтог, "ЧЦ=10; ЧДЦ=3"); ОбластьИтоги7.Параметры.СуммаИтог = Формат(СуммаИтог, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги7,,,); // КОНЕЦ ВЫВОДА ОБЛАСТИ ИТОГИ <<- ЭлементыФормы.ТабРезультат.ТолькоПросмотр = Истина; КонецПроцедуры | |||
| 4
    
        LivingStar 24.09.13✎ 05:46 | 
        не пойму почему не сворачивается как нужно:
 1. Склад ___2. Качество ______3. Строки 4. Итоги | |||
| 5
    
        LivingStar 24.09.13✎ 06:03 | 
        По коду проходит группировку 1, потом группировку 2, потом группировку 3 до смены значения группировки 2 или 1. Почему оно не сворачивается?     | |||
| 6
    
        alexiv79 24.09.13✎ 06:05 | 
        (1) ИТОГИ надо использовать. Те.е надо дописать
 ИТОГИ ПО Склад, Номенклатура Потом выводишь группировки-т.е. ВыборкаПоСкладу = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапрос.ПоГруппировкам) . Потом выводишь по номенклатуре ВыборкаПоНоменклатуре = ВыборкаПоСкладу.Выбрать() - как-то так | |||
| 7
    
        alexiv79 24.09.13✎ 06:06 | 
        Если нужны общие, то В ИТОГИ на первое место ставишь ОБЩИЕ     | |||
| 8
    
        andreymongol82 24.09.13✎ 06:06 | 
        (5) Еще раз внимательно посмотри (2)     | |||
| 9
    
        alexiv79 24.09.13✎ 06:07 | 
        +(6) Писал по памяти, так что возможны ощибки-но примерно так синтаксис     | |||
| 10
    
        LivingStar 24.09.13✎ 06:14 | 
        (8) то есть алгоритм что в (3) не уместен?     | |||
| 11
    
        Cyberhawk 24.09.13✎ 06:15 | 
        (10) алгоритм в (0) неуместен     | |||
| 12
    
        LivingStar 24.09.13✎ 06:18 | 
        (11) ну в (0) запрос, ему в соответствии с замечаниями добавляю:
 Запрос.Текст = " |ВЫБРАТЬ | ВозвратТоваровПоставщикуТовары.Номенклатура КАК Номенклатура, | ВозвратТоваровПоставщикуТовары.Качество КАК Качество, | СУММА(ВозвратТоваровПоставщикуТовары.Количество) КАК Количество, | СУММА(ВозвратТоваровПоставщикуТовары.Сумма) КАК Сумма, | ВозвратТоваровПоставщику.Склад КАК Склад |ИЗ | Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары | ПО ВозвратТоваровПоставщику.Ссылка = ВозвратТоваровПоставщикуТовары.Ссылка |ГДЕ | ВозвратТоваровПоставщикуТовары.Ссылка.Склад В ИЕРАРХИИ(&Склад) | И ВозвратТоваровПоставщикуТовары.Качество В ИЕРАРХИИ(&Качество) | И ВозвратТоваровПоставщикуТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата | |СГРУППИРОВАТЬ ПО | ВозвратТоваровПоставщикуТовары.Номенклатура, | ВозвратТоваровПоставщикуТовары.Качество, | ВозвратТоваровПоставщику.Склад | |УПОРЯДОЧИТЬ ПО | Склад, | Качество |ИТОГИ ПО | Склад, | Качество, | Номенклатура |"; Но алгоритм к нему (3) не подходит все же да??? | |||
| 13
    
        Cyberhawk 24.09.13✎ 06:20 | 
        (12) в консоли запросов посмотри, что выдает твой запрос     | |||
| 14
    
        Cyberhawk 24.09.13✎ 06:21 | 
        +(13) затем сохрани в виде плоской таблицы и выложи это сюда в удобочитаемом виде     | |||
| 15
    
        LivingStar 24.09.13✎ 06:23 | 
        (14) а как это в виде плоской?     | |||
| 16
    
        LivingStar 24.09.13✎ 06:26 | 
        вот так выводит:
 Итог по складу 1 Итог по качеству 1 Номенклатура1 Номенклатура2 ... номенклатура N Итог по качеству2 Номенклатура1 Номенклатура2 ... номенклатура N Итог по качеству3 Номенклатура1 Номенклатура2 ... номенклатура N Итог по складу 2 Итог по качеству 1 Номенклатура1 Номенклатура2 ... номенклатура N Итог по качеству2 ... | |||
| 17
    
        LivingStar 24.09.13✎ 06:45 | 
        (6) А если у меня это таблица??? Так как сначала я выгружаю в таблицу и сворачиваю её !!! То есть не получится видимо сделать обход результата запроса по группировкам !     | |||
| 18
    
        LivingStar 24.09.13✎ 06:50 | 
        (8) А что без итогов никак не вывести что ли? Это если можно выводить прямо из запроса. Я вывожу из таблицы, можно же и самому контролировать и задавать вывод!!!!     | |||
| 19
    
        Лодырь 24.09.13✎ 06:51 | 
        (18) Ну задавай и контролируй. В чем вопрос то тогда?     | |||
| 20
    
        LivingStar 24.09.13✎ 07:01 | 
        (19) Так не получается! В (3) же пробовал, сейчас думаю как вывести. Что то не выводится!!! Что нужно итоги понял, спасибо, но не в этом случае видимо, так как я вывожу из свернутой таблицы! Вот и узнаю можно ли самому вывести, думаю можно, так и алгоритм есть... Может автогруппировку строк где не там заканчиваю??!!     | |||
| 21
    
        Rie 24.09.13✎ 07:02 | 
        (20) Мысль - "выводить из исходной, а не из свёрнутой, а все расчёты делать в SQL" - в голову не приходила?     | |||
| 22
    
        Cyberhawk 24.09.13✎ 07:03 | 
        (15) ну обычная ТЗ. То что выдает запрос в результате     | |||
| 23
    
        LivingStar 24.09.13✎ 07:12 | 
        (21) Если запрос выводит задвоенные записи, что с ними делать? Сворачиваю в таблице всегда. Как там то?     | |||
| 24
    
        LivingStar 24.09.13✎ 07:14 | 
        ВОО!!! Начал мочить!!! Раскидав по (3) начало и завершение автогруппировки. Буду добивать!!!
 (21) Можно конечно, но двигаешься всегда по своему, заложенному алгоритму, не принимая ничего стороннего. Пока совсем не поймешь что то что делаешь в корень не верно... От нехватки умения это. | |||
| 25
    
        catena 24.09.13✎ 07:19 | 
        (23)Сгруппировать?     | |||
| 26
    
        LivingStar 24.09.13✎ 07:21 | 
        (25) Так в (0) же группируется?!!
 Вообще правильно конечно все в запросе приводить к нужному виду, а потом выводить по группировкам как и рекомендуют! Возможно не все можно сделать в запросе? | |||
| 27
    
        Лодырь 24.09.13✎ 07:30 | 
        (26) Из того что ты делаешь, все можно сделать в СКД.     | |||
| 28
    
        LivingStar 24.09.13✎ 09:59 | 
        (27) Пример бы изложенный на странице был бы где, как что то подобное делать, тут веть нужно подробное руководство. Изуча которое можно использовать СКД. Пока я её не использую....     | |||
| 29
    
        LivingStar 24.09.13✎ 10:05 | 
        Интересно почему при таком выводе я не могу свернуть группу "СКЛАД", самого верхнего уровня ?
 Для Каждого Стр Из ТабЗнач Цикл //ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ Если СкладГр <> Стр.Склад и СкладГр <> "" Тогда // ВЫВОД ИТОГОВ ПО ГРУППЕ КАЧЕСТВО ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтогиК1,1,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК5,,,); ОбластьИтогиК6.Параметры.КоличествоИтогК = Формат(КоличествоИтогК, "ЧЦ=10; ЧДЦ=3"); ОбластьИтогиК7.Параметры.СуммаИтогК = Формат(СуммаИтогК, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ ПО ГРУППЕ КАЧЕСТВО // // ВЫВОД ИТОГОВ ПО ГРУППЕ СКЛАД ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтоги1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги5,,,); ОбластьИтоги6.Параметры.КоличествоИтогСклад = Формат(КоличествоИтогСклад, "ЧЦ=10; ЧДЦ=3"); ОбластьИтоги7.Параметры.СуммаИтогСклад = Формат(СуммаИтогСклад, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ ПО ГРУППЕ СКЛАД // ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ // ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ // ВЫВОД ГРУППЫ СКЛАД ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрСклад1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад2,,,); КонецЕсли; ОбластьГрСклад3.Параметры.НазваниеГруппы = Стр.Склад; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ СКЛАД Ном = 1; НомКач = 1; КоличествоИтогСклад = 0; СуммаИтогСклад = 0; // КоличествоИтогК = 0; СуммаИтогК = 0; // КачествоГр = ""; ИначеЕсли СкладГр = "" Тогда ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ // ВЫВОД ГРУППЫ СКЛАД ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрСклад1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад2,,,); КонецЕсли; ОбластьГрСклад3.Параметры.НазваниеГруппы = Стр.Склад; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ СКЛАД КонецЕсли; Если КачествоГр <> Стр.Качество и КачествоГр <> "" Тогда // ВЫВОД ИТОГОВ ГРУППЫ К ->> // ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтогиК1,1,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК5,,,); ОбластьИтогиК6.Параметры.КоличествоИтогК = Формат(КоличествоИтогК, "ЧЦ=10; ЧДЦ=3"); ОбластьИтогиК7.Параметры.СуммаИтогК = Формат(СуммаИтогК, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ ГРУППЫ К // ВЫВОД ГРУППЫ КАЧЕСТВО ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрКач1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач2,,,); КонецЕсли; ОбластьГрКач3.Параметры.НазваниеГруппы = Стр.Качество; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ КАЧЕСТВО НомКач = 1; КоличествоИтогК = 0; СуммаИтогК = 0; ИначеЕсли КачествоГр = "" Тогда // ВЫВОД ГРУППЫ КАЧЕСТВО ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрКач1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач2,,,); КонецЕсли; ОбластьГрКач3.Параметры.НазваниеГруппы = Стр.Качество; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ КАЧЕСТВО КонецЕсли; // ОбластьСтроки1.Параметры.Ном = Ном; ОбластьСтроки2.Параметры.НомКач = НомКач; ОбластьСтроки3.Параметры.Номенклатура = Стр.Номенклатура; ОбластьСтроки4.Параметры.Склад = Стр.Склад; ОбластьСтроки5.Параметры.Качество = Стр.Качество; // ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтроки1,3,"СТРОКИ",Ложь); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки5,,,); ОбластьСтроки6.Параметры.Количество = Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3"); ОбластьСтроки7.Параметры.Сумма = Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки7,,,); // Ном = Ном + 1; НомКач = НомКач + 1; // КоличествоИтогСклад = КоличествоИтогСклад + Число(Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3")); СуммаИтогСклад = СуммаИтогСклад + Число(Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2")); // КоличествоИтогК = КоличествоИтогК + Число(Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3")); СуммаИтогК = СуммаИтогК + Число(Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2")); // СкладГр = Стр.Склад; КачествоГр = Стр.Качество; // КонецЦикла; // // ВЫВОД ОБЛАСТИ ИТОГИ К ->> // ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтогиК1,1,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК5,,,); ОбластьИтогиК6.Параметры.КоличествоИтогК = Формат(КоличествоИтогК, "ЧЦ=10; ЧДЦ=3"); ОбластьИтогиК7.Параметры.СуммаИтогК = Формат(СуммаИтогК, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК7,,,); // <<- КОНЕЦ ВЫВОДА ОБЛАСТИ ИТОГОВ К // ВЫВОД ОБЛАСТИ ИТОГИ ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтоги1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги5,,,); ОбластьИтоги6.Параметры.КоличествоИтогСклад = Формат(КоличествоИтогСклад, "ЧЦ=10; ЧДЦ=3"); ОбластьИтоги7.Параметры.СуммаИтогСклад = Формат(СуммаИтогСклад, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги7,,,); // КОНЕЦ ВЫВОДА ОБЛАСТИ ИТОГИ <<- // ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ // ЭлементыФормы.ТабРезультат.ТолькоПросмотр = Истина; КонецПроцедуры | |||
| 30
    
        LivingStar 24.09.13✎ 10:57 | 
        уровень не тот указал !
 Для Каждого Стр Из ТабЗнач Цикл //ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ Если СкладГр <> Стр.Склад и СкладГр <> "" Тогда // ВЫВОД ИТОГОВ ПО ГРУППЕ КАЧЕСТВО ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтогиК1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК5,,,); ОбластьИтогиК6.Параметры.КоличествоИтогК = Формат(КоличествоИтогК, "ЧЦ=10; ЧДЦ=3"); ОбластьИтогиК7.Параметры.СуммаИтогК = Формат(СуммаИтогК, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ ПО ГРУППЕ КАЧЕСТВО // // ВЫВОД ИТОГОВ ПО ГРУППЕ СКЛАД ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтоги1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги5,,,); ОбластьИтоги6.Параметры.КоличествоИтогСклад = Формат(КоличествоИтогСклад, "ЧЦ=10; ЧДЦ=3"); ОбластьИтоги7.Параметры.СуммаИтогСклад = Формат(СуммаИтогСклад, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ ПО ГРУППЕ СКЛАД // ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ // ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ // ВЫВОД ГРУППЫ СКЛАД ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрСклад1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад2,,,); КонецЕсли; ОбластьГрСклад3.Параметры.НазваниеГруппы = Стр.Склад; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ СКЛАД Ном = 1; НомКач = 1; КоличествоИтогСклад = 0; СуммаИтогСклад = 0; // КоличествоИтогК = 0; СуммаИтогК = 0; // КачествоГр = ""; ИначеЕсли СкладГр = "" Тогда ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ // ВЫВОД ГРУППЫ СКЛАД ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрСклад1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад2,,,); КонецЕсли; ОбластьГрСклад3.Параметры.НазваниеГруппы = Стр.Склад; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрСклад7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ СКЛАД КонецЕсли; Если КачествоГр <> Стр.Качество и КачествоГр <> "" Тогда // ВЫВОД ИТОГОВ ГРУППЫ К ->> // ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтогиК1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК5,,,); ОбластьИтогиК6.Параметры.КоличествоИтогК = Формат(КоличествоИтогК, "ЧЦ=10; ЧДЦ=3"); ОбластьИтогиК7.Параметры.СуммаИтогК = Формат(СуммаИтогК, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК7,,,); // <<- КОНЕЦ ВЫВОД ИТОГОВ ГРУППЫ К // ВЫВОД ГРУППЫ КАЧЕСТВО ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрКач1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач2,,,); КонецЕсли; ОбластьГрКач3.Параметры.НазваниеГруппы = Стр.Качество; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ КАЧЕСТВО НомКач = 1; КоличествоИтогК = 0; СуммаИтогК = 0; ИначеЕсли КачествоГр = "" Тогда // ВЫВОД ГРУППЫ КАЧЕСТВО ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьГрКач1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач2,,,); КонецЕсли; ОбластьГрКач3.Параметры.НазваниеГруппы = Стр.Качество; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач5,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьГрКач7,,,); // <<- КОНЕЦ ВЫВОД ГРУППЫ КАЧЕСТВО КонецЕсли; // ОбластьСтроки1.Параметры.Ном = Ном; ОбластьСтроки2.Параметры.НомКач = НомКач; ОбластьСтроки3.Параметры.Номенклатура = Стр.Номенклатура; ОбластьСтроки4.Параметры.Склад = Стр.Склад; ОбластьСтроки5.Параметры.Качество = Стр.Качество; // ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтроки1,3,"СТРОКИ",Ложь); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки5,,,); ОбластьСтроки6.Параметры.Количество = Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3"); ОбластьСтроки7.Параметры.Сумма = Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки7,,,); // Ном = Ном + 1; НомКач = НомКач + 1; // КоличествоИтогСклад = КоличествоИтогСклад + Число(Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3")); СуммаИтогСклад = СуммаИтогСклад + Число(Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2")); // КоличествоИтогК = КоличествоИтогК + Число(Формат(Стр.Количество, "ЧЦ=10; ЧДЦ=3")); СуммаИтогК = СуммаИтогК + Число(Формат(Стр.Сумма, "ЧЦ=10; ЧДЦ=2")); // СкладГр = Стр.Склад; КачествоГр = Стр.Качество; // КонецЦикла; // // ВЫВОД ОБЛАСТИ ИТОГИ К ->> // ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтогиК1,2,"КАЧЕСТВО",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК5,,,); ОбластьИтогиК6.Параметры.КоличествоИтогК = Формат(КоличествоИтогК, "ЧЦ=10; ЧДЦ=3"); ОбластьИтогиК7.Параметры.СуммаИтогК = Формат(СуммаИтогК, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтогиК7,,,); // <<- КОНЕЦ ВЫВОДА ОБЛАСТИ ИТОГОВ К // ВЫВОД ОБЛАСТИ ИТОГИ ->> ЭлементыФормы.ТабРезультат.Вывести(ОбластьИтоги1,1,"СКЛАД",Истина); Если Качество.Количество() = 1 Тогда // Иначе ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги2,,,); КонецЕсли; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги3,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги4,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги5,,,); ОбластьИтоги6.Параметры.КоличествоИтогСклад = Формат(КоличествоИтогСклад, "ЧЦ=10; ЧДЦ=3"); ОбластьИтоги7.Параметры.СуммаИтогСклад = Формат(СуммаИтогСклад, "ЧЦ=10; ЧДЦ=2"); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги6,,,); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьИтоги7,,,); // КОНЕЦ ВЫВОДА ОБЛАСТИ ИТОГИ <<- // ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ // ЭлементыФормы.ТабРезультат.ТолькоПросмотр = Истина; КонецПроцедуры | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |