Как в облачной 1С:Бухгалтерия 3.0 сформировать отчет по нескольким таблицам

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия
← На главную

Работа в облачных решениях, таких как 1C:Fresh, накладывает определенные технические ограничения на привычные инструменты администратора и разработчика. Одной из частых задач является построение сложного отчета, который объединяет данные из разных источников — например, данные из регистра накопления и дополнительные реквизиты связанного справочника. В типовой «1С:Бухгалтерия 3.0» стандартный Универсальный отчет в обычном режиме работы позволяет выбирать данные только из одного объекта метаданных.

В этой статье мы подробно разберем, как обойти это ограничение, объединить таблицы и получить нужные данные, не прибегая к дорогостоящей доработке конфигурации, даже если вы работаете через веб-клиент или тонкий клиент в облаке.

Метод 1. Использование механизма импорта схемы компоновки данных (СКД)

Это основной лайфхак, который позволяет использовать всю мощь системы компоновки данных внутри стандартного Универсального отчета. Суть метода заключается в том, что интерфейс редактирования запроса (схемы) заблокирован в облаке, но функция загрузки готовой схемы из файла остается доступной.

Шаг 1. Подготовка локальной среды

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

Шаг 2. Создание схемы в толстом клиенте

Запустим локальную базу в режиме Толстого клиента. Откроем Универсальный отчет (его можно найти через меню «Функции для технического специалиста»). Выполним следующие действия:

  1. Перейдем в меню Еще и выберем пункт Редактировать схему.
  2. В открывшемся окне конструктора схемы компоновки данных мы можем написать произвольный запрос. Рассмотрим пример запроса, который соединяет данные регистра сведений и справочника:

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Товар,
    ЦеныНоменклатурыСрезПоследних.Цена КАК АктуальнаяЦена,
    Номенклатура.Артикул КАК Артикул,
    Номенклатура.ВидНоменклатуры КАК ТипТовара
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = Номенклатура.Ссылка

Шаг 3. Экспорт и импорт схемы

После того как запрос написан и поля настроены, нам необходимо сохранить результат. В конструкторе СКД выберем опцию выгрузки схемы в XML-файл. Сохраним его на диск под понятным именем.

Теперь вернемся в облачную базу (тонкий клиент). Откроем Универсальный отчет, зайдем в меню Еще и нажмем Загрузить схему из файла. Выберем наш подготовленный XML. Система подменит стандартную логику отчета на наш сложный запрос с соединениями таблиц.

Метод 2. Расширения конфигурации как альтернатива «Универсальному отчету»

Разберем ситуацию, когда отчет требуется использовать на постоянной основе многим пользователям. Постоянная загрузка XML-файлов — процесс трудоемкий. В современных версиях «1С:Бухгалтерия 3.0» эффективнее использовать механизм расширений.

Проанализируем преимущества этого подхода:

Для реализации этого метода необходимо создать в расширении новый объект типа Отчет, вставить туда тот же запрос, который мы рассматривали выше, и настроить систему компоновки данных. После публикации расширения отчет станет штатной частью вашей облачной системы.

Метод 3. Использование механизма «Дополнительные отчеты и обработки»

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

  1. Создадим внешний отчет (файл .erf) в локальном конфигураторе.
  2. Напишем запрос любой сложности, объединяющий регистры, справочники и документы.
  3. Зарегистрируем отчет в облаке через раздел Администрирование — Печатные формы, отчеты и обработки.

Важный нюанс: при разработке внешнего отчета для облака необходимо строго соблюдать требования безопасности: не использовать обращения к файловой системе сервера и не использовать методы, требующие привилегированного режима без явной необходимости.

Метод 4. Доступ через OData и внешние инструменты анализа

Рассмотрим современный способ решения задачи без написания кода внутри самой 1С. Облачные версии позволяют включить интерфейс OData (автоматический REST-сервис). Это открывает доступ к таблицам базы для внешних приложений, таких как Microsoft Excel или Power BI.

Проанализируем шаги реализации:

Этот метод идеален для бизнес-аналитиков, так как позволяет строить сложные отчеты и диаграммы без привлечения 1С-программиста, используя привычный интерфейс табличных процессоров.

Технические нюансы и работа с полями через «Точку»

Прежде чем приступать к сложным манипуляциям с XML, проверим, нельзя ли решить задачу стандартными средствами Универсального отчета. В последних версиях БСП разработчики добавили возможность «вытягивать» данные связанных объектов прямо в настройках.

Разберем, как это работает:

  1. В Универсальном отчете выберем основной объект (например, Регистр накопления «Продажи»).
  2. Нажмем кнопку Настройки, затем перейдем на вкладку Поля и сортировки.
  3. Нажмем Добавить. В дереве доступных полей найдем поле, имеющее тип ссылки (например, Номенклатура).
  4. Раскроем «плюсик» рядом с этим полем. Вы увидите все реквизиты справочника Номенклатура (Артикул, Вес, Страна происхождения и т.д.).

Таким образом, если ваша задача — просто добавить в отчет по регистру пару колонок из справочника, который в этом регистре указан, то никакое объединение таблиц через запросы не требуется. Система сама выполнит ЛЕВОЕ СОЕДИНЕНИЕ на уровне SQL-запроса при формировании отчета. Это самый простой и надежный способ работы в облаке.

Выводы и рекомендации

Подведем итог. Выбор метода зависит от сложности вашей задачи:

Помните, что при использовании метода с загрузкой XML-схемы, имена объектов метаданных и полей в вашем запросе должны строго соответствовать именам в облачной конфигурации (именам, а не синонимам), иначе при попытке формирования отчета система выдаст ошибку о недоступности полей.

← На главную