МакетКомпоновкиДанных.ЗначенияПараметров

Свойства · ParameterValues

Тип: ЗначенияПараметровМакетаКомпоновкиДанных. Описание параметров.

Полное описание, параметры и ограничения

МакетКомпоновкиДанных.ЗначенияПараметров (DataCompositionTemplate.ParameterValues)

МакетКомпоновкиДанных (DataCompositionTemplate)

ЗначенияПараметров (ParameterValues)

Доступен, начиная с версии 8.1.

Использование:
Только чтение.
Описание:
Тип: ЗначенияПараметровМакетаКомпоновкиДанных.
Описание параметров.
Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Исследовать настоящий скомпилированный макет и вывести две строки

Схема построена самим уроком, запрос выбирает две константные строки; макет получаем компоновщиком, а не притворяемся, что пустой макет уже готов.

Где и как запускать

Полный серверный общий модуль собственной учебной базы; не клиентский модуль формы.

Подготовка

  1. Собственная учебная база 8.5.1.1343. Создайте общий модуль УчебныеКоллекцииСКД с флагом Сервер. Вставьте полный текст одного урока с процедурой ВыполнитьПример() Экспорт.

  2. Из серверной команды своей обработки вызовите УчебныеКоллекцииСКД.ВыполнитьПример(). Таблицы значений и служебные объекты макета остаются на сервере.

  3. Книга / 3 / 750 и Ручка / 1 / 50 — вымышленные собственные данные. Ни справочники, ни документы, ни регистры базы, ни внешние сервисы не читаются.

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

  5. В уроке описания расшифровки временное хранилище заполняется только новым собственным объектом, в одном вызове. В конце удаляется ровно этот созданный адрес, включая обработку ошибки.

  6. Не заменяйте собственный новый макет текущим рабочим отчётом: Очистить, Удалить и Сдвинуть в этих уроках относятся к собственной памяти.

Процедура ВыполнитьПример() Экспорт
    Схема = Новый СхемаКомпоновкиДанных;
    Источник = Схема.ИсточникиДанных.Добавить();
    Источник.Имя = "УчебныйИсточник";
    Источник.ТипИсточникаДанных = "Local";
    Набор = Схема.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
    Набор.Имя = "УчебныеТовары";
    Набор.ИсточникДанных = Источник.Имя;
    Набор.АвтоЗаполнениеДоступныхПолей = Истина;
    Набор.Запрос = "ВЫБРАТЬ
    |    ""Книга"" КАК Наименование,
    |    3 КАК Количество,
    |    250 КАК Цена,
    |    750 КАК Сумма
    |ОБЪЕДИНИТЬ ВСЕ
    |ВЫБРАТЬ ""Ручка"", 1, 50, 50";
    Настройки = Схема.НастройкиПоУмолчанию;
    Для Каждого ИмяПоля Из СтрРазделить("Наименование,Количество,Цена,Сумма", ",") Цикл
        Выбранное = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
        Выбранное.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля);
        Выбранное.Использование = Истина;
    КонецЦикла;
    Детали = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    Детали.Использование = Истина;
    АвтоВыбор = Детали.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    АвтоВыбор.Использование = Истина;
    РабочиеНастройки = Настройки;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(Схема, РабочиеНастройки, , ,
        Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    Процессор = Новый ПроцессорКомпоновкиДанных;
    Процессор.Инициализировать(Макет);
    Сообщить(ТипЗнч(Макет) = Тип("МакетКомпоновкиДанных"));
    Сообщить(ТипЗнч(Макет.ЗначенияПараметров) = Тип("ЗначенияПараметровМакетаКомпоновкиДанных"));
    Сообщить(ТипЗнч(Макет.ИсточникиДанных) = Тип("ИсточникиДанныхМакетаКомпоновкиДанных"));
    Сообщить(ТипЗнч(Макет.Макеты) = Тип("ОписанияМакетовОбластейМакетаКомпоновкиДанных"));
    Сообщить(ТипЗнч(Макет.НаборыДанных) = Тип("НаборыДанныхМакетаКомпоновкиДанных"));
    Сообщить(ТипЗнч(Макет.СвязиНаборовДанных) = Тип("СвязиНаборовДанныхМакетаКомпоновкиДанных"));
    Сообщить(ТипЗнч(Макет.Тело) = Тип("ТелоМакетаКомпоновкиДанных"));
    Сообщить(СтрШаблон("Актуальность макета: %1", Макет.ТребуемаяАктуальностьДанных));
    Сообщить(СтрШаблон("Время актуальности, тип: %1", ТипЗнч(Макет.ТребуемоеВремяАктуальностиДанных)));
    Сообщить(СтрШаблон("Источников: %1; наборов: %2; макетов областей: %3; частей тела: %4",
        Макет.ИсточникиДанных.Количество(), Макет.НаборыДанных.Количество(), Макет.Макеты.Количество(), Макет.Тело.Количество()));
    Приемник = Новый ТаблицаЗначений;
    Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    Вывод.ОтображатьПроцентВывода = Ложь;
    Вывод.УстановитьОбъект(Приемник);
    Результат = Вывод.Вывести(Процессор, Ложь);
    Сообщить(Результат.Количество() = 2);
    Сообщить(Результат.Итог("Сумма") = 800);
КонецПроцедуры

Разбор по шагам

  1. Создаём источник Local и запрос Книга/750 + Ручка/50 без обращения к конфигурационным таблицам.

  2. Задаём выбранные поля и детальную группировку, затем компонуем макет для коллекции значений.

  3. Шесть служебных свойств макета читаем как реальные коллекции/тело, а не присваиваем им новые объекты.

  4. Актуальность и её время выводятся диагностически: для собственных констант это не проверка свежести данных рабочего сервера.

  5. Инициализируем процессор этим макетом и выводим результат в собственную ТаблицаЗначений.

Как проверить результат

  1. Девять булевых проверок Истина: тип макета, шесть типов его частей, две строки и итог 800.

  2. Число сгенерированных областей и частей тела диагностическое; внутреннюю схему генератора не фиксируем выдуманными числами.

  3. Результат содержит собственные Книга 750 и Ручка 50, без файлового сохранения.

Ожидаемый результат

Получен и исследован настоящий макет с выполненным собственным результатом.

На что обратить внимание

  1. Новый МакетКомпоновкиДанных без настройки не заменяет скомпилированный макет.

  2. Макет.ЗначенияПараметров не является структурой параметров объекта Запрос.

  3. Диагностика ТребуемаяАктуальностьДанных не доказывает работу копий базы или актуальность реальных остатков.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Задать именованные значения параметров собственного черновика макета

Параметры макета — коллекция элементов Имя/Значение, не структура и не SQL-параметры. Здесь исследуется только эта часть черновика.

Где и как запускать

Полный серверный общий модуль собственной учебной базы; не клиентский модуль формы.

Подготовка

  1. Собственная учебная база 8.5.1.1343. Создайте общий модуль УчебныеКоллекцииСКД с флагом Сервер. Вставьте полный текст одного урока с процедурой ВыполнитьПример() Экспорт.

  2. Из серверной команды своей обработки вызовите УчебныеКоллекцииСКД.ВыполнитьПример(). Таблицы значений и служебные объекты макета остаются на сервере.

  3. Книга / 3 / 750 и Ручка / 1 / 50 — вымышленные собственные данные. Ни справочники, ни документы, ни регистры базы, ни внешние сервисы не читаются.

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

  5. В уроке описания расшифровки временное хранилище заполняется только новым собственным объектом, в одном вызове. В конце удаляется ровно этот созданный адрес, включая обработку ошибки.

  6. Не заменяйте собственный новый макет текущим рабочим отчётом: Очистить, Удалить и Сдвинуть в этих уроках относятся к собственной памяти.

Процедура ВыполнитьПример() Экспорт
    Макет = Новый МакетКомпоновкиДанных;
    Параметры = Макет.ЗначенияПараметров;
    Название = Параметры.Добавить();
    Название.Имя = "УчебноеНазвание";
    Название.Значение = "Книга";
    Количество = Параметры.Вставить(0);
    Количество.Имя = "УчебноеКоличество";
    Количество.Значение = 3;
    Сообщить(Параметры.Количество() = 2);
    Сообщить(Параметры.Найти("УчебноеНазвание") = Название);
    Сообщить(Параметры.Найти("УчебноеКоличество").Значение = 3);
    Сообщить(Параметры.Индекс(Количество) = 0);
    Сообщить(Параметры.Получить(0).Имя = "УчебноеКоличество");
    Параметры.Сдвинуть(Количество, 1);
    Сообщить(Параметры.Получить(1) = Количество);
    Параметры.Удалить(Название);
    Сообщить(Параметры.Количество() = 1);
    Сообщить(Параметры.Найти("УчебноеНазвание") = Неопределено);
    Параметры.Очистить();
    Сообщить(Параметры.Количество() = 0);
КонецПроцедуры

Разбор по шагам

  1. Создаём новый собственный макет без схемы и получаем его коллекцию ЗначенияПараметров.

  2. Добавляем строковое УчебноеНазвание и вставляем числовое УчебноеКоличество в начало.

  3. Найти использует имя, Индекс/Получить — позицию. Значение может иметь разный тип.

  4. Сдвигаем число, удаляем название и проверяем отсутствие; затем очищаем собственную коллекцию.

  5. Этот черновик не передаём процессору: для готового отчёта нужны согласованные наборы, тело и области макета.

Как проверить результат

  1. Девять проверок Истина: имена, значения, позиции, удаление и пустая коллекция.

  2. Код не обещает две строки отчёта: он учит конкретной коллекции параметров, а не выполняет незаполненный макет.

Ожидаемый результат

Разобрана реальная коллекция параметров нового собственного макета.

На что обратить внимание

  1. Создать параметр не означает связать его с выражением ячейки или запроса.

  2. Не очищайте параметры скомпилированного рабочего макета перед выполнением.

  3. Строка УчебноеНазвание — имя параметра, Книга — его значение.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.