Как сделать поиск в 1с

Обновлено: 08.07.2024

Продолжаем изучать программную работу с таблицей значений в 1С. В прошлых статьях мы научились создавать таблицу значений (как программно, так и на управляемой форме), добавлять колонки и строки таблицы значений. Осталось научиться работать с самой таблицей значений. В первой части мы узнаем, как находить строки по нужному отбору, и научимся копировать таблицу значений с нужным отбором.

Поиск в таблице значений 1С 8.3

Поиск в таблице значений можно осуществить с помощью двух методов: Найти и НайтиСтроки. Метод Найти является функцией, которая вернёт первую строку, где встречается искомое значение. Рекомендуется метод применять для поиска уникальных значений, т.к. при наличии нескольких строк с искомым значением, будет возвращена только одна. Если же нам нужно найти все строки, где встречается искомое значение, то необходимо использовать метод НайтиСтроки, который возвращает массив строк с нужным значением.

Разберем оба этих метода на примере.

Метод Найти таблицы значений 1С 8.3

Этот метод является функцией, которая возвращает строку, если искомое значение найдено, и Неопределено, если нет. При помощи этого метода можно найти любое значение, которое имеется в таблице значений. Причем, не обязательно знать колонку, где это значение может содержаться.

Данная функция имеет следующий синтаксис:

Найти(Значение, Колонки)

Значение – то значение, которое мы ищем в таблице.

Колонки – колонки таблицы значений, по которым осуществляется поиск (необязательный параметр, можно осуществлять поиск по всем колонкам таблицы значений).

Работа этого метода показана на следующем примере:

Если мы посмотрим на значение переменной стрТарасов в отладке, то увидим ссылку на конкретную строку таблицы значений.

Метод найти таблицы значений 1С

Точно такой же результат будет, если мы очистим второй параметр.

Метод найти таблицы значений 1С

Если же мы сделаем поиск по второй колонке, то результат будет Неопределено.

Неопределено в результате метода найти таблицы значений

Такой же результат Неопределено будет и при поиске несуществующего значения.

Неопределено в результате метода найти таблицы значений

Метод НайтиСтроки таблицы значений 1С 8.3

Если метод Найти возвращает конкретную строку таблицы значений, то метод НайтиСтроки, возвращает массив строк, которые соответствуют нужному условию. Данный метод имеет следующий синтаксис

НайтиСтроки(СтруктураПоиска)

У этого метода один параметр — структура, где в качестве ключей задаются названия колонок, по которым будет вестись поиск, а в качестве значений – те значения, по которым должен осуществляться поиск. Таким образом, если в методе Найти мы могли вести поиск только по одному значению, то при помощи метода НайтиСтроки можно осуществлять поиск по комбинации значений в разных колонках.

Переделаем предыдущую таблицу значений:

Теперь найдем все строки таблицы значений, где встречается имя Петр

Посмотрим на результат.

Метод НайтиСтроки таблицы значений 1С

Или найдем всех Петров, родившихся 11.06.1987 года.

В этот раз найденных строк будет меньше.

Метод НайтиСтроки таблицы значений 1С

Если же мы зададим имя, которого нет в нашей таблице, то получим пустой массив.

Метод НайтиСтроки возвращает пустой массив

Причем обратите внимание, в массиве содержится ссылка на строку таблицы значений. Это значит, что если Вы измените строку в массиве, то также изменится строка в таблице значений.

Данный метод является функцией, которая возвращает пустую таблицу значений, с набором колонок, как у изначальной. У этого метода следующий синтаксис:

Где, параметр СписокКолонок необязательный параметр, в нем должны быть перечислены имена колонок, которые присутствуют в изначальной таблице, и которые должны быть в новой. Если он не указан, то в новой таблице значений будут такие же колонки, что и в изначальной.

В примере выше, в таблице НовТЗ1 будет тот же набор колонок, что и в таблице ТЗ, а в таблице НовТЗ2 будут только колонки Фамилия и Имя.

Строки – массив строк таблицы значений, которые должны будут присутствовать в новой таблице. Необязательный параметр, если он пуст, то копируются все строки.

Колонки – строка имен колонок, которые перечислены через запятую. Также необязательный параметр, если он пуст, то в новой таблице будут все колонки.

Второй вариант синтаксиса

ПараметрыОтбора – структура, при помощи которой мы отберем нужные строки в новую таблицу значений. В качестве ключей структуры должны быть перечислены названия колонок, по которым будет вестись отбор, а в качестве значений – те значения, по которым должны отобраться нужные строки.

Рассмотрим примеры с обоими вариантами параметров. Будем использовать ту же таблицу, что и в предыдущих примерах, но отберем только те строки, у которых год рождения 1981.

Посмотрим на результат работы этой функции

Теперь скопируем таблицу значений, так, чтобы в новую таблицу вошли только те строки, где есть имя Петр и дата рождения равна 15.01.1981.

В этот раз будет следующий результат.

Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект.

Более подробно и основательно работа с таблицей значений в дается в моей книге:

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;


Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

НазваниеСправочника — наименование справочника, к примеру Сотрудники.

Значение— значение в реквизите Наименование.

ПоискПоПолномуСоответсвию — По умолчанию установлен в значении Ложь, т.е. ищется соответствие левой части (пример: ищем Алекс то найдем Алексей). Но если установить в истину то поиск будет вестись по полному значению, кроме пробелов в конце строки. (необязательный)

Родитель — Ссылка на родителя. Поиск будет вестись только по тем элементам где указан данный родитель. (необязательный)

Владелец — Ссылка на элемент владельца справочника, указанного на закладке Владельцы. (необязательный)

Результат:

Если элемент не найден возвращается ПустаяСсылка, иначе ссылка на элемент.

Для программного поиска строк в таблице значений во встроенном языке 1С:Предприятие 8.3 имеется два различных метода:

Метод Найти()

С помощью метода Найти() таблицы значений можно найти первое вхождение строки по значению ячейки. Значение можно искать по всей таблице значений или по определенным колонкам, например:

Метод НайтиСтроки()

Метод НайтиСтроки() таблицы значений позволяет найти все строки, удовлетворяющие условиям отбора. При этом условие м.б. составным:

Комментарии

Эффективнее будет использование метода Найти() без указания колонок, а конкретную колонку уже искать перебором значений колонок. Текущую колонку на форме можно установить методом табличного поля ТекущаяКолонка()

При работе с 1С бывает нужно найти список всех объектов, где встречается номенклатура, контрагент или другие элементы. Вручную конечно же это сделать нереально. Есть специальная обработка, которая позволяет выполнять в информационной базе поиск ссылок на нужный объект, – Поиск ссылок на объекты . Рассмотрим, как пользоваться на примере программы 1С:Бухгалтерия предприятия. В других типовых конфигурациях 1С эта обработка также есть.

Поиск ссылок на объекты в 1С 8.3

Для запуска обработки зайдите в меню Сервис и настройки – Все функции .


Отметим, что начиная с версии платформы 8.3.17 команда Все функции переименована в Функции технического специалиста .

В открывшемся окне введите слово Поиск, выделите пункт Поиск ссылок на объекты и нажмите Открыть .


Другой способ открытия обработки – через ветку Стандартные .


В поле Объект нажмите на значок с тремя точками.


Выделите в списке объект, на который нужно найти ссылки, и нажмите ОК .


Затем выберите конкретный элемент.


Запустите поиск по кнопке Найти ссылки .

Отобразится список документов, справочников и регистров сведений, в которых встречается этот объект. Снизу показывается общее количество ссылок.


При нажатии на любую ссылку откроется окно справочника или документа.

Кнопка Вывести список отобразит найденные ссылки в табличном или текстовом документе.


Далее вы можете сохранить список в удобном формате. Для этого нажмите на три точки и выберите меню Файл – Сохранить .


Мы рассмотрели, как быстро найти ссылки на объекты.

Кроме этого, в 1С есть обработка, которая не только находит ссылки, но и массово заменяет объекты и удаляет дубли. Обработка называется Поиск и удаление дублей . Отметим, что она не повторяет обработку Поиск ссылок на объект , а дополняет штатный функционал платформы по удалению объектов. Подробнее об этой обработке читайте в статье.

См. также:

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.1С предоставляет возможность получить текстовую ссылку на любой раздел интерфейса.Универсальная обработка Поиск и замена значений в 1С 8.3 предназначена для.При работе в программах 1С зачастую создаются дубли — одинаковые.

Карточка публикации

(1 оценок, среднее: 5,00 из 5)

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>

Все комментарии (1)

Как всегда все понятно и доходчиво!

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Отчетность за 2021 в 1С

Персонифицированная отчетность (СЗВ-СТАЖ, СЗВ-ТД) в 1С

Отчетность по страховым взносам (4-ФСС, РСВ) за 2021 в 1С

Секреты сдачи годовой отчетности 2021 в 1С

Изменения в 2022 году, о которых нужно знать бухгалтеру

Читайте также: