При работе с крупными прикладными решениями, такими как 1С:ERP Управление предприятием 2.5, разработчики часто сталкиваются с ситуацией, когда название отчета в пользовательском интерфейсе не совпадает с его именем в дереве метаданных. Отчет «Движение ТМЦ и затрат в производстве» — яркий тому пример. Рассмотрим подробно, как обнаружить этот отчет в конфигураторе и правильно извлечь его схему компоновки данных (СКД).
Первоочередная задача — выяснить, как объект называется «на самом деле». В 1С:ERP многие отчеты являются лишь вариантами более общих аналитических панелей. Проанализируем, как получить техническую информацию об объекте непосредственно в режиме «1С:Предприятие».
Если при открытии формы отчета вы используете команду «Информация для технического специалиста» (меню «три точки» в правом верхнем углу) и видите там только ОбщаяФорма.ФормаОтчета, это означает, что фокус программы в данный момент находится на универсальной форме, которая используется для отображения множества различных отчетов. Чтобы добраться до имени самого объекта, воспользуемся следующим алгоритмом:
Как выяснилось в ходе обсуждения, искомый отчет в конфигураторе называется ПроизводственныеЗатраты. Именно этот объект является «контейнером» для всей логики движения ТМЦ.
Теперь, когда мы знаем внутреннее имя ПроизводственныеЗатраты, разберем процесс сохранения схемы в файл по шагам:
ПроизводственныеЗатраты.ОсновнаяСхемаКомпоновкиДанных.Обратите внимание: Поскольку «Движение ТМЦ...» является вариантом, логика формирования данных может быть распределена между несколькими схемами или программно модифицироваться. Чтобы сохранить конкретный макет, откройте его двойным кликом. В открывшемся конструкторе СКД нажмите правой кнопкой мыши на самый верхний элемент дерева (корень схемы) и выберите пункт «Сохранить схему в файл». Файл будет сохранен с расширением .xsd (или .xml в зависимости от версии платформы), и его можно будет открыть в любом другом отчете или консоли СКД.
Проанализируем ситуацию, когда стандартного сохранения макета недостаточно. В сложных отчетах ERP 2.5 схема, хранящаяся в конфигураторе, часто представляет собой лишь «скелет». Основная работа по формированию текста запроса, добавлению временных таблиц и условий происходит программно в модуле объекта.
Рассмотрим процедуру ПриКомпоновкеРезультата, которая находится в модуле объекта отчета. Именно здесь разработчики типовых решений часто динамически меняют текст запроса в зависимости от выбранного варианта отчета или настроек пользователя. Если вам нужна итоговая схема «в сборе» (со всеми подставленными параметрами и текстами запросов), ее лучше извлекать в момент выполнения кода.
Для этого можно воспользоваться отладчиком или внедрить небольшой фрагмент кода для выгрузки схемы непосредственно перед выводом результата:
// Пример перехвата схемы в модуле объекта
Процедура ПриКомпоновкеРезультата(РезультатХороший, ДанныеРасшифровки, СтандартнаяОбработка)
// После всех программных изменений схемы
СхемаДляВыгрузки = ЭтотОбъект.СхемаКомпоновкиДанных;
// Здесь можно программно сохранить схему в XML для анализа
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Temp\FinalSchema.xml");
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СхемаДляВыгрузки);
ЗаписьXML.Закрыть();
КонецПроцедуры
Чтобы эффективно работать с извлеченной схемой отчета ПроизводственныеЗатраты, важно понимать, откуда она черпает данные. Выясним основные источники:
Если ваша задача — не просто сохранить схему, а изменить логику формирования отчета, обязательно загляните в Модуль менеджера данного отчета. В ERP функции подготовки сложных таблиц (запросы к ВТ) часто выносятся именно туда, чтобы их можно было использовать повторно в других механизмах системы.
Мы выяснили, что для сохранения схемы СКД отчета «Движение ТМЦ и затрат в производстве» необходимо выполнить поиск объекта ПроизводственныеЗатраты в конфигураторе. Мы рассмотрели методы поиска через интерфейс и конфигуратор, а также затронули важный аспект программного формирования схемы, который критичен для понимания работы современных конфигураций на базе 1С:ERP.