Первый шаг в 1С — абсолютно бесплатно.

📋 Консоль запросов

1. Для чего нужна Консоль запросов

Консоль запросов — главный инструмент программиста, аналитика и администратора 1С для составления, отладки и проверки выполнения SQL-подобных запросов к базе данных 1С без проведения изменений в конфигураторе и перезапуска базы.

Основные задачи:

*Быстрая проверка корректности текста запроса и полученных данных.

*Отладка сложных пакетных запросов и просмотр содержимого временных таблиц.

*Анализ производительности (замер времени выполнения запросов).

*Подбор параметров типов Граница, МоментВремени, ТаблицаЗначений и ссылочных типов.

*Экспорт и импорт списков запросов (в файл .sel) для передачи коллегам или сохранения на будущее.

 

Файл ConsSel_Managed_8_2.epf — это официальная внешняя обработка «Консоль запросов для управляемого приложения» платформы «1С:Предприятие 8.2».

Где скачать ConsSel_Managed_8_2.epf

Обратите внимание: файл можно свободно запускать и на платформе 1С:Предприятие 8.3 в режиме совместимости или в управляемом режиме.
Также данную обработку можно найти на

джиске ИТС / Учебные материалы 1С: Поставляется в папке 11C_Comp/Subst82/Tools/ConsoleQuery/ (или аналогичных директориях с утилитами разработчика) на дисках и образцах баз.

2. Основные возможности и особенности версии для управляемых форм

*Работа в Тонком, Веб и Толстом клиенте: В отличие от обычных форм, под управлением которых консоли запускались только в толстом клиенте, эта обработка адаптирована под управляемый интерфейс и клиент-серверную архитектуру.

*Конструктор запросов: Доступен при запуске обработки в режиме Толстого клиента (управляемое приложение) через контекстное меню поля ввода текста.

*Пакетные запросы и временные таблицы: Позволяет выполнять несколько запросов за один сеанс и визуализировать результаты промежуточных временных таблиц (МенеджерВременныхТаблиц).

*Удобная работа с параметрами: Автоматическое заполнение списка параметров при изменении текста запроса (кнопка «Заполнить параметры»).

3. Как пользоваться обработкой (Пошаговое руководство)

 

Шаг 1. Открытие в 1С

*Запустите информационную базу в режиме «1С:Предприятие».

*Нажмите Главное меню $\rightarrow$ Файл $\rightarrow$ Открыть... (или нажмите Ctrl + O).

*Выберите файл ConsSel_Managed_8_2.epf.

(Если платформа запросит подтверждение безопасности при открытии внешней обработки — нажмите «Открыть»).

 

Шаг 2. Создание и написание запроса

*В левой части окна нажмите кнопку Добавить (+), чтобы создать новый запрос в дереве списков. Задайте ему понятное имя (например, «Проверка остатков товаров»).

*В правом верхнем поле (текстовое поле запроса) введите текст запроса на языке 1С.

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

 

Шаг 3. Установка параметров

*Если в запросе используются параметры (символ &, например ГДЕ Номенклатура = &НашаНоменклатура), нажмите кнопку Заполнить параметры над таблицей параметров.

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

 

Шаг 4. Выполнение и анализ

*Нажмите кнопку Выполнить (или клавишу F9).

*В нижнем окне (табличный документ) отобразится результат выборки.

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

 

Шаг 5. Сохранение результатов

*Чтобы сохранить дерево отлаженных запросов, нажмите Сохранить список запросов (иконка дискеты) — создастся файл с расширением .sel.

*Впоследствии его можно загрузить через кнопку Открыть список запросов.

📋 Запросы в 1С 8.3

Что такое запрос в 1С 8.3

1.1. Определение и назначение

Запрос в 1С 8.3 — это специальное средство встроенного языка, предназначенное для чтения и выборки данных из базы данных без возможности их непосредственного изменения.

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

1.2. Ключевые компоненты механизма запросов

*Язык запросов: декларативный язык деклараций (что нужно получить, а не как это сделать).

*Объект Запрос: объект встроенного языка, который хранит текст запроса, параметры и выполняет обращение к БД.

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

*Результат запроса (РезультатЗапроса): таблица или выборка данных, полученная после выполнения.

Глава 2. Архитектура и программная реализация запроса

Чтобы выполнить запрос в коде 1С, используется стандартный шаблон работы с объектом Запрос.

2.1. Шаги выполнения запроса в 1С

*Создание экземпляра объекта Запрос.

*Задание текста запроса (Запрос.Текст = "...").

*Установка параметров (Запрос.УстановитьПараметр(...)).

* Выполнение запроса (Запрос.Выполнить()).

*Обход результатов (через ВыборкаДетальныеЗаписи или выгрузку в ТаблицуЗначений).

 

2.2. Базовый пример кода

// 1. Создаем объект

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

// 2. Пишем текст запроса

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

ВЫБРАТЬ

|Товары.Ссылка КАК Товар,

|Товары.Артикул КАК Артикул,

|Товары.Цена КАК Цена

|ИЗ

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

|ГДЕ

|Товары.Услуга = ЛОЖЬ";

// 3. Выполняем и обходим результат

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

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

Пока Выборка.Следующий() Цикл

Сообщить("Товар: " + Выборка.Товар + ", Цена: " + Выборка.Цена);

КонецЦикла;

Глава 3. Классификация и виды запросов в 1С 8.3

Запросы в платформе 1С можно классифицировать по архитектуре, используемым таблицам и способу обработки данных.

3.1. По структуре выполнения

*Простые (однотабличные / многотабличные) запросы

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

*Пакетные запросы

Состоят из нескольких запросов, разделенных символом ;. Выполняются последовательно за одно обращение к серверу БД, что повышает производительность.

*Вложенные запросы

Запросы, находящиеся внутри секции ИЗ или ГДЕ другого (родительского) запроса.

 

3.2. По типу используемых таблиц

*Запросы к реальным таблицам

Обращаются напрямую к физическим таблицам базы данных (справочники, документы, константы, регистры).

*Запросы к виртуальным таблицам

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

Примеры: РегистрНакопления.Остатки.Остатки(), РегистрНакопления.Продажи.Обороты().

 

3.3. По типу работы с временными данными

Запросы с временными таблицами (МЕНЕДЖЕР ВРЕМЕННЫХ ТАБЛИЦ).

Позволяют сохранить intermediate-результат запроса во временную таблицу в оперативной памяти/БД для повторного использования в рамках пакета.

Глава 4. Подробные примеры различных видов запросов

Пример 1: Запрос к виртуальной таблице с параметрами Получение остатков товаров на складе на определенную дату:

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

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

ВЫБРАТЬ

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

|Остатки.Склад КАК Склад,

|Остатки.КоличествоОстаток КАК Количество

|ИЗ

|РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки";

Запрос.УстановитьПараметр("Период", ТекущаяДата());

Запрос.УстановитьПараметр("Склад", ВыбранныйСклад);

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

Пример 2: Пакетный запрос с временными таблицами

Сначала отбираем список активных клиентов во временную таблицу, затем получаем их заказы:

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

Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

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

ВЫБРАТЬ

|Покупатели.Ссылка КАК Контрагент

|ПОМЕСТИТЬ ВТ_АктивныеКлиенты

|ИЗ

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

|ГДЕ

|Покупатели.НеДействителен = ЛОЖЬ

|;

|

|ВЫБРАТЬ

|Заказы.Ссылка КАК Заказ,

|Заказы.СуммаДокумента КАК Сумма,

|Заказы.Контрагент КАК Контрагент

|ИЗ

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

|ГДЕ

|Заказы.Контрагент В

|(ВЫБРАТЬ

|ВТ.Контрагент

|ИЗ

|ВТ_АктивныеКлиенты КАК ВТ)";

Результат = Запрос.ВыполнитьПакет(); // Возвращает массив результатов

Пример 3: Запрос с группировкой и агрегатными функциями

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

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

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

ВЫБРАТЬ

|Продажи.Контрагент КАК Контрагент,

|СУММА(Продажи.СуммаОборот) КАК ОбщаяСумма,

|КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.ДокументПродажи) КАК КоличествоСделок

|ИЗ

|РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК Продажи

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

|Продажи.Контрагент

|ИМЕЮЩИЕ

|СУММА(Продажи.СуммаОборот) >= 100000";

Глава 5. Важные конструкции и операторы языка запросов

*ПОЛНОЕ / ЛЕВОЕ / ПРАВОЕ / ВНУТРЕННЕЕ СОЕДИНЕНИЕ — соединение нескольких таблиц по ключу.

*ОБЪЕДИНИТЬ [ВСЕ] — объединение результатов нескольких запросов в один список.

*ВЫБРАТЬ ПЕРВЫЕ N — ограничение количества выбираемых записей.

*ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ — условные выражения внутри запроса.

*ИТОГИ ... ПО ... — получение иерархических итов или группировок для отчетов.

Глава 6. Рекомендации и лучшие практики написания запросов в 1С

*Используйте параметры виртуальных таблиц: Всегда накладывайте условия на даты и разрезы в параметрах виртуальной таблицы Остатки(&Период, Склад = &Склад), а не в секции ГДЕ. Это значительно ускоряет работу БД.

*Избегайте обращений через точку в секции ГДЕ: Выражения вида ГДЕ Документ.Контрагент.Город = "Москва" приводят к неявным соединением таблиц и замедляют выполнение.

*Предпочитайте временные таблицы вложенным запросам: Временные таблицы лучше оптимизируются СУБД (например, MS SQL Server) и упрощают отладку кода.

*Используйте Конструктор запросов: Инструмент помогает избежать синтаксических ошибок и наглядно показывает связи между таблицами.