Имя: Пароль:
1C
1С v8
Сделать активной строку динамического списка по параметрам
0 Gera1t
 
16.04.24
11:52
Здравствуйте!
Есть динамический список (ВАЖНО Основной таблицы нет!).
Как по заданным параметрам (данные в 2 колонках), найти и сделать активной нужную строку?
1 AlexeyKh
 
16.04.24
15:47
как бы ответ очевиден,
1.сделать поиск в списке
2.получить код строки (индекс)
3.присвоить его реквизиту ТекущаяСтрока
2 AlexeyKh
 
17.04.24
15:56
немного перепутал с ТЗ,
но в ДС получился такой ход конем
в ДС добавил поле Отметка (булево)
перед поиском в ДС устанавливаю что ищем например по Наименованию
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("Имя", Реквизит1);
    Элементы.список.Обновить();
КонецПроцедуры

при получении данных отмечаю поле Отметка
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
    лкИмя = Неопределено;
    Настройки.ДополнительныеСвойства.Свойство("Имя", лкИмя);
    Для каждого лкСтр Из Строки Цикл
//по любому совпадению
        лкСтр.Значение.Данные.Отметка =
            СтрНайти(нрег(лкСтр.Значение.Данные.НаименованиеПолное),нрег(лкИмя))  > 0;
    КонецЦикла;
КонецПроцедуры

в условном оформлении формы всю строку ДС крашу желтым при Отметка = Истина, очень похоже на то что она активна.
(еще следует учесть что по ДС не все данные могут быть выведены на форму (2.3 экрана)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.