Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Арифметическое выражение в запросе
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
twilight_dream
Здравствуйте.
Прошу подсказать, что я не так делаю и как написать правильно? Нужно приход поделить на 1.2 в запросе...

...
|Сумма = Регистр.Бонусы.Сумма;
|Функция СуммаПриход = Приход(Сумма);
|Функция БонусДляБП =  Сумма(СуммаПриход/1.2) Когда (Док.ПериодБонусирования=ПериодБонусирования);


В результате имею:
Цитата
Функция БонусДляБП = Сумма(СуммаПриход <<?>> /1.2) Когда (Док.ПериодБонусирования=ПериодБонусирования);
Запрос[19] : Ошибка в выражении 'СуммаПриход'


не могу понять как правильно написать арифметическое выражение...
Sharzem
|Сумма = Регистр.Бонусы.Сумма;
|Функция СуммаПриход = Приход(Сумма);
|Функция БонусДляБП =  Сумма(Запрос.СуммаПриход/1.2) Когда (Док.ПериодБонусирования=ПериодБонусирования);
twilight_dream
Цитата(Sharzem @ 18.07.16, 18:03) необходимо зарегистрироваться для просмотра ссылки
Запрос.СуммаПриход

Пробовал... Ошибку не дает, но Запрос.СуммаПриход тогда получается пустая, то есть выражение дает 0
nysysimara
а если так:
|Функция СуммаПриход = Приход(Сумма);
|Функция БонусДляБП =   (Приход(Сумма)/1.2) Когда (Док.ПериодБонусирования=ПериодБонусирования);
sava1
В КЖК написано
Цитата
В функциях: Сумма, Среднее, Максимум, Минимум в качест­ве аргумента возможно использование арифметического выражения в терминах встроенного языка.

twilight_dream
Значение:
 Сумма(Запрос.СуммаПриход/1.2)

На самом деле вычисляется, но только на самом нижнем уровне группировки. Как заставить суммироваться и в верхние уровни?
endru
Цитата(nysysimara @ 19.07.16, 7:24) необходимо зарегистрироваться для просмотра ссылки
|Функция БонусДляБП = (Приход(Сумма)/1.2) Когда (Док.ПериодБонусирования=ПериодБонусирования);


Вам же написали как правильно. Так должно работать.
korol1091
Извините, но использование "магических чисел" - это дурной тон в программировании.
Sharzem
Цитата(twilight_dream @ 19.07.16, 12:40) необходимо зарегистрироваться для просмотра ссылки
Как заставить суммироваться и в верхние уровни?


Зачем заставлять ?
Есть такая хитрючая штука - Таблица значений, Делаем Запрос.Выгрузить() и ловим там все что нужно.

Цитата(korol1091 @ 19.07.16, 14:25) необходимо зарегистрироваться для просмотра ссылки
использование "магических чисел" - это дурной тон

Поддерживаю icon_beer17.gif
twilight_dream
Цитата(Sharzem @ 19.07.16, 15:09) необходимо зарегистрироваться для просмотра ссылки
Есть такая хитрючая штука - Таблица значений, Делаем Запрос.Выгрузить() и ловим там все что нужно.

Вот это как раз и есть плохой тон. Запрос должен получать максимално готовые к выводу данные. В данном случае вопрос "как", но вы его не поняли. Таблицами и дурак может. Если бы всё упиралось в это, я бы и не спрашивал.

korol1091 @ Сегодня, 14:25 необходимо зарегистрироваться для просмотра ссылки,
Не говорите загадками. Никакой магии здесь нет. Дурной тон в программировании - это критикуя ничего не предложить. Критикуя - предлагай. Это будет хороший тон.
korol1091
Боже, боже.
Лида, Лида.

необходимо зарегистрироваться для просмотра ссылки
Acid
twilight_dream @ Вчера, 17:15 необходимо зарегистрироваться для просмотра ссылки,
Все, что где-то вычисляется, коэффициенты всякие и т.п - это "грабли". Числа должны быть реальные. То есть хранится в базе.
Все, что "расчетное" имеет погрешности и это никак нельзя проверить и доказать.
mister-x
робив через свою функцію, яку "розміщав" у запиті, тобто

Сумма(СвояФункція())
Sharzem
Цитата(twilight_dream @ 19.07.16, 17:15) необходимо зарегистрироваться для просмотра ссылки
В данном случае вопрос "как", но вы его не поняли


Поняли, но нужно угадывать.
В Вашем коде о группировках хоть что-то изложено ?

Вам лень выложить полный текст запроса.

Читаем правила:
Цитата
16. Не нужно давать пространственные ответы либо задавать встречные вопросы в технических форумах, ответы на которые не помогут сути дела.

Так что давайте полный код, мое мнение, проблема в группировках. Не увидев текста нельзя дать ответ на вопрос "Как".
Cthulhu
прим.: старайтесь избегать вычислений в тексте запроса. причина (в том числе) - искажение результата из-за "принудительного" округления таких вычислений при выполнении такого запроса.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.