|
v7: Вывод таблицы где колонки и столбцы параметры | ☑ | ||
---|---|---|---|---|
0
Coldboy
22.10.13
✎
16:35
|
Здравствуйте. 7-ку вообще не знаю, но надо кое-что сделать, хочу как в скд, примерно, делать табличный документ с группировками, причем, хочу, чтобы столбцы брались из параметра (автоподстраиваемые), строчки получались тоже параметрами (тута вроде разобрался), а на пересечении всего того стоял ресурс. Как быть?
Выглядеть это должно так. Реквизт Колонка1Рек КОлонка2Рек Резквит1 Ресурс Ресурс |
|||
1
zak555
22.10.13
✎
16:40
|
присоеденить секцию
|
|||
2
aka AMIGO
22.10.13
✎
16:40
|
возможно, так:
Доступ к колонкам ТЗ.ПолучитьПараметрыКолонки(Ы) в таблице - вертикальная секция для вывода имени колонки тут-же ниже выводишь свой ресурс |
|||
3
aka AMIGO
22.10.13
✎
16:44
|
+2 вернее так: выводишь имена колонок ТЗ в заголовке, используя подсказку (1)
далее - перебираешь строки ТЗ и выводишь значения из под соответствующих колонок ТЗ |
|||
4
Coldboy
22.10.13
✎
16:44
|
а вывод с группировками по складам как организовать?
и еще как юзать присоеденить секцию, что должно быть в макете? |
|||
5
Coldboy
22.10.13
✎
16:46
|
не смотрите. таблица примерного такого типа
Склад Номенклат1 Номенклат2 Время Количество Количество. Вот как это мне выводить и как правильно отчертить макет. Склад не тока один. Таблицу значений я буду сворачивать так ТЗ.Свернуть("Склад,Время,Номенклатура","Количество"). А как ее отрисовать как я хочу? |
|||
6
Ёпрст
22.10.13
✎
16:46
|
Класс.ИтогиПоГруппировкам или тупо поделка для вывода ТЗ с итогами с проклаба/или у Чебура можешь посмотреть.
|
|||
7
aka AMIGO
22.10.13
✎
16:49
|
(4) ууу... в макете должны быть горизонтальные и вертикальные секции
первым должен быть оператор "ВывестиСекцию(..|..); - это вывод на следующей строке далее в цикле "ПрисоединитьСекцию(..|..); - это вывод в той-же строке (5) не важно.. можно умно выполнить с помощью классов, или тупо, как я тебе описал |
|||
8
Coldboy
22.10.13
✎
16:52
|
(7) параметр должно быть в вертикальной секции?
|
|||
9
Coldboy
22.10.13
✎
16:52
|
(6) а это что такое?
|
|||
10
Coldboy
22.10.13
✎
16:56
|
так как мне быть вывести мой таблицу, которая будет выглядеть следующим образом
ТЗ.Свернуть("Склад,Время,номенклатура","Количество") с группировками по складам, а колонки будет номенклатура. примерно опишите пожалуйста. |
|||
11
Ёпрст
22.10.13
✎
17:00
|
(9) что именно ?
первое - готовый класс для вывода шахматки из твоей таблицы значений. Второе - тоже самое, только штатными методами - универсальный отчет для печати тз с группировками. |
|||
12
Ёпрст
22.10.13
✎
17:01
|
Первое работает быстрее и красившее.
|
|||
13
Ёпрст
22.10.13
✎
17:01
|
всего лишь надо скормить классу ТЗ, указать что есть измерения и что есть ресурсы.. ну и усё.
|
|||
14
Coldboy
22.10.13
✎
20:56
|
(13) как почитать как работать с этим классом и как вывести это на макет?
|
|||
15
Coldboy
22.10.13
✎
22:28
|
Up. ребят я сформировал таблицузначений Склады,Время,номенклатура это измерения, а ресурсы количество и сумма. как вывести так, чтобы
строками были Склад к нему номенклатура, а время будет колонками а на их пересечении будут стоят ресурсы количество и сумма. и все это в макете. |
|||
16
zak555
22.10.13
✎
22:34
|
см в (1)
|
|||
17
Coldboy
22.10.13
✎
22:44
|
(16) че то пробывал не понимаю, как это сделать, не получается. шапка таблицы должна выглядеть так
Склад Время1 Время2 А строчки должны выглядеть так Склад1 Номенклатура1 Номенклатура2 в итоге хочу получить как в СКД Склад Время1 Время2 Склад1 ИтогКолНом1 ИтогКОлНом2 Номенклатура1 КолНом1 КолНом1 Номенклатура2 КолНом1 КолНом1 как то так. |
|||
18
Coldboy
22.10.13
✎
22:50
|
up...
|
|||
19
Coldboy
22.10.13
✎
23:12
|
up
|
|||
20
zak555
22.10.13
✎
23:15
|
группировка склад
вывести группировка номенклатура высети группировка время присоеденить |
|||
21
Coldboy
22.10.13
✎
23:25
|
а у меня разве группировки будут? если эту таблицу значений я сам сделал и свернул как надо. хорошо а в макете как это должно выглядеть это не могу понять.
|
|||
22
Coldboy
22.10.13
✎
23:37
|
а как мне присоединть область, но ничег овыводить если по данному времени не было ничего, просто 0 количество?
|
|||
23
zak555
22.10.13
✎
23:38
|
зачем тебе тз ?
я тебе сразу описал, как запрос получить |
|||
24
Coldboy
22.10.13
✎
23:45
|
а данные я в тз же получаю, из документы, которые выбираю функцией выбратьдокументы.
|
|||
25
Coldboy
23.10.13
✎
09:19
|
up.
|
|||
26
Coldboy
23.10.13
✎
09:20
|
(23) еще вопрос время то у меня от 0 до 24, а вот в данных может быть не все время ,как в этом случае, как мне до нужно времени вывести все это.
|
|||
27
Coldboy
23.10.13
✎
09:26
|
Up.
|
|||
28
zak555
23.10.13
✎
09:27
|
в тз данные откуда получить ?
|
|||
29
Coldboy
23.10.13
✎
09:39
|
делаю выборку через функцию ВыбратьДокументы(Дарта1,дата2).
|
|||
30
Coldboy
23.10.13
✎
09:48
|
АППП
|
|||
31
zak555
23.10.13
✎
09:49
|
в ты оперируешь ресурсом, который присутствует у регистра
|
|||
32
Coldboy
23.10.13
✎
09:51
|
(31) какой ресурс у регистра, документ сапоиска( как и вся база), данные беру чисто из документа и его табличной части, под ресурсом я поразумевал количество и сумма.
|
|||
33
zak555
23.10.13
✎
09:52
|
(32) что за конфа ?
|
|||
34
Coldboy
23.10.13
✎
09:53
|
тз = СоздатьОбъект("ТаблицаЗначений");
тз.новаяколонка("точка"); тз.новаяколонка("номенклатура"); тз.новаяколонка("время"); тз.новаяколонка("количество"); тз.новаяколонка("сумма"); док=создатьобъект("документ.заказы"); док.выбратьдокументы(дата1,дата2); пока док.получитьдокумент()=1 цикл если док.проведен()=1 Тогда Склад = док.точка; // Время1 = док.время; ТабличнаяЧасть=СоздатьОбъект("ТаблицаЗначений"); док.ВыгрузитьТабличнуюЧасть(ТабличнаяЧасть); ТабличнаяЧасть.ВыбратьСтроки(); Пока ТабличнаяЧасть.ПолучитьСтроку() = 1 Цикл тз.новаястрока(); тз.точка = склад; тз.время = Формат(док.ПолучитьВремя(),"ЧЧ"); тз.номенклатура = табличнаячасть.Наименование; тз.количество = табличнаячасть.количество; тз.сумма = табличнаячасть.сумма; КонецЦикла; КОнецЕсли; конеццикла; тз.свернуть("точка,время,номенклатура","количество,сумма"); тз.сортировать("точка,время,номенклатура"); тз.ВыбратьСтроку(); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию("Шапка"); тз.выбратьстроки(); таб.вывестиСекцию("Заголовок|Точка"); Пока тз.получитьстроку()=1 цикл таб.присоединитьсекцию("Заголовок|время"); конеццикла; Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); Таб.ТолькоПросмотр(1); Таб.Показать("Отчет",""); |
|||
35
Coldboy
23.10.13
✎
09:53
|
вот что щас есть.
|
|||
36
zak555
23.10.13
✎
09:58
|
> тз.время = Формат(док.ПолучитьВремя(),"ЧЧ");
это работает ? о_О |
|||
37
zak555
23.10.13
✎
09:59
|
делай запрос к документу
|
|||
38
Coldboy
23.10.13
✎
09:59
|
да
|
|||
39
Coldboy
23.10.13
✎
09:59
|
каким образом запрос и зачем? у меня ведь и так выбраны данные..
|
|||
40
zak555
23.10.13
✎
10:00
|
с учётом 12
|
|||
41
Coldboy
23.10.13
✎
10:02
|
(40) а как мне вывести все это в шахматку и в макете правильно отрисовать вот в чем вопрос. мб где нить есть похожий пример отчета, чтобы подглядеть можно было.
|
|||
42
zak555
23.10.13
✎
10:06
|
> док.ВыгрузитьТабличнуюЧасть(ТабличнаяЧасть);
и каждый раз у тебя затираются данные из предыдущего документа |
|||
43
Coldboy
23.10.13
✎
10:07
|
ну и пусть. я ведь данными тз наполняю их. а в тз все сохраняется ... и она после свертки хороши выглядит. тока вывести ее не могу ....
|
|||
44
zak555
23.10.13
✎
10:10
|
1. выгружаешь из тз все время в сз
2. далее строишь шапку 3. а потом 12 с хитрой группировкой по времени с учётом сз или же делаешь запрос к документу |
|||
45
zak555
23.10.13
✎
10:11
|
не 12, а 20
и не группировка время а группировка время все вожеджие |
|||
46
Coldboy
23.10.13
✎
11:48
|
(45) извините, а для особо умных, кто 7.7 видит в первый раз можно чутка поподробней .
|
|||
47
pofigos
23.10.13
✎
11:57
|
(0) ВК какие-нибудь используете?
Я решаю такие задачи индексированными таблицами. Это один из вариантов решения. |
|||
48
Coldboy
23.10.13
✎
12:21
|
(47) ВК? индексированные таблицы? ох емае...
|
|||
49
pofigos
23.10.13
✎
12:30
|
(48) уже понял что ступил... хотя если уделить время и разобраться, очень даже пригодиться. (http://www.1cpp.ru/forum/YaBB.pl?board=general)
|
|||
50
zak555
23.10.13
✎
13:14
|
(47) зачем тут ВК :?
|
|||
51
zak555
23.10.13
✎
13:14
|
(46) ща, только вернулся
|
|||
52
pofigos
23.10.13
✎
13:23
|
(50) Если как таковые используются, то применимо и вывод данных по индекса был бы быстрее и корректнее
|
|||
53
zak555
23.10.13
✎
13:31
|
что-то типа того
Перем ПД; Функция ПолучитьКоличествоЧасовД(Д) ПД.НайтиДокумент(Д); ЧЧ = 0; ММ = 0; СС = 0; Д.ПолучитьВремя(ЧЧ,ММ,СС); Возврат ЧЧ; КонецФункции Процедура Сформировать() ПД = СоздатьОбъект("Документ"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с дата1 по дата2; |Точка = Документ.Заказы.Склад; |Номенклатура = Документ.Заказы.Наименование; |Количество = Документ.Заказы.Количество; |Время = ПолучитьКоличествоЧасовД(Документ.Заказы.ВремяДок); |Сумма = Документ.Заказы.Сумма; |Функция КоличествоСумма = Сумма(Количество); |Функция СуммаСумма = Сумма(Сумма); |Группировка Точка; |Группировка Номенклатура; |Группировка Время все ВошедшиеВЗапрос; |" ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса // Заполнение полей "Заголовок" Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Склад Пока Запрос.Группировка(2) = 1 Цикл // Заполнение полей Номенклатура Пока Запрос.Группировка(3) = 1 Цикл // Заполнение полей ВремяДок КонецЦикла; КонецЦикла; КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |