|
СКД . Выбор значений параметров не из выпадающего списка, а по кнопке выбора. |
☑ |
0
Re_agent
31.08.18
✎
13:02
|
Всем привет. Подскажите как можно "переопределить" способ выбора значений параметров в форме отчета на СКД, чтобы значения можно было бы выбирать стандартной кнопкой выбора?
|
|
1
Cyberhawk
31.08.18
✎
13:03
|
Находишь нужный элемент управления...
|
|
2
Cyberhawk
31.08.18
✎
13:04
|
(элемент формы, если в терминологии УФ)
|
|
3
Re_agent
31.08.18
✎
13:12
|
(1) можно подробнее, я в УФ новичок. Добавляю форму отчета, в ней ПриСозданииНаСервере() ищу элемент управления? Попробовал, в коллекции Элементы не вижу моего поля отбора. (((
|
|
4
Cyberhawk
31.08.18
✎
13:13
|
Можно и без добавления формы отчета - кошернее использовать общую форму отчета (что в корне конфигурации указана). Правда в этом случае для такой тесной интеграции придется попотеть.
|
|
5
Re_agent
31.08.18
✎
13:26
|
а можно где-нибудь посмотреть пример кода по работе с элементами формы, связанными с элементами отбора компоновки данных?
|
|
6
Re_agent
08.09.18
✎
13:13
|
(5) Форма отчета генерирует наименования полей выбора, связанных с полями компоновщика данных по следующему принципу:
- для полей значений параметров: "ЗначениеПараметраНастроек_Значение_" + Идентификатор пользовательской настройки из компоновщика настроек, без разделителей "-"
- для полей значений отборов:
"ЭлементОтбора_Значение_" + Идентификатор пользовательской настройки из компоновщика настроек, без разделителей "-".
Таким образом, если в УТ11.3, ERP 2.2 и "родственных" конфигурациях надо программно дополнить возможности полей выбора параметров или отборов в быстрых настройках СКД, копируешь общую форму ФормаОтчета в сам отчет (чтоб не нарушать кашрут ;)), и в процедуре БыстрыеНастройкиСоздатьЭлементыУправленияИЗагрузитьЗначения(ПараметрыЗаполнения, Информация) программно оформляешь поля на форме, как хочешь. Пример кода:
<pre>
ИдПоляИзделия = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ИсходноеИзделие").ИдентификаторПользовательскойНастройки;
ЭлементФормыИзделие = Элементы.Найти("ЗначениеПараметраНастроек_Значение_"+СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими("-",ИдПоляИзделия,""));
Если НЕ ЭлементФормыИзделие = Неопределено Тогда
ЭлементФормыИзделие.КнопкаОткрытия = Истина;
ЭлементФормыИзделие.КнопкаВыбора = Истина;
КонецЕсли;
ИдПоляПодразделение = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ИдентификаторПользовательскойНастройки;
ЭлементФормыПодразделение = Элементы.Найти("ЭлементОтбора_Значение_"+СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими("-",ИдПоляПодразделение,""));
Если НЕ ЭлементФормыИзделие = Неопределено Тогда
ЭлементФормыПодразделение.КнопкаОткрытия = Истина;
ЭлементФормыПодразделение.КнопкаВыбора = Истина;
КонецЕсли;
</pre>
|
|
7
Cyberhawk
12.09.18
✎
17:31
|
"копируешь общую форму ФормаОтчета в сам отчет" // Эх ты, не осилил тесную интеграцию внешнего (подключаемого) отчета с формой отчета конфигурации...
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший