Имя: Пароль:
1C
 
Группировка месяц. Какие есть решения
Ø
0 chief
 
24.12.04
13:15
Отчет, в котором группировки выбирает пользователь (Контрагент, договор, номенклатура и т.д), нужно разворачивать по месяцам( в столбцы). Группировка месяц в данном случае не спасает. Вижу 2 варианта решения:
1. Заполняем список месяцев + год в выбранном периоде, дальше добавляем функции для каждого месяца:
функция ПриходТраЛялЛя+СписокМесяцев.ПолучитьЗначение(i) = Приход(ТраЛялЛя) когда ( (ДатаМесяц(ТекущийДокумент.ДатаДок) = НужныйМесяц) и (ДатаГод(ТекущийДокумент.ДатаДок) = НужныйГод )). Работает, но очень долго.
2. Добавляем в регистр Реквизиты ДатаГод и ДатаМесяц. Далее так же как в 1, но не нужен ТекущийДокумент.Отчет формируется быстро, но нужно перерепровести всю базу, что не есть хорошо.
Кто какие варианты может предложить ещё?
1 Барчук
 
24.12.04
13:28
А почуму на спасает группировка месяц?
2 Джинн
 
24.12.04
13:29
1. Тормоза будут неимоверные.
2. Остатки таким отчетом не получить. Только обороты.
3 chief
 
24.12.04
13:31
Группировки по строкам:
фирма
Контрагент
Договор
Номенклатура
по столбцам:
Месяц
В каждом месяце
Приход Сумма
Расход Сумма
ПриходКоличество и т.д.
 И как тут использовать Группировка Месяц?
4 АЛьФ
 
24.12.04
13:35
2(3)
Группировка Контрагент;
Группировка Договор;
Группировка Номенклатура;
Группировка Месяц Все;
5 Барчук
 
24.12.04
13:35
Последней группировкой,
А в таблицу "ПрисоеденитьСекцию".. не вижу проблемы
6 Мудрила Страшный
 
24.12.04
13:36
Посмотри конфу "Финпланирование", там есть столбцы - месяцы... конечно криво сделано, но работает
7 Джинн
 
24.12.04
13:36
То 3. Как? Да очень просто - в текст запроса нужно добавить |Группировка Месяц; :)
8 chief
 
24.12.04
13:36
то Джинн
1. Тормоза будут неимоверные. - а я что, не то написал
2. Остатки таким отчетом не получить. Только обороты. - ДатаГод и ДатаМесяц делаем не реквизитами, а измерениями, и будут остатки, но они в данном случае не нужны.
А вообще я спрашивал, у кого ещё какие решения есть
9 chief
 
24.12.04
13:39
4,5:
Пока Группировка("Контрагент")... - нужно по месяцам
  Пока Группировка("Договор")... - нужно по месяцам
и т.д. - как дальше?
10 Мудрила Страшный
 
24.12.04
13:39
(4) А как итоги месяцу получить? Например итого по месяцам по Контрагенту, и по долговору и по каждому элементу номенклатуры
11 АЛьФ
 
24.12.04
13:41
2(9)(10) Итоги считаются в отдельных переменных и выводятся после выхода их очередного цикла.
12 Мудрила Страшный
 
24.12.04
13:43
(11) Это ж сколько переменных надо?, проще вообще все сразу в ТЗ запихать...
(0) Кстати а чем не вариант?
13 Барчук
 
24.12.04
13:45
(9)Тогда первой группировкойи через таблу значенний или через абсолютные адреса
Таблица.Область(Стр,Стл)....
14 chief
 
24.12.04
13:46
То 11
Заранее не известно, какие именно функции нужны. Т.е. пользователь ещё и сьолбцы отчета отмечает. В моём случае их (функций) от 0 до 23. Что суммировать будем? Все?
15 Джинн
 
24.12.04
13:48
То 14. Как это заранее неизвестно? Выполнение отчета запускается уже после того, как юзверь отметил "столбцы". А значит они известны.
16 chief
 
24.12.04
13:50
То 15
Ну приведи пример объявления переменных в таком случае
17 Барчук
 
24.12.04
13:51
Функция Функ1
..
Функция Функ100
Группировка Месяц
Групировка ВсеЧтоХош1
..
Групировка ВсеЧтоХош100
Запрос.Выгрузить(тзСтроки);
В чем сложность?
Дальше
18 chief
 
24.12.04
13:52
23 переменных на каждый месяц, сколько месяцев - 0~бесконечность. Сколько переменных?
19 chief
 
24.12.04
13:54
То 17
Ну а теперь ещё и в печатную форму выведи
20 Барчук
 
24.12.04
13:54
Это развод
21 Monarch
 
24.12.04
13:55
(14) Если так, то убери месяцы с формы, выгружай все в сводную таблицу Excel, а дальше пусть юзеры любые фильтры ставят, в т.ч. "Месяц".
22 SiAl
 
24.12.04
13:56
(17) Для дальнейших после Месяц группировок пустыми будут КонОст И НачОст.
23 Барчук
 
24.12.04
13:58
(19) Упрошенно так
Для СчМесяц = 1 По сзМесяцы.РазмерСписка() Цикл
 Т.ВывестиСекцию("Строка|ЗаголовокГруппировки");
 Для СчГруппировок = 1 По сзГруппировки.РазмерСписка() Цикл
  Т.ВывестиСекцию("Строка|ЗначениеГруппировки");
 КонецЦикла
КонецЦикла
24 ДенисЧ
 
24.12.04
13:58
(19)
для сч = 1 по функц.размерСписка() цикл
  назвФунк = функ.ПолучитьЗначение(сч);
  значФунк = запрос.ПолучитьАтрибут(назвФунк)
  табл.ПрисоеднитьСекцию("Строка|МояФункция");
конецЦикла
25 АЛьФ
 
24.12.04
13:59
2(12) А тебе памяти на переменные жалко? :)
26 chief
 
24.12.04
13:59
То 21
:)))
в таком случае грешно брать по 650 руб/час. В ёкселе они и сами могут. Задача в принципе решена (см.0), просто интересно, кто как делеа ещё
27 Барчук
 
24.12.04
14:00
(22) Не знаю, если действительно так то я пас
28 chief
 
24.12.04
14:02
То 23,24
Так. Если использовать то что я в (0) написал.э
То 25.
Пример объявления НеисвестноСколькихПеременных и их суммирования
29 АЛьФ
 
24.12.04
14:08
2(28) Тебе неизвестно сколько функций будет в запросе? Это как это?
30 chief
 
24.12.04
14:11
ПриходСуммаЯнварь2002
ПриходКоличествоЯнварь20002
.........
ПриходСебестоимостьДекабрь20.....
31 Monarch
 
24.12.04
14:17
"В ёкселе они и сами могут" - чего они сами-то могут?
Возможности сводных таблиц Office 2003 с мертвыми печ. формами 1С 7.7 не сравнить. У тебя данные-то ведь в 1С хранятся?
Просто пойми, что есть отчеты, которые гораздо лучше делать при помощи создания сводных таблиц Excel.
32 Uno
 
24.12.04
14:20
Интиресно для чего народ пишет универсальные оброботки?
Все собираешь в тз берешь универсальную оброботку и дальше в ней юзер меняет порядок групировк меняет их видимость меняет что он хочет выводить в горизонтальных колонках. меняет какие цифры хочит видеть.
И получает нужную таблицу тебе об этом даже думать ненадо как оно там все расчитает и выведет тебе надо написать запрос который соберет это в вгодящюю ТЗ для этой оброботки. Все уже давно написано.
Вот когда будешь знать где это все лежит и что заюзать будешь брать по 35-50 баков в час. И клиенты будет сщасливы. А пока действительно грешно брать 650 руб в час.
33 chief
 
24.12.04
14:26
То Uno
а ты Русский язык подучи в таком случае, и бери по сколько хочешь с клиентов
34 chief
 
24.12.04
14:30
То Uno
Сравни производительность универсальных обработок и предложения в (0.2), и захочется по 100 баксов брать
35 Uno
 
24.12.04
14:31
Вот и помогай после этого людям. Только хотел ссылку на оброботку которая позволяет печатать Тз со всеми этими наворотами дать. Теперь сам ищи ее на проклубе или пиши свою потратив на это несколько дней.
36 АЛьФ
 
24.12.04
14:34
2(35) Да тут даже моими слепыми глазами видно, что чел круче всех и сам все знает. Я вот тоже хотел подсказать, но уж больно он крут.
37 Uno
 
24.12.04
14:35
В худшем случае 90% процентов времени выборка даных твоим запросом (тут уж все от тебя зависит) будет произходить.
А универсальная оброботка по преоброзованию ТЗ в нужный вид и выводу его на печать займет остальные 10%.
38 корум
 
24.12.04
14:35
(33) На Уно не наезжай. ;о)
Погляди www.infostart.ru , "Новейшие отчёты" - как раз самое то будет!
*
Не получается самому сделать, в типовых аналоги найти - лезь на Проклаб. //программерская примета
39 корум
 
24.12.04
14:37
(36) Ты ещё не потерял веру в человечество??
(33) "Сам такой!"
40 chief
 
24.12.04
14:39
То 37
С точность до наоброт
Проверь
41 Uno
 
24.12.04
14:46
2(40)Похоже тебе в жизни невезло на универсальные оброботки.
Проверено не раз.
формирование исходной тз 16 тысяч строк 33 колонки 213 секунд.
Открываеться форма где я выбираю что хочу чтобы были такието групировки. такието колонки, тото развернуть по горизонтали. нажимаю сформировать 15-17 секунд то появления печатной формы в зависимости от того, что выбрал.
Помоему очень неплохо для отчета с таким количеством параметров и строк.
42 chief
 
24.12.04
14:53
Спасибо всем. Но остановился всё-таки на варианте с доп.реквизитами, и загнал в таблицы значения этих реквизитов без пререпроведения документов.
Может кому пригодится
43 АЛьФ
 
24.12.04
15:01
2(42) Ну и зря. А если кому пригодится, то будет вообще беда.
44 Oblomov
 
24.12.04
15:01
Читал, читал, нифига не понял :-( Объясните, почему нельзя группировку по месяцам использовать?
45 АЛьФ
 
24.12.04
15:03
2(44) А пАтАмуштА оне не хочут думать.
46 Uno
 
24.12.04
15:06
2(44) Да можно ее использовать только вот итоги по месяцам по верхним группировкам если функция считаеться не в запросе, а вычисляеться в оброботке у чела подсчитать неполучалось.
47 корум
 
24.12.04
15:08
(42) а где вообще речь шла про "перепроведение документов"?
//песец... Этажом выше народ последний день года празднует, как орууут...