Как найти дополнительный отчет в 1С и сохранить его в виде внешнего файла для редактирования

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Часто в процессе работы с программами на платформе 1С:Предприятие 8 возникает ситуация, когда необходимо внести изменения в отчет, который запускается через меню «Сервис» или «Дополнительные отчеты». Несмотря на то, что такие отчеты называются «внешними», они физически могут отсутствовать на диске компьютера, так как хранятся внутри самой информационной базы. В этой статье мы подробно разберем, как найти такой отчет в системе, как извлечь его программный код и макеты в отдельный файл .erf и что для этого потребуется.

Понимание механизма хранения дополнительных отчетов

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

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

  1. Извлекает двоичные данные из базы.
  2. Создает временный файл во временном каталоге пользователя на локальном диске.
  3. Запускает этот файл как внешний отчет.

Именно поэтому поиск файла в папках Program Files или в каталоге установки 1С не даст результата. Нам нужно искать «первоисточник» внутри самой базы.

Шаг 1: Поиск справочника в интерфейсе программы

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

Для управляемых форм (Бухгалтерия 3.0, ЗУП 3.1, ERP 2, УТ 11):

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

Для обычных форм (УПП 1.3, КА 1.1):

Рассмотрим классический путь: меню Сервис — Дополнительные отчеты и обработки — Дополнительные внешние отчеты.

Шаг 2: Извлечение файла из системы

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

  1. Откроем карточку нужного нам отчета (двойным кликом или нажатием кнопки Изменить).
  2. В верхней части формы или в контекстном меню выберем команду Редактировать (в некоторых версиях это может быть кнопка с иконкой карандаша).
  3. После входа в режим редактирования в форме появится возможность работы с составом файла. Нам необходимо найти иконку Дискета (сохранить как...) или кнопку Выгрузить в файл.
  4. Система предложит выбрать путь на диске. Укажем имя файла и убедимся, что расширение соответствует .erf (для отчетов) или .epf (для обработок).

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

Шаг 3: Работа в Конфигураторе

Проанализируем действия после того, как файл успешно сохранен на жесткий диск. Теперь он стал по-настоящему «внешним». Чтобы изучить его структуру или изменить алгоритм:

Теперь нам доступны все модули объекта, формы и макеты. После внесения изменений не забудьте сохранить файл в Конфигураторе, а затем загрузить его обратно в базу через кнопку Обновить из файла в той же карточке справочника ДополнительныеОтчетыИОбработки.

Программный способ извлечения (для разработчиков)

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

Пример логики извлечения данных:


// Получаем объект справочника
СсылкаНаОтчет = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("НашОтчет");
ДвоичныеДанные = СсылкаНаОтчет.ХранилищеОбработки.Получить();

// Если данные найдены, сохраняем их на диск
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
    ПутьКФайлу = "C:\MyReports\Report.erf";
    ДвоичныеДанные.Записать(ПутьКФайлу);
    Сообщить("Файл успешно выгружен в: " + ПутьКФайлу);
КонецЕсли;

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

Разграничение прав доступа

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

Если у пользователя есть только право на Использование дополнительных отчетов, кнопка редактирования и сохранения будет недоступна.

Заключение

Мы разобрали, что «внешний отчет через сервис» — это объект, встроенный в справочник информационной базы. Для его изменения необходимо выполнить экспорт данных из ХранилищаЗначения в файл формата .erf. Помните, что после редактирования в Конфигураторе обновленный файл нужно обязательно загрузить обратно в систему, чтобы изменения вступили в силу для всех пользователей программы.

← На главную