Имя: Пароль:
1C
 
Как сделать составной СКД
0 busy1
 
26.05.16
09:30
Добрый день. Есть сложный отчет "Бюджет доходов и расходов", где используется много разных формул и зависимостей. Он работает, но есть один момент. Если что то изменится, счет затрат поменяется или статья бюджета, то отчет придётся переделывать, и добавлять условия, что если период такой то, то такая выборка, если такой то другая выборка. В перспективе это довольно сложная задача. Я подумал, что нужно найти другое решение. И вот оно. Я создам справочник с строками отчета, например: Доходы, Расходы, Амортизация и т.д. И в каждому элементу пропишу свой кусок СКД. Дальше создается документ, который заполняется из этого справочника и рассчитывается по формулам "СКД". После проводится по своему регистру. Отчет формируется из данных регистра. Сохраняется история, и можно легко менять формулу при необходимости. А теперь вопрос. Как сделать эти кусочки СКД ? Платформа 8.3.
1 Alpen906
 
26.05.16
09:46
В УТ 11 есть справочник СКД. Он позволяет хранить и редактировать схемы. Посмотри, может это вариант подойдет. Мне эта тема тоже интересна, но до ее реализации руки не дошли.
Пока реализовано по-другому. Есть справочник "Правила формирования расходов БДР (постоянные, переменные)". В нем задаются отборы по различным показателям (Статья ДДС, ЦФО, ЦФУ, Вид хозяйственнй операции, вид документа, Касса). При формировании общего набора для постоянных и переменных затрат динамически формируется запрос с учетом этих условий. Условия подставляются в запрос в отчете в процедуре ПриКомпоновкеРезультата(). Разбиение на статьи происходит на уровне отборов в Пользовательском режиме. Не совсем красиво, но на данный момент финансистов устраивает. При необходимости они теперь сами вносят в него изменения.
2 busy1
 
26.05.16
09:55
(1) У тебя отчет наверное не в разрезе периодов. Мне нужно, что бы была динамика. Исполнение Бюджета в январе, феврале и т.д.
3 busy1
 
26.05.16
09:56
Да, и конфигурация Бухия 3.0
4 AceVi
 
26.05.16
10:03
(0) Ты походу придумал очередной велосипед. в какой базе работает твой БДР?
Если делать как ты, я бы сделал:
1. Справочник - в нем тч. в которой статья/Формула(формула это выражение на языке запроса). в 1 элементе справочника прописываешь все статьи и формулы(нулевой элемент). Затем если какая то формула поменялась создаешь новый элемент и пишешь туда только измененные статьи и формулы.
2. РС.периодический - Измерение - Справочник из 1.
3. Запрос выглядит так -
  1. Собираешь во временную таблицу список статей.(втСтатьи)
  2. Выбираешь все движения (сумма и даты) по статьям.(втДвижения)
  3. Для каждой статьи собираешь все возможные справочники из 1.(втФормулыДляСтатей)
  4. Для каждой строки втДвижения делаешь срез последних по условию РС.Справочник в втФормулыДляСтатей.Справочник(у тебя появляеться актуальный справочник для каждой статьи, и сразу след запрос вытаскиваешь из справочника формулу для конкретной статьи). Все - у тебя есть статья и актуальная для нее формула.
Дальше если что то изменилось пилишь только левые соединения в последнем запросе(если что то новое появилось) и новые элементы справочника с формулами.
5 busy1
 
26.05.16
10:06
(1) Это тоже самое.
6 busy1
 
26.05.16
10:06
(4)
7 AceVi
 
26.05.16
10:11
(5) Почти..
Ты используешь документ, а я предлагаю РС т.к. в документе ты не сделаешь срез последних. и у тебя видимо если поменялась 1 формула ты создаешь элемент справочника со всеми статьями и часть меняешь(что бы заполнить потом по нему документ).
А кусочки скд можно писать как угодно - можно конкретные запросы а потом их программно склеивать. можно просто формулу а в конечном запрос нужные выборки левым соединением подтягивать. смотря что и как у тебя меняется.
8 AceVi
 
26.05.16
10:14
(6) и у меня получается индивидуальный подход к каждой статье, а у тебя документ проводиться, ну допустим раз в месяц для конкретного отчета.