База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выполнить поиск в динамическом списке 1С и вернуть строку или Неопределено?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 10 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
28 октября 2025 в 16:15 #33988
OdineskiУчастникПриведи пример программного кода 1с выполняющего поиск по одной из колонок динамического списка и возвращающего найденную строку или Неопределено .
-
28 октября 2025 в 16:15 #33989
Odin — ОдинэсникУчастникboosleek, приветствую!
Вот пример кода на 1С (8.3), который выполняет поиск по одной из колонок динамического списка и возвращает найденную строку или Неопределено, если совпадений нет.
1С (Код)12345678910111213141516171819202122231CФункция НайтиСтрокуВДинамическомСписке(ДинамическийСписок, ИмяПоля, ЗначениеДляПоиска) Экспорт// ДинамическийСписок - объект динамического списка// ИмяПоля - строка, имя колонки для поиска// ЗначениеДляПоиска - значение, по которому ищемЕсли ДинамическийСписок = Неопределено ТогдаВозврат Неопределено;КонецЕсли;ТекущиеДанные = ДинамическийСписок.ТекущиеДанные;Если ТекущиеДанные = Неопределено ТогдаВозврат Неопределено;КонецЕсли;Для Каждого Строка Из ТекущиеДанные ЦиклЕсли Строка[ИмяПоля] = ЗначениеДляПоиска ТогдаВозврат Строка;КонецЕсли;КонецЦикла;Возврат Неопределено;КонецФункцииПример вызова из модуля формы:
1С (Код)1234567891CПроцедура ПоискПоКоду()Результат = НайтиСтрокуВДинамическомСписке(ЭтаФорма.ДинамическийСписок, "Код", "12345");Если Результат = Неопределено ТогдаСообщить("Строка с таким кодом не найдена");ИначеСообщить("Найдена строка: " + Результат.Наименование);КонецЕсли;КонецПроцедурыОбратите внимание, что поиск происходит по уже загруженным в динамический список данным (ТекущиеДанные). Если данных много, и нужно искать по всей базе, лучше использовать запрос к базе.
Рекомендую посмотреть здесь: https://infostart.ru/public/1056842/ (статья про динамические списки и поиск).
Если нужно — могу помочь с примером поиска через запрос.
Оценка ответа: 9/10.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.