Ищем внешнюю обработку 1С 8.3: на диске, в справочнике базы и по журналу
Содержание
Внешняя обработка 1С хранится в одном из двух мест. Либо это отдельный файл .epf (для отчёта — .erf) на диске компьютера или в сетевой папке, либо она загружена в информационную базу — в справочник «Дополнительные отчеты и обработки». В конфигурации её нет: если искать обработку в дереве метаданных Конфигуратора, её не найти.
Частое заблуждение — что обработка, которой пользуются через раздел программы, «лежит где-то в папке с 1С». Нет: после загрузки в справочник файл на диске больше не нужен, обработка живёт внутри базы и копируется вместе с ней.
Два места хранения внешней обработки и как понять, какое ваше
Отличить вариант можно за минуту — по тому, как пользователь её запускает.
- 📂 Открывает через
Главное меню → Файл → Открытьи выбирает файл — обработка хранится на диске. База о ней ничего не знает. - 🗂️ Запускает из раздела программы (кнопка «Дополнительные обработки», «Печать» с нестандартной формой, команда «Заполнить» в табличной части) — обработка загружена в базу.
- 🖨️ Нестандартная печатная форма документа в типовой конфигурации почти всегда подключена через справочник дополнительных обработок.
- 🧩 Команда есть, но в справочнике её нет — скорее всего, это не внешняя обработка, а расширение конфигурации . Расширения хранятся тоже в базе, но в другом месте.
Если пользователь говорит «она у меня на рабочем столе ярлыком» — ярлык ведёт на файл. Откройте его свойства, в поле «Объект» будет полный путь.
Файл внешней обработки на диске: где искать .epf
Если обработка открывается как файл, жёсткого правила, где она лежит, нет. Платформа не создаёт для внешних обработок специальную папку. Файл находится там, куда его сохранил человек: рабочий стол, «Загрузки», сетевой ресурс, каталог рядом с базой.
Быстрый поиск по диску
В командной строке Windows:
dir C:\*.epf /s /b
dir C:\*.erf /s /b
В PowerShell — сразу оба типа и с датой изменения:
Get-ChildItem -Path C:\ -Include *.epf,*.erf -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, LastWriteTime |
Sort-Object LastWriteTime -Descending
Для сетевой папки замените C:\ на путь вида \\server\share. Поиск по всему диску идёт несколько минут — это нормально.
Где обычно оказываются файлы
| Где искать | Почему там |
|---|---|
%USERPROFILE%\Desktop | Скачали от разработчика и бросили на рабочий стол |
%USERPROFILE%\Downloads | Получили по почте или из мессенджера |
| Сетевая папка отдела | Одна обработка на всех пользователей |
| Каталог файловой базы | Положили «рядом с базой», чтобы не потерять |
%TEMP% | Временная копия, которую платформа сделала при запуске |
Файл из временной папки — копия, а не оригинал. Его можно забрать, если другого нет, но после очистки временных файлов он пропадёт.
Последние открытые файлы
В Конфигураторе меню Файл внизу показывает список недавно открытых файлов. Если обработку хоть раз открывали в Конфигураторе на этом компьютере, полный путь к ней виден прямо там.
Хранение внешних обработок внутри информационной базы
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) загруженные обработки хранятся в справочнике «Дополнительные отчеты и обработки». Сам файл записан в реквизит этого справочника как двоичные данные (тип «Хранилище значения»).
Список открывается так:
Администрирование → Печатные формы, отчеты и обработки.- Проверьте, что включён флажок «Дополнительные отчеты и обработки».
- Перейдите по ссылке «Дополнительные отчеты и обработки».
В списке видны все загруженные обработки: наименование, вид (печатная форма, заполнение, глобальная обработка, отчёт), вариант публикации и версия.
Где это физически
- 🗄️ Файловая база — внутри файла
1Cv8.1CDв каталоге базы. Каталог можно узнать в окне запуска: выделите базу, путь показан внизу списка. - 🖥️ Клиент-серверная база
— в таблице СУБД (PostgreSQL или MS SQL), которая соответствует справочнику. Имена таблиц служебные, вида
_Reference123.
Не пытайтесь вытащить обработку напрямую из таблицы СУБД или из файла 1Cv8.1CD. Данные там в служебном формате, а правка таблиц мимо платформы может испортить базу. Для выгрузки есть штатная команда, о ней ниже.
Как выгрузить обработку из базы в файл
- Откройте карточку нужной обработки в справочнике.
- В командной панели формы (при необходимости через «Ещё») найдите команду выгрузки в файл.
- Укажите папку — платформа сохранит
.epfили.erfс исходным именем файла.
Выгруженный файл открывается в Конфигураторе через Файл → Открыть как обычная внешняя обработка. Так её можно изучить или доработать, а потом загрузить обратно командой загрузки из файла в той же карточке.
Перед заменой обработки новой версией выгрузите текущую. Это единственная резервная копия, если в новой окажется ошибка.
Как определить расположение через Конфигуратор и саму обработку
В Конфигураторе
Конфигуратор не показывает внешние обработки в дереве конфигурации — они не часть метаданных. Но он помогает в двух случаях.
- 🔎 Открыть найденный файл.
Файл → Открыть, выберите.epf. Откроется отдельное дерево объекта: формы, макеты, модуль. В заголовке окна видно имя файла. - 👤 Проверить, кто может открывать файлы. В
Администрирование → Пользователиоткройте пользователя. Право интерактивно открывать внешние обработки задаётся ролями, а флажок «Защита от опасных действий» отвечает за предупреждение при запуске.
Если в дереве конфигурации есть обработка с тем же именем, что и внешняя, — это разные объекты. Правка одной не меняет другую.
Из открытой обработки
Самый точный способ узнать, откуда запущена обработка, — спросить её саму. У объекта внешней обработки есть свойство ИспользуемоеИмяФайла. Добавьте в модуль формы временную команду:
&НаСервере
Функция ПутьКФайлуНаСервере()
Возврат РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
КонецФункции
&НаКлиенте
Процедура ПоказатьПуть(Команда)
Сообщить(ПутьКФайлуНаСервере());
КонецПроцедуры
Для обработки, открытой с диска, вы увидите путь к файлу. Для загруженной в справочник — путь ко временному файлу или служебное имя: это и есть признак, что оригинал лежит в базе.
Журнал регистрации: кто и когда загрузил обработку
Журнал регистрации не хранит саму обработку, но показывает историю. Это главный инструмент, когда нужно понять, откуда в базе взялась печатная форма и кто её менял.
Администрирование → Обслуживание → Журнал регистрации(илиАдминистрирование → Журнал регистрациив Конфигураторе).- Нажмите «Установить отбор».
- В поле «Метаданные» выберите справочник «Дополнительные отчеты и обработки».
- Задайте период и примените отбор.
Вы увидите события добавления и изменения элементов справочника: дату, пользователя, компьютер. Столбец «Данные» показывает, какую обработку затронули.
Журнал хранит записи за срок, заданный в настройках журнала регистрации. Если там стоит короткий период или «Не регистрировать», старых событий не будет.
Для файлов, открытых с диска, такой истории нет: обращение к .epf через меню «Файл» не создаёт элемента справочника. Здесь помогает только поиск по диску и вопрос пользователю.
Сравнение способов хранения обработок
| Способ | Где физически | Плюсы | Минусы |
|---|---|---|---|
Файл .epf / .erf | Диск или сетевая папка | Просто менять и отлаживать | Теряется, у каждого своя версия, нужно право открывать файлы |
| Справочник «Дополнительные отчеты и обработки» | В базе (1Cv8.1CD или СУБД) | Одна версия для всех, копируется с базой, есть безопасный режим | Каждую правку нужно выгрузить, изменить и загрузить |
| Расширение конфигурации | В базе, отдельно от справочника | Можно менять типовые объекты, переживает обновления | Это уже не внешняя обработка, нужна установка и обновление структуры |
| Обработка в составе конфигурации | В конфигурации базы | Видна в дереве метаданных | Снятие с поддержки, сложнее обновление |
Что выбрать на практике:
- ✅ Разовая обработка для администратора — файл, хранящийся в одной папке с понятным именем.
- ✅ Печатные формы и обработки для пользователей — справочник. Не будет ситуации «у бухгалтера одна версия, у кладовщика другая».
- ✅ Исходники всех внешних обработок держите ещё и в отдельной папке или системе контроля версий. Хранилище конфигурации внешние файлы не версионирует.
Программный поиск путей и списка обработок
Когда обработок десятки, удобнее получить список запросом. Выполните его в консоли запросов или во внешней обработке с правами администратора:
ВЫБРАТЬ
ДОР.Наименование,
ДОР.ИмяОбъекта,
ДОР.ИмяФайла,
ДОР.Вид,
ДОР.Версия,
ДОР.Публикация,
ДОР.ПометкаУдаления
ИЗ
Справочник.ДополнительныеОтчетыИОбработки КАК ДОР
УПОРЯДОЧИТЬ ПО
ДОР.Наименование
ИмяФайла — имя, с которым файл когда-то загрузили. Путь на компьютере загрузившего оно не содержит, но помогает найти оригинал поиском по диску.
Состав реквизитов справочника зависит от версии БСП. Если запрос ругается на поле, откройте справочник в Конфигураторе и сверьте имена.
Массовая выгрузка всех обработок в папку
Код ниже выполняется на сервере и сохраняет каждую обработку в файл. Папка должна быть доступна процессу сервера 1С (для клиент-серверной базы — на сервере, а не на вашем компьютере).
&НаСервереБезКонтекста
Процедура ВыгрузитьВсеОбработки(Каталог)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДОР.Ссылка,
| ДОР.ИмяФайла
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК ДОР
|ГДЕ
| НЕ ДОР.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Номер = 0;
Пока Выборка.Следующий() Цикл
Данные = Выборка.Ссылка.ХранилищеОбработки.Получить();
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
Продолжить;
КонецЕсли;
Номер = Номер + 1;
ИмяФайла = СтрШаблон("%1_%2", Формат(Номер, "ЧГ=0"), Выборка.ИмяФайла);
Данные.Записать(Каталог + "\" + ИмяФайла);
КонецЦикла;
КонецПроцедуры
Номер в начале имени нужен, чтобы два элемента с одинаковым именем файла не перезаписали друг друга. Если имя файла в справочнике пустое, добавьте расширение вручную по виду: отчёт — .erf, остальное — .epf.
Поиск файлов на нескольких компьютерах
Для сети удобнее PowerShell с выгрузкой результата в таблицу:
Get-ChildItem -Path "\\server\share" -Include *.epf,*.erf -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime |
Export-Csv -Path "C:\temp\epf_list.csv" -Encoding UTF8 -NoTypeInformation
Файл открывается в Excel. По дате изменения видно, какая копия свежая.
Что проверить в найденной обработке, прежде чем запускать
Нашли несколько копий одной обработки — не запускайте первую попавшуюся. Внешняя обработка выполняет код с правами пользователя и может менять данные.
- Сравните даты. Свежая копия обычно та, у которой позднее дата изменения файла или выше версия в карточке справочника.
- Сравните содержимое. В Конфигураторе есть сравнение внешних обработок: откройте одну и через меню
Файлнайдите команду сравнения с другим файлом. Различия в модулях покажут, какая копия доработана. - Проверьте релиз базы. Обработка, написанная под старый релиз, может обращаться к реквизитам, которых уже нет. Ошибка вида
Поле объекта не обнаружено— типичный признак. - Посмотрите на безопасный режим. В карточке справочника видно, работает ли обработка в безопасном режиме. Если нет — она получает полный доступ к файлам и внешним ресурсам сервера, и запускать её стоит, только если вы знаете автора.
Обработку из неизвестного источника сначала запустите в копии базы. Это особенно касается файлов, найденных во временной папке или присланных по почте.