Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Арифметическое выражение в запросе          
twilight_dream Подменю пользователя
сообщение 18.07.16, 16:01
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 265
Спасибо сказали: 4 раз
Рейтинг: 0

Здравствуйте.
Прошу подсказать, что я не так делаю и как написать правильно? Нужно приход поделить на 1.2 в запросе...

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


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


не могу понять как правильно написать арифметическое выражение...


Signature

Sharzem Подменю пользователя
сообщение 18.07.16, 17:03
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 299
Спасибо сказали: 98 раз
Рейтинг: 99.1

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


Сообщение отредактировал Sharzem - 18.07.16, 17:10


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

twilight_dream Подменю пользователя
сообщение 18.07.16, 19:29
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 265
Спасибо сказали: 4 раз
Рейтинг: 0

Цитата(Sharzem @ 18.07.16, 18:03) *
Запрос.СуммаПриход

Пробовал... Ошибку не дает, но Запрос.СуммаПриход тогда получается пустая, то есть выражение дает 0


Signature

nysysimara Подменю пользователя
сообщение 19.07.16, 7:24
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

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

sava1 Подменю пользователя
сообщение 19.07.16, 8:55
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 669.9

В КЖК написано
Цитата
В функциях: Сумма, Среднее, Максимум, Минимум в качест­ве аргумента возможно использование арифметического выражения в терминах встроенного языка.


twilight_dream Подменю пользователя
сообщение 19.07.16, 11:40
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 265
Спасибо сказали: 4 раз
Рейтинг: 0

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

На самом деле вычисляется, но только на самом нижнем уровне группировки. Как заставить суммироваться и в верхние уровни?


Signature

endru Подменю пользователя
сообщение 19.07.16, 13:02
Сообщение #7

Говорящий
Иконка группы
Группа: Местный
Сообщений: 90
Из: Киев
Спасибо сказали: 15 раз
Рейтинг: 0

Цитата(nysysimara @ 19.07.16, 7:24) *
|Функция БонусДляБП = (Приход(Сумма)/1.2) Когда (Док.ПериодБонусирования=ПериодБонусирования);


Вам же написали как правильно. Так должно работать.

korol1091 Подменю пользователя
сообщение 19.07.16, 13:25
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 49
Спасибо сказали: 9 раз
Рейтинг: 0

Извините, но использование "магических чисел" - это дурной тон в программировании.

Sharzem Подменю пользователя
сообщение 19.07.16, 14:09
Сообщение #9

Оратор
Иконка группы
Группа: Местный
Сообщений: 299
Спасибо сказали: 98 раз
Рейтинг: 99.1

Цитата(twilight_dream @ 19.07.16, 12:40) *
Как заставить суммироваться и в верхние уровни?


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

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

Поддерживаю icon_beer17.gif


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

twilight_dream Подменю пользователя
сообщение 19.07.16, 16:15
Сообщение #10

Оратор
*****
Группа: Пользователи
Сообщений: 265
Спасибо сказали: 4 раз
Рейтинг: 0

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

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

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


Signature

korol1091 Подменю пользователя
сообщение 20.07.16, 9:18
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 49
Спасибо сказали: 9 раз
Рейтинг: 0

Боже, боже.
Лида, Лида.

[необходимо зарегистрироваться для просмотра ссылки]

Acid Подменю пользователя
сообщение 20.07.16, 9:33
Сообщение #12

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 378 раз
Рейтинг: 0

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


Signature

Документируйте Код! мать вашу...


mister-x Подменю пользователя
сообщение 20.07.16, 11:10
Сообщение #13

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1419 раз
Рейтинг: 0

робив через свою функцію, яку "розміщав" у запиті, тобто

Сумма(СвояФункція())

Sharzem Подменю пользователя
сообщение 20.07.16, 12:10
Сообщение #14

Оратор
Иконка группы
Группа: Местный
Сообщений: 299
Спасибо сказали: 98 раз
Рейтинг: 99.1

Цитата(twilight_dream @ 19.07.16, 17:15) *
В данном случае вопрос "как", но вы его не поняли


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

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

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

Так что давайте полный код, мое мнение, проблема в группировках. Не увидев текста нельзя дать ответ на вопрос "Как".


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Cthulhu Подменю пользователя
сообщение 15.08.16, 14:50
Сообщение #15

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

прим.: старайтесь избегать вычислений в тексте запроса. причина (в том числе) - искажение результата из-за "принудительного" округления таких вычислений при выполнении такого запроса.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 01.11.24, 2:19
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!