Имя: Пароль:
1C
1С v8
Создание сложного отчета, кто как?
0 AneJIbcuH
 
11.03.17
13:06
День добрый! Поставили задачу, создать отчет по типу форма №2 (Отчет о прибылях и убытках) только по упр. учету. Структура практически статична, (пример: http://joxi.ru/KAgd0J0ivv4Nrl).
Собрать информацию из базы не проблема, но вот она разнородная, т.е. собрали показатели пункта 1, далее собрали показатели пункта 2, а вот пункт 3 - это формула из пункта 1 и 2 и тд. (т.е. СКД фиг знает как использовать).
Другая сложность - необходимо иметь несколько настроек, таких как периодичность отчета (месяц, квартал, полугодие, год) - http://joxi.ru/vAWvMeMcWW1P2W
Для пункта 1, где собираем показатели продаж, хорошо было бы иметь группировку по подразделениям.
Для пункта, где собираем затраты, иметь группировку по статьям затрат и тд.
Пока получается некое извращение, нарисовал форму ТабДока. Каждый пункт обрабатываю отдельно. т.е. собрал в запросе продажи за необходимый выбранный период, выгрузил в ТЗ, рассчитал количество периодов (т.е. месяцы или кварталы и тд), для суммы по периодам в группировке сворачиваю ТЗ, каждый раз пробегаю периоды, ищу значения показателей и кидаю на ТабДок. Вроде получается симпатично, но вот как побороть группировки, например по статьям затрат, да ещё и с иерархией, при этом рассчитывать итоги для каждой иерархии для каждого периода.
Пришла в голову идея, собрать данные для пункта (например, затраты) в СКД, при этом получить данные в виде таблицы и выгрузить в дерево значений, а дерево, как оно получилось закинуть в ТабДок, но обломался, ведь таблица не выгружается из СКД..
Кто как решает подобные вопросы?
1 nordbox
 
11.03.17
13:28
Я свою конфу писал,
типа такую )))
http://s018.radikal.ru/i520/1703/1f/fab9b6e2656d.gif
потому что заказчик так захотел и потому что не все данные отражаются в БП ))
2 AneJIbcuH
 
11.03.17
13:35
(1) :)
3 nordbox
 
11.03.17
13:40
Ты с какого счета вытаскиваешь?
не забывай о том что например на 51 Субконто Статьи ДДС оборотное, и на других тоже.
4 nordbox
 
11.03.17
13:42
(2) ну на картинке данные- это мое баловство,
на самом деле это для строительной компании делалось и данные там другие конечно же ))
5 nordbox
 
11.03.17
13:45
+3 и с обротного субконто ты Остатки на начало и конец ты не вытащишь
6 nordbox
 
11.03.17
13:53
+1 и у меня так же можно сделать в разрезе Контрика и Договора
7 nordbox
 
11.03.17
14:03
можно еще вот так сделать ))
http://s020.radikal.ru/i706/1703/a2/e8cc27e8fc56.gif
8 mistеr
 
11.03.17
17:41
(0) Если на СКД не получается, делай так, как рег. отчеты. Но я сомневаюсь, что СКД не справится с описанным.
9 organizm
 
11.03.17
17:46
сделай без СКД в чем проблема?!
10 AneJIbcuH
 
11.03.17
19:18
(3) Данные из регистров накопления беру, упр. учет. (9) Я проблематику озвучил,хочу получить не с помощью СКД такую штуку: http://joxi.ru/a2XEDYDTbXwbAg, т.е. чтобы были итоги по иерархии за каждый месяц.. Как более грамотно без СКД?
11 nordbox
 
11.03.17
19:24
(10) из какого РН ? они тоже разные бывают, или свой запилил?
12 nordbox
 
11.03.17
19:26
+11 не поверишь, вот отчеты которые я тебе показал, в первой версии "нетленки" я зафигачил без скд, правда кода пришлось нафигачить мама не горюй )))
13 AneJIbcuH
 
11.03.17
19:36
(11) Ну что за вопросы ) с разных регистров )) (12) Можно много кода написать и гавн*кода тоже ) но надо как-то красиво и работоспособно и производительно )
Вот экспериментирую, для одного из пунктов сделал так, Накидал запрос в СКД, сделал необходимые группировки (к сожалению только до второго уровня, далее проблемки о которых говорю всё выше). Последняя группировка - это необходимый Период (Год, Квартал, Месяц). Перед тем как выгрузить результат СКД в дерево значений программно в группировке СКД подменяю на нужный период. Далее ДЗ раскидываю на ТабДок.
14 nordbox
 
11.03.17
19:44
(13) Не совсем вкурил что там у тебя не получается
но вот сделай вот так если надо, это один из вариантов
http://s019.radikal.ru/i632/1703/4a/c3e2a261dc9e.gif
15 nordbox
 
11.03.17
19:46
(13) На счет регистров вопросы, не мешает посмотреть, Один вид регистра есть Остатки, второй Обороты.
16 AneJIbcuH
 
11.03.17
19:53
(14) Собрать в общем отчет, как пишу в (0). А в (13) рассказываю про один из пунктов всего отчета.
(15) "матчасть" про регистры мне известна ) начни рассказывать, что если я использую не СКД, то для регистра вида "Остатки" используй не просто Дату, а Границу ))
17 nordbox
 
11.03.17
19:59
(0)>>например по статьям затрат, да ещё и с иерархией
Это что ли?
Что не получается?
18 nordbox
 
11.03.17
20:02
Какая иерархия у статей затрат???
лист бумаги возьми и нарисуй
19 AneJIbcuH
 
12.03.17
07:42
(18) в (10) скрин привел.
20 nordbox
 
12.03.17
07:50
(19) я понял, теперь давай так.
Вопросы:
Каким образом Виды расходов и статья расходов между собой связаны?
21 nordbox
 
12.03.17
07:53
+20 и из какого регистра ты их вытаскиваешь
они в одном регистре?
22 nordbox
 
12.03.17
07:54
Ты для УСН что ли пишешь?
23 AneJIbcuH
 
12.03.17
08:24
(20) Ну если чем поможет ) УПП, У статьи затрат есть реквизит "Вид затрат", регистр ЗатратыОбороты ) Нет, не для УСН
24 AneJIbcuH
 
12.03.17
08:26
(20) Проблема не как вытащить нужные данные, а как грамотно расположить их в табдок, чтобы получилось как на скрине в (10), но без СКД
25 nordbox
 
12.03.17
08:33
Ну как чем поможет ? ))
Ты спрашиваешь как сделать, а я не знаю что тебе сказать потому что я не знаю что сделать.
Это как больного по телефону лечить на телепатическом уровне.
УПП какая?
На СКД это конечно намного легче,
без СКД это надо правильно расположить группировки и упорядочить
дальше у тебя будет конструкция
Выбрать ВидРасходов \\ внутри выбираешь статьи
    Выбрать СтатьиЗатрат
      \\ выводишь сумму
    КонецЦикла \\ группировки статьи
КонецЦикла \\ Группировки Виды
Примерно так
но это не комильфо, я же говорю что такое уже делал ))
Гкода у тебя будет капец)))
26 NorthWind
 
12.03.17
08:38
(0) посмотрите как сделана отчетность в ФНС и сделайте так же.
27 nordbox
 
12.03.17
08:38
+25 а в запросе у тебя должно быть в такой последовательности
Группировка ВидРасходов
Группировка СтатьиЗатрат
28 NorthWind
 
12.03.17
08:40
(25) да и Бог с ним с г-кодом. Есть вещи, которые делаются именно так, нужно это принять и не выносить мозг себе и другим.
29 nordbox
 
12.03.17
08:40
только не понятно нахрена козе баян ))
30 AneJIbcuH
 
12.03.17
09:06
(28) Да, как-то надо принять )
31 AneJIbcuH
 
12.03.17
09:18
(25) И я примерно также делаю (СКД):

-Группировка "ВидРасходов"
--Группировка "Период" (На выбор Месяц,Квартал,Год)
--Группировка "Статьи"
---Группировка "Период" (На выбор Месяц,Квартал,Год)

Выгружаю в ДеревоЗначений, и представляю в виде таблицы в табдок:

ВидРасходов |Месяц1 | Месяц2 | Месяц3 |
Статья1     |Месяц1 | Месяц2 | Месяц3 |
Статья2     |Месяц1 | Месяц2 | Месяц3 |

А вот если необходимо, чтобы статьи были с иерархией, то уже проблема

ВидРасходов       |Месяц1 | Месяц2 | Месяц3 |
Иерархия1 Статьи1 |Число1 | Число2 | Число3 |
Иерархия2 Статьи1 |Число1 | Число2 | Число3 |
Статья1           |Месяц1 | Месяц2 | Месяц3 |
Иерархия1 Статьи2 |Число1 | Число2 | Число3 |
Статья2           |Месяц1 | Месяц2 | Месяц3 |
и тд

Так вот, где Число1, Число2 и тд - эти значения не могу понять, как грамотно посчитать и вывести..
32 nordbox
 
12.03.17
09:26
Период
вот тут у тебя не идет
33 AneJIbcuH
 
12.03.17
09:26
(31) Если допустим в СКД, я для статьи указываю вывод "Иерархия", то после выгрузки в ДеревоЗначений, мне прежде чем вывести строку иерархии надо для каждого месяца посчитать все значения в группах, что ниже этой строки. Ну организую рекурсию, так это ж сколько циклов получится...
34 nordbox
 
12.03.17
09:28
(33) ))) тебе же говорят что я уже такое делал
Гкода ..... меня забанят ))))
35 nordbox
 
12.03.17
09:51
+34 Напиши функцию универсальную по максимуму, предавай туда параметры период, вид и затраты и пусть считает сумму.
36 AneJIbcuH
 
12.03.17
10:38
(35) Это понятно, но думал может у кого есть идея оптимально решить подобный вопрос. Например, вот такая ещё в голове. Выводить дерево в обратном порядке, рассчитывая попутно итоги для строк, те что выше, а области для табдока сохранять в массив. Далее массив областей вывести в обратном порядке.
37 nordbox
 
12.03.17
11:56
(36) Ты итоги по группировкам можешь не сверху выводить как в СКД по умолчанию, а с низу, тогда будет проще считать
38 AneJIbcuH
 
12.03.17
13:50
(37) Надо попробовать.
39 nordbox
 
12.03.17
14:01
(38) Пробуй, а я знаю что так проще, потому что сам такой отчет делал и знаю это )))
Выводишь затраты и попутно считаешь их, и освобождаешься от лишних циклов подсчетов итоговых сумм ))
40 nordbox
 
12.03.17
15:12
(38) Могу еще тебе подсказать развитие событий ))
ГБ или ФинДир или кто там тебе сказал делать такой отчет обладают хорошим аппетитом )))
они тебе скажут что бы ты еще ниже итоговой строки группировки,
сделал еще одну строку итоговую, НО Нарастающим итогом.
Так что будь готов и к этому.
Причем мне заказчик об этом сказал когда я уже заканчивал отчет, пришлось опять извращениями заниматься ))
41 mistеr
 
12.03.17
15:39
(24) (33) В СКД можно описать свою иерархию. И потом СКД посчитает тебе любые итоги.

Странный подход ты выбрал. Обычно делают наоборот: собирают данные вне СКД (если они сложные), а потом скармливают СКД и получают готовый красивый отчет. СКД в общем-то для этого и создавалась.
42 AneJIbcuH
 
12.03.17
18:16
(41) Что имеешь в виду под "В СКД можно описать свою иерархию"? Накидать своих группировок?

Тоже думал, как грамотно собрать ТЗ и потом скормить СКД. Но всё дело в полной неоднородности данных. Когда для одного пункта одна группировка, для другого другая и тд..
43 Сияющий Асинхраль
 
12.03.17
19:14
Заказчику по большому счету пофигу, как ты задачу исполнишь, лишь бы результат был. Я подобное, даже еще более сложное писал на семерке, а более сложное потому что это была отчетность многопрофильного холдинга, где было и производство и строительство и продажи с услугами, все это надо было вытаскивать по совершенно различным движениям. Ничего, заработало, правда отчетик оказался тысяч на десять строчек :-(
44 mistеr
 
12.03.17
21:39
(42) Если в твоей ТЗ у каждой строки будет некий ID и ID родителя, то делаешь связь набора с самим собой по этим полям, и СКД строит иерархию и считает по ней итоги.
45 AneJIbcuH
 
13.03.17
08:36
Понедельник, думаю многие проснулись и подскажут свои идеи? :)
46 nordbox
 
13.03.17
11:52
(45) я тебе оптимально с функцией подсказал,
честно признаюсь, тут сказали
(43)>> оказался тысяч на десять строчек :-(
у меня вышел на 40 листов А4 без СКД, остальное выбирай сам (((
47 eklmn
 
гуру
13.03.17
11:58
мда
(45) продам чисто на скд