Выгрузка вариантов и настроек отчётов 1С 8.3 в XML и перенос в другую базу
Содержание
Кнопки «сохранить настройки отчёта в файл» в типовом интерфейсе 1С 8.3 нет. Команда Ещё → Сохранить вариант отчета пишет настройки в информационную базу, а не на диск. В файл можно сохранить три разных вещи: готовый результат отчёта (.mxl, .xlsx, .pdf), сами настройки компоновки (XML через СериализаторXDTO) или схему отчёта вместе с вариантами (внешний отчёт .erf или выгрузка конфигурации в файлы).
Какой способ выбрать, зависит от задачи. Нужно отправить таблицу бухгалтеру — сохраняйте результат. Нужно перенести настроенный вариант в другую базу — выгружайте XML или справочник вариантов. Нужно, чтобы вариант был во всех базах сразу — правьте схему в Конфигураторе. Всё ниже — про платформу 8.3 с интерфейсом «Такси» и типовые конфигурации на БСП: БП 3.0, ЗУП 3.1, УТ 11.
Что именно хранит 1С: форматы файлов и места хранения настроек
Путаница начинается с того, что словом «настройки» называют разные объекты. Разведём их сразу.
| Что сохраняем | Где живёт в базе | В какой файл можно выгрузить | Чем открыть |
|---|---|---|---|
| Результат отчёта (таблица с цифрами) | нигде, формируется заново | .mxl, .xlsx, .xls, .ods, .pdf, .docx, .html, .txt | 1С, Excel, браузер |
| Пользовательские настройки (период, отборы, которые вы меняли) | хранилище пользовательских настроек | напрямую — никуда | только из 1С |
| Вариант отчёта (группировки, поля, оформление) | справочник «Варианты отчетов» (БСП) | .xml через код или выгрузку справочника | 1С, любой XML-редактор |
| Схема компоновки данных (запрос + варианты по умолчанию) | макет отчёта в конфигурации | .xml (выгрузка конфигурации в файлы) | Конфигуратор |
| Внешний отчёт целиком | файл на диске | .erf | 1С: Файл → Открыть |
📌 Формат .mxl — это табличный документ 1С. Он хранит результат, но не настройки: открыв его, вы увидите цифры, а пересформировать отчёт из него нельзя.
📌 XML-файл настроек СКД — единственный «чистый» формат именно настроек. Его понимает платформа любой базы, где есть отчёт с такими же полями.
Как сохранить отчёт 1С в файл из формы отчёта
Начнём с самого частого случая: отчёт настроен, сформирован, и его нужно отдать коллеге или приложить к письму.
Сохранение результата
- Сформируйте отчёт кнопкой
Сформировать. - Нажмите значок дискеты в командной панели отчёта или
Ctrl+S. - Выберите тип файла в окне сохранения.
- Укажите папку и имя, нажмите
Сохранить.
Какой формат брать:
- 📊
.xlsx— если с цифрами будут работать дальше в Excel. Группировки отчёта сохраняются как группировки строк. - 📄
.pdf— для отправки «как есть», без правки. - 🗂
.mxl— если получатель тоже работает в 1С. Файл откроется черезФайл → Открытьв любой базе и сохранит расшифровки только как оформление, без перехода к документам.
Если нужно сохранить только часть отчёта, выделите диапазон ячеек, скопируйте и вставьте в Excel. Оформление при этом частично теряется.
Сохранение варианта в базе
Это не файл, но с этого шага начинается любой перенос. Пока вариант не сохранён в базе, выгружать нечего.
- Настройте отчёт через кнопку
Настройки: поля, группировки, отборы, сортировку. - Откройте
Ещё → Сохранить вариант отчета. - Введите название варианта, например «ОСВ по 60 с договорами».
- Выберите, кому он доступен: только вам или всем пользователям.
- Нажмите
Сохранить.
Теперь вариант лежит в справочнике «Варианты отчетов» и его видно через Ещё → Выбрать вариант отчета.
Команда Сохранить настройки (если она есть в меню отчёта) и вариант — разные вещи. Настройки привязаны к пользователю и к варианту. Вариант — самостоятельный объект, его можно передавать.
Перенос настроек отчёта между пользователями одной базы
Отдельный файл здесь не нужен. В конфигурациях на БСП есть встроенный механизм копирования.
Путь в БП 3.0, ЗУП 3.1 и УТ 11: Администрирование → Настройки пользователей и прав → Настройки пользователей.
- Выберите пользователя-источника, у которого отчёт настроен.
- Перейдите на вкладку
Настройки отчетов. - Отметьте нужные отчёты.
- Нажмите
Копироватьи укажите получателей.
Получатель увидит те же отборы и тот же набор колонок при следующем открытии отчёта.
💡 Второй путь проще, если вариант нужен всем: при сохранении варианта выберите доступность всем пользователям. Копировать ничего не придётся.
Работа с внешними отчётами и обработками
У внешнего отчёта (.erf) настройки можно «запечь» прямо в файл. Тогда любой, кто откроет отчёт, получит его уже настроенным.
Как вшить вариант во внешний отчёт
- Откройте файл
.erfв Конфигураторе черезФайл → Открыть. - Откройте макет
ОсновнаяСхемаКомпоновкиДанных. - Перейдите на вкладку
Настройкии задайте группировки, поля и отборы. - При необходимости добавьте ещё варианты на вкладке
Варианты. - Сохраните файл
.erf.
Каждый вариант со вкладки Варианты потом виден в пользовательском режиме через выбор варианта.
Где 1С хранит настройки внешнего отчёта
Если внешний отчёт открыт через Файл → Открыть, его пользовательские настройки хранятся в базе по имени отчёта. Переименуете файл или объект внутри — настройки «потеряются». На деле они остались в базе, просто ключ уже другой.
Если отчёт подключён через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, его варианты живут в справочнике вариантов, как у встроенных отчётов. Это надёжнее: имя файла больше не важно.
Внешнюю обработку (.epf) используют для автоматизации выгрузки настроек — код ниже удобно оформить именно так, без изменения конфигурации.
Сохранение схемы отчёта через Конфигуратор
Этот способ нужен разработчику, когда вариант должен появиться во всех базах при обновлении конфигурации, а не жить в справочнике одной базы.
Выгрузка схемы в XML
- Откройте Конфигуратор.
- Выполните
Конфигурация → Выгрузить конфигурацию в файлы. - Выберите пустую папку.
Схема отчёта окажется в файле вида:
Reports\ИмяОтчета\Templates\ОсновнаяСхемаКомпоновкиДанных\Ext\Template.xml
В этом XML есть и запрос, и все варианты со вкладки Варианты. Файл удобно сравнивать между версиями и хранить в Git.
Как сделать пользовательский вариант типовым
Типичная ситуация: бухгалтер настроил удачный вариант в пользовательском режиме, и его хотят видеть все базы. Порядок такой:
- Выгрузите настройки варианта в XML кодом из раздела про автоматизацию.
- В Конфигураторе откройте схему отчёта, добавьте новый вариант на вкладке
Варианты. - Повторите в нём настройки по образцу XML — поля и отборы видны в тексте файла.
Правьте схему типового отчёта только в расширении конфигурации или в копии отчёта. Изменение типового объекта снимает его с поддержки и усложняет обновления.
Перенос вариантов отчётов в другую базу
Вариантов перенести можно двумя способами. Выбор зависит от того, совпадают ли конфигурации баз.
| Способ | Когда подходит | Риски |
|---|---|---|
| Выгрузка справочника «Варианты отчетов» в XML универсальной обработкой | одинаковые конфигурации и релизы | ссылки в отборах на элементы, которых нет в базе-приёмнике |
Выгрузка настроек в XML через СериализаторXDTO и загрузка в отчёт | разные релизы, нужно перенести 1–10 вариантов | поля, которых нет в схеме приёмника, станут недоступными |
| Ручная настройка по образцу | несколько вариантов, конфигурации разные | только время |
Выгрузка справочника вариантов
Для этого используют универсальную обработку выгрузки и загрузки данных в XML. Она распространяется вместе с поддержкой платформы, отдельно от конфигурации.
- Откройте обработку через
Файл → Открытьв базе-источнике. - В дереве объектов отметьте справочник «Варианты отчетов».
- Задайте отбор, чтобы выгрузить только нужные варианты.
- Выгрузите в файл, затем загрузите его той же обработкой в базе-приёмнике.
Перед загрузкой сделайте резервную копию базы -приёмника. Обработка пишет данные напрямую, без проверок прикладной логики.
Почему «Объект не найден» после переноса
Отбор «Организация = ООО Ромашка» хранит в XML не название, а внутренний идентификатор элемента. В другой базе у той же «Ромашки» идентификатор другой. После загрузки в отборе появится <Объект не найден>.
Лечится просто: откройте настройки варианта и выберите значения отбора заново. Структура, поля и оформление переносятся без потерь.
Автоматизация: пакетное сохранение настроек отчётов кодом
Когда вариантов десятки, руками их не выгрузить. Код ниже проходит по справочнику вариантов и записывает настройки каждого в отдельный XML-файл. Подходит для конфигураций на БСП, где у справочника ВариантыОтчетов есть реквизит Настройки типа «Хранилище значения».
&НаСервереБезКонтекста
Процедура ВыгрузитьВариантыВФайлы(Каталог)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВариантыОтчетов.Наименование КАК Наименование,
| ВариантыОтчетов.Настройки КАК Настройки
|ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетов
|ГДЕ
| НЕ ВариантыОтчетов.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Номер = 0;
Пока Выборка.Следующий() Цикл
Настройки = Выборка.Настройки.Получить();
Если ТипЗнч(Настройки) <> Тип("НастройкиКомпоновкиДанных") Тогда
Продолжить; // у предопределённых вариантов настройки берутся из схемы
КонецЕсли;
Номер = Номер + 1;
ИмяФайла = Каталог + "variant_" + Формат(Номер, "ЧГ=0") + ".xml";
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ИмяФайла);
СериализаторXDTO.ЗаписатьXML(Запись, Настройки, "Settings",
"http://v8.1c.ru/8.1/data-composition-system/settings");
Запись.Закрыть();
КонецЦикла;
КонецПроцедуры
Имена вариантов часто содержат символы, недопустимые в имени файла, поэтому файлы нумеруются. Чтобы не гадать, что где лежит, допишите в цикл вывод соответствия Номер — Наименование в текстовый файл.
Обратная операция — загрузка настроек из файла в открытый отчёт:
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ИмяФайла);
Настройки = СериализаторXDTO.ПрочитатьXML(Чтение, Тип("НастройкиКомпоновкиДанных"));
Чтение.Закрыть();
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Код с директивой &НаСервереБезКонтекста пишет файлы на диск сервера 1С, а не на компьютер пользователя. В клиент-серверной базе путь Каталог должен быть папкой на сервере, к которой у службы 1С есть права записи. Для файловой базы это обычная локальная папка.
💡 Готовый инструмент для разовых задач — «Консоль компоновки данных». Она умеет сохранять схему вместе с настройками в файл и открывать его снова. Удобно, чтобы отладить вариант до переноса в рабочую базу.