gifts2017

Как превратить линейно-периодический отчёт в многолинейно-периодический (в платформах 8.х)

Опубликовал Эстер Коган (e.kogan) в раздел Отчеты - Анализ учета

Навеяно http://infostart.ru/public/90001/ - решение на основе пользовательских полей в СКД

Исходные данные: к примеру, у нас есть отчёт по продажам на основе некоего оборотного регистра, написанный на СКД и имеющий возможность разворота по датам продажи.

Что нужно: вывести те же показатели, но в диаграмме по двум аналогичным периодам сразу (например, за год с развёрткой по месяцам).

Чем решаем: пользовательскими полями, без изменения отчёта в конфигураторе.

Разберём, что, собственно, минимально нужно для построения такого отчёта.

  1. ОДИН ресурсный показатель (сумма продаж)
  2. ДВА  измерения (год и месяц) - остальные, считаем, и так есть (контрагент, например).

Делаем пользовательские поля (выражения):

  1. Поле "Сумма" - самое сложное: пишем в выражении детальных записей "ВЫБОР КОГДА Год([Дата продажи]=2010(тут подставляете первый нужный год) ТОГДА [Сумма продажи] КОГДА (то же самое для каждого нужного года) ИНАЧЕ 0 КОНЕЦ". В выражении итоговых - Сумма(выражение детальных). Учитывайте, что в некоторых версиях 8.1 множественные "Выбор Когда Тогда Когда Тогда" могут не работать (зафиксированы такие случаи) и придётся писать вложенные "Выбор Когда Тогда Иначе Конец". это и есть ваше поле, по которому нужно отслеживать изменение :)
  2. Поле "Год" - НачалоПериода([Дата продажи],"Год") (и сразу в условном оформлении указываем его формат) (или сразу Год([Дата продажи]) - кому как нравится).
  3. Поле "Месяц" - Формат([Дата продажи],"ДЛФ='MM. MMMM'") - так удобнее всего отображается.

Теперь осталось только вывести диаграмму: точки - месяц, серии - год, показатель - сумма, тип диаграммы, например, с накоплением.

Аналогично можно рассмотреть любой период.

Приложение к статье - файл сохранённой настройки для Универсального отчёта в ЗУП 2.5 8.2 (отчёт по регистру взаиморасчётов с сотрудниками организаций).

UPD 1: Для конструкции "ВЫБОР КОГДА ТОГДА" можно применить в данном случае сокращённый вариант записи:

Выбор Год([Дата продажи])
Когда 2007
  Тогда [Сумма продажи]
Когда 2008
  Тогда [Сумма продажи]
Когда 2009
  Тогда [Сумма продажи]
Когда 2010
  Тогда [Сумма продажи]
Когда 2011
  Тогда [Сумма продажи]
Иначе 0
Конец

Мои благодарности ildarovich за эту информацию.

UPD 2: тем более спасибо artbear, который заставил меня наконец-то отключиться от вообще вычисления суммы продаж таким извратом :) заело с какого-то старого отчёта. Отдельное вычисление суммы не нужно вообще, можно сразу брать нужное поле. Зато мы теперь знаем про UPD 1!

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
УниверсальныйОтчетПоМетаданным_Сравнение начислений по годам с диаграммой.vrp
.vrp 15,33Kb
27.08.14
42
.vrp 15,33Kb 42 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Игорь Исхаков (Ish_2) 27.09.11 11:28
Потрясен таким изобретением.
2. Эстер Коган (e.kogan) 27.09.11 11:34
(1) Какое там изобретение, просто жаль стало людей, которым предлагают за такую штуку платить штуку :)
Ну и начинающим полезно будет покрутить СКД таким образом. Кажется, аналогичных публикаций не видела пока, а почти очевидная вещь.
3. Александр Рытов (Арчибальд) 27.09.11 11:36
Даешь по бесплатной альтернативе на каждую платную публикацию!
4. Игорь Исхаков (Ish_2) 27.09.11 11:38
(2) Достаточно было сделать комментарий в платной теме "не морочь людям голову".
5. Эстер Коган (e.kogan) 27.09.11 11:41
(4) Там примерно так и написано ;)
(3) Если распределить нагрузку по, например, топ-30 - вполне реально :D только зачем? Немалая часть, ИМХО, не просто так платная. Лучше прикрутить кнопочку "спасибо рублём" с автопоявлением для разработок с рейтингом выше Х.
6. Сергей (ildarovich) 27.09.11 11:51
(0) А не получится ли здесь использовать более короткую запись?
ВЫБОР Год([Дата продажи]) КОГДА 2007 ТОГДА [Сумма продажи] КОГДА 2008 Тогда[Сумма продажи] КОГДА(то же самое для каждого нужного года) ИНАЧЕ 0 КОНЕЦ
7. Эстер Коган (e.kogan) 27.09.11 12:01
(6) Попробуйте. Я такой формой не пользовалась.
UPD: Работает. Спасибо за информацию!
8. Артур Аюханов (artbear) 27.09.11 12:55
(6) (7)
А в чем проблема написать ВЫБОР КОГДА Год([Дата продажи]) >= 2007 ТОГДА [Сумма продажи] ИНАЧЕ 0 КОНЕЦ
:)
ildarovich; +1 Ответить 1
9. Алексей Константинов (alexk-is) 27.09.11 13:10
(6) (7) (8) Если оптимизировать то так

ВЫБОР КОГДА [Дата продажи] >= ДАТАВРЕМЯ(2007,1,1) ТОГДА [Сумма продажи] ИНАЧЕ 0 КОНЕЦ

или так

ВЫБОР КОГДА [Дата продажи] >= &ДатаГод2007 ТОГДА [Сумма продажи] ИНАЧЕ 0 КОНЕЦ
10. Эстер Коган (e.kogan) 27.09.11 13:13
(9) Да вообще ничего не надо, это у меня с какого-то старого отчёта заело, где показатель вычислялся сложнее :) поправила.
11. Алексей Константинов (alexk-is) 27.09.11 13:19
12. Ийон Тихий (cool.vlad4) 27.09.11 14:05
(11) Черт, не знал. Хоть в запросах у 1С есть switch.
13. Артур Аюханов (artbear) 27.09.11 14:28
(9) Это понятно, я показал более краткую форму записи без оптимизацию, недоумевая, почему не автор и комментаторы не пользуются краткой записью :)
14. Эстер Коган (e.kogan) 27.09.11 14:36
(13) Так оно и бывает со старыми разработками - когда доходят руки, оказывается, что две трети обвесов умерло своей смертью :)
(9) Кстати, сравнение значения с ДатаВремя или тем более параметром (решение же пользовательским полем идёт, никакого добавления параметров в отчёт!) в данном случае вроде особого выигрыша дать не может по отношению к записи через Год... или ДатаВремя быстрее Год?ДатаВремя быстрее Год, согласна. А вот параметр в данном случае сбоку припёка. )
15. Александр Медведев (anig99) 27.09.11 14:47
Просто. Чего-то сам не допер, когда пытался прикрутить. Я зациклился на 2х мерной таблице.
16. Эстер Коган (e.kogan) 27.09.11 15:17
(15) Ясенпень, что просто ) но у всех бывают затыки на ровном месте. Для того и выложила, чтобы такой затык никому работу не тормозил )
17. Сергей (bo_) 27.09.11 16:44
(2) Конечно, рад за Ваш энтузиазм и желание/стремление трудится за признание, но мы все таки живем в таком мире где одним признанием, своего благосостояния улучшить, к сожалению, не получится. Может быть как раз из-за таких "идейных" программистов, которых хлебом не корми, денег не плати, дай только покодить, нас 1С-ников, и не считают особо ценными специалистами, хотя по сути дела большинство таких спецов являются уже аналитиками/консультантами, а это совсем другой уровень и признания и оплаты. Хотя конечно когда-то и сам был начинающим, тоже работал за идею, не понимая того что отдаешь свой труд за бесценок, да еще и особых благодарностей/признания что-то не перепадало.
Пока не переоценишь свои жизненные ценности, и не научишься себя преподносить, так и останешься всего-лишь программистом-фанатиком.
ВАЖНО понимать что конечные пользователи отчетов, используют Ваш труд/идеи/мысли/изобретения (не отблагодарив Вас ни рублем) для увеличения своих доходов, и как правило используя хорошие отчеты, доходы довольно таки хорошо увеличиваются, ну а Вы радуйтесь всего лишь плюсом к Вашей карме, и то, скорее всего маловероятным, потому что дядьки олигархи на такими мелочами не заморачиваются.
Мой отчет стоит всего лишь 1000 рублей - это меньше полу-часа работы наемного программиста, который просидит над отчетом гораздо больше.
Насчет публикации, на мой взгляд запрос будет дольше отрабатывать.
18. Александр Медведев (anig99) 27.09.11 16:59
(17) Бред. Писать отчет под конкретного пользователя или писать тиражное решение - совершенно разные расценки. Такой отчет как у Вас на СКД пишется меньше чем за час, что автор и показал. Обращайтесь в 1с с жалобой, что придумав СКД они отобрали у вас хлеб. Профессионализм заключается не в зарабатывании денег, как это пытался доказать Eugeneer, а в том, чтобы быть постоянно на краю прогресса. Этот прогресс постоянно обесценивает написанное любым программистом - вы готовы купить windows 3.11 по цене на момент выхода? А window 95? Более простые вещи обесцениваются ещё быстрее. Перепишите Ваш отчет на СКД, добавьте плюшек и свистелок для пользователей и вперед. Вот, например, решение автора страдает недостатком - создание пользовательских полей ручное, хотя это можно автоматизировать.
gutentag; Ish_2; cleaner_it; cool.vlad4; +4 Ответить 3
19. Сергей (bo_) 27.09.11 17:11
(18) С мнением о профессионализме согласен, но соревноваться в нем можно сколько угодно, но во-первых эти соревнования должны быть сугубо между спецами, а во-вторых, нужно адекватно оценивать Ваши разработки, и пользу, которую они принесут конечным пользователям. Вот как раз таки отношение пользы и стоимости моего отчета, по-моему больше чем отлично. Вы попробуйте показать идею/суть отчета руководителям, а затем назовите мою цену, думаю что найдется очень очень не много скупердяев, которые еще будут думать, а нужно покупать или нет...
20. Эстер Коган (e.kogan) 27.09.11 18:04
(17) Не знаю как вас, а меня ценным специалистом считают, т-т-т.
Дядьки-олигархи, между прочим, умеют ценить полезные штуки. Раз используют на халяву, другой, а потом и на работу позовут.
То, что я выкладываю здесь, либо пишется для собственного удовольствия и разминки, либо заказано на какой-либо из работ и заказчик не против распространения.
Заметьте, сабж - статья, а не обработка; адресована, таким образом, программистам и тем из пользователей, кто освоил СКД на достаточном уровне.
(18) Кстати, это не готовое решение, а путь решения для класса задач, причём решения именно чисто пользовательского, без захода в конфигуратор. Потому и без автоматизации ;)
(19) Да продавайте, кто вам мешает? Я даже не стала ставить в вашей теме ссылку сюда - кто не найдёт, тем точно нужна ваша работа. Вы продаёте яблоки, я рассказываю, как их стрясти с дерева.
21. Александр Медведев (anig99) 27.09.11 19:32
(19) Ваш отчет отстал от прогресса, поэтому он не стоит НИЧЕГО, что наглядно показал автор этой публикации.
22. KocheroFF (kocheroff) 27.09.11 20:20
Может и оффтоп, но все же скажу.
Это сугубо мое мнение:
Квалифицировнный программист не только должен уметь хорошо кодить, но и построить свою работу так, чтобы пользователь, для которого он готовит всякие отчеты и прочее на СКД, умел и хотел это делать сам, хотя бы на простейшем уровне.
Причина? Причина проста - пока программист тратит время на решение всякой мелочи типа "...ой, у меня тут отчетик слетел..." (хотя там надо просто поменять настройки этого отчета средствами СКД и делается это за 5 минут) у него меньше времени остается на самосовершенствование. Как следствие медленней идет прогресс в профессиональном уровне и меньше толковых разработок. А пользователь (заказчик) все заваливает и заваливает разной мелочью.

Итог один: хорошего не разрабатывают -> денег хороших не платят. А за "мелочь" - мелочь и платят.

Как то так :)
MaxDavid; cleaner_it; +2 Ответить
23. Игорь Исхаков (Ish_2) 28.09.11 08:48
24. Доржи Цыденов (support) 28.09.11 10:21
У коммерческого решения есть неоспоримое преимущество - у него есть техническая поддержка пользователей и дальнейшее развитие. В отличии от бесплатного, где это на усмотрение автора, его занятость, настроения и т.д.
25. Ийон Тихий (cool.vlad4) 28.09.11 10:44
(24) не хочется оффтопить, но тем не менее поправлю - у коммерческого решения как правило есть способ регулирования отношения между продавцом и покупателем, например, договор, в котором и может быть указана тех поддержка, а может и нет, а может оговорены условия. Упомянутый windows 3.11 никто не поддерживает уже. И не развивает.
26. Igоr Sаulеviсh (gutentag) 28.09.11 10:47
(24)
У коммерческого решения есть неоспоримое преимущество - у него есть техническая поддержка

Которая, обычно, заканчивается через полгода-год как в 1С с конфигурациями типа "ПРОФ".

РЕЗЮМЕ: главное, чтобы конечный пользователь не превратился в "дойную корову"
--------
В остальном, мне приемлемы, практически все, позиции озвученные в дискуссии.
27. Александр Медведев (anig99) 28.09.11 11:05
(24) что-то я не заметил у платного отчета дальнейшего развития.
28. Сергей Ожерельев (Поручик) 28.09.11 21:57
(26) Предлагаешь всю жизнь поддерживать?
29. Сергей Ожерельев (Поручик) 28.09.11 22:02
(2) Это для программистов, конечный пользователь типа менеджера или бухгалтера или руководителя не станет выписывать какие-то странные буквы из вашей статьи и что-то настраивать в отчёте.
RomanUzmov; +1 Ответить 1
30. Роман Узьмов (RomanUzmov) 29.09.11 13:23
(26) gutentag,
РЕЗЮМЕ: главное, чтобы конечный пользователь не превратился в "дойную корову"

Все мы, по большому счету, являемся "дойными коровами", в той или иной степени: главбух платит программистам за услуги по сопровождению программ, а программист платит местным провайдерам за интернет и службе такси за доставку его тела к тому самому бухгалтеру... Каждый ожидает качественной работы... А за работу, как ни крути, все равно надо платить. Если, к примеру, отчет написан для 1С-бухгалтерии, то, при изменении последней, его, возможно, придется изменять, а это работа, а за неё надо платить. Для того и служит поддержка: гарантированная бесплатная, а затем и платная, на указанные сроки. Да хоть бесплатная поставка отчета/программы будет - пусть так, по принципу СПО, к примеру... услуги по обновлению всё равно платными будут... А если пользователь САМ может менять отчет, - пусть меняет, никто же его не будет заставлять платить силой... Просто тут уже следует задуматься - а может глбуху тому же сменить работу и идти на программиста? Ведь он, по сути, своё собственное время - которое тоже имеет свою цену с точки зрения работодателя, тратит "непрофильно", да и не факт, что сможет нормально неспециалист вносить изменения в программы/отчеты. Каждому своё... имхо, конечно же...
Поручик; +1 Ответить 2
31. Сергей Ожерельев (Поручик) 29.09.11 13:41
(30) + с единственной придиркой: программистам платит не главбух, а владелец/руководитель организации. Остальное верно.
32. Роман Узьмов (RomanUzmov) 29.09.11 20:36
(31) Поручик, ну да... я так, утрируя... раз уж оппонент - гл.бух. ;-)
33. Эстер Коган (e.kogan) 03.10.11 10:04
(29) Конечные пользователи бывают разные. Кому-то быстрее и проще будет внести предлагаемые (чисто пользовательские, замечу) изменения в свой отчёт (может, и не в типовой конфигурации, может, и не только в продажах), кому-то - проплатить, подождать пакета документов и пользоваться предложенным отчётом, не трогая настроек и вообще не включая мозг.
Кстати, (30), в таком случае можно сказать, что бухгалтер, ставящий отбор в оборотке, тоже тратит время непрофильно. Пусть программист поставит флажок, укажет значение и сохранит десяток настроек под десять контрагентов... ;)
34. Денис (Den_D) 17.07.12 13:59
Да уж, такого не найдешь ни в какой документации. Мне как раз сейчас надо для руководства такие показательные графики. Спасибо большое за то что теперь мои глаза открыты в этом направлении.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа