Имя: Пароль:
1C
1С v8
СКД вопрос
0 ХочуСпец
 
10.04.12
15:46
Есть таблица
Кол1
Кол2
Кол3

В зависимости от периода
Номер месяца1
Номер месяца2
...
Номер месяцаN

В отчете есть галочка Выводить периоды
если галочка стоит, то

Вместе с колонками Кол1, Кол2, Кол3
выводятся разбивка по месяцам, иначе не выводится

Можно ли что то подбное сделать в СКД?
1 fisher
 
10.04.12
16:14
Можно
2 ХочуСпец
 
10.04.12
16:26
(1) каким образом?
делать две схемы компоновки данных?
3 fisher
 
10.04.12
16:27
(2) Можно сделать однозначную развертку вправо по периодам, просто по галке приводить период к одному значению.
4 fisher
 
10.04.12
16:33
Я что-то похожее делал только не с галкой, а с параметром "Периодичность" где как частный случай было "Без развертки по периодам" (или как-то так). И еще с общими итогами по горизонтали, которые для пущей красоты программно отключал в ПриКомпоновкеРезультата(), когда без развертки по периодам выводил.
5 ХочуСпец
 
10.04.12
16:35
(3) а поподробнее
6 fisher
 
10.04.12
17:00
(5) Прямо в запросе
ВЫБОР
  КОГДА &Галка ТОГДА Таблица.ПериодМесяц
  ИНАЧЕ 0
КОНЕЦ КАК Период
Т.е. ежели галка не стоит - получаешь гарантированно одну колонку. Ну и в выражении представления периода соответственно этот вариант обрабатываешь, чтобы заголовок был красивый.
7 ХочуСпец
 
10.04.12
17:14
(6) а в теории можно использовать две компоновки?
если галочка стоит то используем одну компоновчную схему, если нет - другую
8 fisher
 
10.04.12
17:20
(7) Ни разу не пробовал. Полагаю можно, но очень геморно. Объект "Отчет" с вживленной родной схемой очень много плюшек дает. Придется от них отказываться и практически все вручную (программно) делать.
9 fisher
 
10.04.12
17:25
Работая с настройками отчета, ты работаешь с компоновщиком настроек на базе какой-то конкретной схемы. Если на этапе компоновки захочешь вывести отчет по совершенно другой схеме - это придется делать полностью программно, транслируя в неё настройки из первичной схемы.
Ну, это как я понимаю ситуацию. Могу ошибаться.
10 ХочуСпец
 
10.04.12
17:28
(9) впринципе не проблема
11 fisher
 
10.04.12
17:35
(10) Фига се не проблема. Куча гемора на ровном месте. Еще и с расшифровками дополнительная морока будет. При прокачанных скиллах любые требуемые разновидности отчета делаются на одной схеме без особых проблем.
12 ХочуСпец
 
10.04.12
17:37
(11) согласен
для данной задачи лучше сделать по твоему варианту
13 fisher
 
10.04.12
17:44
(12) Если лень заморачиваться с единым вариантом настроек, то можно тупо два варианта настроек реализовать для одной и той же схемы - с разверткой и без.
Т.е. пользователь не галку будет клацать, а выбирать вариант отчета - с детализацией по периодам или без.
14 ХочуСпец
 
10.04.12
17:47
(13) да как вариант
использовал твой вариант
отрабатывает хорошо, но При Галочка = 0, оставляет пустую колонку
15 fisher
 
10.04.12
17:48
(14) В смысле пустую? С пустым заголовком?
16 ХочуСпец
 
10.04.12
17:50
ну заголовок я сам убрал, просто колонка "Сумма" с пустым значением
17 ХочуСпец
 
10.04.12
17:53
еще вопросик в догонку:
Сейчас в группировочных колонка у меня выводит (установил формат): 01.12, 02.12, и т.д.
Можно ли в заголовках выводить н-р: Задепанировано в 01.12, Задепанировано в 02.12 ...
18 fisher
 
10.04.12
17:57
(16) А! Хочешь заголовок ресурса прибить? Можно такое сделать через макеты. Делал вроде когда-то и гайд на просторах находил.
(17) Можно. Проще всего через выражение представления для поля "Период" на закладке "Наборы данных".
19 ХочуСпец
 
10.04.12
17:59
(17)
вот тут описал
v8: СКД группировка по месцам документов
неохото через макет конечно
20 ХочуСпец
 
10.04.12
18:00
(18) через представление Периода пробовал, не отрабатывает
писал что то типа "Задепанировано в" + Месяц
21 fisher
 
10.04.12
18:01
(19) Там несложно. Вот, нарыл собственный вопрос аналогичный пару лет назад:
v8: СКД: Убрать заголовок ресурса из шапки в шахматке
22 ХочуСпец
 
10.04.12
18:02
(21) аха, спасибо
23 fisher
 
10.04.12
18:10
(20) Черт. Точно, так не проканает. Тогда тоже через макет заголовка группировки.
24 fisher
 
10.04.12
18:13
(23) + Тем более, что ты его уже и так рисуешь, чтобы (16) победить :)
25 ХочуСпец
 
11.04.12
09:18
В продолжение вопроса:
Когда Галочка = Истина, сумму вывожу по месяцам, а также необходимо выводить общую сумму
Когда отключена необходимо выводить только общую сумму
26 fisher
 
11.04.12
10:32
(25)
Я программно в ПриКомпоновкеРезультата() отключал вывод общих итогов по горизонтали, когда без периодов. Т.е. в качестве общей суммы тогда колонка периода выступала. Как-то так:

ГоризонтальноеРасположениеОбщихИтогов = КомпоновщикНастроек.Настройки.ПараметрыВывода.Элементы.Найти("ГоризонтальноеРасположениеОбщихИтогов");
ГоризонтальноеРасположениеОбщихИтогов.Значение = РасположениеИтоговКомпоновкиДанных.Нет;
27 Лодырь
 
11.04.12
10:35
Граждане, а можно вам вопрос: Почему бы вам не использовать несколько стандартных настроек. Сделать их заранее и использовать нужную в зависимости от состояния галок?
28 fisher
 
11.04.12
10:40
(27) В зависимости от состояния галок? Так тогда пользовательские настройки туда придется руками транслировать и прочий дискомфорт? Или я не въезжаю?
Если есть готовый отчетик в качестве примера - буду признателен.
29 badboychik
 
11.04.12
10:43
(7) Зачем две компоновки? Компоновка одна, просто делаешь два варианта отчета и потом двумя строчками в коде их переключаешь
30 fisher
 
11.04.12
10:46
(29) УстановитьТекущийВариант()?
А при этом разве не переключаться уже сделанные пользователем настройки для старого варианта? Отборы и т.д. и т.п?
31 Лодырь
 
11.04.12
10:47
(28) суть описал (29)
Вот стандартный кусок из отчета:
//Получаем схему из макета
   СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");    
   //Из схемы возьмем настройки по умолчанию (а могли бы взять и другие с помощью СхемаКомпоновкиДанных.ВариантыНастроек)
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   //Помещаем в переменную данные о расшифровке данных
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   //Формируем макет, с помощью компоновщика макета
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   //Передаем в макет компоновки схему, настройки и данные расшифровки
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
   КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   
   //Выполним компоновку с помощью процессора компоновки
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,
   ДанныеРасшифровки,Истина);
   
   //Очищаем поле табличного документа
   Результат = ЭлементыФормы.Результат;
   Результат.Очистить();
   
   //Выводим результат в табличный документ
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(Результат);
   
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
32 Лодырь
 
11.04.12
10:50
(30) Какие могут быть настройки для старого варианта, если мы меняем схему отчета? А вдруг эти настройки некорректны?
33 fisher
 
11.04.12
10:52
(31),(32) Не задерживаемся, проходим-проходим!
34 badboychik
 
11.04.12
10:54
Процедура ЗагрузитьВариант()
   ИмяВарианта = ?(ЭлементыФормы.ПоДокументам.Значение,"Документы","Общий");
   ВариантНастроек = СхемаКомпоновкиДанных.ВариантыНастроек[ИмяВарианта];
   Если ИмяВарианта="Общий" Тогда
       ВариантНастроек.Настройки.Структура[0].Структура[0].Использование = ЭлементыФормы.ПоТочкам.Значение;        
   КонецЕсли;    
   КомпоновщикНастроек.ЗагрузитьНастройки(ВариантНастроек.Настройки);    
КонецПроцедуры
35 badboychik
 
11.04.12
10:54
"Если" выкидываем остается 3 строчки
36 fisher
 
11.04.12
10:57
(34) Ну а сделанные пользователем настройки? А не догоняю. Смотри:
1) пользователь открывает отчет и по дефолту настраивает первый вариант отчета - ставит отборы, группировки, сортировки. Потом решает развернуть по периодам и ставит галку
2) мы в процессе компоновки понимаем, что нужно использовать другие настройки - по периодам и загружаем второй вариант. Как он состыкуется со сделанными пользователем настройками в старом варианте?
37 fisher
 
11.04.12
10:59
(36) + Как я понимаю, каждый раз при переклацивании галке и перезагрузки вариантов, надо как-то и сделанные пользователем настройки перегружать из варианта в вариант?
38 Лодырь
 
11.04.12
11:00
(36) судя по вопросу в (0) ничего такого не предполагается. Однако, если и будут установлены настройки, то только с помощью средств вытащенных на форму отчета. Следовательно никто не мешает повторить их.
39 viktor_vv
 
11.04.12
11:01
(36) У него на форме реквизиты, значения которых он прописывает при компоновке.
40 badboychik
 
11.04.12
11:04
Установить отборы при загрузке варианта тоже не проблема
41 fisher
 
11.04.12
11:05
Меня интересует работа именно ПользовательскихНастроек при таком теневом использовании вариантов отчета. Т.е. с полным сохранением штатной функциональности. Громоздить костыли - это фу.
42 fisher
 
11.04.12
11:06
(41) + Соответственно, если нет простых способов обеспечения полной прозрачности этого дела для пользователя, то лично мне намного выгоднее на одном варианте реализовывать, чем на нескольких. Т.к. по факту получается не упрощение, а усложнение.
43 badboychik
 
11.04.12
11:07
можно вообще с нуля на лету городить в СКД группировки и все настройки :)
44 fisher
 
11.04.12
11:08
(43) Можно. Вопрос - зачем?
45 badboychik
 
11.04.12
11:09
полная гибкость, если пользователь каждый чих галочкой настраивает
46 Лодырь
 
11.04.12
11:09
(42) Прозрачности ты не добьешься хотя бы в силу того, что структура отчета меняется неизвестным пользователю способом по нажатию галочек.

(43) В ластах стоя в гамаке?
47 fisher
 
11.04.12
11:14
(45) Можно же просто транслировать изменения галок в изменение пользовательских настроек. Галки будут просто как средство повышения юзабилити.
48 badboychik
 
11.04.12
11:16
а если галками надо отключать группировки, например разворачивать по клиентам и договорам или только по клиентам
49 fisher
 
11.04.12
11:20
(48) Ну и где подвох? Программно меняем группировки в пользовательских настройках. Хотя выносить подобный функционал на галки - это ограничивать функциональность.
50 badboychik
 
11.04.12
11:25
да я вообще за то чтобы учить пользователя настраивать через стандартное окно настроек СКД :)
Но если пользователи без страха воспринимают только 1-2 галочки то придется извращаться
Некоторые привыкают к 7.7, там можно отмечать любые группировки из 10 штук в списке, менять их порядок... Вот для этого придется с нуля формировать СКД
51 fisher
 
11.04.12
11:28
(50) "Некоторые привыкают к 7.7, там можно отмечать любые группировки из 10 штук в списке, менять их порядок... Вот для этого придется с нуля формировать СКД"
Окстись. ПользовательскиеНастройки в 8.2 дефолтно предоставляют пользователям такой функционал.
52 badboychik
 
11.04.12
11:30
ну я и говорю, в окне настроек формировать свои группировки, выбирать нужные поля и т.д. А если без окна настроек?
53 badboychik
 
11.04.12
11:34
вот так http://savepic.net/2729801.png например было в 7.7, какой аналог будет на СКД ?
54 fisher
 
11.04.12
11:41
(51) Тогда да. Одно окно настроек, кстати, не сильно эргономично. Недоработали.
Если б дали еще возможность как с построителем отчета - возможность растаскивать разные элементы пользовательских настроек по разным табличным полям - можно было бы гораздо более эргономичные интерфейсы рисовать.
(53) Буэ... Я и на 7.7 старался до такого не доводить. Рисовал в стиле настроек восьмерочного построителя. Группировки и отборы в отдельных табличных полях. Реализацию множественных отборов в едином табличном поле, правда, не сам писал. Кажись у ПУБа своровал...
55 badboychik
 
11.04.12
11:46
Если у (0) УПП или КА, то можно выдрать из произвольных отчетов шаблон и в него свою СКД вставлять. Там форма настроек эргономичнее, юзер себе варианты сохраняет сколько влезет. У нас так.
56 fisher
 
11.04.12
11:54
(55) ИМХО, с появлением в 8.2 вариантов отчета и пользовательских настроек с их штатным хранением, в этих костылях уже нет необходимости. Практически все что нужно для счастья работает из коробки на уровне платформы.
57 badboychik
 
11.04.12
11:58
все равно из коробки только минимум. Неудобно например с вариантами работать, не на виду они.
Вот так нагляднее, и чтоб настраивать свои, не надо быть "программистом" :)
http://savepic.net/2698057.png
58 badboychik
 
11.04.12
12:00
и тут еще можно созданные варианты сразу раскидывать другим пользователям
59 fisher
 
11.04.12
12:14
(57) Как это не на виду?
60 fisher
 
11.04.12
12:21
(59) + Автосгенеренная управляемая форма отчета штатно уже все на борту имеет. Я спецом ради этого врубил использование управляемых форм в толстом клиенте и все отчеты теперь только на упр-формах и клепаю.
61 Лодырь
 
11.04.12
12:27
(60) Кстати, гениальная идея (без шуток). В голову не приходило включить использование управляемых форм в старинной типовой взятой за основу. А я мучаюсь с обработкой вариантов. Спасибо.
62 fisher
 
11.04.12
12:38
(61) Одна только фигня - управляемые формы внешних отчетов/обработок в толстом клиенте не пашут. Обязательно в конфу внедрять надо. 1С сказали - идите в задницу, это фича такая.