|
Функции вычисляемых полей СКД | ☑ | ||
|---|---|---|---|---|
|
0
selenat
07.06.11
✎
14:39
|
Где найти описание стандартных функций для вычисляемых полей СКД? В СП не нашел что-то. У Хрусталевой коротко написано. Пытаюсь использовать функции как в языке запросов НачалоПериода(Дата,ДЕНЬ) - не понимает.
|
|||
|
1
Fragster
гуру
07.06.11
✎
14:40
|
НачалоПериода(Дата,"ДЕНЬ")
|
|||
|
2
Axel2009
07.06.11
✎
14:40
|
там же пишется неверно задана колонка. т.е. колонки ДЕНЬ нет
|
|||
|
3
selenat
07.06.11
✎
14:42
|
(1) точно! Спасибо.
|
|||
|
4
selenat
07.06.11
✎
16:11
|
Вопрос вдогонку. Есть ресурсы запроса
Минимум(ДатаДОНачальная), Максимум(ДатаДОКонечная) и в качестве ресурса делаю вычисляемое поле РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДатаДОНачальная, "ДЕНЬ"), НАЧАЛОПЕРИОДА(ДатаДОКонечная, "ДЕНЬ"), "ДЕНЬ") Можно ли сделать так, чтоб в итогах вычисление последнего поля шло не по детальным записям, а по значениям ДатаДОНачальная и ДатаДОКонечная итогов? |
|||
|
5
selenat
07.06.11
✎
16:20
|
ап!
|
|||
|
6
Fragster
гуру
07.06.11
✎
16:23
|
да
|
|||
|
7
selenat
07.06.11
✎
16:27
|
(6) добрый человек, сами мы не местные, будь добр, подскажи как. СКД нпока новый для меня струмент...
|
|||
|
8
Fragster
гуру
07.06.11
✎
16:32
|
(7) добавляешь 2 ресурса с одинаковым именем, нужными функциями и проставляешь галочки в "рассчитывать по"
|
|||
|
9
selenat
07.06.11
✎
16:51
|
(8) чего-то не получается пока. Буду танцевать с бубном...
|
|||
|
10
selenat
07.06.11
✎
17:11
|
Опишу структуру отчета более подробно. Вид отчета таблица.
Строки: Клиент, Номер клиента, Вид товара. Колонки: Дата, Номер партии, Партия. Ресурсы: Сумма(Вес), Минимум(ДатаДОНачальная), Максимум(ДатаДОКонечная). Дбавляю 2 ресурса Сумма(Дней), где Дней - это вычисляемое поле вида РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДатаДОНачальная, "ДЕНЬ"), НАЧАЛОПЕРИОДА(ДатаДОКонечная, "ДЕНЬ"), "ДЕНЬ") Один из этих ресурсов делаю "расчитать по" Дата, Номер партии, Партия. Другой "расчитать по" Клиент, Номер клиента, Вид товара. И все равно в итоговой колонке количество дней вычисляется как сумма по колонкам партий, а не по ДатаДОНачальная и ДатаДОКонечная итога. ЧЯДНТ? |
|||
|
11
МишельЛагранж
07.06.11
✎
17:23
|
а сами параметры Дата - задаете в УстановитьНастройки? отчет их вообще видит?
|
|||
|
12
selenat
07.06.11
✎
17:24
|
(11) Дата - это Дата партии. Берется из запроса, не параметр.
|
|||
|
13
МишельЛагранж
07.06.11
✎
17:26
|
(12) а в запрос как попадают?
|
|||
|
14
selenat
07.06.11
✎
17:28
|
(13) параметром запроса выступает СписокПартий. Запросом я выбираю некоторые поля этих партий. В том числе Дата (т.е. дата партии), Номер партии и саму партию (ссылку). Это все у меня выводится в колонках.
|
|||
|
15
selenat
07.06.11
✎
17:35
|
как победить?
|
|||
|
16
МишельЛагранж
07.06.11
✎
17:37
|
я тогда не понимаю - если дата плавающая, и на каждую запись находится отдельно, то что мешает в запросе получить разность дат, и уже здесь выводить результат в нужных колонках?
И проверьте РАЗНОСТЬДАТ - как правильно в СКД использовать. |
|||
|
17
selenat
07.06.11
✎
17:45
|
(16) А какая разница - получать разность дат в запросе или в вычисляемом поле? Я пробовал в запросе - результат тот же. Вот пример. В одной строке отчета 3 партии. Для первой партии
ДатаДОНачальная = 10.04.11 ДатаДОКонечная = 11.04.11 Дней = 1. Для второй партии ДатаДОНачальная = 12.04.11 ДатаДОКонечная = 17.04.11 Дней = 5. Для третьей ДатаДОНачальная = 23.04.11 ДатаДОКонечная = 28.04.11 Дней = 5. В итоговой строке ДатаДОНачальная = 10.04.11 ДатаДОКонечная = 28.04.11 Дней = 11. А мне нужно, чтобы в итоговой строке дней было не сумма 1+5+5, а 28.04.11-10.04.11 = 18 дней. |
|||
|
18
selenat
07.06.11
✎
17:55
|
Сдается мне, что нужно сделать дубликаты полей ДатаДОНачальная и ДатаДОКонечная и ресурс для итогового поля вычислять по этим другим полям. Щас буду пробовать...
|
|||
|
19
selenat
07.06.11
✎
17:55
|
а впрочем, пробовать похоже буду уже завтра...
|
|||
|
20
Fragster
гуру
07.06.11
✎
17:59
|
(17) ну так в формуле на закладки "ресурсы" и напиши Минимум() - максимум() вместо Сумма(), которая у тебя там сейчас
|
|||
|
21
selenat
07.06.11
✎
18:02
|
(20) даже так допустимо писать? О-о
|
|||
|
22
selenat
07.06.11
✎
18:02
|
(20) вываливается по ошибке. Завтра уже буду разбираться. Сейчас убегаю.
|
|||
|
23
МишельЛагранж
07.06.11
✎
18:03
|
(17) правильно выдает - считает по каждой записи разность и в ИТОГО суммирует числа.
Сумма = 11 |
|||
|
24
selenat
08.06.11
✎
09:29
|
(23) ты мне типа объяснил? Я не спрашиваю почему сейчас считается так. Тут все понятно. Я спрашиваю как сделать, чтоб считалось как мне надо.
|
|||
|
25
selenat
08.06.11
✎
09:32
|
(20) в поле ресурсы не хочет понимать "-". Вываливается по ошибке.
|
|||
|
26
Fragster
гуру
08.06.11
✎
09:44
|
(25) картинку дай
|
|||
|
27
Fragster
гуру
08.06.11
✎
09:44
|
не ошибки, а того, что ты там в ресурсы накалякал
|
|||
|
28
selenat
08.06.11
✎
09:51
|
||||
|
29
selenat
08.06.11
✎
09:53
|
||||
|
30
selenat
08.06.11
✎
09:55
|
(29) с ц у к о, не видно ничего. Щас еще разокпопробую выложить...
|
|||
|
31
selenat
08.06.11
✎
09:56
|
||||
|
32
selenat
08.06.11
✎
09:58
|
текст ошибки:
Ошибка исполнения отчета по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Неверные параметры "-" |
|||
|
33
Aprobator
08.06.11
✎
10:02
|
(0) в содержании справки в конфиграторе тоже можно найти много полезного. Практически те же самые функции, что используются в запросе.
|
|||
|
34
Aprobator
08.06.11
✎
10:04
|
(32) Максимум(ДатаДОКонечная - ДатаДОНачальная) тебя спасет.
|
|||
|
35
selenat
08.06.11
✎
10:05
|
(33) с этим разобрался. Я просто не предполагал, что по сравнению с запросом там нужны еще дополнительно ковычки в некоторых местах ("ДЕНЬ"). Сейчас основной вопрос (4)...
|
|||
|
36
Fragster
гуру
08.06.11
✎
10:06
|
(31) должно работать
|
|||
|
37
selenat
08.06.11
✎
10:07
|
(34) та же самая ошибка
|
|||
|
38
Aprobator
08.06.11
✎
10:07
|
(35) проставить галочки по каким полям те итоги считать.
|
|||
|
39
selenat
08.06.11
✎
10:07
|
(36) тем не менее, (32)...
|
|||
|
40
selenat
08.06.11
✎
10:09
|
(38) пробовал разные варианты. в том числе сделать 2 ресурса Дней, для разного набора полей (один расчитывается по Дата, Номер партии, Партия, второй по Клиент, Номер клиента, Вид товара). Ошибка та же...
|
|||
|
41
Aprobator
08.06.11
✎
10:09
|
одно и тоже поле можно в ресурсах дублировать несколько раз, при этом писать разные формулы и указывать разные поля по которым считать итоги. Т.е. общие итоги можешь считать по одной формуле, а по каким либо группировкам - по другой.
|
|||
|
42
Aprobator
08.06.11
✎
10:12
|
Тогда Попробуй МАКСИМУМ(РАЗНОСТЬДАТ...).
|
|||
|
43
selenat
08.06.11
✎
10:12
|
(41) это мне Fragster уже объяснил. Сейчас выложу картинку с другим вариантом, где 2 ресурса "Дней" по разным полям. Результат - тот же..
|
|||
|
44
Aprobator
08.06.11
✎
10:13
|
(43) тогда покажи лучше структуру вывода.
|
|||
|
45
selenat
08.06.11
✎
10:15
|
||||
|
46
Aprobator
08.06.11
✎
10:18
|
(45) Сумма(Дней) - как то жестко. Особенно учитывая то, что эти Итоги ты считаешь по другим полям.
|
|||
|
47
selenat
08.06.11
✎
10:18
|
(42) вот такой вариант
http://s009.radikal.ru/i307/1106/a7/f0320fd749e2.jpg не вываливается по ошибке. Но считает опять по детальным записям. Т.е. для примера (17) в итоге Дней = 5. |
|||
|
48
selenat
08.06.11
✎
10:20
|
(46) для детальных записей отрабатывает нормально. Насколько я понимаю, те поля, которые у меня в колонках (Дата, Номер партии и Партия) - это как раз детальные записи.
|
|||
|
49
Aprobator
08.06.11
✎
10:24
|
(48) структуру в студию. Детальные поля - это детальные поля, а не поля группировки.
|
|||
|
50
Aprobator
08.06.11
✎
10:26
|
а увидел в (10).
|
|||
|
51
YAGolova
08.06.11
✎
10:26
|
Я бы написал так РАЗНОСТЬДАТ(Минимум(дата), максимум(дата), "День")
|
|||
|
52
selenat
08.06.11
✎
10:27
|
||||
|
53
Aprobator
08.06.11
✎
10:28
|
(51) да уже сделали.
|
|||
|
54
Aprobator
08.06.11
✎
10:30
|
а - млин, последнее поле. ОБЩИЕ ИТОГИ пробовал?
|
|||
|
55
Fragster
гуру
08.06.11
✎
10:30
|
(48) нет, детальные записи используют значения из закладки Вычисляемые поля и Наборы данных
|
|||
|
56
Fragster
гуру
08.06.11
✎
10:30
|
(55)+ любые группировки - используют значения из формул "Ресурсов"
|
|||
|
57
selenat
08.06.11
✎
10:32
|
(54) пробовал, но щас попробую еще раз.
|
|||
|
58
Aprobator
08.06.11
✎
10:33
|
лана - соррь работать надо. Во Фрагстер вернулся вроде, если что - он тя доведет до конца (хэппиэнда разумеется).
|
|||
|
59
Fragster
гуру
08.06.11
✎
10:34
|
(58) да мне за это тоже не платят
|
|||
|
60
Aprobator
08.06.11
✎
10:35
|
(59) с такими намеками к ТС )
|
|||
|
61
selenat
08.06.11
✎
10:36
|
(56) вот такой вариант, без Сумма() и с общими итогами:
http://s006.radikal.ru/i213/1106/ac/db2179b1d29b.jpg Результат тот же, что в (47) - Дней в итогах = 5... |
|||
|
62
Fragster
гуру
08.06.11
✎
10:37
|
так РАЗНОСТЬДАТ(Минимум(дата), максимум(дата), "День") работает, или нет?
|
|||
|
63
а кому щас легко
08.06.11
✎
10:37
|
(62) не пробовал очищать "рассчитывать по"?
|
|||
|
64
Fragster
гуру
08.06.11
✎
10:38
|
кстати, тут достаточно только одного ресурса
|
|||
|
65
selenat
08.06.11
✎
10:40
|
(62) по сути в вычисляемом поле это и написано. Только еще началоПериода задействовано:
РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДатаДОНачальная, "ДЕНЬ"), НАЧАЛОПЕРИОДА(ДатаДОКонечная, "ДЕНЬ"), "ДЕНЬ") В ресурсе Максимум от этого же выражения. В результате в итогах Дней = 5... |
|||
|
66
selenat
08.06.11
✎
10:41
|
(64) результат тот же :(
|
|||
|
67
Fragster
гуру
08.06.11
✎
10:48
|
стопудово какая-то детская ошибка
|
|||
|
68
Shurjk
08.06.11
✎
10:49
|
(0) В синтакс помошнике
|
|||
|
69
МишельЛагранж
08.06.11
✎
10:55
|
Нефиг выеживаться недоделанным СКД.
Или пользуй универсальный отчет, или - делай все в запросе. Запрос - универсальная вещь: может даже сам ошибку показать ;) |
|||
|
70
selenat
08.06.11
✎
10:57
|
(67) наверняка. Но инструмент для меня новый, не соображу куда смотреть...
|
|||
|
71
selenat
08.06.11
✎
11:00
|
(69) насчет универсального отчета пока оставим вопрос, а вот насчет запроса, поясни пожалуйста. Ты считаешь, что запрос умеет в итоговых полях использовать данные не детальных записей, а данные самих этих же итогов? Или что ты имеешь в виду?
|
|||
|
72
МишельЛагранж
08.06.11
✎
11:02
|
я тебе даже больше скажу - многие изыски, которые делались в универсальном отчете - нельзя сделать на СКД.
(71) ИТОГИ в запросе ставятся только во внешнем запросе. И там нет "детальных записей" - есть поля и значения. Сумеешь "подитожить" во внутреннем запросе без итогов - получишь искомое. Или выложи наконец картинкой, что хочешь увидеть. |
|||
|
73
Aprobator
08.06.11
✎
11:04
|
(72) в СКД то нафиг итоги в запросе упали?
|
|||
|
74
selenat
08.06.11
✎
11:05
|
(72) что хочу увидеть описано в (17). Что неясно?
|
|||
|
75
МишельЛагранж
08.06.11
✎
11:13
|
(73) а я говорил про итоги в СКД?
(74) что, это и есть отчет?? |
|||
|
76
selenat
08.06.11
✎
11:14
|
Может такое быть, что те советы насчет расчета итогов, которые мне здесь давали, работают при типе отчета "список", но не работают для "таблица"?
|
|||
|
77
МишельЛагранж
08.06.11
✎
11:15
|
нет, не может
|
|||
|
78
МишельЛагранж
08.06.11
✎
11:15
|
...или СКД еще большая лажа, чем я думал.
|
|||
|
79
selenat
08.06.11
✎
11:22
|
(75.2) ок, вот вид отчета, который получился:
http://i034.radikal.ru/1106/fc/b544953ccfb3.jpg Нужно в итоговой колонке поле Дней расчитывать по-другому.. |
|||
|
80
Aprobator
08.06.11
✎
11:26
|
СКД - нормальный инструмент. Очень не простой (я без книги не осилил). Как и любой инструмент, он имеет свою специфику и область применения.
|
|||
|
81
Aprobator
08.06.11
✎
11:28
|
(79) РАЗНОСТЬДАТ(МАКСИМУМ...МИНИМУМ) ПО ОБЩИЕ - пробовал?
|
|||
|
82
selenat
08.06.11
✎
11:31
|
(81) да. но судя по результату, колонка итогов - это не общие итоги.
|
|||
|
83
а кому щас легко
08.06.11
✎
11:33
|
(82) вытащи запросом, или религия не позволяет?
|
|||
|
84
Aprobator
08.06.11
✎
11:34
|
(82) могу путать - попробуй поля которые у тя в строке указаны. Это для итогов. А для деталек - поля строки с полями колонок. Надо просто поиграться. Там не все так прозрачно.
Или воспользуйся советом из (83), если уж совсем никак. |
|||
|
85
selenat
08.06.11
✎
11:40
|
(84) вот такой пример приводил:
http://s009.radikal.ru/i307/1106/a7/f0320fd749e2.jpg (83) поясни пожалуйста, как запросом вытащить итоги, которые формируются в СКД автоматически. |
|||
|
86
Aprobator
08.06.11
✎
11:44
|
(85) они формируются то на основе данных полученных запросом. Так что пакетный запрос в зубы и вперед.
|
|||
|
87
selenat
08.06.11
✎
11:45
|
(86) понял. Ладно, придется наверное так делать...
|
|||
|
88
selenat
08.06.11
✎
11:46
|
а как хорошо все начиналось..
|
|||
|
89
Aprobator
08.06.11
✎
11:49
|
(88) найди книгу и по сайтам в инете поищи. Посмотри тут еще
http://1cskd.ru/2011/06/skd_kurs_salihov_dmitry/#more-329 |
|||
|
90
Aprobator
08.06.11
✎
11:50
|
здесь инфа есть http://1cskd.ru/. Давно вроде программишь то уже, че поиском в инете пользоваться не научился?
|
|||
|
91
selenat
08.06.11
✎
11:56
|
(89,90) я книгу Хрусталевой сейчас читаю. Курсы обучения - это хорошо, но во-первых, там как правило рассматриваются более простые примеры, чем встречаются в действительности. Во-вторых, если есть вполне конкретная проблема, то совет почитать курс в целом - это как-то выглядит не совсем в тему...
|
|||
|
92
selenat
08.06.11
✎
12:32
|
Да, с дополнительными полями в запросе, где я расчитываю начальную и конечную даты итоговых записей, все получилось. Спасибо всем за помощь. Хотя, сдается мне, средствами СКД должно было быть как-то проще...
|
|||
|
93
Aprobator
08.06.11
✎
13:13
|
(92) искать надо. Просто штука нефига не прозрачная я бы сказал. Сам еще с некоторыми вещами бодаюсь. Тут на днях делал отчет без группировок чисто детальные записи. Прописал в ресурсах формулу типа Сумма(Величина/1000). Так вот - на детальные записи эта формула не отработала, а на общий итог да. Т.е. надо еще выяснять, что СКД подразумевает под детальными записями, а что под итоговыми.
|
|||
|
94
Fragster
гуру
08.06.11
✎
13:29
|
(93) детальные - это та таблица, которая является результатом запроса + вычисляемые поля. поскольку Сумма - агрегатная функция - она и не работала (ибо группировок нет)
|
|||
|
95
selenat
09.06.11
✎
10:40
|
А все-таки любопытно. Вот есть отчет в виде "таблица", где есть группировки строк и группировки колонок. Соответственно есть итоги по строкам и итоги по колонкам. Когда мы у ресурса ставим "рассчитывать по общий итог", то по каким итогам должен рассчитываться этот ресурс?
|
|||
|
96
selenat
09.06.11
✎
11:04
|
Короче, проблема та же, только теперь не для колонки итогов, а для строки итогов. Причем, насколько я понимаю, решить ее добавлением итоговых полей в запрос, как я сделал это для формирования колонки итогов, не получается. :(
|
|||
|
97
selenat
09.06.11
✎
11:23
|
Ситуация такая.
1.Если я прописываю ресурс, который рассчитывается по общим итогам, то он никак не влияет ни на итоговую строку, ни на итоговую колонку. 2. Если я прописываю ресурс, который рассчитывается по Дата, Номер партии и Партии (т.е. по группировкам колонок), то он влияет на итоговую колонку, но не влияет на значения в самой таблице. Это позволило мне сформировать итоговую колонку, какую мне надо, не зависящую от значений на пересечениях строк и колонок. 3. Если я прописываю ресурс, который рассчитывается по Вид товара, Клиент и Номер клиента (т.е. по группировкам строк), то он влияет и на формирование значений в самой таблице (т.е. на пересечении строк и колонок), и на формирование итоговой строки. Это не позволяет мне рассчитывать детальные и итоговые значения для строк по разному принципу. |
|||
|
98
selenat
09.06.11
✎
11:29
|
Как быть? Где гуру СКД?
|
|||
|
99
selenat
09.06.11
✎
11:34
|
Сейчас попробую сформулировать вопрос в абстрактном виде и задать его новой веткой.
|
|||
|
100
МишельЛагранж
09.06.11
✎
12:10
|
(99) вы бы лучше почитали, сколько тем по СКД, и сколько хотелок не имеют решения в СКД ))
|
|||
|
101
selenat
09.06.11
✎
12:12
|
(100) успею еще разочароваться. Дай мне побыть вьюношей с горящими глазами. :)
Завел другую ветку: v8: Формирование итоговых полей СКД для отчета вида таблица |
|||
|
102
МишельЛагранж
09.06.11
✎
12:34
|
(101) ну это правильно ))
но я бы давно попробовал альтернативный вариант решения/по-другому поставить задачу. |
|||
|
103
selenat
09.06.11
✎
12:37
|
(102) по другому поставить задачу нельзя, поскольку клиент хочет отчет вполне определенного вида. Альтернативный вариант решения - не проблема. Я могу конечно построить отчет как это делалось еще в 7.7. Нарисовать макет, и для каждой строки динамически присоединять колонки. Но надо же и интсрумент современный осваивать когда-то...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |