| 
    
        
     
     | 
    
  | 
УФ. Найти реквизит формы с типом динамический список если имя реквизита не задано. | ☑ | ||
|---|---|---|---|---|
| 
    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) как вариант, используй свой первый вариант, но добавление имен нужных реквизитов вынеси в интерактив     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |