Внешний отчёт для 1С 8.3 своими руками: разработка, подключение и перенос в рабочую базу

· 9 мин

Содержание

Сторонний отчёт в 1С 8.3 делают в конфигураторе: Файл → Новый → Внешний отчет, затем основная схема компоновки данных с запросом, и сохраняют файл .erf. Чтобы им пользовались бухгалтеры, его подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Для конфигурации ничего снимать с поддержки не нужно.

Частое заблуждение: «сторонний отчёт — это обязательно доработка типовой конфигурации». Нет. Внешний отчёт живёт отдельным файлом, обновления конфигурации его не затирают. А выгрузить или отключить его можно за минуту.

Подготовка: что нужно до первой строки запроса

Сначала сформулируйте задачу на бумаге. Отчёт без чёткого ТЗ переделывают по три раза.

📌 Ответьте себе на вопросы:

  • 🎯 Какие показатели нужны в колонках: количество, сумма, остаток, оборот?
  • 🧩 Какие группировки в строках: контрагент, номенклатура, подразделение, месяц?
  • 🗓 Какие отборы и параметры: период, организация, склад?
  • 📊 Откуда брать данные: регистр накопления, регистр бухгалтерии , табличная часть документа?

Инструменты:

  1. Платформа 1С 8.3 с установленным конфигуратором. Версия платформы для разработки — та же, что в рабочей базе: файл, сохранённый более новой платформой, у старых клиентов может не открыться.
  2. Учётная запись с правами администратора в информационной базе.
  3. Копия рабочей базы для разработки. Её можно развернуть из выгрузки .dt или из резервной копии файловой базы.

Не отлаживайте запросы на рабочей базе в часы работы бухгалтерии. Тяжёлый запрос без отборов по периоду может минутами нагружать сервер и мешать остальным.

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

Внешний или встроенный отчёт: что выбрать

Отчёт можно сделать двумя способами: внешним файлом или объектом внутри конфигурации (напрямую или через расширение).

ВариантКогда подходитМинусы и риски
Внешний отчёт .erfРазовая или узкая задача, типовая конфигурация на поддержке, отчёт нужен быстроФайл надо хранить и передавать; в безопасном режиме нельзя работать с файлами и внешними ресурсами
Отчёт в расширении .cfeОтчёт нужен постоянно, требуется своя роль или место в разделе менюРасширение надо проверять после каждого обновления конфигурации
Отчёт в основной конфигурацииКонфигурация уже снята с поддержки и дорабатываетсяУсложняет обновление: изменения придётся сравнивать и объединять

Для типовых БП 3.0, ЗУП 3.1 и УТ 11 обычно начинают с внешнего отчёта. Если он прижился и им пользуются каждый день, его переносят в расширение.

Как сделать сторонний отчёт в конфигураторе: пошагово

Разберём пример: продажи за период по контрагентам и номенклатуре из документов реализации БП 3.0.

Шаг 1. Создайте файл отчёта

  1. Запустите конфигуратор на копии базы.
  2. Выберите Файл → Новый, в списке — «Внешний отчет ».
  3. В окне отчёта заполните «Имя» латиницей или кириллицей без пробелов, например ПродажиПоКонтрагентам, и «Синоним» — то, что увидит пользователь.

Шаг 2. Добавьте основную схему компоновки данных

  1. Рядом с полем «Основная схема компоновки данных» нажмите кнопку «Открыть схему».
  2. Конфигуратор предложит создать макет — согласитесь, тип «Схема компоновки данных».
  3. В схеме нажмите «Добавить набор данных — запрос».
  4. Откройте конструктор запроса или вставьте текст запроса вручную.

Пример запроса:

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

Шаг 3. Настройте ресурсы и параметры

  1. На вкладке «Ресурсы» добавьте Количество и Сумма — СКД будет суммировать их в итогах групп.
  2. На вкладке «Параметры» появятся НачалоПериода и КонецПериода. Для КонецПериода укажите в колонке «Выражение» КонецПериода(&КонецПериода, "День"), иначе документы последнего дня после 00:00 не попадут в выборку.
  3. Снимите у параметров флажок ограничения доступности, чтобы пользователь мог менять период.

Шаг 4. Соберите структуру отчёта

  1. Вкладка «Настройки» → в структуре добавьте группировку по полю Контрагент, внутрь неё — детальную группировку по Номенклатура.
  2. На вкладке «Выбранные поля» отметьте Количество и Сумма.
  3. На вкладке «Параметры» внутри настроек отметьте период флажком «Включать в пользовательские настройки». Тогда он появится в шапке отчёта.

Шаг 5. Добавьте вычисляемые поля, если нужно

Показатели, которых нет в базе, считают прямо в схеме. Вкладка «Вычисляемые поля» → добавьте поле СредняяЦена с выражением:

ВЫБОР КОГДА Количество = 0 ТОГДА 0 ИНАЧЕ Сумма / Количество КОНЕЦ

На вкладке «Ресурсы» задайте для него то же выражение через агрегатные функции: ВЫБОР КОГДА Сумма(Количество) = 0 ТОГДА 0 ИНАЧЕ Сумма(Сумма) / Сумма(Количество) КОНЕЦ. Иначе в итоге группы средние цены просто сложатся, и цифра получится бессмысленной.

Пример: 10 штук на 1 000 руб. и 30 штук на 4 500 руб. Средняя по группе — 5 500 / 40 = 137,50 руб., а не 100 + 150 = 250.

Шаг 6. Сохраните файл

Файл → Сохранить как → имя ПродажиПоКонтрагентам.erf. Форму отчёта рисовать не обязательно: платформа построит стандартную, а в конфигурациях на БСП подставится привычная форма отчёта с кнопкой «Настройки».

Подключение стороннего отчёта и проверка

Есть два пути: разовое открытие файла и постоянная регистрация в базе.

Открыть файл напрямую

В пользовательском режиме откройте главное меню (кнопка с тремя полосками слева вверху) → Файл → Открыть и выберите .erf. В современных релизах БП 3.0 и ЗУП 3.1 программа спросит подтверждение — это защита от опасных действий.

Этот способ годится для разработчика и проверки. Пользователю без права «Интерактивное открытие внешних отчетов и обработок» платформа файл не откроет.

Зарегистрировать в «Дополнительных отчётах»

Чтобы база приняла файл в справочник, в модуле объекта отчёта нужна экспортная функция СведенияОВнешнейОбработке(). Откройте отчёт в конфигураторе → кнопка «Действия» → «Модуль объекта» и добавьте:

Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
	ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.БезопасныйРежим = Истина;
	ПараметрыРегистрации.Информация = "Продажи по контрагентам и номенклатуре за период";

	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = "Продажи по контрагентам";
	Команда.Идентификатор = "ПродажиПоКонтрагентам";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	Команда.ПоказыватьОповещение = Ложь;

	Возврат ПараметрыРегистрации;

КонецФункции

Порядок подключения в БП 3.0:

  1. Администрирование → Печатные формы, отчеты и обработки → включите флажок «Дополнительные отчеты и обработки».
  2. Перейдите по ссылке «Дополнительные отчеты и обработки» → «Добавить из файла».
  3. Выберите .erf, подтвердите предупреждение о безопасности.
  4. В карточке на вкладке «Размещение» укажите раздел, где появится команда, например «Продажи».
  5. На вкладке с пользователями (быстрый доступ) отметьте, кому показывать отчёт.
  6. Нажмите «Записать и закрыть».

Отчёт появится в выбранном разделе по команде «Дополнительные отчеты».

Отладить логику

  1. В конфигураторе откройте тот же файл .erf и поставьте точку останова в модуле (F9).
  2. Отладка → Начать отладку → Тонкий клиент.
  3. В клиенте откройте этот файл через Файл → Открыть. Выполнение остановится на точке.

Для запроса удобнее консоль: в конструкторе запроса СКД есть кнопка выполнения, а в схеме — режим просмотра результата набора. Проверьте итоги на маленьком периоде и сверьте с типовым отчётом, например с оборотно-сальдовой ведомостью по счёту 90.01.

Отчёт готов к передаче пользователям
Выполнено: 0 / 5

Как ускорить и доработать отчёт

Медленный отчёт почти всегда упирается в запрос. Что помогает:

  • ⚡ Условия по периоду и измерениям передавайте в параметры виртуальных таблиц (Остатки, Обороты), а не в ГДЕ. Так платформа отбирает меньше записей.
  • 🔗 Не злоупотребляйте обращением через точку к полям составного типа, например Регистратор.Контрагент: для каждого возможного типа появляется отдельное соединение.
  • 🧮 Сложную логику разбивайте на временные таблицы (ПОМЕСТИТЬ) и соединяйте уже готовые небольшие выборки.
  • 🗂 Не выводите детальные записи «на всякий случай». Пусть пользователь сам раскроет группировку.

Доработки, которые пользователи просят чаще всего:

  • 📅 Отбор по организации: добавьте поле в запрос, в «Настройках» на вкладке «Отбор» — с флажком «Включать в пользовательские настройки».
  • 🎨 Условное оформление: красный цвет для отрицательных сумм задаётся на вкладке «Условное оформление».
  • 📈 Диаграмма: в структуре настроек вместо группировки добавляется элемент «Диаграмма».
  • 🧾 Несколько вариантов: на вкладке «Варианты» создайте, например, «По контрагентам» и «По номенклатуре» на одной схеме.

При каждом изменении поднимайте Версия в функции регистрации: «1.0» → «1.1». В карточке будет видно, какой файл сейчас подключён.

Перенос отчёта в рабочую базу

Внедрение — отдельный этап, а не «скопировал файл».

  1. Проверьте отчёт на копии с актуальными данными: не только на тестовом месяце, но и на годовом периоде.
  2. Загрузите файл в рабочей базе через «Добавить из файла». Если отчёт уже зарегистрирован, откройте его карточку и используйте команду загрузки нового файла — так сохранятся настройки размещения и пользователи.
  3. Проверьте под учётной записью обычного пользователя.
  4. Сохраните исходник в одном месте — сетевой папке или Git — с историей версий.

Безопасный режим и права

При БезопасныйРежим = Истина отчёт не может читать и писать файлы на диске, вызывать внешние компоненты и COM-объекты. Обычному отчёту на СКД это и не нужно.

Отключайте безопасный режим только для файлов, код которых вы прочитали целиком. Чужой отчёт с выключенным безопасным режимом выполняет на сервере любой код с правами базы.

Пользователь не обязан иметь административные права, чтобы запускать зарегистрированный отчёт. А вот чтение данных в отчёте ограничено его ролями: если в регистре стоит ограничение доступа на уровне записей, сотрудник увидит только свои организации.

Ошибки при создании и подключении сторонних отчётов

Диагностика: выберите симптом

Альтернативы: когда программировать не нужно

Не каждую задачу решает новый файл. Иногда хватает возможностей самой программы:

СпособЧто даётОграничения
Настройка типового отчётаСвои группировки, отборы, поля в «Настройках» отчёта, сохранение как свой вариантТолько данные, которые есть в схеме отчёта
Универсальный отчёт (найдите через поиск по командам)Выборка из любого регистра, документа или справочника без кодаНельзя соединить несколько источников в одной таблице
Консоль запросов или консоль СКДБыстрая проверка гипотезы, выгрузка в ExcelИнструмент разработчика, не для бухгалтера
Выгрузка в Excel и сводная таблицаПодходит для разового анализаРучная работа, данные устаревают

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

Частые вопросы

Слетит ли внешний отчёт после обновления конфигурации?
Файл не затрагивается, но если в обновлении переименовали реквизит или регистр, запрос перестанет работать. После крупного обновления проверьте каждый подключённый отчёт.
Можно ли сделать сторонний отчёт без конфигуратора?
Нет. Схему компоновки и модуль редактирует только конфигуратор или среда разработки 1С:EDT. В пользовательском режиме можно лишь настраивать уже готовые отчёты.
Работает ли внешний отчёт в облачной 1С (1С:Фреш)?
Да, но через загрузку в справочник дополнительных отчётов, и обычно отчёт проходит проверку у провайдера. Безопасный режим там обязателен.
Чем внешний отчёт отличается от внешней обработки?
У отчёта есть основная схема компоновки и стандартная форма вывода результата. Обработка изменяет данные или выполняет действия, её файл имеет расширение .epf.
Сколько стоит заказать сторонний отчёт у программиста?
Ориентировочно простой отчёт на СКД — от 2–3 часов работы специалиста, сложный с расчётами — от одного до нескольких дней. Цена часа зависит от региона и исполнителя.