![]() |
|
И снова СКД | ☑ | ||
---|---|---|---|---|
0
kupreeff
22.03.17
✎
22:08
|
Добрый вечер! Может кто есть из знатоков на форуме и подскажет... Имеется справочник статей, в нем есть статьи: Реализация, Себестоимость,Процент наценки,Маржа. Добавлен регистр, где измерение=Статья,Ресурс=Сумма; данный регистр заполняется по статьям Реализация и Себестоимость первичными документами. Нужно вывести отчет, где по строкам будут статьи, в колонках суммы помесячно. Но, наряду со статьями Реализации и Себестоимости нужно выводить статьи Процент и Маржа, которые являются расчетными. Можно ли такое реализовать? (уверен, что можно!) Хотя бы намекните как, решения не прошу) Заранее спасибо!
|
|||
1
Flip
22.03.17
✎
23:05
|
(0) Если регистр - регистр накопления, то в запросе берешь таблицу оборотов, вытаскиваешь нужные поля; Статья, Сумма, расчетные показатели соответственно расчитываешь там же в запросе, в настройке компоновки, создаешь таблицу, в группировку строк вытаскиваешь "Статью", в колонки выводишь период, ну и ресурсы "Сумму", при этом в качестве дополнения к "Периоду" задаешь "месяц". Соответственно период, за который надо получить данные, будет "разбиваться" по месяцам.
https://its.1c.ru/db/metod8dev/content/1587/hdoc Это конечно, если правильно понял задачу... |
|||
2
vicof
23.03.17
✎
00:38
|
в чем затык-то?
|
|||
3
kupreeff
23.03.17
✎
07:47
|
Спасибо откликнувшимся, вчера уже поздно было, не прочитал ответы. (2) Я на самом деле утрировал задачу. Есть Реализация1,Себестоимость1...РеализацияN,СебестоимостьN (по разным номенклатурным группам считаются статьи) и процент с маржой для них свои. Как я понимаю, в тексте запроса нужно прописать как - то расчет этих всех статей. Так вот и затык - как!?
|
|||
4
kupreeff
23.03.17
✎
07:59
|
(0) предположу. Может через ВЫБОР КОГДА и Параметры. А в параметрах прописать все статьи , которые участвуют в этой истории?
|
|||
5
kupreeff
23.03.17
✎
10:10
|
Не понятны такие моменты: а как программно задать значение параметра и что делать, если у меня расчетная статья=конкретной статье - значение по группе статей?
|
|||
6
Flip
23.03.17
✎
10:17
|
(5)
1. Процедура УстановитьПараметрСКД(Настройка, Имя, Значение) Экспорт ЗначениеПараметра = Настройка.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(Имя)); Если НЕ ЗначениеПараметра = Неопределено Тогда ЗначениеПараметра.Использование = Истина; ЗначениеПараметра.Значение = Значение; КонецЕсли; КонецПроцедуры 2. Без текста запроса - наверно сложновато будет понять как лучше сделать... |
|||
7
kupreeff
23.03.17
✎
11:02
|
(6) у меня 8.3, взлетит?
|
|||
8
Flip
23.03.17
✎
11:20
|
(7) Ну а почему не должно взлететь? Тут вроде бы ничего такого, что могло бы сломаться нету.Во всяком случае - есть смысл попробовать, в крайнем случае подкорректировать.
|
|||
9
kupreeff
23.03.17
✎
11:28
|
(8) Я извиняюсь тогда за неграммотость свою...а куда вставить эту процедуру?
|
|||
10
kupreeff
23.03.17
✎
11:32
|
Попробую еще попроще сформулировать. Выводим отчет по статьям с иерархией. Есть статья, которая определяется как сумма значений некоторых групп этих статей. Как вычислить в запросе СКД это значение.
Пример Группа1 200 статья11 150 статья12 50 Группа2 300 статья21 100 статья22 200 СуммаГрупп 500 |
|||
11
Flip
23.03.17
✎
13:41
|
(9) У нас 8.1 УТ 10.3 и эта процедура расположена в модуле "Управление отчетами", посмотри у себя в конфигурации, если есть такой модуль, то положи туда.
А вызывать ее можно в процедуре формирования отчета. Если ее нет, и по кнопке сформировать - происходить автоматическая компоновка отчета, то тогда придется добавлять формирование вручную, имеется ввиду придется процедуру написать, и в ней уже устанавливать нужный тебе параметр с помощью процедуры установки параметра. Вот пример программного формирования отчета с установкой параметра: Процедура СформироватьОтчет() Экспорт Настройки = ЭтотОбъект.КомпоновщикНастроек.Настройки; УправлениеОтчетами.УстановитьПараметрСКД(Настройки, "ВидОперации", Перечисления.ВидыОперацийПретензийКонтрагентов.КорректировкаПервичныхДокументов); УправлениеОтчетами.УстановитьПараметрСКД(Настройки, "ПоВсем", Ложь); Иначе // очищаем табличное поле ЭлементыФормы.Результат.Очистить(); СхемаКомпоновкиДанных = ПолучитьМакет("Макет"); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; ДанныеРасшифровки.Настройки = Настройки; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.НачатьВывод(); ТаблицаЗафиксирована = Ложь; Пока Истина Цикл Элемент = ПроцессорКомпоновкиДанных.Следующий(); Если Элемент = НЕопределено Тогда Прервать; КонецЕсли; Если Не ТаблицаЗафиксирована И Элемент.ЗначенияПараметров.Количество() > 0 И ТипЗнч(ОтчетОбъект.КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда ТаблицаЗафиксирована = Истина; ЭлементыФормы.Результат.ФиксацияСверху = ЭлементыФормы.Результат.ВысотаТаблицы; КонецЕсли; ПроцессорВывода.ВывестиЭлемент(Элемент); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); КонецПроцедуры Эту процедуру надо повесить на кнопку сформировать, вернее стандартную кнопку удалить, и сделать свою. Но опять же - это все для 8.1, как поведет себя код в 8.3 затрудняюсь сказать, но можно попробовать. |
|||
12
kupreeff
24.03.17
✎
09:00
|
(11) переаметр научились задавать, а вот, как (10) сделать совсем затыка.
|
|||
13
Flip
26.03.17
✎
01:10
|
(10) Все таблицы - линейны, поэтому считать итоги по условию - невозможно.
|
|||
14
Flip
26.03.17
✎
01:13
|
Ты можешь, реализовать ТЗ, с теми условиями, и потом передать ее в СКД, там уже сгруппировать необходимые показатели..
|
|||
15
Flip
26.03.17
✎
01:55
|
(10) Если структура иерхическая - то СКД сама все сделает.
|
|||
16
Web00001
26.03.17
✎
04:17
|
(10)Как смысл во всей этой простыне? Почему нельзя просто установить параметр при открытии формы отчета? Или при изменении поля с параметром на форме? В 8.3 в модуле отчета есть событие ПриКомпоновкеРезультата, можно и туда засунуть установку параметра.
|
|||
17
Flip
26.03.17
✎
05:28
|
(16) Там сложность в том, чтобы по группам собрать итоги, а потом их еще и посчитать их по формуле... Что-то не приходит как - это реализоватьв запросе.
|
|||
18
Flip
26.03.17
✎
05:34
|
(16) Установка параметров в СКД при открытии - моветон)))
Ибо у пользователя всегда есть возможность, залезть и чо-нить поменять, а нафига ему - это надо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |