Расширение табличного поля области оформления

Типы · Appearance area table box extension

Дополнительные свойства элемента управления ТабличноеПоле для области оформления. Для данного расширения свойство ТекущаяСтрока возвращает значение типа ЭлементОбластиОформления.

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

Расширение табличного поля области оформления (Appearance area table box extension)

Расширение табличного поля области оформления (Appearance area table box extension)

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

Свойства:
НастройкаОбластиОформления (AppearanceAreaSetting)

Описание:

Дополнительные свойства элемента управления ТабличноеПоле для области оформления. Для данного расширения свойство ТекущаяСтрока возвращает значение типа ЭлементОбластиОформления.

Доступность:

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

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

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

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

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

Управлять редактированием: ОбластьОформления

В своей обычной форме получаем НастройкаОбластиОформления из настоящего типизированного табличного поля. Меняем разрешения, не удаляя сами данные.

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

Полный модуль новой обычной формы учебной внешней обработки, толстый клиент 8.5.1.1343.

Подготовка

  1. Отдельная собственная конфигурация УчебнаяКонфигурацияСинтаксиса, платформа 8.5.1.1343, толстый клиент с обычными формами. Не управляемая форма и не мобильный клиент.

  2. Создайте отдельную учебную внешнюю обработку и её обычную основную форму. В реквизитах формы добавьте УчебныеДанные с типом ОбластьОформления; это реквизит формы, не реквизит документа.

  3. В редакторе формы добавьте ТабличноеПоле с именем ТаблицаНастроек. Свойство Данные свяжите с УчебныеДанные. Расширение определяется типом этих данных, а не ручным созданием класса расширения.

  4. Добавьте обычную кнопку УчебнаяКоманда, назначьте действие УчебнаяКоманда. Событие формы ПриОткрытии свяжите с процедурой ПриОткрытии. Вставьте полный модуль на уровне формы.

  5. Откройте форму и до нажатия кнопки проверьте доступность Сумма и Количество. Нажатие учебной кнопки показывает операции коллекции разрешений и затем очищает только эти разрешения.

  6. Правила доступности интерфейса не являются правами на данные, RLS или запретом программного изменения. Код не записывает базу, не читает рабочие каталоги и не меняет чужие формы.

Перем ИсходноеКоличество;

Процедура ПриОткрытии()
    УчебныеДанные = Новый ОбластьОформления;
    УчебныеДанные.Добавить("Сумма", "Собственная стоимость", ТипОбластиОформления.Поле);
    УчебныеДанные.Добавить("Количество", "Собственное количество", ТипОбластиОформления.Поле);
    ИсходноеКоличество = 0;
    Для Каждого СобственныйЭлемент Из УчебныеДанные Цикл
        ИсходноеКоличество = ИсходноеКоличество + 1;
    КонецЦикла;
    Поле = ЭтаФорма.ЭлементыФормы.ТаблицаНастроек;
    Управление = Поле.НастройкаОбластиОформления;
    Управление.Очистить();
    Управление.Добавить("Сумма", Ложь);
    Управление.Добавить("Количество", Истина);
    Сообщить("До кнопки: Сумма недоступно для интерактивного изменения, Количество доступно");
КонецПроцедуры

Процедура УчебнаяКоманда(Кнопка)
    Поле = ЭтаФорма.ЭлементыФормы.ТаблицаНастроек;
    Управление = Поле.НастройкаОбластиОформления;
    Первое = Управление.Найти("Сумма");
    Второе = Управление.Найти("Количество");
    Если Первое = Неопределено Или Второе = Неопределено Тогда
        ВызватьИсключение "Откройте свою форму заново: собственные разрешения уже очищены";
    КонецЕсли;
    Сообщить(Управление.Количество() = 2);
    Сообщить(Первое.Имя = "Сумма");
    Сообщить(НЕ Первое.Доступность);
    Сообщить(Второе.Доступность);
    Сообщить(Управление.Индекс(Второе) = 1);
    Сообщить(Управление.Получить(0) = Первое);
    Сообщить(Управление.Найти("НетТакойУчебнойНастройки") = Неопределено);
    Первое.Доступность = Истина;
    Сообщить(Первое.Доступность);
    Управление.Удалить(Второе);
    Сообщить(Управление.Количество() = 1);
    Управление.Очистить();
    Сообщить(Управление.Количество() = 0);
    ТекущееКоличество = 0;
    Для Каждого СобственныйЭлемент Из УчебныеДанные Цикл
        ТекущееКоличество = ТекущееКоличество + 1;
    КонецЦикла;
    Сообщить(ТекущееКоличество = ИсходноеКоличество);
    Сообщить("Очистили только коллекцию разрешений, собственные исходные настройки сохранились");
КонецПроцедуры

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

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

  2. Получить настоящий объект управления из расширения поля: у этого класса нет конструктора. Добавить своё запрещённое и разрешённое имя.

  3. После ручной проверки интерфейса нажать кнопку. Найти свои элементы по именам, проверить позиции и включить доступность первого.

  4. Удалить второй элемент разрешения, затем очистить только коллекцию разрешений. Сверить количество исходных настроек, а не принимать Очистить за удаление данных.

  5. Повторный запуск требует заново открыть только свою форму: кнопка уже очистила созданные правила доступности.

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

  1. Одиннадцать проверок коллекции разрешений и сохранения исходных настроек дают Истина.

  2. До кнопки проверьте недоступность первого и доступность второго собственного элемента в реальном обычном поле. После кнопки ограничения очищены; исходные данные не удалены.

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

Полный подключённый к обычному редактору пример доступности с собственной типизированной формой и сохранением исходных настроек.

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

  1. Класс управления и класс исходных данных разные. У элемента управления Имя только читается, Доступность изменяется.

  2. Свойство расширения поля только читается как ссылка на коллекцию. Не присваивайте Поле.НастройкаОбластиОформления = Новый ... и не создавайте несуществующий конструктор.

  3. Очистить разрешения не отключает существующий отбор и не удаляет исходные правила, области или параметры.

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

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

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

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

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

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