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

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

Что такое консоль запросов в 1С и зачем она нужна

Консоль запросов — это встроенный инструмент платформы 1С:Предприятие 8, который позволяет выполнять запросы на языке, близком к SQL, но адаптированном под специфику 1С. Она используется для:

  • 🔍 Быстрого поиска и анализа данных без создания отчетов
  • 🛠️ Отладки сложных запросов перед внедрением в конфигурацию
  • 📊 Получения выборок для дальнейшей обработки в Excel или других системах
  • 🔧 Диагностики производительности базы данных

Основное отличие от стандартного SQL — это работа с виртуальными таблицами 1С, которые представляют объекты конфигурации (справочники, документы, регистры) в виде таблиц. Например, запрос к справочнику Контрагенты будет выглядеть как обращение к таблице Справочник.Контрагенты.

Консоль особенно полезна, когда нужно:

  • 📌 Проверить корректность данных перед выгрузкой в внешние системы
  • 📌 Найти дубликаты или некорректные записи в справочниках
  • 📌 Проанализировать движения документов по регистрам
⚠️ Внимание: Результаты запросов в консоли зависят от текущих прав пользователя. Если у вас нет прав на чтение определенных данных, они не будут отображаться в результатах, даже если запрос синтаксически корректен.

Как открыть консоль запросов в разных режимах 1С

Способ открытия консоли зависит от режима работы с 1С:Предприятие и версии платформы. Вот основные варианты:

Режим работы Способ открытия Примечания
1С:Предприятие (пользовательский режим) Через меню Файл → Открыть → Консоль запросов Доступно только пользователям с правами администратора или специальными ролями
Конфигуратор Меню Сервис → Консоль запросов или горячие клавиши Ctrl+Shift+Q Самый удобный способ для разработчиков
Управляемое приложение (тонкий/веб-клиент) Через Все функции → Стандартные → Консоль запросов Может быть скрыто в зависимости от настроек интерфейса
Мобильное приложение Не поддерживается Для работы с запросами используйте десктопные версии

Если пункта меню нет, возможно:

  • 🔹 У вас недостаточно прав (обратитесь к администратору)
  • 🔹 Конфигурация модифицирована и меню скрыто (проверьте в конфигураторе)
  • 🔹 Используется устаревшая версия платформы (обновите до актуальной)

Для быстрого доступа в конфигураторе можно назначить собственные горячие клавиши через меню Сервис → Настройка → Горячие клавиши.

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

Основы синтаксиса запросов в 1С

Язык запросов 1С основан на SQL, но имеет свои особенности. Основные конструкции:

ВЫБРАТЬ

Поле1, Поле2

ИЗ

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

ГДЕ

Контрагенты.ПометкаУдаления = ЛОЖЬ

И Контрагенты.ЭтоГруппа = ЛОЖЬ

УПОРЯДОЧИТЬ ПО

Контрагенты.Наименование

Ключевые особенности синтаксиса:

  • 📌 Ключевые слова пишутся на русском языке (ВЫБРАТЬ вместо SELECT)
  • 📌 Для обозначения таблиц используются псевдонимы (после КАК)
  • 📌 Логические значения: ИСТИНА/ЛОЖЬ вместо TRUE/FALSE
  • 📌 Даты указываются в формате 'YYYY-MM-DD' или с использованием функции ДАТАВРЕМЯ()

Примеры базовых запросов:

// 1. Выборка всех активных номенклатурных позиций

ВЫБРАТЬ

Номенклатура.Ссылка КАК Ссылка,

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

Номенклатура.Артикул КАК Артикул

ИЗ

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

ГДЕ

Номенклатура.ПометкаУдаления = ЛОЖЬ

// 2. Поиск документов за текущий месяц

ВЫБРАТЬ

Документ.Ссылка КАК Ссылка,

Документ.Дата КАК Дата,

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

ИЗ

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

ГДЕ

Документ.Дата МЕЖДУ ДАТАВРЕМЯ(2026, 06, 01, 0, 0, 0)

И ДАТАВРЕМЯ(2026, 06, 30, 23, 59, 59)

⚠️ Внимание: В запросах 1С регистр ключевых слов не имеет значения, но принято писать их заглавными буквами для лучшей читаемости. Имена полей и таблиц чувствительны к регистру!

Практические примеры запросов для реальных задач

Рассмотрим типовые задачи, которые решаются с помощью консоли запросов:

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

ВЫБРАТЬ

Контрагенты.Наименование КАК Наименование,

КОЛИЧЕСТВО(*) КАК Количество

ИЗ

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

ГДЕ

Контрагенты.ПометкаУдаления = ЛОЖЬ

СГРУППИРОВАТЬ ПО

Контрагенты.Наименование

ИМЕЮЩИЕ

КОЛИЧЕСТВО(*) > 1

2. Анализ остатков товара

ВЫБРАТЬ

ОстаткиТоваров.Номенклатура КАК Номенклатура,

ОстаткиТоваров.КоличествоОстаток КАК Остаток,

ОстаткиТоваров.Склад КАК Склад

ИЗ

РегистрНакопления.ОстаткиТоваров КАК ОстаткиТоваров

ГДЕ

ОстаткиТоваров.КоличествоОстаток < 0

3. Поиск документов с ошибками

ВЫБРАТЬ

Документ.Ссылка КАК Ссылка,

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

ИЗ

Документ.ПоступлениеТоваровУслуг КАК Документ

ГДЕ

НЕ Документ.Проведен

И Документ.Дата > ДАТАВРЕМЯ(2026, 01, 01, 0, 0, 0)

Для сложных запросов можно использовать:

  • 🔹 ОБЪЕДИНИТЬ для комбинирования результатов
  • 🔹 ВЫРАЗИТЬ для преобразования типов
  • 🔹 ПОМЕСТИТЬ для создания временных таблиц

1. Определите цель запроса (что нужно получить)

2. Выберите основные таблицы-источники

3. Укажите условия отбора (ГДЕ)

4. Добавьте группировку (если нужна агрегация)

5. Проверить синтаксис перед выполнением-->

Оптимизация запросов и работа с большими базами

При работе с большими объемами данных (тысячи записей) неоптимизированные запросы могут тормозить систему. Основные правила оптимизации:

  1. Используйте индексируемые поля в условиях ГДЕ (например, ссылки на объекты вместо строковых полей)
  2. Ограничивайте выборку с помощью ПЕРВЫЕ или РАЗЛИЧНЫЕ
  3. Избегайте подзапросов в секции ГДЕ — используйте соединения (ЛЕВОЕ СОЕДИНЕНИЕ)
  4. Используйте виртуальные таблицы вместо обхода всех движений документов

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

ВЫБРАТЬ ПЕРВЫЕ 100

Документ.Ссылка КАК Ссылка,

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

ИЗ

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

ГДЕ

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

И Документ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

УПОРЯДОЧИТЬ ПО

Документ.Дата УБЫВ

Для анализа производительности запросов используйте:

  • 🔹 План выполнения запроса (в конфигураторе: Отладка → Показать план запроса)
  • 🔹 Журнал регистрации (для мониторинга долгих операций)
  • 🔹 Тестирование и сравнение производительности (инструмент Тестирование и исправление)
⚠️ Внимание: Запросы с конструкцией "ГДЕ ПОДСТРОКА(Поле, 'текст')" не используют индексы и тормозят на больших таблицах. Заменяйте их на "ГДЕ Поле ПОДОБНО '%текст%'" с осторожностью — это тоже не всегда оптимально.

Типичные ошибки и как их избегать

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

Ошибка Причина Как исправить
"Поле не найдено" Опечатка в имени поля или таблицы Проверьте регистр и точное название в конфигураторе
"Недопустимое использование агрегатной функции" Пропущена группировка при использовании COUNT/SUM Добавьте СГРУППИРОВАТЬ ПО для всех неагрегированных полей
Запрос выполняется слишком долго Отсутствуют индексы или запрос не оптимизирован Используйте план запроса для анализа узких мест
"Типы не совпадают" Попытка сравнить разные типы (дата со строкой) Используйте функции преобразования (ВЫРАЗИТЬ)

Частые синтаксические ошибки:

  • 🔸 Пропущенная запятая между полями в ВЫБРАТЬ
  • 🔸 Лишняя запятая перед ИЗ или ГДЕ
  • 🔸 Неправильное использование кавычек (в 1С используются одинарные кавычки для строк)
  • 🔸 Путаница между И и ИЛИ в условиях

Для отладки сложных запросов:

  1. Разбивайте большой запрос на маленькие части
  2. Используйте временные таблицы (ПОМЕСТИТЬ) для промежуточных результатов
  3. Проверяйте каждый блок отдельно перед объединением
💡

Если запрос возвращает неожиданные результаты, попробуйте выполнить его пошагово: сначала только секцию ВЫБРАТЬ-ИЗ, затем добавьте ГДЕ, потом группировку и т.д. Это поможет локализовать ошибку.

Расширенные возможности консоли запросов

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

1. Использование параметров

Можно создавать запросы с параметрами, которые запрашиваются при выполнении:

ВЫБРАТЬ

Документ.Ссылка КАК Ссылка

ИЗ

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

ГДЕ

Документ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

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

2. Работа с временными таблицами

Создание промежуточных таблиц для сложных расчетов:

ВЫБРАТЬ

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

СУММА(Товары.Количество) КАК ОбщееКоличество

ИЗ

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

ГДЕ

Товары.Ссылка В (&СписокДокументов)

СГРУППИРОВАТЬ ПО

Товары.Номенклатура

ПОМЕСТИТЬ ВТИтогиПоНоменклатуре

3. Экспорт результатов

Результаты запроса можно:

  • 📋 Скопировать в буфер обмена (кнопка "Копировать")
  • 📋 Сохранить в файл (Excel, CSV, TXT)
  • 📋 Передать в обработку для дальнейшего анализа

4. Использование функций 1С в запросах

В запросах доступны многие встроенные функции:

ВЫБРАТЬ

Документ.Ссылка КАК Ссылка,

ДОБАВИТЬКДАТЕ(Документ.Дата, МЕСЯЦ, 1) КАК ДатаСоСмещением,

НАЧСТРОКИ(Документ.Номер) КАК ПервыйСимволНомера

ИЗ

Документ.ПоступлениеТоваровУслуг КАК Документ

Как ускорить выполнение повторяющихся запросов?

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

Безопасность и ограничения при работе с консолью

Несмотря на удобство, консоль запросов может быть опасным инструментом в неправильных руках. Основные риски:

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

Рекомендации по безопасной работе:

  1. Ограничивайте права пользователей на выполнение запросов
  2. Используйте транзакции для изменяющих запросов:
    НАЧАТЬ ТРАНЗАКЦИЮ;
    

    ОБНОВИТЬ Справочник.Номенклатура

    УСТАНОВИТЬ Артикул = "НОВЫЙ_АРТИКУЛ"

    ГДЕ Ссылка = &Ссылка;

    КОНЕЦ ТРАНЗАКЦИИ;

  3. Настраивайте ограничения по времени выполнения запросов на сервере
  4. Ведите журнал выполненных запросов для аудита

Ограничения консоли запросов:

  • 📛 Не поддерживаются все возможности стандартного SQL
  • 📛 Нет прямого доступа к системным таблицам базы данных
  • 📛 Ограниченная поддержка рекурсивных запросов
  • 📛 Нет возможности создавать или изменять структуру базы
⚠️ Внимание: В последних версиях 1С (начиная с 8.3.20) появились дополнительные ограничения на выполнение запросов в пользовательском режиме. Некоторые административные функции теперь доступны только в конфигураторе.
💡

Всегда тестируйте изменяющие запросы (UPDATE, DELETE) на копии базы данных перед выполнением на рабочей системе. Даже простая опечатка может привести к необратимым последствиям.

FAQ: Ответы на частые вопросы о консоли запросов 1С

Можно ли в консоли запросов изменять данные?

Да, но с осторожностью. Для этого используются конструкции ОБНОВИТЬ, ДОБАВИТЬ и УДАЛИТЬ. Пример:

ОБНОВИТЬ Справочник.Контрагенты

УСТАНОВИТЬ Комментарий = "Обновлено через консоль"

ГДЕ Ссылка = &СсылкаНаКонтрагента

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

Как выгрузить результаты запроса в Excel?

В консоли запросов нажмите кнопку "Сохранить результаты" и выберите формат XLSX. Альтернативно можно:

  1. Скопировать результаты в буфер (Ctrl+C)
  2. Вставить в Excel (Ctrl+V)
  3. Использовать обработку "Выгрузка данных в Excel" из стандартных поставок
Почему мой запрос выполняется очень долго?

Основные причины:

  • Отсутствие индексов на полях в условиях ГДЕ
  • Слишком широкий диапазон дат в условиях
  • Использование функций над полями в условиях (например, ГДЕ ГОД(Документ.Дата) = 2026)
  • Большое количество соединений таблиц

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

Можно ли сохранять часто используемые запросы?

Да, несколько способов:

  • Сохраняйте тексты запросов в внешние файлы (.txt или .1cq)
  • Используйте обработку "Хранилище запросов" (доступна в некоторых конфигурациях)
  • Создавайте собственные внешние обработки с часто используемыми запросами
  • В последних версиях платформы доступно сохранение истории запросов
Как сравнить данные из двух разных баз?

Прямое сравнение через консоль запросов одной базы невозможно. Альтернативные способы:

  1. Выгрузите данные из обеих баз в Excel и сравните там
  2. Используйте внешние инструменты (например, SQL Server Management Studio для MS SQL)
  3. Напишите обработку на встроенном языке, которая будет подключаться к обеим базам
  4. Используйте специализированные утилиты сравнения баз 1С