В практике работы с 1С часто возникают ситуации, когда необходимо модифицировать типовой отчет под специфические нужды бизнеса, но при этом доступ к Конфигуратору ограничен или изменения в основной конфигурации крайне нежелательны. В таких случаях перед специалистом встает задача: как «вытащить» логику типового отчета и превратить его во внешний (файл с расширением .erf, который можно извлечь через распаковщик конфигураций), работая исключительно в пользовательском режиме 1С:Предприятие. В данной статье мы подробно разберем несколько проверенных методов, позволяющих решить эту задачу, а также проанализируем возможные технические ограничения и наличие ошибок в составе расширений.
Этот способ является наиболее эффективным, если отчет построен на базе Системы компоновки данных (СКД). Платформа 1С предоставляет скрытую от обычных пользователей возможность (используя пользовательскую СКД) редактировать и сохранять схему компоновки прямо из интерфейса, если запустить программу в режиме толстого клиента. Рассмотрим этот алгоритм по шагам.
/RunModeOrdinaryApplication или выбрав соответствующий тип клиента в настройках информационной базы..xml.После получения XML-файла схемы, нам достаточно создать в Конфигураторе (или найти готовый шаблон) новый внешний отчет, создать в нем новую СхемаКомпоновкиДанных и нажать «Загрузить из файла». Таким образом, вся логика типового отчета будет перенесена во внешний файл.
Если прямой доступ к редактированию схемы через меню «Ещё» заблокирован или недоступен, мы можем воспользоваться универсальным инструментом — внешней обработкой «Консоль СКД». Этот метод позволяет извлечь схему любого встроенного в метаданные объекта.
Проанализируем процесс работы с консолью:
.xml для последующего использования в качестве внешнего отчета.Преимущество этого метода в том, что консоль позволяет видеть не только основную схему, но и вложенные схемы, а также значения параметров, установленные по умолчанию.
Разберем ситуацию, когда нам не нужно полностью дублировать сложный код отчета, а достаточно перенести его структуру колонок и отборов. Для этого в современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) предусмотрен механизм экспорта вариантов.
В окне изменения варианта отчета (путь: Ещё — Прочее — Изменить вариант) мы можем воспользоваться командой «Сохранить настройки в файл». Полученный файл можно загрузить в аналогичный по структуре отчет в другой базе или использовать его как основу для настройки «Универсального отчета». В современных версиях 1С «Универсальный отчет» умеет работать напрямую с регистрами, документами и справочниками, что позволяет быстро воспроизвести простой типовой отчет без программирования.
Важно понимать, почему метод «Сохранить схему» может выдать пустой результат или некорректные данные. Проанализируем ситуацию: многие сложные типовые отчеты (например, регламентированная отчетность или сложные аналитические блоки в ERP) не хранят окончательную схему в метаданных. Они формируют её «на лету» в модуле объекта перед выводом пользователю.
Посмотрим на пример кода, который делает невозможным простую выгрузку схемы через интерфейс:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; // Отключаем стандартный вывод
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
// Программное изменение текста запроса в зависимости от прав пользователя
Схема.НаборыДанных.НаборДанных1.Запрос = ТекстМоегоСложногоЗапроса;
// Инициализация компоновщика с новой, динамической схемой
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
КонецПроцедуры
В этом случае кнопка «Редактировать схему» покажет нам лишь пустую заготовку (макет-пустышку), которая лежит в конфигурации, но не содержит реальной логики формирования данных. Чтобы обойти это ограничение без Конфигуратора, придется использовать «Консоль запросов» с функцией перехвата временных таблиц, чтобы вручную восстановить текст запроса, который отчет генерирует в памяти.
Для опытных пользователей существует еще один путь. Если включить «Режим технического специалиста» (через Настройки — Параметры), открывается доступ ко всем функциям системы. Рассмотрим, как это помогает:
Резюмируя: выгрузка типового отчета без Конфигуратора возможна в 80% случаев через режим толстого клиента и сохранение схемы СКД. Однако для сложных отчетов, использующих программную доработку схемы в модуле объекта, потребуется более глубокий анализ запросов через внешние консоли.