Консоль запросов в 1С:Предприятие — это мощный инструмент, который позволяет выполнять SQL-подобные запросы к базе данных напрямую из интерфейса платформы. Она незаменима для разработчиков, администраторов и опытных пользователей, которым нужно быстро получить данные, протестировать гипотезы или отладить сложные отчеты. Однако многие начинающие специалисты сталкиваются с трудностями: как открыть консоль, какие команды поддерживаются, как оптимизировать запросы для больших баз?
В этой статье мы разберем все аспекты работы с консолью запросов — от базовых принципов до продвинутых техник. Вы узнаете, как правильно формировать запросы, избегать типичных ошибок и использовать инструмент для решения реальных задач в 1С. Особое внимание уделим практическим примерам, которые можно сразу применять в своей работе.
Что такое консоль запросов в 1С и зачем она нужна
Консоль запросов — это встроенный инструмент платформы 1С:Предприятие 8, который позволяет выполнять запросы на языке, близком к SQL, но адаптированном под специфику 1С. Она используется для:
- 🔍 Быстрого поиска и анализа данных без создания отчетов
- 🛠️ Отладки сложных запросов перед внедрением в конфигурацию
- 📊 Получения выборок для дальнейшей обработки в Excel или других системах
- 🔧 Диагностики производительности базы данных
Основное отличие от стандартного SQL — это работа с виртуальными таблицами 1С, которые представляют объекты конфигурации (справочники, документы, регистры) в виде таблиц. Например, запрос к справочнику Контрагенты будет выглядеть как обращение к таблице Справочник.Контрагенты.
Консоль особенно полезна, когда нужно:
- 📌 Проверить корректность данных перед выгрузкой в внешние системы
- 📌 Найти дубликаты или некорректные записи в справочниках
- 📌 Проанализировать движения документов по регистрам
⚠️ Внимание: Результаты запросов в консоли зависят от текущих прав пользователя. Если у вас нет прав на чтение определенных данных, они не будут отображаться в результатах, даже если запрос синтаксически корректен.
Как открыть консоль запросов в разных режимах 1С
Способ открытия консоли зависит от режима работы с 1С:Предприятие и версии платформы. Вот основные варианты:
| Режим работы | Способ открытия | Примечания |
|---|---|---|
| 1С:Предприятие (пользовательский режим) | Через меню Файл → Открыть → Консоль запросов |
Доступно только пользователям с правами администратора или специальными ролями |
| Конфигуратор | Меню Сервис → Консоль запросов или горячие клавиши Ctrl+Shift+Q |
Самый удобный способ для разработчиков |
| Управляемое приложение (тонкий/веб-клиент) | Через Все функции → Стандартные → Консоль запросов |
Может быть скрыто в зависимости от настроек интерфейса |
| Мобильное приложение | Не поддерживается | Для работы с запросами используйте десктопные версии |
Если пункта меню нет, возможно:
- 🔹 У вас недостаточно прав (обратитесь к администратору)
- 🔹 Конфигурация модифицирована и меню скрыто (проверьте в конфигураторе)
- 🔹 Используется устаревшая версия платформы (обновите до актуальной)
Для быстрого доступа в конфигураторе можно назначить собственные горячие клавиши через меню Сервис → Настройка → Горячие клавиши.
Основы синтаксиса запросов в 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. Проверить синтаксис перед выполнением-->
Оптимизация запросов и работа с большими базами
При работе с большими объемами данных (тысячи записей) неоптимизированные запросы могут тормозить систему. Основные правила оптимизации:
- Используйте индексируемые поля в условиях
ГДЕ(например, ссылки на объекты вместо строковых полей) - Ограничивайте выборку с помощью
ПЕРВЫЕилиРАЗЛИЧНЫЕ - Избегайте подзапросов в секции
ГДЕ— используйте соединения (ЛЕВОЕ СОЕДИНЕНИЕ) - Используйте виртуальные таблицы вместо обхода всех движений документов
Пример оптимизированного запроса для поиска документов:
ВЫБРАТЬ ПЕРВЫЕ 100
Документ.Ссылка КАК Ссылка,
Документ.Дата КАК Дата
ИЗ
Документ.РеализацияТоваровУслуг КАК Документ
ГДЕ
Документ.Контрагент = &Контрагент
И Документ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
УПОРЯДОЧИТЬ ПО
Документ.Дата УБЫВ
Для анализа производительности запросов используйте:
- 🔹 План выполнения запроса (в конфигураторе:
Отладка → Показать план запроса) - 🔹 Журнал регистрации (для мониторинга долгих операций)
- 🔹 Тестирование и сравнение производительности (инструмент
Тестирование и исправление)
⚠️ Внимание: Запросы с конструкцией "ГДЕ ПОДСТРОКА(Поле, 'текст')" не используют индексы и тормозят на больших таблицах. Заменяйте их на "ГДЕ Поле ПОДОБНО '%текст%'" с осторожностью — это тоже не всегда оптимально.
Типичные ошибки и как их избегать
Даже опытные пользователи иногда допускают ошибки при работе с консолью запросов. Рассмотрим наиболее распространенные:
| Ошибка | Причина | Как исправить |
|---|---|---|
| "Поле не найдено" | Опечатка в имени поля или таблицы | Проверьте регистр и точное название в конфигураторе |
| "Недопустимое использование агрегатной функции" | Пропущена группировка при использовании COUNT/SUM | Добавьте СГРУППИРОВАТЬ ПО для всех неагрегированных полей |
| Запрос выполняется слишком долго | Отсутствуют индексы или запрос не оптимизирован | Используйте план запроса для анализа узких мест |
| "Типы не совпадают" | Попытка сравнить разные типы (дата со строкой) | Используйте функции преобразования (ВЫРАЗИТЬ) |
Частые синтаксические ошибки:
- 🔸 Пропущенная запятая между полями в
ВЫБРАТЬ - 🔸 Лишняя запятая перед
ИЗилиГДЕ - 🔸 Неправильное использование кавычек (в 1С используются одинарные кавычки для строк)
- 🔸 Путаница между
ИиИЛИв условиях
Для отладки сложных запросов:
- Разбивайте большой запрос на маленькие части
- Используйте временные таблицы (
ПОМЕСТИТЬ) для промежуточных результатов - Проверяйте каждый блок отдельно перед объединением
Если запрос возвращает неожиданные результаты, попробуйте выполнить его пошагово: сначала только секцию ВЫБРАТЬ-ИЗ, затем добавьте ГДЕ, потом группировку и т.д. Это поможет локализовать ошибку.
Расширенные возможности консоли запросов
Помимо базовых функций, консоль запросов поддерживает ряд продвинутых возможностей:
1. Использование параметров
Можно создавать запросы с параметрами, которые запрашиваются при выполнении:
ВЫБРАТЬ
Документ.Ссылка КАК Ссылка
ИЗ
Документ.ЗаказПокупателя КАК Документ
ГДЕ
Документ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И Документ.Контрагент = &Контрагент
2. Работа с временными таблицами
Создание промежуточных таблиц для сложных расчетов:
ВЫБРАТЬ
Товары.Номенклатура КАК Номенклатура,
СУММА(Товары.Количество) КАК ОбщееКоличество
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
ГДЕ
Товары.Ссылка В (&СписокДокументов)
СГРУППИРОВАТЬ ПО
Товары.Номенклатура
ПОМЕСТИТЬ ВТИтогиПоНоменклатуре
3. Экспорт результатов
Результаты запроса можно:
- 📋 Скопировать в буфер обмена (кнопка "Копировать")
- 📋 Сохранить в файл (Excel, CSV, TXT)
- 📋 Передать в обработку для дальнейшего анализа
4. Использование функций 1С в запросах
В запросах доступны многие встроенные функции:
ВЫБРАТЬ
Документ.Ссылка КАК Ссылка,
ДОБАВИТЬКДАТЕ(Документ.Дата, МЕСЯЦ, 1) КАК ДатаСоСмещением,
НАЧСТРОКИ(Документ.Номер) КАК ПервыйСимволНомера
ИЗ
Документ.ПоступлениеТоваровУслуг КАК Документ
Как ускорить выполнение повторяющихся запросов?
Создайте хранимые процедуры в конфигурации или используйте планы запросов (доступны в последних версиях платформы). Это позволяет кешировать планы выполнения и сокращает время анализа запроса при повторных выполнениях.
Безопасность и ограничения при работе с консолью
Несмотря на удобство, консоль запросов может быть опасным инструментом в неправильных руках. Основные риски:
- 🔴 Несанкционированный доступ к конфиденциальным данным
- 🔴 Возможность случайного изменения или удаления данных
- 🔴 Перегрузка сервера при выполнении тяжелых запросов
Рекомендации по безопасной работе:
- Ограничивайте права пользователей на выполнение запросов
- Используйте транзакции для изменяющих запросов:
НАЧАТЬ ТРАНЗАКЦИЮ;ОБНОВИТЬ Справочник.Номенклатура
УСТАНОВИТЬ Артикул = "НОВЫЙ_АРТИКУЛ"
ГДЕ Ссылка = &Ссылка;
КОНЕЦ ТРАНЗАКЦИИ;
- Настраивайте ограничения по времени выполнения запросов на сервере
- Ведите журнал выполненных запросов для аудита
Ограничения консоли запросов:
- 📛 Не поддерживаются все возможности стандартного SQL
- 📛 Нет прямого доступа к системным таблицам базы данных
- 📛 Ограниченная поддержка рекурсивных запросов
- 📛 Нет возможности создавать или изменять структуру базы
⚠️ Внимание: В последних версиях 1С (начиная с 8.3.20) появились дополнительные ограничения на выполнение запросов в пользовательском режиме. Некоторые административные функции теперь доступны только в конфигураторе.
Всегда тестируйте изменяющие запросы (UPDATE, DELETE) на копии базы данных перед выполнением на рабочей системе. Даже простая опечатка может привести к необратимым последствиям.
FAQ: Ответы на частые вопросы о консоли запросов 1С
Можно ли в консоли запросов изменять данные?
Да, но с осторожностью. Для этого используются конструкции ОБНОВИТЬ, ДОБАВИТЬ и УДАЛИТЬ. Пример:
ОБНОВИТЬ Справочник.Контрагенты
УСТАНОВИТЬ Комментарий = "Обновлено через консоль"
ГДЕ Ссылка = &СсылкаНаКонтрагента
Важно: такие запросы требуют прав на изменение и лучше выполнять их в транзакциях.
Как выгрузить результаты запроса в Excel?
В консоли запросов нажмите кнопку "Сохранить результаты" и выберите формат XLSX. Альтернативно можно:
- Скопировать результаты в буфер (Ctrl+C)
- Вставить в Excel (Ctrl+V)
- Использовать обработку "Выгрузка данных в Excel" из стандартных поставок
Почему мой запрос выполняется очень долго?
Основные причины:
- Отсутствие индексов на полях в условиях
ГДЕ - Слишком широкий диапазон дат в условиях
- Использование функций над полями в условиях (например,
ГДЕ ГОД(Документ.Дата) = 2026) - Большое количество соединений таблиц
Используйте план выполнения запроса для диагностики.
Можно ли сохранять часто используемые запросы?
Да, несколько способов:
- Сохраняйте тексты запросов в внешние файлы (.txt или .1cq)
- Используйте обработку "Хранилище запросов" (доступна в некоторых конфигурациях)
- Создавайте собственные внешние обработки с часто используемыми запросами
- В последних версиях платформы доступно сохранение истории запросов
Как сравнить данные из двух разных баз?
Прямое сравнение через консоль запросов одной базы невозможно. Альтернативные способы:
- Выгрузите данные из обеих баз в Excel и сравните там
- Используйте внешние инструменты (например, SQL Server Management Studio для MS SQL)
- Напишите обработку на встроенном языке, которая будет подключаться к обеим базам
- Используйте специализированные утилиты сравнения баз 1С