Доброго времени суток.
Задача:
В НабореДанных (запрос) внешнего отчета написанном на СКД. Есть параметр заданный СпискомЗначений с типом значений СправочникСсылка.ЗначенияСвойствОбъектов;
Соответственно для выбора пользователем требуются лишь несколько значений справочника, а не весь справочник.
Как ограничить выдаваемый Список отбора по владельцу справочника.
Нашел такую инфу:
В ДоступныеЗначения можно что-либо добавить только если задать предопределенное значение параметра как пустую ссылку. Иначе тип у него "Неопределено".
В общем то после загрузки значений в ДоступныеЗначения ничего не меняется, в отчете все равно для выбора пользователю выпадает весь справочник.
Собственно вопрос что я делаю не так?
И есть ли все-таки встроенный способ в СКД для задания доступных значений Списка?
СКД изучаю 3 дня, сильно не ругайте.
Я понимаю, что вполне можно отменить стандартную обработку для выбора значений списка на ПолеВвода формы отчета, затем добавить свою форму и заполнить её программно нужным Списком. Нашел для этого такую обработку http://infostart.ru:8080/public/72158/ - которую с новыми правилами, к сожалению, не могу скачать.
У меня есть рабочий вариант. Выбор на форме значения параметра СКД - из списка значений. Например:
ЭлементыФормы.МоиНастройки.Значение.ДоступныеПараметры.Элементы.Найти("МойПараметр").ДоступныеЗначения = МойСписокЗначений;
Зд. Мои Настройки реквизит на форме имеет тип КомпоновщикНастроек.Настройки.ПараметрыДанных.
Гениально угу. Может мне еще отдельный справочник с нужными значениями создать, и не париться с отбором? Он итак тогда будет отображать только нужные мне значения. Странные советы пишите.
Скажите, найдено ли было решение: у меня отбор Организация - Контрагент - Договор; хотелось бы, чтоб при выборе организации при начале выбора Контрагентов были только те, с кем у Организации взаимоотношения, и, соответственно, те договора, где контрагентом - выбранный контрагент?
P.S. В какое место формы отчета писать дополнительные процедуры обработки выбора и т.п.?
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10
| ЗначенияСвойствОбъектов.Ссылка
|ИЗ
| Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов";
м = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
сп = новый СписокЗначений;
сп.ЗагрузитьЗначения(м);
СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Найти("Значение").УстановитьДоступныеЗначения(сп);
КонецПроцедуры