Доброго дня, коллеги!
В одной из статей серии «Первые шаги в разработке на 1С» мы рассказываем, как в режиме конфигуратора настроить сохранение настроек динамического списка, как отобразить сохраненные настройки в виде “быстрых отборов” на форме.
Это все базовые знания разработчиков 1С. Если же хотите копнуть тему глубже, то рекомендуем пройти курсы Профессиональная разработка отчетов в 1С 8.3 на СКД и Профессиональная разработка интерфейсов и форм, включающие в себя мощные блоки по программной работе с СКД и динамическими списками.
Вопрос
Подскажите, пожалуйста, как программно заполнить свойство “Группа пользовательских настроек” динамического списка?
Ответ
Отдельного свойства, к которому можно было бы обратиться программно, нет.
Но создание такой группы можно реализовать при помощи следующего кода:
элСписокКомпоновщикНастроекПользовательскиеНастройки = Элементы.Вставить("СписокКомпоновщикНастроекПользовательскиеНастройки", Тип("ГруппаФормы")); элСписокКомпоновщикНастроекПользовательскиеНастройки.Заголовок = "Группа пользовательских настроек"; элСписокКомпоновщикНастроекПользовательскиеНастройки.Вид = ВидГруппыФормы.ОбычнаяГруппа; Элементы.Список.СоздатьЭлементыФормыПользовательскихНастроек(элСписокКомпоновщикНастроекПользовательскиеНастройки, РежимОтображенияНастроекКомпоновкиДанных.Все);
Это пример разобранного вопроса из Мастер-группы курса
Профессиональная разработка отчетов в 1С 8.3 на СКД.
Профессиональная разработка отчетов в 1С 8.3 на СКД.
Описание курса и примеры видео
Добрый день! А если динамический список создан программно и хочется получить от него те же возможности, как и от обычного динамического списка. А именно: “Еще -> Настроить список” и получить отборы в обычном виде, а не через группу пользовательских настроек, которая достаточно громоздкая и избыточная. Т.е. я хочу сделать отбор только для контрагента и у меня на форме будет только отбор по контрагенту, а не все возможные поля. Пока что у меня такое не получилось. Т.е. отборы через “Еще -> Настроить список” работают, но не появляются информативно в шапке формы. Или Вашим способом, но тогда “съедается” половина формы на эту группу настроек
Добрый день!
Пока есть только предложение сделать отдельный элемент управления для установки отбора по контрагенту. И программным кодом реализовать установку отбора.
Что-то вроде такого примера из типовой конфигурации:
Процедура ОрганизацияОтборПриИзменении(Элемент)
ОрганизацияОтборПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ОрганизацияОтборПриИзмененииСервер()
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Организация", Организация, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Организация));
УстановитьВидимость();
КонецПроцедуры
Потому что отображение отборов динамического списка на форме работает именно через свойство ГруппаПользовательскихНастроек, отрисовывает включенные отборы платформа, вмешаться в это поведение особо-то и нет возможности.
Спасибо! Но если динамический список формируется “динамически”, т.е. когда его поля каждый раз могут быть разными, то жесткие отборы в шапке не подходят.
Еще есть такой интересный момент. Когда добавляем группу настроек, то при выборе поля отбора, например, с типом ДАТА (двойной клик мыши в правой части группы настроек), в правую часть группы попадает эта дата с видом сравнения “Содержит” и в “Значение” сначала приходится выбирать тип значения. Хотя в правой части группы это поле ТОЧНО дата, т.к. при раскрытии дерева по плюсику, там находятся “Даты начала”, “Даты конца”, “Части дат”
Да, я понимаю, что это не универсально. Но другой способ пока не придумал.
На сайте ИТС программное создание динамического списка описано здесь: https://its.1c.ru/db/pubmanagedui#content:247:hdoc:_top
Всё стандартно, думаю, именно так Вы и делаете.
По Вашему описанию похоже, что это особенности на уровне платформы. Думаю, можно обратиться на v8@1c.ru с вопросом, почему система ведет себя именно так. Возможно, прикладной разработчик и не сможет повлиять на такое поведение.
Добрый день! не работает. Такой код выводит все настройки списка на форму. Платформа 8.3.14.1854
Добрый день!
Приведенный код создает группу на форме, в которой создаются элементы управления для работы с пользовательскими настройками.