Список значений 1С Найти по значению, Найти по идентификатору — поиск, проверка наличия значения


Методы 1С СписокЗначений.НайтиПоЗначению(Значение) и 1С СписокЗначений.НайтиПоИдентификатору(Значение) возвращает элемент («ячейку») списка значений, у которого значение (или идентификатор) с нужным значением.


Обратите внимание – идентификатор это не то же самое, что и индекс. Индекс – это порядковый номер (число), которым пронумерованы все ячейки с начала и до конца списка значений. Идентификатор — это уникальный номер (число), который имеет каждая ячейка.

Поиск по идентификатору используется в тонком клиенте, при работе со списком значений на сервере. Имея идентификатор элемента списка значений, который расположен на форме (Элементы.ИмяСпискаЗначенийНаФорме.ТекущаяСтрока), Вы можете найти элемент в списке значений, вне зависимости от его текущего индекса и значения.

Поиска по «представлению» значения – в списке значений нет.

В отличие от поиска в массиве, который возвращает индекс найденного элемента или -1, если не найдено, поиск в списке значений возвращает сам элемент списка или НЕОПРЕДЕЛЕНО, если не найдено.

Пример поиска по значению с помощью 1С СписокЗначений.НайтиПоЗначению:
спРазрешенныхСтатусов = Новый СписокЗначений();

//добавляем в пустой список значений – все значения перечисления
//добавляем их «строковые пользовательские наименования» – которые при добавлении значений в конфигураторе записываются в свойствах значения перечисления в свойство «Синоним»
//Перечисления.СтатусыДокументов – это путь к нашему перечислению
//.ПустаяСсылка() – позволяет вызывать методы этого перечисления
//.Метаданные() – метод, который возвращает метаданные в том виде, как они заданы в конфигураторе и позволяет считывать свойства, заданные в метаданных
//.ЗначенияПеречисления – список значений у перечисления, заданные в конфигураторе, каждое значение, полученное через .Метаданные() содержит кроме значения свойства значения, заданные в конфигураторе

Для каждого Знч из Перечисления.СтатусыДокументов.ПустаяСсылка().Метаданные().ЗначенияПеречисления Цикл
     спРазрешенныхСтатусов.Добавить(Знч.Синоним);
КонецЦикла;

Если спРазрешенныхСтатусов.НайтиПоЗначению(СтатусДокументаСтрокой) = Неопределено Тогда //Если поиск вернул Неопределено, то элемент с таким значением не найден

     Сообщить("Ошибка: статус документа '" + СтатусДокументаСтрокой + "' не найден");

КонецЕсли;

Пример поиска по индексу с помощью 1С СписокЗначений.НайтиПоИдентификатору:


Только зарегистрированные пользователи VIP группы могут видеть этот контент.




Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (6 голосов, среднее: 3,67 из 5)
Загрузка...

Добавить комментарий