В отчете на СКД в качестве отбора выступает поле с типом "Справочник.ЗначенияСвойствОбъектов"
У этого справочника есть владелец - ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Как мне сделать, чтобы при выборе значения отбора, значения выбирались только по заданному ПВХ.ДополнительныеРеквизитыИСведения?
Делал так:
Добавил параметр ПВХ_НомерСертификата, Выражение = "мт_ОпределенныеЭлементыСправочников.Характеристика_НомерСертификата()", Использовать = "Всегда"
Для поля НомерСертификата, по которому мне надо делать отбор в отчете, прописал Параметры отбора.Связи параметров выбора = "Отбор.Владелец: ПараметрыДанных.ПВХ_НомерСертификата".
Не работает. При выборе значения НомерСертификата открывается весь справочник ЗначенияСвойствОбъектов
У этого справочника есть владелец - ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Как мне сделать, чтобы при выборе значения отбора, значения выбирались только по заданному ПВХ.ДополнительныеРеквизитыИСведения?
Делал так:
Добавил параметр ПВХ_НомерСертификата, Выражение = "мт_ОпределенныеЭлементыСправочников.Характеристика_НомерСертификата()", Использовать = "Всегда"
Для поля НомерСертификата, по которому мне надо делать отбор в отчете, прописал Параметры отбора.Связи параметров выбора = "Отбор.Владелец: ПараметрыДанных.ПВХ_НомерСертификата".
Не работает. При выборе значения НомерСертификата открывается весь справочник ЗначенияСвойствОбъектов
По теме из базы знаний
- Заголовок с параметром в отчете СКД
- Разбираемся с параметрами редактирования СКД
- Параметры выбора и связи параметров выбора в панели быстрых настроек отчета СКД
- Пользовательское поле СКД одной процедурой
- Параметры открытия формы выбора отборов и параметров СКД ("связи параметров выбора" списочных значений СКД)
Найденные решения
Нашел. В модуле объекта нужно прописать функции:
В Схеме компоновки данных никаких отборов делать не надо
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПослеЗаполненияПанелиБыстрыхНастроек = Истина;
КонецПроцедуры
Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыОбновления) Экспорт
ПутьКДаннымПоля_Плавка = ПутьКДаннымЭлементаФормыЗначенияОтбора("Плавка");
ПутьКДаннымПоля_НомерСертификатаПроизводителя = ПутьКДаннымЭлементаФормыЗначенияОтбора("НомерСертификатаПроизводителя");
Для Каждого Элемент Из Форма.Элементы Цикл
Если СтрНачинаетсяС(Элемент.Имя, "КомпоновщикНастроекПользовательскиеНастройкиЭлемент")
И ТипЗнч(Элемент) = Тип("ПолеФормы") Тогда
Если Элемент.ПутьКДанным = ПутьКДаннымПоля_Плавка Тогда
Массив = Новый Массив;
Массив.Добавить(Новый ПараметрВыбора("Отбор.Владелец", мт_ОпределенныеЭлементыСправочников.Характеристика_НомерПлавки()));
ПараметрыВыбора = Новый ФиксированныйМассив(Массив);
Элемент.ПараметрыВыбора = ПараметрыВыбора;
ИначеЕсли Элемент.ПутьКДанным = ПутьКДаннымПоля_НомерСертификатаПроизводителя Тогда
Массив = Новый Массив;
Массив.Добавить(Новый ПараметрВыбора("Отбор.Владелец", мт_ОпределенныеЭлементыСправочников.Характеристика_НомерСертификата()));
ПараметрыВыбора = Новый ФиксированныйМассив(Массив);
Элемент.ПараметрыВыбора = ПараметрыВыбора;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ПутьКДаннымЭлементаФормыЗначенияОтбора(ИмяПоляКомпоновкиДанных)
ПолеКомпоновкиДанных = Новый ПолеКомпоновкиДанных(ИмяПоляКомпоновкиДанных);
Для Каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если Элемент.ЛевоеЗначение = ПолеКомпоновкиДанных Тогда
ИдентификаторПользовательскойНастройки = Элемент.ИдентификаторПользовательскойНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
Если ИдентификаторПользовательскойНастройки = Неопределено Тогда
возврат Неопределено;
КонецЕсли;
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
Для Индекс = 0 По ПользовательскиеНастройки.Количество()-1 Цикл
Если ПользовательскиеНастройки[Индекс].ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки Тогда
возврат "Отчет.КомпоновщикНастроек.ПользовательскиеНастройки["+Формат(Индекс, "ЧДЦ=0; ЧГ=")+"].Значение";
КонецЕсли;
КонецЦикла;
возврат Неопределено;
КонецФункции
ПоказатьВ Схеме компоновки данных никаких отборов делать не надо
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
отчете на СКД в качестве отбора выступает поле с типом "Справочник.ЗначенияСвойствОбъектов"
У этого справочника есть владелец - ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Как мне сделать, чтобы при выборе значения отбора, значения выбирались только по заданному ПВХ.ДополнительныеРеквизитыИСведения?
можно отчет посмотреть
У этого справочника есть владелец - ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Как мне сделать, чтобы при выборе значения отбора, значения выбирались только по заданному ПВХ.ДополнительныеРеквизитыИСведения?
(3) это не характеристики объекта СКД. Это реквизиты табличной части документа с типом СправочникСсылка.ЗначенияСвойствОбъекта
Попробовал программно установить ПараметрыВыбора в модуле объекта:
Не работает. ПараметрыВыбора устанавливаются, но в момент открытия формы выбора справочника ЗначенияСвойствОбъекта, их там нет.
Попробовал программно установить ПараметрыВыбора в модуле объекта:
ПоляСКД = СхемаКомпоновкиДанных.НаборыДанных.Получить(0).Поля;
Поле_НомерСертификатаПроизводителя = ПоляСКД.Найти("НомерСертификатаПроизводителя");
ПараметрыРедактирования = Поле_НомерСертификатаПроизводителя.ПараметрыРедактирования;
Массив = Новый Массив;
Массив.Добавить(Новый ПараметрВыбора("Отбор.Владелец", мт_ОпределенныеЭлементыСправочников.Характеристика_НомерСертификата()));
ПараметрыВыбора = Новый ФиксированныйМассив(Массив);
ПараметрыРедактирования.УстановитьЗначениеПараметра("ПараметрыВыбора", ПараметрыВыбора);
ПоказатьНе работает. ПараметрыВыбора устанавливаются, но в момент открытия формы выбора справочника ЗначенияСвойствОбъекта, их там нет.
обсуждали недавно с коллегой эту проблему. буквально пару дней назад.
оказалось, что параметр владелец должен быть обязательно использован в пользовательской настройке.
если сделать так - работает.
чтобы убрать его (сделать невидимым) третий параметр в польз. настройке ставим Недоступный. костыль, но вроде работает
оказалось, что параметр владелец должен быть обязательно использован в пользовательской настройке.
если сделать так - работает.
чтобы убрать его (сделать невидимым) третий параметр в польз. настройке ставим Недоступный. костыль, но вроде работает
Нашел. В модуле объекта нужно прописать функции:
В Схеме компоновки данных никаких отборов делать не надо
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПослеЗаполненияПанелиБыстрыхНастроек = Истина;
КонецПроцедуры
Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыОбновления) Экспорт
ПутьКДаннымПоля_Плавка = ПутьКДаннымЭлементаФормыЗначенияОтбора("Плавка");
ПутьКДаннымПоля_НомерСертификатаПроизводителя = ПутьКДаннымЭлементаФормыЗначенияОтбора("НомерСертификатаПроизводителя");
Для Каждого Элемент Из Форма.Элементы Цикл
Если СтрНачинаетсяС(Элемент.Имя, "КомпоновщикНастроекПользовательскиеНастройкиЭлемент")
И ТипЗнч(Элемент) = Тип("ПолеФормы") Тогда
Если Элемент.ПутьКДанным = ПутьКДаннымПоля_Плавка Тогда
Массив = Новый Массив;
Массив.Добавить(Новый ПараметрВыбора("Отбор.Владелец", мт_ОпределенныеЭлементыСправочников.Характеристика_НомерПлавки()));
ПараметрыВыбора = Новый ФиксированныйМассив(Массив);
Элемент.ПараметрыВыбора = ПараметрыВыбора;
ИначеЕсли Элемент.ПутьКДанным = ПутьКДаннымПоля_НомерСертификатаПроизводителя Тогда
Массив = Новый Массив;
Массив.Добавить(Новый ПараметрВыбора("Отбор.Владелец", мт_ОпределенныеЭлементыСправочников.Характеристика_НомерСертификата()));
ПараметрыВыбора = Новый ФиксированныйМассив(Массив);
Элемент.ПараметрыВыбора = ПараметрыВыбора;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ПутьКДаннымЭлементаФормыЗначенияОтбора(ИмяПоляКомпоновкиДанных)
ПолеКомпоновкиДанных = Новый ПолеКомпоновкиДанных(ИмяПоляКомпоновкиДанных);
Для Каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если Элемент.ЛевоеЗначение = ПолеКомпоновкиДанных Тогда
ИдентификаторПользовательскойНастройки = Элемент.ИдентификаторПользовательскойНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
Если ИдентификаторПользовательскойНастройки = Неопределено Тогда
возврат Неопределено;
КонецЕсли;
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
Для Индекс = 0 По ПользовательскиеНастройки.Количество()-1 Цикл
Если ПользовательскиеНастройки[Индекс].ИдентификаторПользовательскойНастройки = ИдентификаторПользовательскойНастройки Тогда
возврат "Отчет.КомпоновщикНастроек.ПользовательскиеНастройки["+Формат(Индекс, "ЧДЦ=0; ЧГ=")+"].Значение";
КонецЕсли;
КонецЦикла;
возврат Неопределено;
КонецФункции
ПоказатьВ Схеме компоновки данных никаких отборов делать не надо
(11) Дополнение:
Если отчет встраивается в расширение, дополнительно нужно:
1) включить его в подсистему "ПодключаемыеОтчетыИОбработки"
2) В модуле менеджера прописать код
Если отчет встраивается в расширение, дополнительно нужно:
1) включить его в подсистему "ПодключаемыеОтчетыИОбработки"
2) В модуле менеджера прописать код
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.ОпределитьНастройкиФормы = Истина;
КонецПроцедуры
#КонецЕсли
Показать
(11)
Можно было покороче:
В параметрах редактирования вкладка Наборы данных соответсвующих полей установить связи параметров выбора:
Отбор.Владелец: ПараметрыДанных.[ВашПараметр]
Можно было покороче:
&НаСервере
Процедура ПриОткрытииНаСервере()
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ЦветСвойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Цвет_e113e5260dfa4207bfc6eb7f196ddc96"));
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("РазмерСвойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Размер_532b07e53fca47ca9877a3ac46b843c4"));
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("СтильСвойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "Стиль_c6091bdffae042d8b74820904d6c4d6b"));
КонецПроцедуры
ПоказатьВ параметрах редактирования вкладка Наборы данных соответсвующих полей установить связи параметров выбора:
Отбор.Владелец: ПараметрыДанных.[ВашПараметр]
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот