Управлять связанными редакторами текущей строки структуры: ИзменятьДоступностьПоля

Учебные задачи

Старое табличное поле настроек управляет доступностью / страницами только действительно связанных с ним редакторов.

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

Обычная форма своей обработки, толстый клиент.

Подготовка

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

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

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

  4. Создайте собственную Обычную форму обработки, толстый клиент. Реквизит Компоновщик типа КомпоновщикНастроекКомпоновкиДанных; табличное поле СтруктураКниг связано с Компоновщик.Настройки.Структура, не с ТаблицаЗначений.

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

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

  7. Чтобы увидеть отличие, выбирайте реальные разные строки структуры: группировку, детальные записи, при наличии — таблицу / диаграмму. Набор допустимых текущих настроек зависит от типа выбранного узла. ПодробнаяНастройка=Истина привязывает текущие данные к нему.

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

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

  1. Подготовьте настоящую структуру и связанные редакторы.

  2. Задайте способ обработки недоступных настроек.

  3. Выбирайте разные узлы и сравнивайте доступность / видимость страниц.

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

  1. ИзменятьДоступностьПоля оставляет редактор на странице, но делает неподходящие текущие настройки недоступными. СкрыватьСтраницу скрывает страницу только при выполнении её условий состава.

  2. Режим не присваивает значения настройкам и не является проверкой прав. При отсутствии настоящей связи с текущими данными эффект не должен выдумываться. BSL / формы при сборке HTML не запускались.

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

Есть собственный типизированный источник структуры и явная подготовка связанных редакторов.

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

  1. Не применяйте это расширение старого ТабличноеПоле к управляемой ТаблицаФормы с похожим именем.

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

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

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

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

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