Внешний отчёт в 1С 8.3: файл .erf, подключение и разработка
Содержание
Внешний отчёт в 1С — это отдельный файл с расширением .erf, который лежит вне конфигурации и подключается к базе по требованию. Открыть его можно двумя способами: разово через меню Файл → Открыть или постоянно — через справочник «Дополнительные отчёты и обработки». Первый подходит для проверки, второй — для работы всего отдела.
Создают внешние отчёты в конфигураторе на схеме компоновки данных или на запросе с формой. Типовую конфигурацию при этом трогать не нужно, а значит, обновления платформы и релизов не превращаются в многочасовое слияние доработок.
Для чего нужны внешние отчёты и чем они отличаются от встроенных
Встроенный отчёт — часть конфигурации. Он живёт в дереве метаданных, обновляется вместе с релизом, у него есть права доступа и место в панели раздела. Внешний — самостоятельный файл. Его можно скопировать на флешку, отправить коллеге, положить в общую папку.
Отсюда плюсы:
- 🔧 Не нужна доработка конфигурации. Конфигурация остаётся на поддержке, релизы ставятся без объединения.
- 📨 Быстрая раздача. Файл отправили — отчёт подключили.
- 🧪 Удобно отлаживать. Правите файл и сразу видите результат, не обновляя конфигурацию базы данных.
- 🔁 Один отчёт на несколько баз. Если структура данных одинакова, файл работает в разных базах.
И минусы, о которых молчат реже:
- ⚠️ Отчёт зависит от метаданных. Переименовали реквизит или справочник в конфигурации — отчёт перестал формироваться.
- ⚠️ Внутри файла может быть произвольный код. Об этом отдельный раздел ниже.
- ⚠️ Для файла нужен учёт: кто его делал, какая версия, где лежит оригинал.
Рядом с внешними отчётами живут внешние обработки (файл .epf). Они устроены так же, но не строят отчёт, а выполняют действия: загружают данные, меняют документы пакетом, печатают формы. Подключение одно и то же.
Какие бывают внешние отчёты
Условно их делят по способу построения и по тому, где они подключены.
| Вид | Как устроен | Когда выбирают |
|---|---|---|
| На схеме компоновки данных (СКД) | Запрос и настройки вывода лежат в схеме, пользователь меняет отбор и группировки сам | Почти всегда: быстро делается, гибко настраивается |
| С собственной формой и кодом | Данные собирает код, табличный документ заполняется вручную | Нестандартный вывод, сложные расчёты, диаграммы |
| Печатная форма документа | Подключается как «Печатная форма» в самом документе | Нужна своя форма счёта, акта, накладной |
| Дополнительный отчёт с настройкой команд | Регистрирует свои команды в разделе программы | Отчёт должен появиться в нужном разделе, а не только в списке |
По способу подключения различают разовое открытие (файл читается с диска и живёт, пока открыто окно) и подключение через справочник (файл хранится в самой базе, доступен выбранным пользователям).
Где взять готовые внешние отчёты
Источники по убыванию надёжности:
- Свой программист или обслуживающая организация. Вы знаете, кто отвечает за код.
- Партнёры 1С и специализированные форумы. Проверяйте репутацию автора и читайте обсуждение: если файл «чудит», это быстро видно по комментариям.
- Разделы поддержки на сайтах сообществ. Часто выкладывают исходники — можно прочитать код до запуска.
- Случайные файлообменники. Не берите. Не из-за качества отчёта, а из-за риска чужого кода.
Что проверить до запуска:
- под какую конфигурацию и релиз написан отчёт (БП 3.0, ЗУП 3.1, УТ 11 — это разные структуры данных);
- есть ли описание, что именно он читает и куда пишет;
- распространяется ли он как готовый
.erfили есть исходники.
Если есть исходники, лучше собрать файл самому в конфигураторе, чем запускать чужую сборку.
Отчёт, написанный под БП 3.0, в ЗУП не заработает, даже если в нём всего один запрос: названия регистров и справочников разные. Смотрите не на «1С», а на конкретную конфигурацию.
Как подключить внешний отчёт: два способа по шагам
Способ 1. Открыть файл разово
Подходит, чтобы посмотреть отчёт или проверить, работает ли он у вас.
- Запустите 1С в режиме «1С:Предприятие».
- Выберите
Файл → Открыть(или сочетаниеCtrl+O). - Укажите файл
.erf. - Отчёт откроется в отдельном окне. Нажмите «Сформировать».
После закрытия окна отчёт «забывается». Завтра его снова придётся открывать с диска.
Если в меню нет пункта «Файл → Открыть», а в профиле запрещены внешние файлы, это настройка прав. Её меняет администратор, а не вы.
Способ 2. Подключить через справочник
Работает в конфигурациях на библиотеке стандартных подсистем (БСП): Бухгалтерия предприятия 3.0, ЗУП 3.1, Управление торговлей 11 и другие типовые.
- Откройте раздел
Администрированиеи перейдите в пункт, связанный с печатными формами, отчётами и обработками. - Включите флаг «Дополнительные отчёты и обработки», если он ещё не включён.
- Откройте справочник и нажмите «Создать». Появится диалог выбора файла.
- Выберите
.erf— система прочитает его имя, вид и назначение. - Поле «Публикация» установите в значение «Используется» (формулировки в разных релизах чуть отличаются, смысл один: включено/выключено).
- На вкладке «Размещение» укажите разделы, где отчёт должен появиться.
- Запишите элемент и закройте.
Дальше отчёт доступен в разделе «Отчёты» или в том разделе, который вы выбрали. Пользователям, которым он нужен, дайте права через поле «Быстрый доступ» или через группу доступа.
Основная польза способа — отчёт хранится в базе. Файл на диске уже не нужен, обновить версию можно кнопкой «Обновить из файла ».
Для разных отчётов заведите правило именования версий: Отчёт_Остатки_v1_2.erf. Тогда видно, что и когда загружали.
Как создать внешний отчёт самостоятельно
Нужны платформа 1С:Предприятие 8.3 и доступ к конфигуратору. Знания языка запросов 1С понадобятся — без них отчёт не соберёте.
Шаг 1. Новый файл
В конфигураторе выберите Файл → Новый → Внешний отчёт. Появится окно с корнем и вкладками. Сразу сохраните файл на диск: Файл → Сохранить. Платформа запишет .erf.
Шаг 2. Схема компоновки данных
- В дереве правой кнопкой по «Макеты» (или по самому отчёту) выберите «Добавить схему компоновки данных».
- Запустится мастер. Оставьте предложенное имя.
- На вкладке «Набор данных» добавьте набор данных — запрос.
- Откройте «Конструктор запроса» и выберите таблицы. Например, регистр накопления «Товары на складах» и поля «Номенклатура», «Склад», «ВНаличииОстаток».
- На вкладке «Настройки» добавьте группировки и выбранные поля.
Шаг 3. Основная схема в свойствах отчёта
В свойствах отчёта поле «Основная схема компоновки данных» должно указывать на созданную схему. Без этого форма отчёта не покажет настройки.
Шаг 4. Проверка
Запустите отладку: Отладка → Начать отладку (клавиша F5). Платформа откроет базу и сразу покажет ваш отчёт. Сформируйте его, проверьте цифры на контрольном примере.
Важный практический приём: сравните результат с типовым отчётом. Если оборотно-сальдовая ведомость показывает остаток по счёту, ваш внешний отчёт по тому же регистру должен вернуть то же число.
Шаг 5. Сохранение и передача
Сохраните файл. В новом релизе платформы формат сохраняется совместимым в сторону более новых версий, но обратно — не гарантированно: файл, сохранённый в свежей платформе, в более старой может не открыться. Поэтому держите отдельную копию, собранную на самой «старой» платформе, которая есть у заказчика.
Если нужен свой код
Когда СКД не хватает, создайте форму отчёта и в обработчиках пишите код сами. Пример запроса для вывода остатков:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.Склад КАК Склад,
| ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// Здесь вывод строки в табличный документ
КонецЦикла;
Имена регистра и полей выше — условный пример. У вас они определяются конфигурацией; проверяйте их в дереве метаданных.
Типичные ошибки и что с ними делать
Здесь только то, чего нет в шагах выше.
Безопасность внешних отчётов
Внешний файл — это программа. СКД-отчёт, как правило, безопасен: это запрос и настройки. Но если автор добавил код в модуль, он может делать всё, что позволяет платформа: читать любые данные, менять их, обращаться к файловой системе.
Что делать, чтобы не нарваться:
- Не запускайте файлы из неизвестных источников в рабочей базе. Сначала проверьте на копии.
- Попросите исходник. Если автор отказывается показать код, это повод насторожиться.
- Включайте «безопасный режим» для подключаемого элемента справочника. В нём код выполняется с ограничениями: нельзя обращаться к внешним ресурсам и запускать внешние программы.
- Следите за правами. Право добавлять дополнительные отчёты и обработки — административное, не раздавайте его всем подряд.
- Читайте предупреждения платформы о потенциально опасных действиях. Окно с запросом подтверждения появляется неспроста.
- Храните оригиналы. Если отчёт сломали или подменили, нужно быстро вернуть исходную версию.
Проверка на копии базы — это не формальность. Один неверно написанный отчёт с записью данных может испортить документы за период.
Как вести внешние отчёты, чтобы через год в них не запутаться
Пока отчётов два, всё помнится. Когда их двадцать, начинается путаница: какая версия в работе, кто правил, почему цифры не сходятся.
Рабочая практика небольших отделов:
- 📁 Единая папка-хранилище. Один каталог на сервере, куда складываются исходные
.erfи отдельно рабочие копии. - 🏷 Версия в имени файла и в наименовании элемента справочника. Видно, что загружено сейчас.
- 📝 Короткое описание. Что отчёт делает, из каких таблиц читает, для какой конфигурации и релиза написан. Хватит трёх строк в поле «Комментарий» элемента справочника.
- 🔍 Контрольный пример. Одно число, которое вы знаете точно: остаток по складу, оборот по счёту. После каждого обновления конфигурации сверяйте его.
- 👤 Ответственный. У каждого отчёта должен быть человек, к которому идут с вопросом.
Когда отчёт становится критичным для процесса, например по нему закрывают месяц, его стоит перенести в конфигурацию как расширение. Расширение хранится в базе, обновляется вместе с ней и проходит штатные проверки платформы.
Что выбрать: разовое открытие, справочник или доработка конфигурации
Файл → Открыть. Ничего подключать не надо.Частые вопросы
Чем внешний отчёт отличается от внешней обработки?
.erf. Обработка выполняет действия, расширение .epf. Подключаются они одинаково.