|
УФ. Найти реквизит формы с типом динамический список если имя реквизита не задано. | ☑ | ||
---|---|---|---|---|
0
asady
25.01.22
✎
16:43
|
может кто знает как определить имя реквизита с типом динамический список у формы
пока получаю так Функция ИмяРеквизитаДинамическогоСписка(Форма) экспорт МассивВозможныхИменРеквизитовДинамическихСписков = Новый Массив; МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("Список"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("СписокДокументов"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("ОрдераВРаботе"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("СписокДокументовЗакупки"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("СписокДокументовПродажи"); //тут еще .... Для каждого эл из МассивВозможныхИменРеквизитовДинамическихСписков Цикл Рез = неопределено; ЗаполнитьЗначенияСвойств(СтрРеквизитовФормы,Форма); Если ТипЗнч(СтрРеквизитовФормы[эл]) = Тип("ДинамическийСписок") Тогда Рез = эл; Прервать; КонецЕсли; КонецЦикла; Возврат Рез; КонецФункции |
|||
1
asady
25.01.22
✎
16:44
|
Функция ИмяРеквизитаДинамическогоСписка(Форма) экспорт
МассивВозможныхИменРеквизитовДинамическихСписков = Новый Массив; МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("Список"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("СписокДокументов"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("ОрдераВРаботе"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("СписокДокументовЗакупки"); МассивВозможныхИменРеквизитовДинамическихСписков.Добавить("СписокДокументовПродажи"); //тут еще .... Рез = неопределено; Для каждого эл из МассивВозможныхИменРеквизитовДинамическихСписков Цикл СтрРеквизитовФормы = Новый Структура(эл); ЗаполнитьЗначенияСвойств(СтрРеквизитовФормы,Форма); Если ТипЗнч(СтрРеквизитовФормы[эл]) = Тип("ДинамическийСписок") Тогда Рез = эл; Прервать; КонецЕсли; КонецЦикла; Возврат Рез; |
|||
2
asady
25.01.22
✎
16:45
|
(0) - поправил.
Код рабочий но какой-то ущербный |
|||
3
FIXXXL
25.01.22
✎
16:48
|
ФормаКлиентскогоПриложения (ClientApplicationForm)
Элементы (Items) Использование: Только чтение. Описание: Тип: ВсеЭлементыФормы. Содержит коллекцию всех элементов формы клиентского приложения для прямого доступа вне зависимости от иерархии. пеербирай-проверяй |
|||
4
asady
25.01.22
✎
16:52
|
(3) Элементы <> Реквизиты
ЭтаФорма.Список <> ЭтаФорма.Элементы.Список |
|||
5
acht
25.01.22
✎
16:53
|
(4)
ФормаКлиентскогоПриложения ПолучитьРеквизиты Синтаксис: ПолучитьРеквизиты(<Путь>) Параметры: <Путь> (необязательный) Тип: Строка. Указывает путь к родительскому реквизиту. Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня. Возвращаемое значение: Тип: Массив. Массив объектов РеквизитФормы. РеквизитФормы Свойства: Заголовок Имя Путь СохраняемыеДанные ТипЗначения |
|||
6
asady
25.01.22
✎
17:02
|
(4) спасибо - напомнил об этом методе
функцию переписал - под массив реквизитов дин.список Функция ИмяРеквизитаДинамическогоСписка(Форма) экспорт МассивРеквизитов = Форма.ПолучитьРеквизиты(); Рез = Новый Массив; Для каждого эл из МассивРеквизитов Цикл Если эл.ТипЗначения = Тип("ДинамическийСписок") Тогда Рез.Добавить(Рез.Имя); КонецЕсли; КонецЦикла; Возврат Рез; КонецФункции Но это тупой перебор всех реквизитов формы - может есть что-то более хитрое |
|||
7
acht
25.01.22
✎
17:13
|
(6) > может есть что-то
Без уточнения задачи - нет. Что это за список, что делать если их несколько и т.п. |
|||
8
asady
25.01.22
✎
17:33
|
(7) разрабатывается некий универсальный модуль добавления реквизитов и элементов на управляемые формы
требуется обрабатывать все открываемые формы с динамические списками и нужно как-то получить имя реквизита этого динамического списка |
|||
9
Мимохожий Однако
25.01.22
✎
17:46
|
"Ищи то, не знаю что". В таком случае только перебор. Универсальнее не придумаешь
|
|||
10
acht
25.01.22
✎
17:47
|
(8) Ну все, так как ты больше не можешь придумать этому динамическому списку каких-либо критериев, то остается только перебор
|
|||
11
FIXXXL
25.01.22
✎
17:51
|
(8) как вариант, используй свой первый вариант, но добавление имен нужных реквизитов вынеси в интерактив
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |