Здравствуйте, проблема такова: на форме обработки реализовано заполнение параметров при помощи КомановщикНастроекКомпановкиДанных, сейчас необходимо ограничить список выбора определенных параметров и отборов списком значения, который формируется программно при открытии формы. Потратил уйму времени но даже близко ничего не получилось реализовать.
Что уже пробовал:
Выводил на форму и КомановщикНастроекКомпановкиДанных.НастройкиПараметрыДанных и КомпоновщикНастроекКД.НастройкиОтбор
Далее при открытии формы:
К сожалению ничего их этого не ограничивает список выбора, и пользователь может выбрать любой элемент справочника.
Подскажите кто сталкивался.
Что уже пробовал:
Выводил на форму и КомановщикНастроекКомпановкиДанных.НастройкиПараметрыДанных и КомпоновщикНастроекКД.НастройкиОтбор
Далее при открытии формы:
СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ОтборыСКД");
СхемаКомпоновкиДанных.Параметры.Найти("МойПараметр").УстановитьДоступныеЗначения(МойСписокЗначений);
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор);
ИсточникДоступныхНастроекКомпоновкиДанных = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВоВременномХранилище);
КомпоновщикНастроекКД.Инициализировать(ИсточникДоступныхНастроекКомпоновкиДанных);
КомпоновщикНастроекКД.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроекКД.Настройки.ПараметрыДанных.ДоступныеПараметры.Элементы.Найти("МойПараметр").ДоступныеЗначения = МойСписокЗначений;
КомпоновщикНастроекКД.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("МойОтбор").ДоступныеЗначения = МойСписокЗначений;
КомпоновщикНастроекКД.Настройки.Отбор.ДоступныеПоляОтбора.Элементы[КомпоновщикНастроекКД.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Количество()-1]
.Элементы[0].ДоступныеЗначения = МойСписокЗначений;
ПоказатьК сожалению ничего их этого не ограничивает список выбора, и пользователь может выбрать любой элемент справочника.
Подскажите кто сталкивался.
По теме из базы знаний
Найденные решения
(9) Проверил ваш код, в моем случае он выдал очень странные результат.
Вопрос кстате решился, достаточно изменить программно набор данных СКД и использовать метод "УстановитьДоступныеЗначения()" прикрепляю скриншот с результатами:
Вопрос кстате решился, достаточно изменить программно набор данных СКД и использовать метод "УстановитьДоступныеЗначения()" прикрепляю скриншот с результатами:
Прикрепленные файлы:

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот