|
Вывод результата запроса в древовидной структуре | ☑ | ||
---|---|---|---|---|
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,,,); // КОНЕЦ ВЫВОДА ОБЛАСТИ ИТОГИ <<- // ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ // ЭлементыФормы.ТабРезультат.ТолькоПросмотр = Истина; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |