Имя: Пароль:
1C
 
СКД: функция Вычислить() в выражении вычисляемого поля
0 daixiaozheng
 
03.06.09
09:07
Не могу ее заставить работать. Поиском ничего полезного не нашел.

Цитата из документации:
"..Функция Вычислить предназначена <...>. Функция имеет следующие параметры:
·      Выражение – строка, содержащая вычисляемое выражение;
·      Группировка – строка, содержащая имя группировки, в контексте
·      Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки."

Есть у меня поле ОбъёмПродаж, группировки Номенклатура, День.
Создал некое вычисляемое поле, пусть Поле1. В строке дня я должен наравне с объемом продаж дня и общий объем продаж по товару.
Я понял мануал так, что должен задать для Поле1 выражение Вычислить("Сумма(ОбъёмПродаж)", "Номенклатура","Группировка").

Но оно ругается.
"Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Выражение не может быть вычислено "Сумма(НаборДанных1.ОбъёмПродаж)""

Интересно, что работают у меня только такие варианты:
1. Вычислить("Сумма(ОбъёмПродаж)", "ОбщийИтог","ОбщийИтог")
2. Вычислить("Сумма(ОбъёмПродаж)", "Группировка","ОбщийИтог")
3. Вычислить("Сумма(ОбъёмПродаж)", "Группировка","Группировка")
:) Дают они все только общий итог. А мне нужен итог по группировке Номенклатура.

P.S.
gr13, самому секцию не поменять, дублирую.
1 ТелепатБот
 
гуру
03.06.09
09:07
2 daixiaozheng
 
03.06.09
09:10
Пц, а в виде темы названия секции не видно.

На всякий случай: вопрос отоносится к СКД (система компоновки данных). Документация - Program Files\1cv81\AddDoc\RU\V8AddDoc81.htm
3 Garkin
 
03.06.09
11:58
Попробуй
Вычислить("ОбъёмПродаж")
4 daixiaozheng
 
16.06.09
11:59
Вернулся к этому отчету.
Может у кого появились идеи или опыт?

Garkin, даже теоретически мне не подходит, ибо я должен где-то указать, что мне нужно сложить объемы продаж в контексте группировки по товару. Если Вычислить("ОбъёмПродаж") и будет работать, то он даст _общий_ итог по всем товарам.
5 IronDemon
 
16.06.09
12:02
(0) Что нужно посчитать?
6 Garkin
 
16.06.09
12:44
(4) Проверял?
7 daixiaozheng
 
16.06.09
12:47
Вобщем самая суть проблемы для IronDemon.
Дожен быть такой отчет:

Номенклатура  ДатаПродажи   Сумма  ОбщаяСуммаПродажПоТовару
Товар1        31.01.2009    1000    4000
Товар1        05.01.2009     700    4000
Товар1        04.01.2009    2900    4000
Товар1        14.01.2009    -600    4000

Товар2        08.02.2009    2500    7500
Товар2.....

Товар3 .....

допустим, запрос выдает в СКД такую вот табличку без колонки "ОбщаяСуммаПродажПоТовару".

Нужно добавить в СКД Вычисляемое поле, которое будет выводиться в детальных записях и содержать итог продаж по товару в целои. Собственно, это и должна быть колонка "ОбщаяСуммаПродажПоТовару".

Насколько я понял мануал, надо в выражении поля вписать: Вычислить("Сумма(ОбъёмПродаж)", "Номенклатура","Группировка")

Не работает. Как надо сделать, чтоб работало?

НЕ надо советовать переделывать запрос :)
8 daixiaozheng
 
16.06.09
12:49
Garkin, проверил.
Вычислить("ОбъёмПродаж") просто дублирует значение ОбъемПродаж
Вычислить("ОбъёмПродаж", "Номенклатура", "Группировка") приводит к той же ошибке: Выражение не может быть вычислено "НаборДанных1.ОбъёмПродаж"
9 Garkin
 
16.06.09
23:09
(8) а ну тогда
Вычислить("Сумма(ОбъёмПродаж)", "","ОбщийИтог")

ЗЫ Если хочется писать Вычислить("Сумма(ОбъёмПродаж)", "Номенклатура","Группировка")
то Группировке "Номенклатура" в конфигураторе обязательно надо дать "имя"
(правая кнопка мыши, "установить имя..." )
10 daixiaozheng
 
25.06.09
09:52
(9) Общий итог мне вообще не нужен.
Нужно только то, что указано в "ЗЫ"

А ведь заработало. Что-то мне как-то не нравится такой принцип работы. Это значит, что стоит поменять пользователю настройку (состав группировок), как отчет станет выдавать ошибку.

(9) Спасибо. :)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.