Разработка и Конфигурация · 9 мин
Как изменить внешнюю обработку в 1С
Как открыть и изменить внешнюю обработку 1С (.epf) в конфигураторе: формы, модули, макеты, подключение через дополнительные отчёты и обработки, проверка ошибок.
Внешняя обработка в 1С — это файл с расширением .epf, который содержит формы, программный код и макеты, но не хранится внутри конфигурации базы. Такие файлы используют для печатных форм, загрузки данных, служебных операций и отчётов. Чтобы изменить внешнюю обработку, её открывают в конфигураторе, правят нужные объекты и сохраняют файл обратно — сама конфигурация базы при этом не затрагивается.
Перед началом работы важно понять, откуда обработка запускается. Если она подключена через механизм «Дополнительные отчёты и обработки», файл может храниться внутри информационной базы, и простая правка исходного .epf на диске ничего не изменит — нужно заменить обработку внутри базы. Если же пользователи открывают файл напрямую через «Файл → Открыть», достаточно обновить сам файл.
Для правки обработки нужен конфигуратор 1С и права на запись файла. Для изменений, затрагивающих программный интерфейс подключения (например, функции СведенияОВнешнейОбработке), дополнительно потребуется понимание формата БСП, иначе обработка перестанет регистрироваться в базе.
Подготовка: что проверить перед изменением обработки
Сначала сохраните резервную копию исходного файла .epf под отдельным именем. Это позволит вернуться к рабочей версии, если правки приведут к ошибкам. Копию удобно хранить рядом с оригиналом с пометкой даты или версии в имени файла.
Определите, как обработка используется в базе. Откройте раздел «Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки» и проверьте, есть ли она в списке. Если есть — после правки файла её нужно будет обновить в этом списке, иначе пользователи продолжат запускать старую версию, хранящуюся в базе.
Также уточните версию платформы и режим совместимости базы. Обработка, созданная под управляемые формы, не откроется корректно в базе с обычным приложением, и наоборот. Проверить режим запуска можно в свойствах конфигурации.
Как открыть внешнюю обработку в конфигураторе
Запустите конфигуратор 1С той же версии платформы, под которой работает база. Открывать саму конфигурацию базы не обязательно: выберите в меню «Файл → Открыть» и укажите файл .epf. Конфигуратор покажет структуру обработки: формы, макеты и модуль объекта.
Если при открытии появляется сообщение о несовпадении версии платформы, обработка могла быть сохранена в более новой версии. В этом случае откройте её в конфигураторе той версии, в которой она создавалась, либо попросите автора пересохранить файл под нужную версию.
После открытия вы увидите дерево объектов обработки. Двойной щелчок по форме открывает конструктор формы, по макету — табличный документ или другой тип макета, а модуль объекта открывается через контекстное меню «Открыть модуль объекта».
- 1Сделайте резервную копию файла .epf
- 2Откройте файл в конфигураторе через «Файл → Открыть»
- 3Внесите правки в форму, модуль или макет
- 4Сохраните файл (Ctrl+S)
- 5Проверьте синтаксис модуля
- 6Обновите обработку в базе, если она подключена через дополнительные обработки
- 7Протестируйте запуск в пользовательском режиме
Изменение формы обработки
Чтобы изменить внешний вид обработки, откройте нужную форму в дереве объектов. В конструкторе управляемой формы можно добавлять реквизиты, элементы (поля, кнопки, таблицы), менять их расположение и свойства. Новые реквизиты формы добавляются в правой панели окна редактора формы.
Для кнопки нужно создать команду и обработчик. Выделите кнопку, в палитре свойств укажите имя команды, а затем перейдите к событию «Действие» — конфигуратор создаст заготовку процедуры в модуле формы, куда вставляется нужный код.
Учтите различие клиентского и серверного контекста. Код, который обращается к данным базы (запросы, документы, справочники), должен выполняться на сервере — для этого процедура объявляется с директивой &НаСервере. Интерактивные действия с формой выполняются на клиенте (&НаКлиенте). Неправильное размещение кода — частая причина ошибок вида «Процедура или функция не обнаружена».
Изменение программного кода и макетов
Модуль объекта обработки содержит код, доступный при работе объекта, а модули форм — логику конкретных форм. Для правки откройте нужный модуль и измените текст процедур. После правок обязательно выполните проверку синтаксиса: «Конфигурация → Проверка конфигурации» с включённой проверкой модулей, либо кнопка проверки синтаксиса прямо в окне модуля.
Макеты используются для печатных форм и шаблонов. Откройте макет двойным щелчком и измените ячейки табличного документа: текст, параметры (имена в фигурных скобках или квадратных скобках в зависимости от типа), оформление. Если в коде обработки заполняются параметры макета по именам, переименование параметра в макете без правки кода приведёт к пустым значениям на печати.
// Пример: заполнение параметра макета в модуле обработки
ТабДок = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("МакетПечати");
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ТабДок.Вывести(Область);При изменении запросов в коде проверяйте имена полей и таблиц — они должны соответствовать конфигурации базы, где обработка будет запускаться. Обработка, написанная под одну конфигурацию, в другой может не найти нужные объекты метаданных.
Обработки, подключённые через «Дополнительные отчёты и обработки»
Если обработка зарегистрирована в механизме дополнительных отчётов и обработок (БСП), она должна содержать в модуле объекта экспортную функцию СведенияОВнешнейОбработке, которая возвращает структуру с параметрами регистрации: вид, версию, назначение, команды. Изменение состава команд или вида обработки требует правки именно этой функции.
После сохранения исправленного файла откройте в пользовательском режиме список дополнительных отчётов и обработок, найдите нужную строку и загрузите обновлённый файл — обычно доступна команда замены внешней обработки из файла. После загрузки проверьте, что версия в списке обновилась и команды обработки доступны в указанных разделах.
Если обработка не проходит регистрацию, чаще всего причина в нарушении формата функции СведенияОВнешнейОбработке или в том, что обработка открывается в безопасном режиме и использует недопустимые операции. Текст ошибки регистрации выводится при загрузке файла — читайте его внимательно.
Проверка результата и типичные ошибки
После сохранения файла запустите обработку в пользовательском режиме: «Файл → Открыть» в тонком клиенте либо через список дополнительных обработок. Проверьте основной сценарий работы: заполнение параметров, выполнение основной команды, печать или выгрузку результата.
Тестировать изменения, влияющие на данные, следует на копии базы. Создайте тестовую базу из рабочей, подключите обработку там и убедитесь, что результат корректен, прежде чем отдавать файл пользователям.
Как проверить результат
Форма открывается без сообщений об ошибках
Ошибка компиляции модуля или «объект не найден»
Команда выполняется и даёт ожидаемый результат
Ошибка выполнения или пустой результат
Все параметры макета заполнены данными
Пустые поля или имена параметров вместо значений
Отображается новая версия после замены файла
Версия старая — файл в базе не обновлён
Частые вопросы
Можно ли изменить внешнюю обработку без конфигуратора?
Нет. Файл .epf — бинарный формат платформы, его можно редактировать только в конфигураторе 1С. В пользовательском режиме обработку можно только запускать. Исключение — обработки на управляемых формах с внешними файлами данных, но сам код и формы всё равно правятся в конфигураторе.
Чем отличается внешняя обработка от внешнего отчёта?
Технически это разные форматы: обработка — .epf, отчёт — .erf. Отчёт строится на схеме компоновки данных и предназначен для вывода информации, обработка — для выполнения действий. В конфигураторе они открываются и правятся одинаково, через «Файл → Открыть».
Почему после правки обработки в базе ничего не изменилось?
Скорее всего, обработка подключена через «Дополнительные отчёты и обработки» и в базе хранится её копия. Изменённый файл нужно загрузить в список дополнительных обработок повторно, заменив прежнюю версию.
Можно ли посмотреть код обработки, если она поставляется без исходников?
Если обработка поставлена в виде скомпилированного .epf без пароля, её модуль открывается в конфигураторе обычным образом. Если автор защитил модуль паролем или поставил обработку без исходного текста, просмотр и правка кода невозможны — потребуется исходная версия от разработчика.
Что делать, если обработка не открывается с ошибкой о версии платформы?
Файл сохранён в более новой версии платформы, чем установлена у вас. Установите нужную версию платформы и откройте файл в её конфигураторе, либо попросите автора пересохранить обработку в более старой версии, если это допустимо.
Что важно запомнить
Внешняя обработка правится в конфигураторе через «Файл → Открыть»: формы, модули и макеты изменяются как обычные объекты. Перед правкой сделайте копию файла, после — проверьте синтаксис и протестируйте на копии базы. Если обработка подключена через «Дополнительные отчёты и обработки», не забудьте обновить её внутри базы.