Как правильно сформулировать запрос к регистру в 1С?

Не могли бы вы поделиться с вами рекомендациями по изменению запроса, чтобы результатом складывания чисел 500 и -400 было всего -100, который выводится в виде общего итога? <br/>
  • 16 декабря 2024 г. 13:23
Ответы на вопрос 2
Чтобы правильно сформулировать запрос к регистру в 1С и получить результат, где складываются числа 500 и -400, в итоге выдавая -100, вам нужно правильно настроить выражения в запросе. Вам следует учесть, что итоговая сумма должна учитывать все значения (положительные и отрицательные).

Вот пример запроса, который может вам подойти. Предположим, что у вас есть регистр накопления с полем "Сумма", в котором хранятся ваши значения:

```sql
ВЫБРАТЬ
    СУММА(Регистр.Накопления) КАК Итог
ИЗ
    Регистр.Накоплений КАК Регистр
ГДЕ
    Регистр.Период = &ТекущийПериод
```

Где `Регистр.Накопления` — ваше поле с числами, которое вы хотите складывать, а `Регистр.Период` — поле, по которому вы хотите фильтровать данные (например, по определённому периоду).

После того как запрос выполнится, итоговая сумма будет составлена автоматически, включая как положительные, так и отрицательные значения, что приведёт в вашем случае к итоговому значению -100.

Для установки параметра `ТекущийПериод` задайте его значение в зависимости от контекста вашего запроса.

Если у вас есть более конкретные условия или таблицы, структуры данных, которые вы используете, пожалуйста, предоставьте их, и я смогу более точно адаптировать запрос под ваши требования.
Если "СрокДействияС" и "СрокДействияПо" - измерения, то просто убрать их из выборки. 
Если они нужны далее по алгоритму для чего-то типа ФИФО - то можно добавить общие итоги.
Но я бы изменил структуру регистра вообще убрав сроки и добавил еще один РН с плановыми начислениями и списаниями в будущем (или РС или измерение в имеющемся РН типа Булево) из которого бы переносил раз в день регламентным заданием сгорающие бонусы отдельным документом.
Похожие вопросы