[ Вопрос дня ] Как отобразить настройки динамического списка в виде “быстрых отборов” на форме?

Доброго дня, коллеги!

В одной из статей серии «Первые шаги в разработке на 1С» мы рассказываем, как в режиме конфигуратора настроить сохранение настроек динамического списка, как отобразить сохраненные настройки в виде “быстрых отборов” на форме.

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

Вопрос

Подскажите, пожалуйста, как программно заполнить свойство “Группа пользовательских настроек” динамического списка?

Справочник Товары

Ответ

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

Но создание такой группы можно реализовать при помощи следующего кода:

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

Описание курса и примеры видео

Комментарии / обсуждение (6):

  1. Vita_sh

    Добрый день! А если динамический список создан программно и хочется получить от него те же возможности, как и от обычного динамического списка. А именно: “Еще -> Настроить список” и получить отборы в обычном виде, а не через группу пользовательских настроек, которая достаточно громоздкая и избыточная. Т.е. я хочу сделать отбор только для контрагента и у меня на форме будет только отбор по контрагенту, а не все возможные поля. Пока что у меня такое не получилось. Т.е. отборы через “Еще -> Настроить список” работают, но не появляются информативно в шапке формы. Или Вашим способом, но тогда “съедается” половина формы на эту группу настроек

    • Василий Ханевич

      Добрый день!
      Пока есть только предложение сделать отдельный элемент управления для установки отбора по контрагенту. И программным кодом реализовать установку отбора.
      Что-то вроде такого примера из типовой конфигурации:

      &НаКлиенте
      Процедура ОрганизацияОтборПриИзменении(Элемент)
         
          ОрганизацияОтборПриИзмененииСервер();
         
      КонецПроцедуры

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

      Потому что отображение отборов динамического списка на форме работает именно через свойство ГруппаПользовательскихНастроек, отрисовывает включенные отборы платформа, вмешаться в это поведение особо-то и нет возможности.

      • Vita_sh

        Спасибо! Но если динамический список формируется “динамически”, т.е. когда его поля каждый раз могут быть разными, то жесткие отборы в шапке не подходят.
        Еще есть такой интересный момент. Когда добавляем группу настроек, то при выборе поля отбора, например, с типом ДАТА (двойной клик мыши в правой части группы настроек), в правую часть группы попадает эта дата с видом сравнения “Содержит” и в “Значение” сначала приходится выбирать тип значения. Хотя в правой части группы это поле ТОЧНО дата, т.к. при раскрытии дерева по плюсику, там находятся “Даты начала”, “Даты конца”, “Части дат”

        • Василий Ханевич

          Да, я понимаю, что это не универсально. Но другой способ пока не придумал.

          На сайте ИТС программное создание динамического списка описано здесь: https://its.1c.ru/db/pubmanagedui#content:247:hdoc:_top
          Всё стандартно, думаю, именно так Вы и делаете.

          По Вашему описанию похоже, что это особенности на уровне платформы. Думаю, можно обратиться на v8@1c.ru с вопросом, почему система ведет себя именно так. Возможно, прикладной разработчик и не сможет повлиять на такое поведение.

  2. Наталья

    Добрый день! не работает. Такой код выводит все настройки списка на форму. Платформа 8.3.14.1854

    • Василий Ханевич

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.