Имя: Пароль:
1C
 
Функции вычисляемых полей СКД
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
пардон. Еще разок

http://s39.radikal.ru/i084/1106/05/3e19fb4aaac5.jpg
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
http://s57.radikal.ru/i158/1106/b8/e6b44d4de997.jpg

Ошибка та же (32).

(42) щас попробую
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
(49) под структурой понимаются настройки? Вот

http://s56.radikal.ru/i153/1106/c2/d25170a87e56.jpg
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. Нарисовать макет, и для каждой строки динамически присоединять колонки. Но надо же и интсрумент современный осваивать когда-то...