![]() |
![]() |
![]() |
|
СКД - пользовательские поля | ☑ | ||
---|---|---|---|---|
0
ОператорПК
21.10.08
✎
11:26
|
Ситуевина такая:
Строим отчет с 2 группировками (например Склад/Номенклатура) и 3 числовыми полями К1,К2,К3 при этом: К1 -вычисляется по некоторой сложной формуле К2 -вычисляется по некоторой сложной формуле К3 = К1+К2 В построителе для корректного подщета итогов (закладка итоги)писали не Сумма(К3) а К3 = Сумма(К1)(вычисляется по некоторой сложной формуле)+Сумма(К2)(вычисляется по некоторой сложной формуле) т.е. записывали всю формулу целиком, в компановке хотелось использовать "Пользовательские поля" т.к. по логике пользователь не обязан знать/понимать всю цепь формирования К1 и К2 ему нужно просто получить К3 = К1+К2 так вот. в результате в отчете детальные записи получаются как К3 = К1+К2 (что есть верно) а вот все верхние группировки есть просто сложение детальных записей (что в корне не верно). Пользовательское поле оформляю как Сумма(К1)+Сумма(К2) Для сравнения таблица которая получается: К1 К2 К3 Склад1 8 2 27 Номенклатура1 10 8 18 Номенклатура2 3 6 9 и которую хотелось бы видить: К1 К2 К3 Склад1 8 2 10 Номенклатура1 10 8 18 Номенклатура2 3 6 9 т.е. на группировке Склад1 должно быть К3=8+2=10 а не К3=18+9=27 есть идеи? |
|||
1
ОператорПК
21.10.08
✎
11:34
|
польщен интересом к ветке :))
|
|||
2
IronDemon
21.10.08
✎
11:38
|
"К3 = Сумма(К1)(вычисляется по некоторой сложной формуле)+Сумма(К2)(вычисляется по некоторой сложной формуле)" - так напиши так-же в ресурсах
|
|||
3
Долорес И
21.10.08
✎
11:46
|
(2)так хотелось бы как раз от этого уйти:
слишком громоздкие формулы получатся(величины, участвующие в выражение, вычисляются, в свою очередь через другие, а те - через третьи. в итоге зависимость четвертого пятого порядка. если все подставить в конечную формулу - будет жесть). + проблематично вносить малейшие изменения в таком случае. -- просто хотелось бы обращаться к полям итогов как к поименованным областям, это решило бы проблему. Ведь к детальным такое обращение возможно. |
|||
4
ОператорПК
21.10.08
✎
11:51
|
(2) ну да этот способ известен, хотелось бы от него избавится т.к. если меняеются формулы у К1 и К2 то придется менять все с ними связаное.... а это не есть айс (когда формул много в отчете).
|
|||
5
ОператорПК
21.10.08
✎
12:03
|
(3) +1000
|
|||
6
ОператорПК
21.10.08
✎
12:10
|
Нихто не заморачивалси чтоль с СКД?
|
|||
7
ОператорПК
21.10.08
✎
12:22
|
вот запрос который нормально работает в построителе (а в компоновке при использованиии пользовательских полей работает как описано в (0))
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка.Склад КАК Склад, ПРЕДСТАВЛЕНИЕ(ПоступлениеТоваровУслугТовары.Ссылка.Склад), ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество, СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС) КАК СуммаНДС, СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма, ПРЕДСТАВЛЕНИЕ(ПоступлениеТоваровУслугТовары.Номенклатура), СУММА(ВЫБОР КОГДА ПоступлениеТоваровУслугТовары.Количество = 0 ТОГДА 0 ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество КОНЕЦ) КАК Цена, СУММА(ВЫБОР КОГДА ПоступлениеТоваровУслугТовары.СуммаНДС = 0 ТОГДА 0 ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.СуммаНДС КОНЕЦ) КАК ХЗ, СУММА(ВЫБОР КОГДА ПоступлениеТоваровУслугТовары.Количество = 0 ТОГДА 0 ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество КОНЕЦ + ВЫБОР КОГДА ПоступлениеТоваровУслугТовары.СуммаНДС = 0 ТОГДА 0 ИНАЧЕ ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.СуммаНДС КОНЕЦ) КАК СуммаВсего ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Ссылка.Склад ИТОГИ ВЫРАЗИТЬ(ВЫБОР КОГДА СУММА(Количество) = 0 ТОГДА 0 ИНАЧЕ СУММА(Сумма) / СУММА(Количество) КОНЕЦ КАК ЧИСЛО(15, 2)) КАК Цена, ВЫРАЗИТЬ(ВЫБОР КОГДА СУММА(СуммаНДС) = 0 ТОГДА 0 ИНАЧЕ СУММА(Сумма) / СУММА(СуммаНДС) КОНЕЦ КАК ЧИСЛО(15, 2)) КАК ХЗ, ВЫРАЗИТЬ(ВЫБОР КОГДА СУММА(СуммаНДС) = 0 ТОГДА 0 ИНАЧЕ СУММА(Сумма) / СУММА(СуммаНДС) КОНЕЦ + ВЫБОР КОГДА СУММА(Количество) = 0 ТОГДА 0 ИНАЧЕ СУММА(Сумма) / СУММА(Количество) КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаВсего ПО ОБЩИЕ, Склад, Номенклатура |
|||
8
ОператорПК
21.10.08
✎
12:54
|
вверх
|
|||
9
ОператорПК
21.10.08
✎
13:30
|
исче идеи :))
|
|||
10
ОператорПК
21.10.08
✎
13:50
|
Как говорили учительницы в школе - "Лес рук" (с) :))
|
|||
11
MoneG
21.10.08
✎
14:38
|
На вкладке "Ресурсы" задай Поле К3 два раза. При этом в "Выражение" для одного пиши "Сумма(К1+К2)", а в "Рассчитывать по..." - группировку Номенклатура. Для "второго" К3 - тоже "Сумма(К1+К2)", но в "Рассчитывать по..." - укажи только группировку Склад. Думаю, прокатит.
|
|||
12
ОператорПК
21.10.08
✎
14:46
|
(11) вообще пользователи сами могут выбирать последовательность группировок.... я если чесно вообще не понимаю как можно пользоваться "Пользовательскими полями" если ей даеш прямое указание как считать Сумма(к1)+Сумма(к2) а не Сумма(к3) кстате парадокс как не пиши результат одинаков) он все равно считает как Сумма(к3).....
|
|||
13
ОператорПК
21.10.08
✎
14:51
|
под к1 и к2 понимаются сложные выражения:
к1=а/п*е+100*г/р типа того... формула в построителе выглядит как Сумма(а)/Сумма(п)*Сумма(е)+100*Сумма(г)/Сумма(р) |
|||
14
MoneG
21.10.08
✎
14:53
|
и пусть меняют они последовательность. "Рассчитывать по..." пофигу порядок. у тебя разбит расчет итогов по группировкам? если разбит и (К1+К2) рассчитывается по-разному для склада и для номенклатуры, то результат одинаков не будет.
|
|||
15
ОператорПК
21.10.08
✎
14:58
|
(14) формула расчета для Номенклатуры,Склада и Общих итогов одинаковая.
|
|||
16
MoneG
21.10.08
✎
15:03
|
Используй Уровень() и ,может, Вычислить() ...
Да. почитай про Вычислить() - ибо именно через него итоги СКД считает. |
|||
17
ОператорПК
21.10.08
✎
15:07
|
(16) с Вычислить() геморой устраивал но толку НУЛЬ как я понял (может я и не прав) его можно использовать только в детальных записях (когда нужно например вычислить значение в текущем поле и этоже значение до какойто группировки или общих итогов) а для группировок использовать нельзя.... кроме того там это и не нужно т.к. в групировкам мы и так "все время находимся на нужной нам записи"...
|
|||
18
ОператорПК
21.10.08
✎
17:02
|
вверх
|
|||
19
MoneG
21.10.08
✎
18:32
|
В директории, где установлена 1Сина, (_1С_Dir_\AddDoc\RU\) есть файл V8AddDoc81.htm. Найди строку "Вычислить (Eval)". Там про Вычислить() хоть и кратко, но доступно. Работает оно как раз в контексте группировок, а не "только в детальных записях". СКД победима ;)
|
|||
20
ОператорПК
07.11.08
✎
10:17
|
Если кому интересно, пришол официальный ответ от 1С: "Такой возможности нет." (Доступно и всерьез).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |