|
ПостроительОтчета: Отбор: ПолеНастройки: ограничить выбор списком - возможно ли? | ☑ | ||
---|---|---|---|---|
0
серый КТУЛХУ
05.10.21
✎
17:02
|
всмысле программно. и если да - то как?
допустим в ЗаполнитьНачальныеНастройки - инициализирован текст запроса: "ВЫБРАТЬ | ЗаказДокумент.Контрагент, | ЗаказДокумент.Ссылка КАК Докум, | ""Заказ"" КАК ДокВид, |... |ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказТовары |... |{ГДЕ | ЗаказДокумент.Контрагент.*, | (""Заказ"") КАК ДокВид} |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ | УстЦенДокумент.Контрагент, | УстЦенДокумент.Ссылка, | ""Уст.Цен"" КАК ДокВид, |... |ИЗ Документ.УстановкаЦенНоменклатурыКонтрагентов КАК УстЦенДокумент |... |{ГДЕ | ЗаказДокумент.Контрагент.*, | (""Уст.Цен"") КАК ДокВид} |... - и ДокВид появляется в доступных полях отбора, но значение отбора можно только ручками вбить. а как бы сделать так чтобы его значения списком доступных строковых значений ограничить? |
|||
1
Ёпрст
05.10.21
✎
17:09
|
(0) ну а сами настройки для отбора построителя, у тебя где хоть ? В табличном поле на форме с источником ПостроительОтчета.отбор ? Или.. ?
|
|||
2
серый КТУЛХУ
05.10.21
✎
17:19
|
(1): в реквизите "ПостроительОтчета" типа (как неожиданно) ПостроительОтчета
|
|||
3
серый КТУЛХУ
05.10.21
✎
17:21
|
в смысле - да, в ПостроительОтчета.Отбор
|
|||
4
Kassern
05.10.21
✎
17:21
|
(0) а что если сделать свое поле с блекджеком и статичным списком? А потом из выбора программно заполнять построитель как надо.
|
|||
5
серый КТУЛХУ
05.10.21
✎
17:26
|
(4): уже. даже красивше - чекбоксы. в убирающейся панели и без отборов в построителе - я в нем по чекбоксам только текст запроса подменял...
но юзера продвинутые - на автомате идут в расширенные настройки - и вопят про отбор по виду документа которого там нету. добавил в отборі (см. текст запроса). НО! там только ввод ручками! не та буква - и алё, отчет пустой. опять истерика - дайте "нормально" из списка выбирать. (да мне и самому интересно стало - не только ведь єтого моего случая касается) |
|||
6
Ёпрст
05.10.21
✎
17:44
|
(3) тогда подменяй че надо в событии НачалоВыбора у Значение
|
|||
7
серый КТУЛХУ
05.10.21
✎
21:58
|
(6): где подменять?
там форма настроек со стандартной панелью настроек построителя отчета. для значения параметра нет кнопки выбора - только ввод строки. ну, допустим, если отбор "равно" или "не равно" - могу перезватить в ПередНачаломИзменения(Элемент, Отказ), и по Если Элемент.Данные = "ПостроительОтчета.Отбор" И Элемент.ТекущаяКолонка.Данные = "Значение" И Элемент.ТекущаяСтрока.ПутьКДанным = "ДокВид" Тогда: Если Элемент.ТекущаяСтрока.ВидСравнения = ВидСравнения.Равно ИЛИ Элемент.ТекущаяСтрока.ВидСравнения = ВидСравнения.НеРавно Тогда сделать отказ, составить список, заставить выбрать из него - и выбранное прямо засунуть в Элемент.ТекущиеДанные.Значение но это годится только для "равно" (или "не равно"), а остальные - ну ладно, вхождения всякие подобно - пусть редактируют... а если вид сравнения "в списке" - то там снова каждое значение руцями вбивать. а если бы можно было кроме этого еще из списка? куда в свойства чего в ПостроительОтчета.Отбор. этот список всунуть? |
|||
8
Ёпрст
05.10.21
✎
23:21
|
(7) кину пример позжее..у нас например, если выбрано в списке, то открывается своя форма подбора, с возможностью загрузки значений из мокселя.
|
|||
9
серый КТУЛХУ
06.10.21
✎
00:15
|
(8): о, мысль! спасибо, брат Ёпрст.
я точно! "в списке" - я так же составлю список всех возможных видов, помечу программно в нем сразу те значения которые уже выбраны - и заставлю юзверя (до/пере)отметить (те которые должны попасть в список отбора). после чего помеченные - соберу в Элемент.ТекущиеДанные.Значение. |
|||
10
серый КТУЛХУ
06.10.21
✎
00:17
|
костыли короче все равно. нет чтобы можно было средствами платформы прямо в отборе указать для ПолеНастройки список выбора доступных значений...
|
|||
11
TormozIT
гуру
06.10.21
✎
00:32
|
Отбор (Filter)
УстановитьДоступныеПоля (SetAvailableFields) Синтаксис: УстановитьДоступныеПоля(<Поля>) Параметры: <Поля> (обязательный) Тип: ПоляНастройки. Коллекция полей, доступных для отбора. Описание: Устанавливает коллекцию полей, доступных для отбора. Внимание! Метод не доступен для отбора динамических списков (свойство Отбор объектов СправочникСписок.<Имя справочника>, ДокументСписок.<Имя документа> и т.д.). |
|||
12
TormozIT
гуру
06.10.21
✎
00:33
|
(11) Мимо. Казалось там есть метод УстановитьДоступныеЗначения, но нет.
|
|||
13
TormozIT
гуру
06.10.21
✎
00:36
|
Если ситуация позволяет, можно попробовать сделать отчет на компоновке данных. Там точно есть УстановитьДоступныеЗначения
ПолеНабораДанныхСхемыКомпоновкиДанных (DataCompositionSchemaDataSetField) УстановитьДоступныеЗначения (SetAvailableValues) Синтаксис: УстановитьДоступныеЗначения(<ДоступныеЗначения>) Параметры: <ДоступныеЗначения> (необязательный) Тип: СписокЗначений. Список доступных значений поля. Если параметр не указан, у поля не будет доступных значений. Описание: Устанавливает доступные значения поля. |
|||
14
серый КТУЛХУ
06.10.21
✎
03:19
|
(13): спасибо, да. я люблю скд - даже не зная ее на уровне аса и то и дело гугля (например как в одну колонку выводить в зависимости от условия то один ресурс то другой). скд - инструмент не простой но мощный, универсальный и настраиваемый.
там еще есть ПостроительОтчета.ДоступныеПоля.<ИмяПоляНастройки>.СписокЗначений, думал - оно, а оно - не оно да еще и "только чтение". обломался. |
|||
15
TormozIT
гуру
06.10.21
✎
07:58
|
(14) Да. СписокЗначений - то, что надо. Только чтение это с точки зрения присвоения другого списка. А в существующий добавляй, сколько угодно.
|
|||
16
Ёпрст
06.10.21
✎
09:49
|
||||
17
серый КТУЛХУ
06.10.21
✎
12:22
|
(15): ах, если бы все так просто было. он имеет тип Неопределено - и добавление, соответственно, невозможно тоже.
|
|||
18
серый КТУЛХУ
06.10.21
✎
12:46
|
(16): ага, спасибо!
у тебя только для сравнения "всписке" - с блокировкой изменения вида сравнения. спасибо, я так и слепил на костылях, только вид сравнения не блокировал, список для отметок выкатывал так же как ты, только с проверкой сравнения "всписке" и "невсписке". еще для сравнении "равно" и "неравно" - засунул в обработчик (события отбора) ОтборПередНачаломИзменения(): отказ и выбор из списка с установкой Элемент.ТекущиеДанные.Значение = ВыбранныйЭлемент.Значение; но обнаружил что для новых строк это событие не работает - пришлось продублировать такой же алгоритм в обработчике (поля отбора "Значение") ОтборЗначениеАвтоПодборТекста - там уже можно тупо "в лоб" Элемент.РежимВыбораИзСписка = Истина с (пере)заполнением Элемент.СписокВыбора и выбором-установкой. я же говорю - костыли. ловить везде где нужно ограничить перечень допустимых значений - и вставлять костыльный код. спасибо всем. |
|||
19
серый КТУЛХУ
06.10.21
✎
12:50
|
(18)+: кстати, в ОтборЗначениеАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка) - заполнил Элемент.СписокВыбора, но так и не получилось сделать так, чтобы по тексту стандартно из этого списка выбора подставляло найденное по введенному тексту значение (пришлось програмно его выкатывать). может кто знает как в этом обработчике составить список выбора и как-то включить такую возможность?
|
|||
20
Ёпрст
06.10.21
✎
13:59
|
(19) никак . Он же подставляет, если сам что-то находит в реквизитах, для которых поиск включен (код/наименование).
Тут только стандартнаяобработка = ложь и показ своего списка.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |