Часто в процессе работы с программами на платформе 1С:Предприятие 8 возникает ситуация, когда необходимо внести изменения в отчет, который запускается через меню «Сервис» или «Дополнительные отчеты». Несмотря на то, что такие отчеты называются «внешними», они физически могут отсутствовать на диске компьютера, так как хранятся внутри самой информационной базы. В этой статье мы подробно разберем, как найти такой отчет в системе, как извлечь его программный код и макеты в отдельный файл .erf и что для этого потребуется.
Прежде чем мы перейдем к активным действиям, давайте проанализируем, как система 1С работает с такими объектами. В современных конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), внешние обработки и отчеты не лежат в папках на сервере. Они загружаются пользователем в специальный справочник.
Разберем этот процесс по шагам: когда администратор добавляет отчет в систему, файл загружается в реквизит справочника, имеющий тип ХранилищеЗначения. В момент запуска система выполняет следующие действия:
Именно поэтому поиск файла в папках Program Files или в каталоге установки 1С не даст результата. Нам нужно искать «первоисточник» внутри самой базы.
Рассмотрим, где именно в интерфейсе хранятся нужные нам данные. Расположение может меняться в зависимости от используемой конфигурации и режима работы (обычные или управляемые формы).
Для управляемых форм (Бухгалтерия 3.0, ЗУП 3.1, ERP 2, УТ 11):
Перейдем в раздел Администрирование, затем выберем пункт Печатные формы, отчеты и обработки. В открывшемся окне найдем гиперссылку Дополнительные отчеты и обработки. Именно здесь представлен полный список всех загруженных в систему внешних инструментов.
Для обычных форм (УПП 1.3, КА 1.1):
Рассмотрим классический путь: меню Сервис — Дополнительные отчеты и обработки — Дополнительные внешние отчеты.
Выясним основной способ, который позволяет превратить запись в базе данных обратно в файл на диске. Рассмотрим ситуацию, когда мы уже нашли нужную строку в списке дополнительных отчетов.
.erf (для отчетов) или .epf (для обработок).Важный момент: если вы используете актуальные версии БСП, в карточке отчета часто присутствует прямая кнопка Выгрузить из файла или Экспорт. Это позволяет получить копию объекта, не заходя в глубокие настройки редактирования.
Проанализируем действия после того, как файл успешно сохранен на жесткий диск. Теперь он стал по-настоящему «внешним». Чтобы изучить его структуру или изменить алгоритм:
.erf.Теперь нам доступны все модули объекта, формы и макеты. После внесения изменений не забудьте сохранить файл в Конфигураторе, а затем загрузить его обратно в базу через кнопку Обновить из файла в той же карточке справочника ДополнительныеОтчетыИОбработки.
Иногда доступ к стандартному интерфейсу ограничен, или отчетов слишком много для ручной выгрузки. В таком случае рассмотрим, как извлечь отчет с помощью небольшого фрагмента кода. Нам нужно обратиться к реквизиту, хранящему данные (обычно это ХранилищеОбработки).
Пример логики извлечения данных:
// Получаем объект справочника
СсылкаНаОтчет = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("НашОтчет");
ДвоичныеДанные = СсылкаНаОтчет.ХранилищеОбработки.Получить();
// Если данные найдены, сохраняем их на диск
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
ПутьКФайлу = "C:\MyReports\Report.erf";
ДвоичныеДанные.Записать(ПутьКФайлу);
Сообщить("Файл успешно выгружен в: " + ПутьКФайлу);
КонецЕсли;
Этот код можно запустить в консоли кода или создать небольшую обработку для массовой выгрузки всех внешних отчетов организации.
Стоит отметить, что возможность выгрузки файлов доступна не каждому пользователю. Проанализируем необходимые права. Чтобы увидеть и сохранить файл, пользователь должен обладать одной из ролей:
ПолныеПраваАдминистрированиеДобавлениеИзменениеДополнительныхОтчетовИОбработокЕсли у пользователя есть только право на Использование дополнительных отчетов, кнопка редактирования и сохранения будет недоступна.
Мы разобрали, что «внешний отчет через сервис» — это объект, встроенный в справочник информационной базы. Для его изменения необходимо выполнить экспорт данных из ХранилищаЗначения в файл формата .erf. Помните, что после редактирования в Конфигураторе обновленный файл нужно обязательно загрузить обратно в систему, чтобы изменения вступили в силу для всех пользователей программы.