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

Многие пользователи ограничиваются базовым поиском через Ctrl+F, но этот метод работает не всегда: он ищет только по видимым на экране данным и не учитывает скрытые колонки или неотображаемые строки. Более того, в некоторых конфигурациях (например, в 1С:УТ 11 или 1С:ERP) табличные части могут иметь сложную структуру с вложенными таблицами, что усложняет поиск. В этой статье мы разберем все доступные методы — от простых до продвинутых, — чтобы вы могли выбрать оптимальный подход в зависимости от задачи.

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

📊 Как часто вам приходится искать данные в табличных частях 1С?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Стандартный поиск через Ctrl+F: ограничения и лайфхаки

Самый очевидный способ — воспользоваться стандартной функцией поиска, которая вызывается комбинацией Ctrl+F (или через меню Правка → Найти). Этот метод работает во всех конфигурациях и не требует дополнительных настроек. Однако у него есть серьезные ограничения:

  • 🔍 Ищет только по видимым колонкам — если нужное поле скрыто, поиск не сработает.
  • 📄 Не учитывает данные в неотображаемых строках (например, если таблица имеет иерархию или группировку).
  • 🔄 Не поддерживает поиск по частичному совпадению в некоторых версиях платформы.
  • 🔠 Чувствителен к регистру, если не настроено иначе.

Чтобы повысить эффективность стандартного поиска, воспользуйтесь этими советами:

  • 🔧 Предварительно разверните все группировки в таблице (если они есть) — для этого нажмите ПКМ → Развернуть все.
  • 👁️ Покажите все колонки через ПКМ → Настройка списка, если не уверены, в каком поле может быть искомое значение.
  • 🔄 Если поиск не сработал, попробуйте вводить запрос без пробелов или с подстановочными символами (например, 123 вместо Договор 123).

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

💡

Если вы часто ищете одни и те же данные, сохраните фильтр как пользовательскую настройку через меню Ещё → Сохранить настройки. Это сэкономит время в будущем.

2. Фильтры в табличной части: как настроить точный поиск

Фильтры — это более мощный инструмент, чем стандартный поиск. Они позволяют искать данные по нескольким критериям одновременно, а также применять условия типа "больше", "меньше", "содержит" и т.д. Чтобы открыть панель фильтров:

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

Пример: если вам нужно найти все строки, где количество товара больше 100, а дата поставки — позже 01.01.2026, фильтр позволит задать оба условия одновременно. Это невозможно сделать через Ctrl+F.

Вот какие типы фильтров поддерживаются в большинстве конфигураций :

Тип условия Пример использования Применимость
Равно Номер документа = "ДОГ-00123" Для точного совпадения
Содержит Наименование содержит "ноутбук" Для частичного совпадения
Начинается с Артикул начинается с "ART-" Для поиска по префиксу
Больше/Меньше Количество > 50 Для числовых полей
В списке Склад в ("Основной", "Резерв") Для множественного выбора

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

Как сбросить "залипший" фильтр, если кнопка не работает?

Если фильтр применяется автоматически и кнопка Очистить не активна, попробуйте:

1. Закрыть и открыть документ заново.

2. Нажать Shift+F5 (обновить форму).

3. Вручную изменить условие фильтра на противоположное (например, "Равно" → "Не равно") и вернуть обратно.

3. Условное оформление: визуальный поиск по цвету

Если вам нужно не просто найти строку, а выделить ее визуально (например, все просроченные заказы или товары с нулевым остатком), используйте условное оформление. Этот инструмент позволяет автоматически раскрашивать строки по заданным правилам.

Как настроить условное оформление:

  1. Нажмите ПКМ на табличную часть → Условное оформление.
  2. Добавьте новое правило и укажите условие (например, Дата < ТекущаяДата() для просроченных документов).
  3. Выберите цвет фона или шрифта для выделения.

Преимущества этого метода:

  • 🎨 Визуально мгновенно заметны все строки, соответствующие критерию.
  • 🔄 Правила сохраняются и применяются автоматически при открытии документа.
  • 📊 Можно настроить несколько правил одновременно (например, красный для просрочки, желтый для предоплаты).

Пример: в документе Заказ покупателя можно выделить красным все строки, где Количество > ОстатокНаСкладе, чтобы сразу увидеть дефицитные позиции.

💡

Условное оформление не заменяет фильтры, а дополняет их. Фильтр скрывает ненужные строки, а условное оформление подсвечивает важные среди видимых.

4. Поиск через запросы (для разработчиков)

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

Пример кода для поиска строки в табличной части документа по артикулу товара:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Документ.Строка КАК Строка

|ИЗ

| Документ.ЗаказПокупателя.ТабличнаяЧасть1 КАК Документ

|ГДЕ

| Документ.Артикул = &Артикул";

Запрос.УстановитьПараметр("Артикул", "ART-12345");

Результат = Запрос.Выполнить();

НайденныеСтроки = Результат.Выгрузить();

Этот метод подходит для:

  • 🔍 Поиска по несколько полям одновременно (например, артикул + склад).
  • 📊 Получения статистики по найденным строкам (сумма, количество).
  • 🔄 Интеграции с другими объектами (например, проверка остатков по найденному товару).

Обратите внимание: если табличная часть содержит большое количество строк (десятки тысяч), запрос может выполняться медленно. В этом случае лучше использовать индексы или оптимизировать структуру данных.

1. Проверьте права доступа к табличной части

2. Убедитесь, что поле для поиска не пустое

3. Используйте параметры в запросе для защиты от SQL-инъекций

4. Обработайте случай, когда строк не найдено

-->

5. Горячие клавиши и скрытые возможности

Многие пользователи не знают, что в есть скрытые комбинации клавиш, которые ускоряют поиск в табличных частях. Вот самые полезные из них:

  • 🔍 Ctrl+Shift+F — расширенный поиск (в некоторых конфигурациях открывает фильтр).
  • ↑↓ Alt+↑ / Alt+↓ — быстрый переход к первой/последней строке.
  • 🔠 F3 — повтор последнего поиска (работает после Ctrl+F).
  • 📋 Ctrl+Alt+F — открыть отбор и сортировку (аналог фильтра).

Еще один лайфхак: если вам нужно найти строку по нескольким критериям, но фильтры не сохраняются, воспользуйтесь временной сортировкой. Например:

  1. Отсортируйте таблицу по колонке Артикул (кликните на заголовок столбца).
  2. Затем отсортируйте по Складу.
  3. Теперь все строки с одинаковым артикулом и складом будут grouped together, и их легко найти визуально.

В конфигурациях на управляемых формах (например, 1С:ERP 2.5) есть еще одна полезная функция — поиск по первым символам. Начните вводить текст прямо в таблице (без Ctrl+F), и автоматически подсветит первую строку, которая начинается с введенных символов.

💡

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

6. Поиск в динамических списках и сложных таблицах

В современных конфигурациях (например, 1С:УТ 11 или 1С:КА 2.4) табличные части часто реализованы как динамические списки. Они подгружают данные порциями (пагинация), что усложняет поиск. Если стандартные методы не работают, попробуйте следующее:

  • 🔄 Отключите пагинацию через настройки списка (если возможно).
  • 📥 Экспортируйте данные в Excel через Файл → Экспорт и ищите там.
  • 🔧 Используйте пользовательские настройки для увеличения количества строк на странице.

Для программного поиска в динамических списках используйте метод НайтиСтроки():

Список = ЭлементыФормы.ТабличнаяЧасть1.Список;

НайденныеСтроки = Список.НайтиСтроки(Новый Структура("Артикул", "ART-123"));

Если табличная часть имеет иерархическую структуру (например, группировка по складам), стандартный поиск может не учитывать вложенные строки. В этом случае:

  1. Разверните все группировки (ПКМ → Развернуть все).
  2. Используйте фильтр с условием Уровень = 0 для поиска только по верхнему уровню.
Как искать в таблице с миллионом строк?

Для очень больших таблиц (более 100 000 строк) стандартные методы неэффективны. В этом случае:

1. Используйте серверные процедуры для поиска.

2. Настройте индексы на часто используемые поля.

3. Разбейте поиск на пакеты (например, искать по 10 000 строк за раз).

7. Поиск с учетом регистра и специальных символов

По умолчанию поиск в обычно нечувствителен к регистру, но в некоторых случаях это может быть проблемой. Например, если вы ищете артикул ART-123, а в таблице есть art-123 или Art-123, стандартный поиск найдет все варианты. Чтобы искать с учетом регистра, используйте:

  • 🔠 Запросы с функцией ВРЕГ() для приведения к верхнему регистру:
    ГДЕ ВРЕГ(Артикул) = ВРЕГ(&Артикул)
  • 📝 Фильтры с условием "Равно" и точным вводом (включая регистр).

Если в данных есть специальные символы (например, кавычки, проценты), их нужно экранировать. В запросах для этого используется функция ЭкранироватьСтроку():

АртикулДляПоиска = ЭкранироватьСтроку("ART""123");

Запрос.Текст = "ГДЕ Артикул = """ + АртикулДляПоиска + """";

Для поиска по частичному совпадению с маской используйте символы % (любое количество символов) и _ (один символ). Пример:

ГДЕ Артикул ПОДОБНО "ART%123"

Этот запрос найдет все артикулы, которые начинаются на ART и заканчиваются на 123.

8. Автоматизация поиска: обработки и расширения

Если вам приходится часто искать данные по одним и тем же критериям, имеет смысл автоматизировать процесс. Вот несколько способов:

  • 🤖 Создать внешнюю обработку с предварительно настроенными фильтрами и кнопкой "Найти".
  • 📦 Использовать расширения конфигурации для добавления новых полей поиска.
  • 🔄 Настроить регламентное задание, которое будет автоматически помечать нужные строки (например, просроченные заказы).

Пример кода для простой обработки поиска:

Процедура НайтиПоАртикулу(Команда)

Артикул = ВвестиЗначение("Введите артикул для поиска:");

Если НЕ ЗначениеЗаполнено(Артикул) Тогда

Возврат;

КонецЕсли;

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ ССЫЛКА КАК Ссылка

|ИЗ Документ.ЗаказПокупателя.Товары КАК Товары

|ГДЕ Товары.Артикул = &Артикул";

Запрос.УстановитьПараметр("Артикул", Артикул);

Результат = Запрос.Выполнить().Выгрузить();

Если Результат.Количество() = 0 Тогда

Предупреждение("Строки не найдены!");

Иначе

ОткрытьЗначение(Результат[0].Ссылка);

КонецЕсли;

КонецПроцедуры

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

💡

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

FAQ: Частые вопросы по поиску в табличных частях 1С

Почему Ctrl+F не находит строку, которая точно есть в таблице?

Вероятные причины:

  • Строка скрыта из-за группировки или фильтра.
  • Искомое значение находится в скрытой колонке.
  • Поиск ведется с учетом регистра, а в данных другой регистр.
  • Табличная часть является динамическим списком и не все данные подгружены.

Решение: разверните все группировки, покажите все колонки и попробуйте поиск по другому полю.

Как найти строку по частичному совпадению (например, только начало артикула)?

Используйте:

  • В фильтрах: условие "Начинается с" или "Содержит".
  • В запросах: оператор ПОДОБНО (например, ГДЕ Артикул ПОДОБНО "ART%").
  • В стандартном поиске: введите часть_текста (если поддерживается).
Можно ли искать данные в табличной части по нескольким документам одновременно?

Да, для этого нужно:

  • Использовать отчет или обработку, которая обходит несколько документов.
  • Написать запрос с объединением (например, ОБЪЕДИНИТЬ ВСЕ для разных типов документов).
  • В 1С:ERP или 1С:УТ воспользоваться универсальным отчетом "Анализ данных".

Пример запроса для поиска по нескольким видам документов:

ВЫБРАТЬ

"ЗаказПокупателя" КАК ТипДокумента,

ЗаказПокупателя.Ссылка КАК Ссылка

ИЗ

Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателя

ГДЕ

ЗаказПокупателя.Артикул = &Артикул

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ

"РеализацияТоваровУслуг" КАК ТипДокумента,

РеализацияТоваровУслуг.Ссылка КАК Ссылка

ИЗ

Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг

ГДЕ

РеализацияТоваровУслуг.Артикул = &Артикул

Как сохранить фильтр, чтобы не настраивать его каждый раз?

Способы сохранения фильтров:

  • В большинстве конфигураций: Ещё → Сохранить настройки (сохраняет фильтры, сортировку и колонки).
  • В 1С:УТ 11 и 1С:ERP: используйте пользовательские настройки списков (Все настройки → Сохранить как...).
  • Для разработчиков: создайте обработку с предварительно заданными фильтрами и добавьте ее в панель разделов.

Внимание: в некоторых конфигурациях сохраненные настройки применяются ко всем пользователям. Проверьте права доступа, если нужно ограничить видимость фильтра.

Что делать, если поиск работает очень медленно?

Причины медленной работы и решения:

  • Большой объем данных: используйте индексы на часто используемых полях или разбейте поиск на части.
  • Сложные запросы: оптимизируйте запрос, убирая лишние соединения (ЛЕВОЕ СОЕДИНЕНИЕ).
  • Динамические списки: отключите пагинацию или увеличьте размер порции данных.
  • Сетевые задержки: если база на сервере, проверьте скорость соединения.

Для диагностики используйте технологический журнал (Администрирование → Технологический журнал), чтобы найти узкие места.