|
Работа с ресурсами в СКД | ☑ | ||
---|---|---|---|---|
0
Svetlana_Kazan
20.02.20
✎
16:58
|
Подскажите, пожалуйста, как организовать вывод отчета в нужном виде? Отчет написан на СКД. Необходимо итоги по группировкам по статьям подкорректировать. Если Статья1 имеет отрицательную сумму, то сумма в Статья2_1 должна быть равна нулю. При этом надо пересчитать сумму Статья2 и итоги, но детальные записи Статья2_1 не должны корректироваться(на данном уровне мы должны видеть отрицательные суммы). Попробовала через ресурсы, но в этом случае у меня и детальные записи с отрицательной суммой обнуляются, а мне надо только итоговую сумму обнулить.
https://pastenow.ru/f1049c481cd5c3b8603087e44f7a13a6 |
|||
1
mikecool
20.02.20
✎
17:00
|
создать отдельный ресурс, считать итог по нему, подменять итог в колонке
|
|||
2
Svetlana_Kazan
20.02.20
✎
17:21
|
(1) , а как подменять, подскажите, пожалуйста.
|
|||
3
Svetlana_Kazan
20.02.20
✎
17:34
|
(1) , я попыталась в процедура ПриКомпоновкеРезультата, но не получилось.
|
|||
4
toypaul
гуру
21.02.20
✎
08:53
|
Нужна картинка с настройками группировок
|
|||
5
bolder
21.02.20
✎
08:59
|
(0) Конечно можно, в ресурсах отдельные итоги считать, но (4) Конечно прав.
|
|||
6
SleepyHead
гуру
21.02.20
✎
09:47
|
выражение в ресурсе типа такго пробовали?
ВЫБОР КОГДА Сумма(хх)<0 ТОГДА 0 ИНАЧЕ Сумма(хх) КОНЕЦ |
|||
7
bolder
21.02.20
✎
09:55
|
(6) Она же пишет, что выражение обнуляется, но везде.Поэтому и спрашиваем (4)(5) про группировки)
|
|||
8
Svetlana_Kazan
21.02.20
✎
11:00
|
||||
9
Svetlana_Kazan
21.02.20
✎
11:03
|
Создала Пользовательское поле с выражением:
Выбор Когда Статья = Значение(ПланСчетов.Управленческий.ОтчислениеНаУправление) И СуммаПлан < 0 И СистемныеПоля.Уровень = 1 Тогда 0 Иначе СуммаПлан Конец Но вопрос теперь в том, как пересчитывать Статья2? Значение я обнулила и итог по Статья2 надо уменьшить на значение в Статья2_1 |
|||
10
toypaul
гуру
21.02.20
✎
11:25
|
а теперь картинку что за детальные записи обнуляются. потому что в настройках только группировка по статье.
|
|||
11
toypaul
гуру
21.02.20
✎
11:27
|
сколько уровней в этом справочнике. с какого уровня обнуляем. и правильно ли я понял что все родительские записи нужно считать суммированием начиная с обнуленного?
|
|||
12
Svetlana_Kazan
21.02.20
✎
11:33
|
(11) , https://pastenow.ru/d5fc8cfcc61a1b1bff8fa319898f9e05
Все родительские записи нужно считать суммированием начиная с обнуленного |
|||
13
bolder
21.02.20
✎
11:37
|
(8)Иерархия о статьям...И на каждом уровне иерахии свои итоги.Пятница перестает быть томной ))
|
|||
14
Svetlana_Kazan
21.02.20
✎
11:41
|
(10), обнуляются СуммаПлан, СуммаФакт, СуммаПрогноз. Но только на Итоговом уровне. Если брать не общие абстрагированные данные, то в моем случае Итого по статье надо обнулить, а детальные записи нет и т.д. И пересчитать до родителя самого верхнего уровня(для каждой статьи настраивается количество уровней).
|
|||
15
bolder
21.02.20
✎
11:50
|
(14) В СКД отсутствует настройка для для визуальной настройки таких итогов.Единственное , что могу предложить - сделать это на уровне запроса.
|
|||
16
toypaul
гуру
21.02.20
✎
11:57
|
(14) для каждой статьи свой уровень начиная с которого обнуляется?
|
|||
17
Svetlana_Kazan
21.02.20
✎
12:01
|
(16) , обнулять надо определенную статью Статья2_1, если Статья1 имеет отрицательное значение, Статья2 пересчитать.
|
|||
18
Svetlana_Kazan
21.02.20
✎
12:07
|
(16), Уровень = 1
|
|||
19
toypaul
гуру
21.02.20
✎
12:10
|
ничо я не понял
если под конкретную картинку, то СуммаПлан = Сумма(СуммаПлан) Рассчитывать по = Статья СуммаПлан = Сумма(ВЫБОР КОГДА Статья = Значение И Сумма(СуммаПлан) < 0 ТОГДА 0 ИНАЧЕ Сумма(СуммаПлан)) Рассчитывать по = Статья Иерархия |
|||
20
toypaul
гуру
21.02.20
✎
12:12
|
если не сработает СуммаПлан = Сумма(ВЫБОР КОГДА Статья = Значение И Сумма(СуммаПлан) < 0 ТОГДА 0 ИНАЧЕ Сумма(СуммаПлан))
то скорее всего так СуммаПлан = Сумма(ВычислитьВыражениеСГруппировкойМассив("ВЫБОР КОГДА Статья = Значение И Сумма(СуммаПлан) < 0 ТОГДА 0 ИНАЧЕ Сумма(СуммаПлан)","Статья") |
|||
21
SleepyHead
гуру
21.02.20
✎
12:25
|
(7) Ну пятница же, почему бы и не.
|
|||
22
SleepyHead
гуру
21.02.20
✎
12:26
|
(17) Какой тут нафиг СКД, выгружайте запрос в таблицу и считайте, как вам надо. Потом грузите таблицу как внешний набор данных и выводите отчет. Возможно, запросом не получится.
|
|||
23
Svetlana_Kazan
21.02.20
✎
16:23
|
(22), ресурсы надо убрать получается и итоги свои строить вручную?
|
|||
24
Svetlana_Kazan
21.02.20
✎
16:53
|
(22), написала вот так, но видимо ресурсы все таки надо убирать из СКД:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; //Получаем схему из макета СКДНастроек = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Запрос. ТекстЗапроса = СКДНастроек.НаборыДанных.НаборДанных1.Запрос; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; НастройкиСКД = СКДНастроек.ВариантыНастроек.Найти("Основной").Настройки; ЗначениеПараметраПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СтПериод")); Если ЗначениеПараметраПериод <> Неопределено Тогда Запрос.УстановитьПараметр("ДатаНачала", ЗначениеПараметраПериод.Значение.ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ЗначениеПараметраПериод.Значение.ДатаОкончания); КонецЕсли; ЗначениеПараметраВидБюджета = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВидБюджета")); Если ЗначениеПараметраВидБюджета <> Неопределено Тогда Запрос.УстановитьПараметр("ВидБюджета", ЗначениеПараметраВидБюджета.Значение); КонецЕсли; ЗначениеПараметраПериодРазделитель = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПериодРазделитель")); Если ЗначениеПараметраПериодРазделитель <> Неопределено Тогда Запрос.УстановитьПараметр("ПериодРазделитель", ЗначениеПараметраПериодРазделитель.Значение); КонецЕсли; ЗначениеПараметраОрганизация = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Организация")); Если ЗначениеПараметраОрганизация <> Неопределено Тогда Запрос.УстановитьПараметр("Организация", ЗначениеПараметраОрганизация.Значение); КонецЕсли; ЗначениеПараметраПодразделение = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Подразделение")); Если ЗначениеПараметраПодразделение <> Неопределено Тогда Запрос.УстановитьПараметр("Подразделение", ЗначениеПараметраПодразделение.Значение); КонецЕсли; ЗначениеПараметраПроект = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Проект")); Если ЗначениеПараметраПроект <> Неопределено Тогда Запрос.УстановитьПараметр("Проект", ЗначениеПараметраПроект.Значение); КонецЕсли; ЗначениеПараметраНачалоИстории = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоИстории")); Если ЗначениеПараметраНачалоИстории <> Неопределено Тогда Запрос.УстановитьПараметр("НачалоИстории", ЗначениеПараметраНачалоИстории.Значение); КонецЕсли; ТабДанныхТЗ = Запрос.Выполнить().Выгрузить(); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ВнешнийНаборДанных = Новый Структура("ТаблицаДанныхТЗ", ТабДанныхТЗ); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры |
|||
25
Андроны едут
21.02.20
✎
17:03
|
(23) Скачав отчет, в качестве дополнительного бонуса вы узнаете, каким образом в отчетах на СКД можно скрыть отображение некоторых данных в выбранных группировках и зачем это нужно.
http://catalog.mista.ru/public/1070249/ |
|||
26
Svetlana_Kazan
25.02.20
✎
08:30
|
(25), скрыть просто я могу. У меня загвоздка в перерасчёта итогов родителя по иерархии.
|
|||
27
АнализДанных
25.02.20
✎
09:29
|
(0) В ресурсах напиши выражение
Выбор Когда Минимум(Статья2_1)<0 Тогда 0 Иначе Сумма(Статья2_1) Конец |
|||
28
Svetlana_Kazan
27.02.20
✎
12:34
|
(27) , Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |