Имя: Пароль:
1C
 
КомпоновщикНастроекПользовательскиеНастройки как добавить на форму отчета
☑
0 Гений 1С
 
гуру
30.10.26
✎
16:29
В одном отчете есть, создаю свой, никак не появляется.
Как добавить?
1 Garykom
 
гуру
30.10.26
✎
16:50
ЫЫ же! Спроси ЫЫ!
2 Гений 1С
 
гуру
30.10.26
✎
18:14
(1) не помог ИИ, галлюцинирует

[Gemini 3.7 Flash 🌐]

В управляемых формах 1С:Предприятия пользовательские настройки компоновщика (отборы, параметры, выбранные поля) выводятся на форму через элемент управления Таблица либо через привязку к реквизиту формы типа ПользовательскиеНастройкиКомпоновщикаНастроекКомпоновкиДанных.

Добавить их можно двумя способами: интерактивно в конфигураторе или программно.

————————

📚 Способ 1. Интерактивно в конфигураторе (рекомендуемый)

1. Создайте реквизит формы:
  ⦁ В окне редактирования формы (вкладка «Реквизиты») нажмите Добавить.
  ⦁ Задайте имя, например: ПользовательскиеНастройки.
  ⦁ Тип данных выберите: ПользовательскиеНастройкиКомпоновщикаНастроекКомпоновкиДанных.
2. Вынесите реквизит на форму:
  ⦁ Перетащите созданный реквизит ПользовательскиеНастройки мышью в левую верхнюю панель («Элементы формы»).
  ⦁ Платформа создаст элемент с типом Таблица (или Табличное поле).
3. Инициализируйте реквизит в коде модуля формы:
В событии ПриСозданииНаСервере свяжите реквизит формы с реальными пользовательскими настройками вашего отчета/компоновщика:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Если форма принадлежит отчету (основной реквизит "Отчет"):
    ПользовательскиеНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;

    // Либо, если компоновщик настроек лежит в отдельном реквизите/объекте:
    // ПользовательскиеНастройки = МойКомпоновщик.ПользовательскиеНастройки;

КонецПроцедуры


————————

📚 Способ 2. Программное создание элемента на форме

Если требуется вывести таблицу динамически из кода без ручной правки структуры формы в конфигураторе:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // 1. Создаем реквизит формы динамически
    МассивРеквизитов = Новый Массив;
    ТипНастроек = Новый ОписаниеТипов("ПользовательскиеНастройкиКомпоновщикаНастроекКомпоновкиДанных");
    МассивРеквизитов.Добавить(Новый РеквизитФормы("ПользовательскиеНастройки", ТипНастроек, , "Настройки"));
    ИзменитьРеквизиты(МассивРеквизитов);

    // 2. Связываем значение реквизита с компоновщиком
    ЭтаФорма.ПользовательскиеНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;

    // 3. Создаем визуальную таблицу на форме
    ЭлементТаблица = Элементы.Добавить("ТаблицаПользовательскихНастроек", Тип("ТаблицаФормы"), ЭтаФорма);
    ЭлементТаблица.ПутьКДанным = "ПользовательскиеНастройки";
    ЭлементТаблица.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Верх;

КонецПроцедуры


————————

📚 Важный нюанс для СКД

Чтобы параметры или отборы появились в этой таблице, в самой схеме компоновки данных (в настройках отчета или варианта) у нужных элементов отбора/параметров обязательно должен быть включен признак:
⦁ Включать в пользовательские настройки (значок шестеренки/человечка в конструкторе СКД) с режимом редактирования Быстрый доступ или Обычный.
3 Garykom
 
гуру
30.10.26
✎
18:23
На скриншоте с форума 1С обсуждается классическая проблема: как вывести пользовательские настройки компоновки данных (отборы, параметры, выбранные поля) на управляемую форму отчета.

Для ответа на форуме (чтобы помочь автору темы и закрыть спор с «галлюцинирующим ИИ») можно предложить структурированный и проверенный алгоритм решения этой задачи.

Как добавить ПользовательскиеНастройки на форму отчета
Чтобы настройки корректно отображались и работали на управляемой форме, выполните следующие шаги:

Шаг 1. Создание и размещение реквизита
Откройте форму отчета в конфигураторе и перейдите на вкладку Реквизиты.

Добавьте новый реквизит (например, с именем ПользовательскиеНастройки).

В поле Тип выберите: ПользовательскиеНастройкиКомпоновщикаНастроекКомпоновкиДанных.

Перетащите созданный реквизит мышью в дерево элементов формы (в левую верхнюю панель). Платформа автоматически создаст элемент управления с типом Таблица (или табличное поле).

Шаг 2. Инициализация настроек в коде
Чтобы таблица на форме не была пустой, её необходимо связать с реальными настройками компоновщика отчета в обработчик события ПриСозданииНаСервере:

Фрагмент кода
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Если форма принадлежит типовому отчету (основной реквизит "Отчет"):
    ПользовательскиеНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
КонецПроцедуры
Шаг 3. Проверка настроек в самой СКД
Если после выполнения первых двух шагов элементы (отборы или параметры) всё равно не появляются на форме, проверьте настройки схемы компоновки данных (СКД):

У каждого отбора, параметра или выбранного поля, которое должно быть доступно пользователю, должен стоять флаг Включать в пользовательские настройки (иконка шестеренки/человечка в конструкторе СКД).

Режим редактирования у этих элементов должен быть выставлен в значение Быстрый доступ или Обычный.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс