Расширение таблицы формы для значений параметров компоновки данных.ОграниченияИспользования

Свойства · UseRestrictions

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

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

Расширение таблицы формы для значений параметров компоновки данных.ОграниченияИспользования (Form table extension for data composition parameter values.UseRestrictions)

Расширение таблицы формы для значений параметров компоновки данных (Form table extension for data composition parameter values)

ОграниченияИспользования (UseRestrictions)

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

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

Тонкий клиент, веб-клиент, сервер, толстый клиент.

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

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

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

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

Исключить собственный служебный параметр из редактора

Расширения возникают у таблиц по настоящему пути к данным. Их не создают вымышленным конструктором.

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

Своя общая управляемая форма: серверное создание и отдельные серверные процедуры.

Подготовка

  1. В своей учебной конфигурации создайте Отчеты → УчебныеКнигиСКД. У отчёта откройте ОсновнаяСхемаКомпоновкиДанных и сохраните её макетом ОсновнаяСхемаКомпоновкиДанных.

  2. В конструкторе СКД создайте источник Local и набор-запрос Книги. Вставьте приведённый запрос двух константных строк; это не чтение рабочих справочников. Доступные поля Наименование, Количество, Сумма заполните автоматически.

  3. В настройках схемы создайте вариант Подробно: выбраны Наименование, Количество, Сумма; структура — группировка Детальные записи. Второй вариант Кратко: Наименование и Сумма, также Детальные записи. Первым оставьте Подробно; у обоих задайте понятное представление.

  4. Для этой самостоятельной копии своей схемы замените запрос набора Книги приведённым запросом с &МинимумКоличества. Автоматически заполните три поля и параметр МинимумКоличества Число 10.0, значение по умолчанию 0. Первым вариантом оставьте Подробно с детальными записями.

  5. Создайте собственную общую управляемую форму УчебныеРедакторыСКД. Не используйте основную форму отчёта: здесь обычная общая форма и НЕосновной реквизит Компоновщик типа КомпоновщикНастроекКомпоновкиДанных. Дополнительно Результат ТабличныйДокумент и связанное поле результата.

  6. Перетащите из дерева реквизита Компоновщик на форму таблицы: ДоступныеПоля → Компоновщик.Настройки.Выбор.ДоступныеПоляВыбора; ПараметрыДанных → Компоновщик.Настройки.ПараметрыДанных; ОтборКниг → Компоновщик.Настройки.Отбор; ОформлениеКниг → Компоновщик.Настройки.УсловноеОформление; СтруктураКниг → Компоновщик.Настройки.Структура; ПользовательскиеНастройки → Компоновщик.ПользовательскиеНастройки. Автозаполнение колонок включено.

  7. Основной блок назначьте ПриСозданииНаСервере именно этой формы. Дополнительные процедуры разместите отдельно в том же модуле. В каждой карточке свой самостоятельный основной обработчик; не создавайте несколько одноимённых обработчиков.

  8. Ограничения редактора — удобство интерфейса, не ограничение прав пользователя и не защита запроса. Все примеры используют только две собственные константные строки, не рабочие справочники. BSL и формы при сборке справочника не запускались.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ПодготовитьУчебныеРедакторы();
    Ограничение = Элементы.ПараметрыДанных.ОграниченияИспользования.Добавить();
    Ограничение.Параметр = Новый ПараметрКомпоновкиДанных("МинимумКоличества");
    Ограничение.Доступность = Ложь;
    ВывестиСвоиКнигиНаСервере();
    Сообщить("Собственных группировок: " + Строка(Компоновщик.Настройки.Структура.Количество()));
КонецПроцедуры
Конструктор своей СКД: запрос двух строк с настоящим параметром
ВЫБРАТЬ Книги.Наименование, Книги.Количество, Книги.Сумма
ИЗ
    (ВЫБРАТЬ "Учебная книга" КАК Наименование, 3 КАК Количество, 750 КАК Сумма
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ "Учебная тетрадь", 5, 200) КАК Книги
ГДЕ Книги.Количество >= &МинимумКоличества
Тот же модуль: инициализировать реальный реквизит компоновщика
&НаСервере
Процедура ПодготовитьУчебныеРедакторы()
    Схема = Отчеты.УчебныеКнигиСКД.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Источник = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема);
    Компоновщик.Инициализировать(Источник);
    Настройки = Схема.НастройкиПоУмолчанию;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("МинимумКоличества", 0);
    Настройки.Отбор.Элементы.Очистить();
    Условие = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Условие.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Количество");
    Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    Условие.ПравоеЗначение = 0;
    Условие.Использование = Истина;
    Условие.Представление = "Книги с положительным количеством";
    Настройки.Отбор.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор;
    Настройки.Отбор.ПредставлениеПользовательскойНастройки = "Отбор своих книг";
    ДобавитьСвоеОформление(Настройки);
    Компоновщик.ЗагрузитьНастройки(Настройки);
КонецПроцедуры
Тот же модуль: собственное именованное правило оформления
&НаСервере
Процедура ДобавитьСвоеОформление(Настройки)
    Настройки.УсловноеОформление.Элементы.Очистить();
    Правило = Настройки.УсловноеОформление.Элементы.Добавить();
    Правило.Использование = Истина;
    Правило.Представление = "Выделить собственные названия";
    Поле = Правило.Поля.Элементы.Добавить();
    Поле.Поле = Новый ПолеКомпоновкиДанных("Наименование");
    Правило.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЖелтый);
КонецПроцедуры
Тот же модуль: вывести настоящие настройки в поле результата
&НаСервере
Процедура ВывестиСвоиКнигиНаСервере()
    Схема = Отчеты.УчебныеКнигиСКД.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = Компоновщик.ПолучитьНастройки();
    ПостроительМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = ПостроительМакета.Выполнить(Схема, Настройки);
    Процессор = Новый ПроцессорКомпоновкиДанных;
    Процессор.Инициализировать(Макет);
    Результат = Новый ТабличныйДокумент;
    Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    Вывод.УстановитьДокумент(Результат);
    Вывод.Вывести(Процессор);
КонецПроцедуры

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

  1. Подготовьте собственную схему и точные связи таблиц.

  2. Откройте свою общую форму с указанным обработчиком.

  3. Сравните редактор и фактический результат компоновки.

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

  1. Элемент ограничения параметра содержит ПараметрКомпоновкиДанных, не ПолеКомпоновкиДанных. Значение 0 уже установлено в полные настройки и продолжает использоваться настоящим запросом.

  2. Локальное ограничение редактора не заменяет роли / RLS. Макет конфигурации и пользовательские настройки базы этим опытом не сохраняются.

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

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

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

  1. Не заменяйте путь таблицы похожим по имени реквизитом другого типа; от него зависит доступность расширения.

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

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

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

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

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