НастройкиСоставаИнтерфейсаКлиентскогоПриложения.По умолчанию

Конструкторы

Синтаксис и применение НастройкиСоставаИнтерфейсаКлиентскогоПриложения.По умолчанию в платформе 1С:Предприятие. Описание и примеры кода.

Синтаксис

Новый НастройкиСоставаИнтерфейсаКлиентскогоПриложения
Полное описание, параметры и ограничения

НастройкиСоставаИнтерфейсаКлиентскогоПриложения.По умолчанию

НастройкиСоставаИнтерфейсаКлиентскогоПриложения (ClientApplicationInterfaceContentSettings)

По умолчанию

Синтаксис:
Новый НастройкиСоставаИнтерфейсаКлиентскогоПриложения
Методическая информация

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

Временно применить учебный состав и восстановить исходный

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

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

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

Подготовка

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

  2. Создайте серверный общий модуль УчебныеЗадачи. Для уроков с готовыми процедурами/функциями вставьте полный код в модуль; для остальных — в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды собственной управляемой обработки.

  3. Чтение и конструирование черновика не сохраняют пользовательские настройки. Только последний урок намеренно вызывает УстановитьСостав; для него нужна собственная конфигурация с именем УчебнаяКонфигурацияСинтаксиса и возможность восстановить настройки учебного пользователя вручную.

  4. Имя метаданных собственной конфигурации задайте УчебнаяКонфигурацияСинтаксиса. Перед экспериментом зафиксируйте расположение панелей учебного пользователя вручную. Не используйте рабочую КА2/УНФ/УТ и не меняйте имя рабочей конфигурации ради прохождения проверки.

  5. УстановитьСостав изменяет пользовательские настройки: это не чистый расчёт. Пример не гарантирует восстановление при завершении процесса, отключении сервера или нехватке прав. Проверка имени — защита от случайного запуска, не доказательство отсутствия рабочих данных.

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

Функция ПодписьУчебнойГруппы(Группа)
    Результат = "[";
    Для Каждого Элемент Из Группа Цикл
        Если ТипЗнч(Элемент) = Тип("ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения") Тогда
            Результат = Результат + Элемент.Имя + ";";
        ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения") Тогда
            Результат = Результат + ПодписьУчебнойГруппы(Элемент) + ";";
        Иначе
            ВызватьИсключение "Неизвестный тип элемента состава интерфейса";
        КонецЕсли;
    КонецЦикла;
    Возврат Результат + "]";
КонецФункции

Функция ПодписьУчебногоСостава(Состав)
    Возврат "Верх=" + ПодписьУчебнойГруппы(Состав.Верх)
        + " Лево=" + ПодписьУчебнойГруппы(Состав.Лево)
        + " Низ=" + ПодписьУчебнойГруппы(Состав.Низ)
        + " Право=" + ПодписьУчебнойГруппы(Состав.Право);
КонецФункции

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

  1. Исходный состав получаем до любых установок и не редактируем его. Новый учебный состав строится отдельно.

  2. УстановитьСостав проверяет имена панелей, уникальность размещения и отсутствие групп внутри групп. Неподдерживаемые настройки могут вызвать исключение.

  3. Сразу после эксперимента пытаемся установить исходный снимок — как при успехе, так и после ошибки применения. Восстановление не зависит от того, успешно ли прочитан новый состав.

  4. Если восстановление не удалось, выбрасываем явную ошибку с исходной подписью, а не сообщаем, что всё осталось прежним.

  5. После успешного восстановления повторно читаем состав и сравниваем структуру/порядок панелей. Совпадение описания ещё не доказывает отображение окна: визуально проверьте учебный клиент.

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

  1. В поддерживаемом режиме временно прочитанный состав должен совпасть с учебным; в конце повторно прочитанный состав совпадает с исходным.

  2. Если установка отклонена, код всё равно пытается восстановить исходный состав и сообщает исходную ошибку. При ошибке восстановления не продолжайте эксперимент; восстановите настройки учебного пользователя вручную.

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

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

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

  1. Не запускайте урок для рабочего пользователя. Это сохранение пользовательских настроек, а не изменение только переменной.

  2. Потеря процесса между установкой и восстановлением обходит обработчики BSL; исходная подпись и собственная учебная база обязательны.

  3. Не вызывайте УстановитьСостав без аргумента вместо восстановления сохранённого снимка: это другой смысл операции.

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

Собрать черновик из пяти стандартных панелей

Раскладываем стандартные панели по сторонам и объединяем две в собственную группу. Новое описание не применяется к приложению.

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

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

Подготовка

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

  2. Создайте серверный общий модуль УчебныеЗадачи. Для уроков с готовыми процедурами/функциями вставьте полный код в модуль; для остальных — в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды собственной управляемой обработки.

  3. Чтение и конструирование черновика не сохраняют пользовательские настройки. Только последний урок намеренно вызывает УстановитьСостав; для него нужна собственная конфигурация с именем УчебнаяКонфигурацияСинтаксиса и возможность восстановить настройки учебного пользователя вручную.

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

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

  1. Имена пяти стандартных панелей взяты из справки ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения. Это не имена собственных элементов управляемой формы.

  2. У состава четыре корневые коллекции. Справа добавляем одну группу, в которой две панели; поэтому количество справа 1, а внутри группы 2.

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

  4. В группе размещаем только панели, не ещё одну группу: группы внутри групп при УстановитьСостав не поддерживаются.

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

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

  1. Шесть контрольных Истина: четыре стороны по одному элементу, в правой группе два, сверху ПанельРазделов.

  2. Панели фактического окна не переместились, поскольку настройки не устанавливались.

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

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

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

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

  2. Не добавляйте одну и ту же панель на несколько сторон ради эксперимента: установщик проверяет уникальность.

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

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

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

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

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