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

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

1. Поиск строки в интерфейсе 1С (для пользователей)

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

Основные места, где можно искать строки:

  • 📄 Документы — поиск по номерам, датам, контрагентам или суммам. Например, в журнале документов Покупки или Реализация.
  • 📚 Справочники — фильтрация по наименованиям, кодам или реквизитам (например, поиск товара по артикулу в справочнике Номенклатура).
  • 🔍 Универсальный поиск — вызов через Ctrl+F в большинстве форм (работает как в списках, так и в отдельных документах).
  • 📊 Отчёты — многие отчёты (например, Оборотно-сальдовая ведомость) поддерживают поиск по строкам результата.

Пример: чтобы найти документ Поступление товаров №12345, откройте журнал Поступление товаров и услуг, нажмите Ctrl+F и введите номер. Система подсветит все совпадения. Если документ не найден, проверьте:

  • 📅 Диапазон дат в фильтре журнала (по умолчанию может стоять текущий месяц).
  • 🏷️ Статус документа (возможно, он помечен на удаление или не проведён).
  • 🔄 Правильность регистра (поиск в 1С часто чувствителен к заглавным буквам).
💡

Если поиск по Ctrl+F не срабатывает, попробуйте обновить список документов кнопкой Обновить (или F5) — иногда данные подгружаются не полностью.

2. Поиск по частичному совпадению и подстановочным знакам

Когда точное наименование неизвестно, на помощь приходят подстановочные знаки. В 1С поддерживаются два основных символа:

  • % — заменяет любое количество символов (включая ноль). Например, %ноут% найдёт и Ноутбук, и Ноутбук HP, и Ремонт ноутбуков.
  • _ — заменяет ровно один символ. Например, сч_т найдёт счёт, но не счета.

Где это работает:

  • 🔎 В полях фильтров справочников и документов (например, в строке поиска справочника Контрагенты).
  • 📝 В запросах на языке 1С (см. раздел 5).
  • 🗃️ В некоторых отчётах (например, в Анализ субконто можно искать по маске).

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

  1. Откройте нужный журнал (например, Заказы клиентов).
  2. Нажмите Ещё → Настройка списка.
  3. Добавьте колонку Комментарий (если её нет).
  4. В фильтре по колонке Комментарий введите %монтаж%.
📊 Как часто вы используете подстановочные знаки при поиске в 1С?
Никогда
Редко, только если точно не знаю наименование
Часто, это экономит время
Постоянно, без них не обойтись

3. Поиск строки в конфигураторе (для разработчиков)

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

Основные способы:

  • 🔍 Поиск по тексту модулей (Ctrl+Shift+F в конфигураторе). Ищет по всем модулям, формам и макетам.
  • 📂 Поиск по метаданным (Ctrl+F в дереве метаданных). Например, чтобы найти все реквизиты с именем ДатаОплаты.
  • 🖥️ Поиск по синтаксису — в современных версиях 1С (8.3.20+) поддерживается поиск по шаблонам кода (например, найти все вызовы функции НайтиПоНаименованию).

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

  1. Откройте конфигуратор (1C:Предприятие → Конфигуратор).
  2. Нажмите Ctrl+Shift+F.
  3. В поле поиска введите Недостаточно прав.
  4. Установите флажки Учитывать регистр и Искать во всех модулях.
  5. Нажмите Найти.

Убедиться, что конфигурация открыта в режиме редактирования|

Использовать Ctrl+Shift+F для глобального поиска|

Проверять флажки "Искать в комментариях" и "Искать в строках"|

Для больших конфигураций ограничивать область поиска (например, только в модулях объектов)-->

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

4. Поиск через запросы на языке 1С

Для сложных задач (например, поиска строки в табличных частях документов или по нескольким реквизитам одновременно) используйте запросы на языке 1С. Это универсальный инструмент, доступный как в пользовательском режиме (через Файл → Новый → Запрос), так и в конфигураторе.

Базовый синтаксис запроса для поиска строки:

ВЫБРАТЬ

Ссылка КАК Ссылка,

Наименование КАК Наименование

ИЗ

Справочник.Номенклатура КАК Номенклатура

ГДЕ

Номенклатура.Наименование ПОДОБНО "%монитор%"

Примеры практических запросов:

Задача Пример запроса Примечание
Поиск документов с комментарием, содержащим слово "срочно"
ВЫБРАТЬ

Ссылка, Дата, Номер

ИЗ

Документ.ЗаказКлиента

ГДЕ

Комментарий ПОДОБНО "%срочно%"

Работает только если поле Комментарий включено в виртуальную таблицу
Поиск контрагентов с адресом в Москве
ВЫБРАТЬ

Наименование, Адрес

ИЗ

Справочник.Контрагенты

ГДЕ

Адрес ПОДОБНО "%Москва%"

Можно уточнить поиск по ЮрАдрес или ФактическийАдрес
Поиск строк в табличной части документа по артикулу
ВЫБРАТЬ

ЗаказКлиента.Ссылка,

ЗаказКлиентаТовары.Номенклатура,

ЗаказКлиентаТовары.Артикул

ИЗ

Документ.ЗаказКлиента КАК ЗаказКлиента

ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары

ПО ЗаказКлиента.Ссылка = ЗаказКлиентаТовары.Ссылка

ГДЕ

ЗаказКлиентаТовары.Артикул ПОДОБНО "ART-%"

Используйте псевдонимы (КАК) для удобства

⚠️ Внимание: Запросы с оператором ПОДОБНО могут тормозить на больших базах (более 100 000 записей). В таких случаях:

  • Ограничивайте период поиска (например, ГДЕ Дата > &НачалоПериода).
  • Используйте индексируемые поля (например, Код или Артикул вместо Наименование).
  • Для регулярных поисков создавайте регламентные задания с выполнением в нерабочее время.

5. Поиск строки в базе данных (SQL-запросы)

Для опытных пользователей и администраторов доступен поиск непосредственно в базе данных через SQL-запросы. Это актуально, если:

  • Нужно найти данные, которые не отображаются в интерфейсе 1С (например, удалённые документы).
  • Требуется анализировать большие объёмы данных с высокой скоростью.
  • Необходимо искать по системным таблицам (например, Config или Params).

Пример SQL-запроса для поиска строки в таблице документов (для Microsoft SQL Server):

SELECT

t._IDRRef,

t._Date_Time,

t._Number

FROM

_Document123 AS t -- где 123 - внутренний идентификатор типа документа

WHERE

t._Description LIKE '%срочный%'

AND t._Marked = 0 -- только не помеченные на удаление

Как выполнить SQL-запрос:

  1. Подключитесь к базе данных через SQL Server Management Studio или аналогичный инструмент.
  2. Узнайте внутренние имена таблиц (например, через запрос SELECT * FROM _1SMetadata).
  3. Используйте оператор LIKE для поиска по частичному совпадению.
Как узнать внутренний идентификатор типа документа?

В конфигураторе откройте нужный документ (например, РеализацияТоваровУслуг), перейдите на закладку Прочее и посмотрите поле Идентификатор. Или выполните запрос:

SELECT

t._ID,

t._Name

FROM

_1SMetadata AS t

WHERE

t._Type = 1 -- 1 - документ, 2 - справочник, etc.

⚠️ Внимание: Прямые SQL-запросы к базе 1С могут нарушить целостность данных, если выполнять UPDATE или DELETE. Никогда не изменяйте данные напрямую — используйте только SELECT для чтения. Для модификаций применяйте штатные механизмы 1С (например, Объект.Записать()).

6. Поиск в дампах и логах 1С

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

Инструменты для поиска:

  • 📄 Текстовые редакторы с поддержкой регулярных выражений (Notepad++, VS Code). Подходят для логов (.lgp, .log).
  • 🗄️ Утилиты для работы с дампами (SQL Server Data Tools, pgAdmin для PostgreSQL).
  • 🔍 Специализированные парсеры (например, 1C:LogParser для анализа логов 1С).

Пример: поиск ошибки в логе технологического журнала:

  1. Откройте файл лога (обычно находится в C:\Program Files\1cv8\srvinfo\reg_1541\1Cv8Log\).
  2. В Notepad++ нажмите Ctrl+F, перейдите на закладку Найти в файлах.
  3. В поле Найти введите ОШИБКА: (или другой маркер).
  4. В поле Фильтры укажите .lgp;.log.
  5. Нажмите Найти все.

Для поиска в дампах SQL Server:

-- Поиск строки в дампе (пример для SQL Server)

RESTORE FILELISTONLY FROM DISK = 'C:\backup\base.bak';

RESTORE HEADERONLY FROM DISK = 'C:\backup\base.bak';

-- Чтение содержимого дампа (требует специализированных инструментов)

-- Например, через ApexSQL Restore или аналоги

💡

Поиск в дампах и логах — крайняя мера. В 90% случаев задачу можно решить штатными средствами 1С или SQL-запросами. Прибегайте к этому методу только если другие способы не сработали.

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

Если поиск строки требуется выполнять регулярно, имеет смысл автоматизировать процесс с помощью:

  • 📊 Внешних отчётов — создаются в конфигураторе и позволяют гибко настраивать фильтры.
  • ⚙️ Обработок — можно написать универсальную обработку для поиска по любым реквизитам.
  • 🤖 Скриптов на языке 1С — например, для ночного поиска и отправки результатов на почту.

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

Процедура ПоискПоСправочнику(ЗначениеПоиска, ИмяСправочника)

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

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

"ВЫБРАТЬ

| Ссылка,

| Наименование

|ИЗ

| Справочник." + ИмяСправочника + " КАК Справочник

|ГДЕ

| Наименование ПОДОБНО &Поиск";

Запрос.УстановитьПараметр("Поиск", "%" + ЗначениеПоиска + "%");

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

Возврат Результат.Выгрузить();

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

Где взять готовые решения:

  • 📦 Инфостарт — тысячи бесплатных и платных обработок для поиска.
  • 🛠️ Портал ИТС — официальные решения от 1С.
  • 🤝 Сообщества разработчиков (например, форум 1С).

⚠️ Внимание: Перед использованием сторонних обработок проверяйте их на тестовой базе. Некоторые решения могут содержать вредоносный код или конфликтовать с вашей конфигурацией. Особенно осторожно относитесь к обработкам, требующим прав администратора.

FAQ: Частые вопросы по поиску строк в 1С

Как найти документ, если известен только фрагмент номера (например, "...-005")?

Используйте подстановочный знак % в фильтре журнала документов. Например, введите %-005% в поле поиска по номеру. Если не срабатывает, попробуйте:

  1. Убрать дефисы из поискового запроса (%005%).
  2. Проверьте настройки нумерации документа — возможно, префиксы или суффиксы мешают поиску.
Почему поиск по Ctrl+F не находит строку, которая точно есть в базе?

Возможные причины:

  • Данные не подгружены в список (нажмите F5 для обновления).
  • Поиск ведётся только по видимым колонкам (добавьте нужную колонку через Настройка списка).
  • Строка содержит непечатаемые символы (пробелы, табуляции). Попробуйте скопировать строку из базы и вставить в поиск.
  • Разный регистр символов (включите опцию Игнорировать регистр, если она есть).
Можно ли искать по истории изменений документа?

Да, для этого:

  1. Откройте документ.
  2. Нажмите Ещё → История изменений (или Все действия в новых версиях).
  3. В открывшемся окне используйте Ctrl+F для поиска по тексту изменений.

Если история не ведётся, проверьте настройки журнала регистрации (Администрирование → Поддержка и обслуживание → Журналы регистрации).

Как найти все документы, в которых упоминается конкретный контрагент?

Используйте запрос на языке 1С:

ВЫБРАТЬ РАЗЛИЧНЫЕ

ВИД() КАК ВидДокумента,

Ссылка КАК Ссылка,

Номер,

Дата

ИЗ

Документ.* КАК Документ

ГДЕ

Документ.Контрагент = &Контрагент

Где &Контрагент — ссылка на нужного контрагента. Для упрощения можно создать внешний отчёт с таким запросом и полем для ввода контрагента.

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

Оптимизируйте запрос:

  • Добавьте условие по дате (ГДЕ Дата > &НачалоПериода).
  • Используйте индексируемые поля (например, Код вместо Наименование).
  • Разбейте запрос на части (например, сначала найдите IDs, затем детализируйте).
  • Для больших баз настройте индексы в SQL (требуются права администратора).

Если проблема в интерфейсе (например, тормозит журнал документов), попробуйте:

  • Отключить ненужные колонки в настройках списка.
  • Использовать Показать по 100 строк вместо полной выгрузки.
  • Очистить кэш 1С (Администрирование → Обслуживание → Тестирование и исправление → Очистить кэш).