Работа в облачных решениях, таких как 1C:Fresh, накладывает определенные технические ограничения на привычные инструменты администратора и разработчика. Одной из частых задач является построение сложного отчета, который объединяет данные из разных источников — например, данные из регистра накопления и дополнительные реквизиты связанного справочника. В типовой «1С:Бухгалтерия 3.0» стандартный Универсальный отчет в обычном режиме работы позволяет выбирать данные только из одного объекта метаданных.
В этой статье мы подробно разберем, как обойти это ограничение, объединить таблицы и получить нужные данные, не прибегая к дорогостоящей доработке конфигурации, даже если вы работаете через веб-клиент или тонкий клиент в облаке.
Это основной лайфхак, который позволяет использовать всю мощь системы компоновки данных внутри стандартного Универсального отчета. Суть метода заключается в том, что интерфейс редактирования запроса (схемы) заблокирован в облаке, но функция загрузки готовой схемы из файла остается доступной.
Шаг 1. Подготовка локальной среды
Поскольку команда Редактировать схему доступна только в режиме Толстого клиента, который в облаках обычно заблокирован, нам потребуется локальная информационная база. Проанализируем ситуацию: нам не обязательно иметь полную копию облачной базы с данными. Достаточно иметь пустую базу той же версии конфигурации (например, БП 3.0) или даже просто среду разработки.
Шаг 2. Создание схемы в толстом клиенте
Запустим локальную базу в режиме Толстого клиента. Откроем Универсальный отчет (его можно найти через меню «Функции для технического специалиста»). Выполним следующие действия:
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Товар,
ЦеныНоменклатурыСрезПоследних.Цена КАК АктуальнаяЦена,
Номенклатура.Артикул КАК Артикул,
Номенклатура.ВидНоменклатуры КАК ТипТовара
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = Номенклатура.Ссылка
Шаг 3. Экспорт и импорт схемы
После того как запрос написан и поля настроены, нам необходимо сохранить результат. В конструкторе СКД выберем опцию выгрузки схемы в XML-файл. Сохраним его на диск под понятным именем.
Теперь вернемся в облачную базу (тонкий клиент). Откроем Универсальный отчет, зайдем в меню Еще и нажмем Загрузить схему из файла. Выберем наш подготовленный XML. Система подменит стандартную логику отчета на наш сложный запрос с соединениями таблиц.
Разберем ситуацию, когда отчет требуется использовать на постоянной основе многим пользователям. Постоянная загрузка XML-файлов — процесс трудоемкий. В современных версиях «1С:Бухгалтерия 3.0» эффективнее использовать механизм расширений.
Проанализируем преимущества этого подхода:
Универсального отчета.Для реализации этого метода необходимо создать в расширении новый объект типа Отчет, вставить туда тот же запрос, который мы рассматривали выше, и настроить систему компоновки данных. После публикации расширения отчет станет штатной частью вашей облачной системы.
Если вам запрещено вносить изменения в структуру базы через расширения, выясним возможности справочника Дополнительные отчеты и обработки. Это стандартный функционал БСП (Библиотеки стандартных подсистем), который работает и в облаках.
.erf) в локальном конфигураторе.Важный нюанс: при разработке внешнего отчета для облака необходимо строго соблюдать требования безопасности: не использовать обращения к файловой системе сервера и не использовать методы, требующие привилегированного режима без явной необходимости.
Рассмотрим современный способ решения задачи без написания кода внутри самой 1С. Облачные версии позволяют включить интерфейс OData (автоматический REST-сервис). Это открывает доступ к таблицам базы для внешних приложений, таких как Microsoft Excel или Power BI.
Проанализируем шаги реализации:
Catalog_Номенклатура и AccumulationRegister_Продажи).Этот метод идеален для бизнес-аналитиков, так как позволяет строить сложные отчеты и диаграммы без привлечения 1С-программиста, используя привычный интерфейс табличных процессоров.
Прежде чем приступать к сложным манипуляциям с XML, проверим, нельзя ли решить задачу стандартными средствами Универсального отчета. В последних версиях БСП разработчики добавили возможность «вытягивать» данные связанных объектов прямо в настройках.
Разберем, как это работает:
Универсальном отчете выберем основной объект (например, Регистр накопления «Продажи»).Номенклатура).Номенклатура (Артикул, Вес, Страна происхождения и т.д.).Таким образом, если ваша задача — просто добавить в отчет по регистру пару колонок из справочника, который в этом регистре указан, то никакое объединение таблиц через запросы не требуется. Система сама выполнит ЛЕВОЕ СОЕДИНЕНИЕ на уровне SQL-запроса при формировании отчета. Это самый простой и надежный способ работы в облаке.
Подведем итог. Выбор метода зависит от сложности вашей задачи:
Помните, что при использовании метода с загрузкой XML-схемы, имена объектов метаданных и полей в вашем запросе должны строго соответствовать именам в облачной конфигурации (именам, а не синонимам), иначе при попытке формирования отчета система выдаст ошибку о недоступности полей.