Как выгрузить типовой отчет из 1С и сделать его внешним без использования Конфигуратора?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В практике работы с 1С часто возникают ситуации, когда необходимо модифицировать типовой отчет под специфические нужды бизнеса, но при этом доступ к Конфигуратору ограничен или изменения в основной конфигурации крайне нежелательны. В таких случаях перед специалистом встает задача: как «вытащить» логику типового отчета и превратить его во внешний (файл с расширением .erf, который можно извлечь через распаковщик конфигураций), работая исключительно в пользовательском режиме 1С:Предприятие. В данной статье мы подробно разберем несколько проверенных методов, позволяющих решить эту задачу, а также проанализируем возможные технические ограничения и наличие ошибок в составе расширений.

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

Этот способ является наиболее эффективным, если отчет построен на базе Системы компоновки данных (СКД). Платформа 1С предоставляет скрытую от обычных пользователей возможность (используя пользовательскую СКД) редактировать и сохранять схему компоновки прямо из интерфейса, если запустить программу в режиме толстого клиента. Рассмотрим этот алгоритм по шагам.

  1. Запуск системы: Нам необходимо запустить базу в режиме Толстого клиента. Это можно сделать через настройки в стартере 1С, указав в параметрах запуска команду /RunModeOrdinaryApplication или выбрав соответствующий тип клиента в настройках информационной базы.
  2. Открытие отчета: Найдем в интерфейсе нужный нам типовой отчет и сформируем его.
  3. Переход в режим редактирования: В окне отчета нажмем кнопку «Ещё» (или правую кнопку мыши в области настроек), перейдем в подменю «Прочее» и выберем пункт «Редактировать схему».
  4. Сохранение XML-файла: Перед нами откроется окно встроенного конструктора схемы компоновки данных. На первой же закладке в нижнем левом углу расположена кнопка «Сохранить». Нажав на нее, мы сможем сохранить структуру отчета (запросы, поля, группировки) в файл формата .xml.

После получения XML-файла схемы, нам достаточно создать в Конфигураторе (или найти готовый шаблон) новый внешний отчет, создать в нем новую СхемаКомпоновкиДанных и нажать «Загрузить из файла». Таким образом, вся логика типового отчета будет перенесена во внешний файл.

Метод 2: Работа через «Консоль системы компоновки данных»

Если прямой доступ к редактированию схемы через меню «Ещё» заблокирован или недоступен, мы можем воспользоваться универсальным инструментом — внешней обработкой «Консоль СКД». Этот метод позволяет извлечь схему любого встроенного в метаданные объекта.

Проанализируем процесс работы с консолью:

  1. Запустим внешнюю обработку «Консоль СКД» в пользовательском режиме.
  2. Воспользуемся функцией «Загрузить схему из метаданных». В открывшемся дереве объектов конфигурации выберем интересующий нас отчет.
  3. После загрузки мы увидим полный текст запроса и все настройки компоновки. Теперь схему можно выгрузить в файл .xml для последующего использования в качестве внешнего отчета.

Преимущество этого метода в том, что консоль позволяет видеть не только основную схему, но и вложенные схемы, а также значения параметров, установленные по умолчанию.

Способ 3: Экспорт настроек и использование «Универсального отчета»

Разберем ситуацию, когда нам не нужно полностью дублировать сложный код отчета, а достаточно перенести его структуру колонок и отборов. Для этого в современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) предусмотрен механизм экспорта вариантов.

В окне изменения варианта отчета (путь: Ещё — Прочее — Изменить вариант) мы можем воспользоваться командой «Сохранить настройки в файл». Полученный файл можно загрузить в аналогичный по структуре отчет в другой базе или использовать его как основу для настройки «Универсального отчета». В современных версиях 1С «Универсальный отчет» умеет работать напрямую с регистрами, документами и справочниками, что позволяет быстро воспроизвести простой типовой отчет без программирования.

Ограничение метода: Программная модификация схемы

Важно понимать, почему метод «Сохранить схему» может выдать пустой результат или некорректные данные. Проанализируем ситуацию: многие сложные типовые отчеты (например, регламентированная отчетность или сложные аналитические блоки в ERP) не хранят окончательную схему в метаданных. Они формируют её «на лету» в модуле объекта перед выводом пользователю.

Посмотрим на пример кода, который делает невозможным простую выгрузку схемы через интерфейс:


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь; // Отключаем стандартный вывод
    Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    // Программное изменение текста запроса в зависимости от прав пользователя
    Схема.НаборыДанных.НаборДанных1.Запрос = ТекстМоегоСложногоЗапроса;
    
    // Инициализация компоновщика с новой, динамической схемой
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
КонецПроцедуры

В этом случае кнопка «Редактировать схему» покажет нам лишь пустую заготовку (макет-пустышку), которая лежит в конфигурации, но не содержит реальной логики формирования данных. Чтобы обойти это ограничение без Конфигуратора, придется использовать «Консоль запросов» с функцией перехвата временных таблиц, чтобы вручную восстановить текст запроса, который отчет генерирует в памяти.

Дополнительные возможности: Режим технического специалиста

Для опытных пользователей существует еще один путь. Если включить «Режим технического специалиста» (через Настройки — Параметры), открывается доступ ко всем функциям системы. Рассмотрим, как это помогает:

Резюмируя: выгрузка типового отчета без Конфигуратора возможна в 80% случаев через режим толстого клиента и сохранение схемы СКД. Однако для сложных отчетов, использующих программную доработку схемы в модуле объекта, потребуется более глубокий анализ запросов через внешние консоли.

← На главную