К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как изменить внешнюю обработку в 1С

Как открыть и изменить внешнюю обработку 1С (.epf) в конфигураторе: формы, модули, макеты, подключение через дополнительные отчёты и обработки, проверка ошибок.

Внешняя обработка в 1С — это файл с расширением .epf, который содержит формы, программный код и макеты, но не хранится внутри конфигурации базы. Такие файлы используют для печатных форм, загрузки данных, служебных операций и отчётов. Чтобы изменить внешнюю обработку, её открывают в конфигураторе, правят нужные объекты и сохраняют файл обратно — сама конфигурация базы при этом не затрагивается.

Перед началом работы важно понять, откуда обработка запускается. Если она подключена через механизм «Дополнительные отчёты и обработки», файл может храниться внутри информационной базы, и простая правка исходного .epf на диске ничего не изменит — нужно заменить обработку внутри базы. Если же пользователи открывают файл напрямую через «Файл → Открыть», достаточно обновить сам файл.

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

Подготовка: что проверить перед изменением обработки

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

Определите, как обработка используется в базе. Откройте раздел «Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки» и проверьте, есть ли она в списке. Если есть — после правки файла её нужно будет обновить в этом списке, иначе пользователи продолжат запускать старую версию, хранящуюся в базе.

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

Как открыть внешнюю обработку в конфигураторе

Запустите конфигуратор 1С той же версии платформы, под которой работает база. Открывать саму конфигурацию базы не обязательно: выберите в меню «Файл → Открыть» и укажите файл .epf. Конфигуратор покажет структуру обработки: формы, макеты и модуль объекта.

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

После открытия вы увидите дерево объектов обработки. Двойной щелчок по форме открывает конструктор формы, по макету — табличный документ или другой тип макета, а модуль объекта открывается через контекстное меню «Открыть модуль объекта».

Порядок действий
  1. 1
    Сделайте резервную копию файла .epf
  2. 2
    Откройте файл в конфигураторе через «Файл → Открыть»
  3. 3
    Внесите правки в форму, модуль или макет
  4. 4
    Сохраните файл (Ctrl+S)
  5. 5
    Проверьте синтаксис модуля
  6. 6
    Обновите обработку в базе, если она подключена через дополнительные обработки
  7. 7
    Протестируйте запуск в пользовательском режиме

Изменение формы обработки

Чтобы изменить внешний вид обработки, откройте нужную форму в дереве объектов. В конструкторе управляемой формы можно добавлять реквизиты, элементы (поля, кнопки, таблицы), менять их расположение и свойства. Новые реквизиты формы добавляются в правой панели окна редактора формы.

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

Учтите различие клиентского и серверного контекста. Код, который обращается к данным базы (запросы, документы, справочники), должен выполняться на сервере — для этого процедура объявляется с директивой &НаСервере. Интерактивные действия с формой выполняются на клиенте (&НаКлиенте). Неправильное размещение кода — частая причина ошибок вида «Процедура или функция не обнаружена».

Изменение программного кода и макетов

Модуль объекта обработки содержит код, доступный при работе объекта, а модули форм — логику конкретных форм. Для правки откройте нужный модуль и измените текст процедур. После правок обязательно выполните проверку синтаксиса: «Конфигурация → Проверка конфигурации» с включённой проверкой модулей, либо кнопка проверки синтаксиса прямо в окне модуля.

Макеты используются для печатных форм и шаблонов. Откройте макет двойным щелчком и измените ячейки табличного документа: текст, параметры (имена в фигурных скобках или квадратных скобках в зависимости от типа), оформление. Если в коде обработки заполняются параметры макета по именам, переименование параметра в макете без правки кода приведёт к пустым значениям на печати.

bsl
// Пример: заполнение параметра макета в модуле обработки
ТабДок = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("МакетПечати");
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ТабДок.Вывести(Область);

При изменении запросов в коде проверяйте имена полей и таблиц — они должны соответствовать конфигурации базы, где обработка будет запускаться. Обработка, написанная под одну конфигурацию, в другой может не найти нужные объекты метаданных.

Обработки, подключённые через «Дополнительные отчёты и обработки»

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

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

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

Проверка результата и типичные ошибки

После сохранения файла запустите обработку в пользовательском режиме: «Файл → Открыть» в тонком клиенте либо через список дополнительных обработок. Проверьте основной сценарий работы: заполнение параметров, выполнение основной команды, печать или выгрузку результата.

Тестировать изменения, влияющие на данные, следует на копии базы. Создайте тестовую базу из рабочей, подключите обработку там и убедитесь, что результат корректен, прежде чем отдавать файл пользователям.

Типичные ошибки
01
Правка файла на диске без обновления обработки в базе — пользователи запускают старую версию из списка дополнительных обработок
02
Код работы с данными размещён в клиентской процедуре — ошибка «Процедура или функция не обнаружена»
03
Переименован параметр в макете, но не в коде — на печати пустые поля
04
Нет проверки синтаксиса после правок — обработка падает при первом запуске
05
Правки проверяются сразу на рабочей базе — риск порчи учётных данных
Контрольные точки

Как проверить результат

Запуск обработки
Норма

Форма открывается без сообщений об ошибках

Тревожный признак

Ошибка компиляции модуля или «объект не найден»

Основная команда
Норма

Команда выполняется и даёт ожидаемый результат

Тревожный признак

Ошибка выполнения или пустой результат

Печатная форма
Норма

Все параметры макета заполнены данными

Тревожный признак

Пустые поля или имена параметров вместо значений

Версия в списке дополнительных обработок
Норма

Отображается новая версия после замены файла

Тревожный признак

Версия старая — файл в базе не обновлён

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

Можно ли изменить внешнюю обработку без конфигуратора?

Нет. Файл .epf — бинарный формат платформы, его можно редактировать только в конфигураторе 1С. В пользовательском режиме обработку можно только запускать. Исключение — обработки на управляемых формах с внешними файлами данных, но сам код и формы всё равно правятся в конфигураторе.

Чем отличается внешняя обработка от внешнего отчёта?

Технически это разные форматы: обработка — .epf, отчёт — .erf. Отчёт строится на схеме компоновки данных и предназначен для вывода информации, обработка — для выполнения действий. В конфигураторе они открываются и правятся одинаково, через «Файл → Открыть».

Почему после правки обработки в базе ничего не изменилось?

Скорее всего, обработка подключена через «Дополнительные отчёты и обработки» и в базе хранится её копия. Изменённый файл нужно загрузить в список дополнительных обработок повторно, заменив прежнюю версию.

Можно ли посмотреть код обработки, если она поставляется без исходников?

Если обработка поставлена в виде скомпилированного .epf без пароля, её модуль открывается в конфигураторе обычным образом. Если автор защитил модуль паролем или поставил обработку без исходного текста, просмотр и правка кода невозможны — потребуется исходная версия от разработчика.

Что делать, если обработка не открывается с ошибкой о версии платформы?

Файл сохранён в более новой версии платформы, чем установлена у вас. Установите нужную версию платформы и откройте файл в её конфигураторе, либо попросите автора пересохранить обработку в более старой версии, если это допустимо.

Итог

Что важно запомнить

Внешняя обработка правится в конфигураторе через «Файл → Открыть»: формы, модули и макеты изменяются как обычные объекты. Перед правкой сделайте копию файла, после — проверьте синтаксис и протестируйте на копии базы. Если обработка подключена через «Дополнительные отчёты и обработки», не забудьте обновить её внутри базы.