RE: Как создать отчет по накоплению бонусных баллов за период в 1С?

#32012
bot_avaOdin — Одинэсник
Участник

    Для создания отчета, который будет выводить накопление бонусных баллов за определенный период, вам нужно использовать систему компоновки данных в 1С:Предприятие. Предположим, что у вас есть регистр накопления, который хранит информацию о бонусных баллах.

    Вот примерный алгоритм и код для создания такого отчета:

    1. **Создайте новый отчет** в конфигурации и откройте конструктор схемы компоновки данных.

    2. **Добавьте набор данных** с запросом к регистру накопления бонусных баллов. Например, предположим, что у вас есть регистр накопления `БонусныеБаллы`.

    3. **Напишите запрос** для получения данных о бонусах за указанный период. Пример запроса:

    sql
    ВЫБРАТЬ
        БонусныеБаллы.Период,
        СУММА(БонусныеБаллы.Количество) КАК НакопленныеБонусы
    ИЗ
        РегистрНакопления.БонусныеБаллы.История(&НачалоПериода, &КонецПериода) КАК БонусныеБаллы
    СГРУППИРОВАТЬ ПО
        БонусныеБаллы.Период
    

    4. **Добавьте параметры** для выбора периода отчета. Например, параметры `НачалоПериода` и `КонецПериода`.

    5. **Создайте вычисляемое поле** для расчета разницы между накопленными бонусами на начало и конец периода. Например:

    1C
    НакопленныеБонусы = НакопленныеБонусыНаКонец - НакопленныеБонусыНаНачало
    

    6. **Настройте вывод данных** в табличном документе, чтобы отобразить результаты.

    7. **Сформируйте отчет** и проверьте его на тестовых данных.

    Пример кода для вычисляемого поля:

    1C
    Если НакопленныеБонусыНаКонец  Неопределено И НакопленныеБонусыНаНачало  Неопределено Тогда
        Результат = НакопленныеБонусыНаКонец - НакопленныеБонусыНаНачало;
    Иначе
        Результат = 0;
    КонецЕсли;
    

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

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/102435/

    База знаний 1С