Сохраняем запросы и их результаты из консоли 1С 8.3, чтобы ничего не потерять
Содержание
Консоль запросов сохраняет свои запросы в отдельный файл: в форме обработки есть команда сохранения списка запросов, а открывают его потом командой открытия файла в той же консоли. Результат выполнения сохраняют иначе — через Ещё → Вывести список… в табличный документ, а оттуда в Excel, mxl или PDF. Текст одного запроса проще всего переносить через буфер обмена.
Типичная ситуация: программист неделю отлаживал отчёт по остаткам, закрыл консоль — и при следующем открытии список запросов пуст. Консоль запросов в 1С — это внешняя обработка, а не часть базы. Сама по себе она ничего не помнит между сеансами, пока вы явно не сохраните запросы в файл.
Что именно хранит консоль и почему запросы пропадают
Консоль запросов для 1С 8.3 — внешняя обработка (файл .epf). Её открывают в рабочей базе через главное меню: ≡ → Файл → Открыть. Платформа не встраивает её в конфигурацию, поэтому всё, что вы набрали, живёт только в памяти открытой формы.
Что можно сохранить из консоли:
- 📄 список запросов — тексты всех запросов из дерева слева, обычно вместе с их параметрами;
- 📊 результат выполнения — таблицу или дерево, которые вернул запрос;
- ✂️ текст одного запроса — чтобы вставить его в модуль, письмо или задачу;
- 🕘 промежуточные версии — если хотите вернуться к варианту, который работал вчера.
Для каждого из этих случаев свой способ. Путать их не стоит: файл запросов не содержит результата, а табличный документ с результатом не содержит текста запроса.
Консолей существует несколько: стандартная обработка с диска ИТС, «Инструменты разработчика», самописные варианты. Названия команд в них разные, а логика одна — сохранить «пакет» запросов в файл и открыть его потом. Ниже описано то, что работает в большинстве консолей для управляемых форм.
Как сохранить запросы консоли в файл
Это основной способ, и его стоит сделать привычкой.
- Откройте консоль и наберите или отладьте запросы. Каждому дайте понятное имя в дереве: «Остатки по складам», «Проверка дублей контрагентов».
- Найдите в командной панели формы команду сохранения. Обычно это кнопка с дискетой или пункт «Сохранить» / «Сохранить как» в меню
Ещё. - Если файл ещё не выбран, консоль откроет стандартный диалог Windows. Укажите папку и имя файла. Расширение предлагает сама обработка — не меняйте его, иначе она может не узнать файл при открытии.
- Нажмите «Сохранить». Дальше команда «Сохранить» будет перезаписывать тот же файл без вопросов.
Несколько правил, которые избавят от потерь:
- 📁 Держите файлы запросов вне временных папок. Хорошее место — отдельный каталог проекта, например
D:\1C\Запросы\или папка в репозитории с конфигурацией. - 🏷️ Один файл — одна задача. Файл «всё подряд» на 80 запросов через месяц никто не разберёт.
- 💾 Сохраняйте перед каждым закрытием формы и перед выполнением тяжёлого запроса. Если зависнет клиент, несохранённые правки пропадут.
Закрытие формы консоли без сохранения стирает все несохранённые запросы. Часть обработок спрашивает подтверждение, часть закрывается молча.
Как сохранить результат выполнения запроса
Результат в консоли обычно выводится в таблицу формы. У любой таблицы управляемой формы в 1С 8.3 есть стандартная команда платформы Ещё → Вывести список…. Она работает и в консоли.
Порядок действий:
- Выполните запрос и дождитесь результата.
- Встаньте курсором в таблицу результата.
- Нажмите
Ещё → Вывести список…. - В окне настроек отметьте нужные колонки и выберите вывод в табличный документ.
- Откроется отдельное окно с табличным документом. Нажмите кнопку сохранения (дискета) или
Ctrl+S. - Выберите тип файла и место сохранения.
Какой формат брать:
| Формат | Когда подходит | На что смотреть |
|---|---|---|
.xlsx | Передать бухгалтеру, свести в Excel | Даты и числа обычно переносятся как значения, но проверьте разделители |
.mxl | Открыть позже в 1С без потерь оформления | Открывается через Файл → Открыть в 1С или в бесплатной программе просмотра от 1С |
.pdf | Приложить к письму или задаче как «снимок» | Редактировать уже нельзя |
.txt / .csv | Загрузить в другую программу, сравнить результаты | Ссылки превращаются в текстовые представления |
Если результат — дерево (запрос с ИТОГИ), «Вывести список
» выгрузит его с иерархией. Для анализа в Excel надёжнее убрать итоги и выполнить запрос плоской таблицей.
Ссылки в результате (контрагенты, номенклатура) после выгрузки превращаются в строки. Если результат нужен для обратной загрузки в 1С, добавьте в запрос код или ИНН — по названию сопоставлять ненадёжно.
Текст запроса через буфер обмена и Конструктор
Иногда нужен не весь файл, а один запрос: вставить в модуль, отправить коллеге, сохранить в задаче. Тут работает обычный буфер обмена.
Из консоли наружу:
- Щёлкните в поле текста запроса.
Ctrl+A— выделить всё,Ctrl+C— скопировать.- Вставьте текст в блокнот, мессенджер или трекер.
Из модуля в консоль — главный приём практика. Текст запроса в модуле записан с вертикальными чертами | в начале строк и удвоенными кавычками. В таком виде консоль его не выполнит. Чистить вручную долго.
Быстрый путь через Конфигуратор:
- В модуле поставьте курсор внутрь строки с текстом запроса.
- Правой кнопкой мыши —
Конструктор запроса…. - Конструктор откроется с разобранным запросом. Перейдите на вкладку с текстом запроса или нажмите кнопку просмотра текста — вы увидите чистый текст без
|. - Скопируйте его и вставьте в консоль.
Из консоли в модуль — обратный путь. В модуле наберите Запрос.Текст = "";, поставьте курсор между кавычками, вызовите Конструктор запроса…, вставьте текст и нажмите ОК. Конструктор сам расставит | и удвоит кавычки.
Если в тексте есть параметры &Дата, &Организация, буфер их не «переносит» — только имена. Значения параметров придётся задать заново в консоли или в коде.
Ещё одна мелочь. При вставке из Word или почты в текст могут попасть «ёлочки» и неразрывные пробелы. Консоль тогда выдаст синтаксическую ошибку в месте, где всё выглядит правильно. Вставляйте через блокнот или перенабирайте кавычки.
История запросов: как вернуться ко вчерашней версии
Стандартная консоль не ведёт журнал правок отдельного запроса. Перезаписали текст и сохранили файл — прошлый вариант исчез. Историю приходится выстраивать самому.
Рабочие способы:
- 📑 Копия запроса в дереве. Перед серьёзной переделкой скопируйте запрос в дереве и назовите копию «Остатки — v2». Старая версия останется рядом.
- 🗂️ Файлы с датой в имени. «Сохранить как» с именем
Остатки_2026-10-07перед крупными изменениями. Через неделю видно, что и когда менялось. - 🌿 Git. Если файлы запросов лежат в репозитории, каждый коммит — точка возврата. Файл запросов обычно текстовый (XML или внутренний формат 1С), поэтому разница между версиями видна в обычном просмотре изменений.
- 📝 Комментарии в тексте. Запрос 1С понимает комментарии
//. Запишите прямо в текст, что менялось и почему:// убрал отбор по складу — дублировал строки.
Сторонние консоли, например из набора «Инструменты разработчика», умеют хранить историю выполненных запросов автоматически. Если вы много работаете с запросами, это весомый довод в их пользу. Но и там история хранится у конкретного пользователя на конкретном компьютере — для команды файл в общем репозитории надёжнее.
Как загрузить сохранённые запросы обратно в консоль
- Откройте консоль в нужной базе.
- В командной панели найдите команду открытия файла (значок папки или «Открыть» в меню
Ещё). - Выберите сохранённый файл. Список запросов в дереве заменится содержимым файла.
- Проверьте параметры: перед выполнением откройте вкладку или таблицу параметров и убедитесь, что значения на месте.
- Выполните запрос.
На что смотреть после загрузки:
- 🔗 Ссылки в параметрах. Если параметр — ссылка на конкретного контрагента или склад, в другой базе такой ссылки нет. Параметр придётся выбрать заново.
- 🧩 Метаданные. Запрос из ERP не выполнится в Бухгалтерии: другие имена справочников и регистров. Консоль покажет ошибку «Таблица не найдена» с именем таблицы.
- 🔄 Другая консоль. Файл, сохранённый одной обработкой, другая может не открыть: форматы у них разные. Тогда переносите текст через буфер обмена.
| из модуля или «ёлочки» из Word. Прогоните текст через Конструктор запроса.Сохранение в тонком, толстом и веб-клиенте
Способ сохранения зависит от того, в каком режиме вы запустили 1С и для какого интерфейса написана консоль.
| Режим запуска | Какая консоль откроется | Особенности сохранения |
|---|---|---|
| Тонкий клиент | Только на управляемых формах | Обычный диалог сохранения, файл пишется на ваш компьютер |
| Толстый клиент, обычное приложение | Старая консоль на обычных формах | Файл пишется на ваш компьютер; в «Такси» такая консоль не откроется |
| Веб-клиент | Только на управляемых формах | Файл скачивается через браузер; может понадобиться расширение для работы с файлами |
Ещё три момента:
- 🛡️ Предупреждение безопасности. В современных версиях платформы при открытии внешней обработки 1С показывает предупреждение. Его нужно подтвердить, иначе консоль не откроется.
- 🔐 Права. Пользователю нужно право на интерактивное открытие внешних обработок. В типовых конфигурациях на БСП оно обычно есть у роли полных прав.
- 🖥️ Терминальный сервер. Если 1С работает через RDP, «ваш компьютер» — это сервер. Файл запросов окажется в профиле на сервере, а не на локальном диске. Укажите путь к сетевой папке или к проброшенному диску.
Старую консоль на обычных формах в тонком клиенте не запустить. Если вы перешли на «Такси», скачайте консоль для управляемых форм и перенесите в неё запросы через буфер обмена.
Как сохранить запрос и результат из кода
Когда один и тот же запрос нужно выгружать регулярно, консоль уже не нужна. Текст запроса и результат можно сохранить программно — во внешней обработке или в регламентном задании.
Пример ниже выполняется на сервере: записывает текст запроса в файл и выгружает результат в CSV с разделителем «точка с запятой», который Excel открывает без мастера импорта.
&НаСервере
Процедура ВыгрузитьЗапросИРезультат(Каталог)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| НЕ Контрагенты.ПометкаУдаления";
// 1. Текст запроса — в отдельный файл
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.УстановитьТекст(Запрос.Текст);
ТекстДок.Записать(Каталог + "\query.txt", КодировкаТекста.UTF8);
// 2. Результат — в CSV
Таблица = Запрос.Выполнить().Выгрузить();
Запись = Новый ЗаписьТекста(Каталог + "\result.csv", КодировкаТекста.UTF8);
Заголовок = Новый Массив;
Для Каждого Колонка Из Таблица.Колонки Цикл
Заголовок.Добавить(Колонка.Имя);
КонецЦикла;
Запись.ЗаписатьСтроку(СтрСоединить(Заголовок, ";"));
Для Каждого СтрокаТЗ Из Таблица Цикл
Значения = Новый Массив;
Для Каждого Колонка Из Таблица.Колонки Цикл
Значение = СтрЗаменить(Строка(СтрокаТЗ[Колонка.Имя]), ";", ",");
Значения.Добавить(Значение);
КонецЦикла;
Запись.ЗаписатьСтроку(СтрСоединить(Значения, ";"));
КонецЦикла;
Запись.Закрыть();
КонецПроцедуры
Что важно знать про этот код:
- 📍 Файлы появятся на сервере 1С, а не у пользователя. В файловой базе это один и тот же компьютер, в клиент-серверной — нет. Каталог должен существовать, и у пользователя, под которым работает сервер, должны быть права на запись.
- 🔤
СтрСоединитьесть в платформе с версии 8.3.6, на более ранних используйте сложение строк в цикле. - 📦 Если нужен файл Excel с оформлением, выведите результат в табличный документ (через систему компоновки данных) и сохраните его методом
Записатьс типомТипФайлаТабличногоДокумента.XLSX.
Для запросов, которые хранятся «под рукой» у конкретного пользователя, есть ещё вариант — хранилище общих настроек. Текст сохраняют вызовом ХранилищеОбщихНастроек.Сохранить("МоиЗапросы", "Остатки", ТекстЗапроса), а читают через ХранилищеОбщихНастроек.Загрузить("МоиЗапросы", "Остатки"). Такие запросы переживут переустановку клиента, потому что лежат в базе, а не на диске.
Частые вопросы
Можно ли сохранить запрос прямо в базе, а не в файле?
Почему в Excel даты превратились в текст?
Сколько строк можно вывести через «Вывести список»?
Подходит ли файл запросов для другой базы?
Как сохранить запрос с временными таблицами?
ПОМЕСТИТЬ и разделителями ;. Отдельно сохранять временные таблицы не нужно — они создаются заново при каждом выполнении.