|

Программное добавление полей и ресурсов в СКД


Содержание:

  1. Добавление поля в набор данных в системе учета 1С
  2. Добавление ресурса для подсчета суммы и добавление поля в зависимости от параметра

Добавление поля в набор данных в системе учета 1С

Пример: Добавление поля в набор данных

Предположим, что у нас есть отчет на базе регистра сведений, и нам нужно добавить поле “Контрагент” из справочника Контрагенты в схему компоновки данных.

Процедура ДобавитьПолеСКД(КомпоновщикНастроек)

    // Получаем схему компоновки данных

    СхемаКомпоновкиДанных = КомпоновщикНастроек.СхемаКомпоновкиДанных;

    // Получаем набор данных

    НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Элементы[0]; // первый набор данных

    // Добавляем новое поле

    НовоеПоле = НаборДанных.Поля.Добавить();

    НовоеПоле.Имя = “Контрагент”;

    НовоеПоле.Поле = “Справочник.Контрагенты.Ссылка”; // Имя поля в источнике данных

КонецПроцедуры

Добавление ресурса для подсчета суммы и добавление поля в зависимости от параметра

Ресурсы используются для вычисления значений, таких как суммы, максимальные или минимальные значения и другие агрегатные функции.

Пример: Добавление ресурса для подсчета суммы

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

Процедура ДобавитьРесурсСКД(КомпоновщикНастроек)

    // Получаем схему компоновки данных

    СхемаКомпоновкиДанных = КомпоновщикНастроек.СхемаКомпоновкиДанных;

    // Получаем набор данных

    НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Элементы[0]; // первый набор данных

    // Добавляем новый ресурс

    НовыйРесурс = НаборДанных.Ресурсы.Добавить();

    НовыйРесурс.Имя = “СуммаКоличество”;

    НовыйРесурс.Поле = “Количество”;

    НовыйРесурс.Использование = Истина; // Включаем использование ресурса в отчете

    НовыйРесурс.Агрегация = Перечисления.ВидыАгрегации.Сумма; // Агрегатная функция — сумма

КонецПроцедуры

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

Пример: Добавление поля в зависимости от параметра

Процедура ДобавитьПолеЕслиПараметр(КомпоновщикНастроек, ЗначениеПараметра)

    Если ЗначениеПараметра = Истина Тогда

        // Добавляем поле только если значение параметра истинно

        ДобавитьПолеСКД(КомпоновщикНастроек);

    КонецЕсли;

КонецПроцедуры

Специалист компании ООО “Кодерлайн”,

Дубровина Елена


Помогла ли вам статья? Оставьте свой комментарий:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Блог про 1С:Предприятие

Copyright © 2024 TopKoder

Мы занимаемся внедрением и обслуживанием программных продуктов 1С.