Внешние и встроенные обработки 1С 8.3: где лежит файл и как его найти

· 9 мин

Содержание

Ответ зависит от вида обработки. Внешняя обработка — это обычный файл .epf в любой папке, которую выбрал пользователь: у платформы нет «своего» каталога для таких файлов. Если внешнюю обработку подключили через справочник «Дополнительные отчеты и обработки», её двоичная копия хранится уже внутри информационной базы. Встроенная обработка — часть конфигурации: в файловой базе она лежит в файле 1Cv8.1CD, в клиент-серверной — в служебных таблицах СУБД.

Отдельным файлом на диске встроенная обработка не существует никогда. Достать её можно только через Конфигуратор. Ниже разобрано, где искать каждый вариант, как добраться до него программно и почему обработка иногда «есть, но не открывается».

Карта хранения обработок в 1С 8.3

Сначала определите, с чем вы имеете дело. Это сразу сужает поиск.

Вид обработкиГде физически хранитсяКак найти
📄 Внешняя, открытая через Файл → ОткрытьФайл .epf на диске пользователя или в сетевой папкеПоиск по диску *.epf
🗂 Подключённая через «Дополнительные отчеты и обработки»Внутри базы, в реквизите элемента справочникаКарточка в справочнике, выгрузка в файл
🧩 Встроенная (объект конфигурации)Конфигурация базы: 1Cv8.1CD или таблицы Config/ConfigSave в СУБДВетка «Обработки» в Конфигураторе
🔌 Обработка из расширенияВ базе, вместе с расширениемКонфигуратор → Конфигурация → Расширения конфигурации
📑 Внешний отчётФайл .erf — по тем же правилам, что и .epfПоиск по диску *.erf

Внешние отчёты устроены так же, как внешние обработки. Всё, что сказано дальше про .epf, относится и к .erf.

Файловая база: всё внутри 1Cv8.1CD

Файловая информационная база — это каталог с файлом 1Cv8.1CD. В нём лежат и данные, и конфигурация целиком. Все встроенные обработки, справочник дополнительных обработок с их двоичными копиями, расширения — внутри этого одного файла.

Как узнать, где лежит каталог базы:

  1. Откройте окно запуска 1С.
  2. Выделите базу в списке.
  3. Внизу окна появится строка вида File="D:\Bases\Buh" — это и есть путь.

Тот же путь записан в файле списка баз ibases.v8i. Он лежит в профиле пользователя, в папке %APPDATA%\1C\1CEStart\. Откройте его Блокнотом и найдите строку Connect=File=... под названием нужной базы.

Что ещё бывает в каталоге файловой базы:

  • 📁 1Cv8.1CD — сама база;
  • 🔒 1Cv8.1CL — файл блокировки, появляется, пока с базой кто-то работает;
  • 📁 папка 1Cv8Log — журнал регистрации.

Открыть 1Cv8.1CD сторонними утилитами и «вытащить» обработку руками — плохая идея. Формат внутренний, а повреждённый файл не всегда восстанавливается. Для выгрузки есть Конфигуратор.

Иногда пользователи держат внешние обработки рядом с базой, в том же каталоге. Платформа этого не требует. Это просто договорённость конкретной организации.

Клиент-серверная база: таблицы СУБД

В клиент-серверном варианте база живёт в СУБД — MS SQL Server или PostgreSQL. Конфигурация хранится в служебных таблицах:

  • Config — конфигурация базы данных, то есть то, с чем сейчас работают пользователи;
  • ConfigSave — основная конфигурация, если её изменили в Конфигураторе, но ещё не обновили конфигурацию базы данных.

Встроенные обработки — внутри этих таблиц. Строки там названы идентификаторами объектов, а содержимое хранится в упакованном двоичном виде. Прочитать модуль обработки SQL-запросом нельзя.

Для справки можно посмотреть, сколько записей и какого размера лежит в таблице:

SELECT FileName, DataSize, Modified
FROM Config
ORDER BY Modified DESC;

Ничего не меняйте в таблицах Config и ConfigSave средствами СУБД. Ручная правка или удаление строк ломает конфигурацию, и база перестаёт запускаться.

Подключённые дополнительные обработки — это уже не конфигурация, а данные. Они лежат в обычной таблице справочника. Имя таблицы в СУБД обезличено: что-то вроде _Reference123, а реквизит с файлом — колонка вида _Fld456. Как сопоставить эти имена с понятными, разобрано в следующем разделе.

На сервере 1С (в каталоге кластера) обработки постоянно не хранятся. Там лежат служебные файлы кластера и временные данные сеансов.

Как найти обработку через Конфигуратор и структуру хранения

Встроенная обработка

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

Чтобы получить встроенную обработку отдельным файлом, щёлкните по ней правой кнопкой и выберите «Сохранить как внешнюю обработку, отчет…». Получится .epf, который можно открыть в любой базе с подходящей конфигурацией.

В пользовательском режиме встроенную обработку тоже можно найти: Главное меню → Все функции → Обработки. Если пункта «Все функции» нет, включите его в Главное меню → Сервис → Параметры флажком «Отображать команду “Все функции”».

Имя таблицы в СУБД

Чтобы понять, в какой таблице SQL лежит справочник дополнительных обработок, используйте метод ПолучитьСтруктуруХраненияБазыДанных(). Его можно выполнить в любой внешней обработке на сервере:

&НаСервере
Процедура ПоказатьТаблицыНаСервере()
    Объекты = Новый Массив;
    Объекты.Добавить(Метаданные.Справочники.ДополнительныеОтчетыИОбработки);
    Структура = ПолучитьСтруктуруХраненияБазыДанных(Объекты, Истина);
    Для Каждого Строка Из Структура Цикл
        Сообщить(Строка.Метаданные + " -> " + Строка.ИмяТаблицыХранения);
    КонецЦикла;
КонецПроцедуры

Второй параметр Истина возвращает имена в формате СУБД. Без него вы получите имена в терминах платформы.

Справочник «Дополнительные отчеты и обработки»

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

Где открыть список:

КонфигурацияПуть
Бухгалтерия предприятия 3.0Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки
ЗУП 3.1Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки
Управление торговлей 11НСИ и администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки

Если ссылки нет, в том же разделе «Печатные формы, отчеты и обработки» включите флажок «Дополнительные отчеты и обработки».

Как достать файл обратно:

  1. Откройте карточку нужной обработки.
  2. В командах карточки найдите выгрузку в файл (в меню «Ещё», если на панели её не видно).
  3. Сохраните .epf в нужную папку.

Загрузка новой версии делается там же — командой загрузки из файла. Старая копия при этом заменяется, поэтому сначала выгрузите её.

Подключённые обработки переезжают вместе с базой: при выгрузке в .dt и загрузке в другую базу они сохраняются. Внешние .epf, открытые просто с диска, — нет.

Папки профиля Windows: что 1С держит у пользователя

Сами внешние обработки платформа в профиль не копирует. Но там лежат файлы, которые часто путают с «местом хранения»:

ПапкаЧто внутри
%APPDATA%\1C\1CEStart\ibases.v8i — список баз в окне запуска, настройки стартера
%APPDATA%\1C\1cv8\Пользовательские настройки клиента, подпапки с идентификаторами баз
%LOCALAPPDATA%\1C\1cv8\Кэш конфигурации: клиент хранит здесь копии форм и модулей, в том числе встроенных обработок
%TEMP%Временные файлы, которые создаются при работе

Кэш в %LOCALAPPDATA% — не источник для восстановления. Там служебные файлы в формате платформы, обработку из них не собрать.

Чтобы найти потерянный .epf, ищите по маске на всём компьютере:

  • 🔍 в Проводнике — *.epf в строке поиска;
  • 🔍 в командной строке:
dir C:\*.epf /s /b
dir D:\*.epf /s /b

Частые места, куда пользователи кладут обработки: «Загрузки», «Документы», «Рабочий стол», сетевая папка отдела. Если файл присылал программист, проверьте вложения в почте.

Программный доступ к обработкам

Встроенная обработка

К объекту конфигурации обращаются по имени:

// на сервере
Обработка = Обработки.ИмяОбработки.Создать();

// на клиенте — открыть форму
ОткрытьФорму("Обработка.ИмяОбработки.Форма");

Навигационная ссылка вида e1cib/app/Обработка.ИмяОбработки открывает её из адресной строки клиента или из ссылки в тексте. Список всех встроенных обработок даёт коллекция Метаданные.Обработки.

Внешняя обработка из файла

На сервере есть два пути. Первый — по полному имени файла:

Обработка = ВнешниеОбработки.Создать("\\server\share\Obrabotka.epf");

Файл должен быть доступен самому серверу 1С, а не компьютеру пользователя. Второй путь надёжнее: передать двоичные данные во временное хранилище и подключить их.

Обработка из справочника дополнительных обработок

&НаСервере
Функция ПодключитьИзСправочника(Ссылка)
    Данные = Ссылка.ХранилищеОбработки.Получить();
    Адрес = ПоместитьВоВременноеХранилище(Данные, УникальныйИдентификатор);
    Имя = ВнешниеОбработки.Подключить(Адрес, , Истина);
    Возврат Имя;
КонецФункции

Функция возвращает имя подключённой обработки. Дальше форма открывается так: ОткрытьФорму("ВнешняяОбработка." + Имя + ".Форма"). Третий параметр Истина — безопасный режим. Отключайте его только для обработок, которым вы доверяете.

Права и доступ к файлам: почему обработка не открывается

Найти файл — половина дела. Дальше мешают права в 1С и права Windows.

Права в 1С

Чтобы открыть внешнюю обработку через Файл → Открыть, у пользователя должно быть право «Интерактивное открытие внешних обработок». В типовых конфигурациях его дают через профили групп доступа: Администрирование → Настройки пользователей и прав → Группы доступа. Если права нет, открытие файла заканчивается ошибкой Нарушение прав доступа!.

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

С версии платформы 8.3.9 при открытии внешней обработки срабатывает защита от опасных действий: появляется предупреждение. Его отключают в свойствах пользователя в Конфигураторе, флажком «Защита от опасных действий». Делайте это только для опытных пользователей.

Права Windows

В клиент-серверной базе код на сервере работает от имени учётной записи службы 1С. Это не пользователь, который сидит за компьютером. Отсюда типовые сбои:

  • 🚫 путь на подключённый диск вроде Z:\ — у службы нет этого диска, нужен UNC-путь \\server\share\;
  • 🚫 у учётной записи службы нет прав на чтение сетевой папки;
  • 🚫 файл открыт в Конфигураторе у программиста и заблокирован на запись;
  • 🚫 на кластере включён профиль безопасности, который запрещает доступ к внешним модулям.

Как узнать учётную запись службы:

  1. Нажмите Win + R, введите services.msc.
  2. Найдите службу агента сервера 1С:Предприятия 8.3.
  3. Откройте её свойства, вкладку «Вход в систему». Там указан пользователь, от имени которого работает сервер.

Именно этому пользователю выдавайте права на чтение папки с обработками.

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

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

Можно ли перенести встроенную обработку в другую базу?
Да. Сохраните её в Конфигураторе как внешнюю обработку и откройте в другой базе. Если она обращается к объектам, которых в другой конфигурации нет, будут ошибки.
Как понять, внешняя обработка или встроенная?
Посмотрите заголовок формы и способ открытия. Встроенная есть в «Все функции → Обработки». Внешняя открывается из файла или из справочника дополнительных обработок.
Сохраняется ли внешняя обработка при обновлении конфигурации?
Файл на диске обновление не трогает. Подключённая через справочник тоже остаётся, но после обновления её стоит проверить: могли поменяться объекты, к которым она обращается.
Где хранятся обработки в 1С Фреш и облаке?
В облачной базе нет доступа к файлам сервера и Конфигуратору. Внешние обработки там подключают только через справочник дополнительных обработок, если сервис это разрешает.
Удалится ли обработка, если удалить файл .epf?
Только если её открывали с диска. Подключённая копия в справочнике останется и продолжит работать.