Имя: Пароль:
1C
1С v8
Вопрос по СКД.
0 ILM
 
гуру
14.05.21
14:12
Сразу же скажу, что задачу решил, но чувство, что не использую все возможности СКД не отпускает.
Дано: Отчет Фактическая себестоимость.

Строки: Организация, Подразделение, Продукция Иерархия.
Колонки: ПериодМесяц, ПериодПолугодие, ПериодГод.  
Ресурсы: Сумма(КоличествоВыпуск), Сумма(Стоимость), Себестоимость = Сумма(Стоимость)/Сумма(КоличествоВыпуск) ( - проверки деления на ноль есть))).

Нужно отдельно вывести колонку изменение себестоимость последнего периода, от предпоследнего (% и рубли).
(Себестоимость(ПоследнийПериод) - Себестоимость(ПредПоследнийПериод)) и
(Себестоимость(ПоследнийПериод) - Себестоимость(ПредПоследнийПериод))/Себестоимость(ПредПоследнийПериод), а себестоимость см.выше.

Добавил: в колонку детальные записи, два вычисляемых поля изменение и % а там в ресурсы сложную формулу на 30 строк типа: ВЫБОР КОГДА CУММА(ВЫБОР ....)  = 0 ТОГДА 0 ИНАЧЕ Сумма(Выбор ....) КОНЕЦ -  ВЫБОР КОГДА....  КОНЕЦ  и т.д.

Но может есть способ найти себестоимость предыдущую и последнюю с учетом иерархии, чтобы не городить такие формулы?
1 toypaul
 
гуру
14.05.21
14:14
может и есть
2 ILM
 
гуру
14.05.21
14:16
(1) Покажите? ))
3 toypaul
 
гуру
14.05.21
14:20
(2) могу только удочку показать. "рыбу" уже запал пропал показывать. да и времени лишнего сейчас нет. а еще есть понимание, что в отдельной колонке это сделать примерно также сложно как формула на 30 строк. а еще для начала неплохо бы понять последний (и пред) это какой - просто по-порядку или по-порядку значаший (не 0).
4 ILM
 
гуру
14.05.21
14:24
Параметром задается период текущего года, и добавляются от 1 до 10 лет предыдущих лет. ПредПериод это предыдущий год, а ТекПериод это текущий год. Остальные пред. периоды для информации.
5 ILM
 
гуру
14.05.21
14:24
2020 - предыдущий, а 2021 - последний
6 toypaul
 
гуру
14.05.21
14:28
Вот здесь https://learn.programstore.ru/skd2-intensiv рассматривали похожий пример "Вычесть из первой колонки последнюю"
Там же много других "полезных" примеров
7 ILM
 
гуру
14.05.21
14:35
"ВычислитьВыражение" это если известна группировка, а я не знаю что они выведут Год, Полугодие, Квартал, Месяц или комбинацию из них.
Получается я правильно сделал.
8 ILM
 
гуру
14.05.21
14:38
Вот код для % какой получился.

ВЫРАЗИТЬ(ВЫБОР КОГДА
ЕСТЬNULL(ВЫБОР
КОГДА СУММА(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца)
ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ) = 0
ТОГДА 0
ИНАЧЕ Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца) ТОГДА Стоимость ИНАЧЕ 0 КОНЕЦ) * (ВЫБОР КОГДА &ВключатьНакладныеРасходы ТОГДА   КоэффициентСНакладными
ИНАЧЕ 1 КОНЕЦ)/
Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца) ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ)
КОНЕЦ,0) = 0 ТОГДА 0
ИНАЧЕ
(ЕСТЬNULL(ВЫБОР
КОГДА СУММА(ВЫБОР КОГДА ГОД(ПериодМесяц) = ГОД(&ДатаКонца)
ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ) = 0
ТОГДА 0
ИНАЧЕ Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) = ГОД(&ДатаКонца) ТОГДА Стоимость ИНАЧЕ 0 КОНЕЦ) * (ВЫБОР КОГДА &ВключатьНакладныеРасходы ТОГДА   КоэффициентСНакладными
ИНАЧЕ 1 КОНЕЦ)/
Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) = ГОД(&ДатаКонца) ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ)
КОНЕЦ,0) - ЕСТЬNULL(ВЫБОР
КОГДА СУММА(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца)
ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ) = 0
ТОГДА 0
ИНАЧЕ Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца) ТОГДА Стоимость ИНАЧЕ 0 КОНЕЦ) * (ВЫБОР КОГДА &ВключатьНакладныеРасходы ТОГДА   КоэффициентСНакладными
ИНАЧЕ 1 КОНЕЦ)/
Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца) ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ)
КОНЕЦ,0))/ЕСТЬNULL(ВЫБОР
КОГДА СУММА(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца)
ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ) = 0
ТОГДА 0
ИНАЧЕ Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца) ТОГДА Стоимость ИНАЧЕ 0 КОНЕЦ) * (ВЫБОР КОГДА &ВключатьНакладныеРасходы ТОГДА   КоэффициентСНакладными
ИНАЧЕ 1 КОНЕЦ)/
Сумма(ВЫБОР КОГДА ГОД(ПериодМесяц) +1 = ГОД(&ДатаКонца) ТОГДА КоличествоВыпуск ИНАЧЕ 0 КОНЕЦ)
КОНЕЦ,0)
КОНЕЦ,"Число(15,4)")