Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по СКД.

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

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

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

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

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


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.