Правим файл .epf: от открытия в Конфигураторе до загрузки новой версии в базу
Содержание
Чтобы изменить внешнюю обработку
в 1С 8.3, откройте Конфигуратор той же базы, где обработка работает, выберите Файл → Открыть и укажите файл .epf. Обработка откроется отдельным деревом объектов: правите модуль, форму или реквизиты, затем сохраняете Ctrl+S. Если обработка зарегистрирована в справочнике дополнительных обработок, новую версию нужно ещё загрузить в карточку — сам файл на диске база не отслеживает.
Инструкция общая для платформы 8.3 и не зависит от конфигурации. Отличается только последний шаг: где лежит обработка — на диске у пользователя или внутри базы в подсистеме дополнительных отчётов и обработок (БП 3.0, ЗУП 3.1, УТ 11 и другие типовые на БСП).
Где открыть внешнюю обработку для редактирования
Изменить файл .epf можно только в Конфигураторе или в 1С:EDT. В режиме 1С:Предприятие обработку можно лишь запустить: Файл → Открыть там открывает форму, а не код.
Какую базу выбрать
Обработку технически откроет Конфигуратор любой базы, но правильный выбор зависит от её содержимого:
- ✅ База с той же конфигурацией — основной вариант. Реквизиты с типами
СправочникСсылка.Номенклатура,ДокументСсылка.РеализацияТоваровУслуги вызовы общих модулей распознаются корректно. - ⚠️ Пустая учебная или тестовая база — годится, если обработка не ссылается на объекты конфигурации (например, утилита работы с файлами). Типы, которых в этой базе нет, Конфигуратор не распознает, и при сохранении они могут потеряться.
- ❌ Рабочая база под нагрузкой — открывать Конфигуратор можно, монопольный режим для правки внешней обработки не нужен. Но отлаживать новый код лучше на копии.
Самый безопасный вариант — копия рабочей базы, выгруженная через Администрирование → Выгрузить информационную базу в Конфигураторе. Там можно спокойно проверять обработку на реальных данных.
Открытие файла: порядок действий
- Запустите 1С в режиме Конфигуратор для нужной базы.
- Откройте
Файл → Открыть(илиCtrl+O), в фильтре типов выберите внешние обработки и укажите файл. - Появится окно с корнем обработки: реквизиты, табличные части, формы, макеты.
- Модуль объекта открывается через контекстное меню корня →
Открыть модуль объекта, модуль формы — двойным щелчком по форме и вкладкой «Модуль» внизу редактора.
Конфигурацию базы открывать не обязательно: внешняя обработка редактируется независимо от неё.
Права и роли, которые нужны для изменения и запуска обработки
Здесь две разные задачи с разными правами. Путают их часто, поэтому разведём.
| Задача | Что нужно пользователю |
|---|---|
Открыть .epf в Конфигураторе и сохранить | Право запуска Конфигуратора — в типовых конфигурациях его даёт роль «Полные права» (право «Администрирование») |
Открыть внешнюю обработку в 1С:Предприятии через Файл → Открыть | Право «Интерактивное открытие внешних обработок» в одной из ролей пользователя |
| Загрузить новую версию в справочник дополнительных обработок | Права на изменение дополнительных отчётов и обработок (в БСП — администратор или отдельная группа доступа) |
Как дать право на открытие внешних обработок
В типовых конфигурациях на БСП есть готовая роль «Интерактивное открытие внешних отчетов и обработок». Включают её не в карточке пользователя напрямую, а через группу доступа:
- В пользовательском режиме откройте
Администрирование → Настройки пользователей и прав → Группы доступа. - Создайте группу или выберите существующую, укажите профиль, в состав которого входит эта роль.
- Добавьте в группу нужных пользователей.
Если подходящего профиля нет, создайте его копированием из стандартного и отметьте роль в списке. Править поставляемые профили напрямую не стоит: при обновлении конфигурации их содержимое восстанавливается.
Защита от опасных действий
В актуальных версиях платформы при открытии внешнего файла появляется предупреждение безопасности. Оно связано со свойством пользователя «Защита от опасных действий». Свойство видно в Конфигураторе: Администрирование → Пользователи, карточка пользователя.
Не снимайте эту защиту всем подряд. Флаг нужен как раз для того, чтобы бухгалтер не открыл присланный по почте файл с чужим кодом. Отключайте его только разработчику на тестовой базе.
Правка кода, форм и реквизитов: что учесть
Внешняя обработка устроена как обычная обработка конфигурации. Отличия — в нескольких мелочах, которые и ломают изменения.
Модули
- 📌 Модуль объекта в управляемом приложении доступен только на сервере: обратиться к нему из клиентской процедуры формы напрямую нельзя. Сюда переносят тяжёлые расчёты и запросы.
- 📌 Модуль формы содержит процедуры с директивами
&НаКлиенте,&НаСервере,&НаСервереБезКонтекста. При добавлении новой процедуры не забудьте директиву, иначе по умолчанию она окажется на сервере. - 📌 Общие модули конфигурации из внешней обработки вызываются как обычно, но только если обработка запускается в той конфигурации, где они есть.
Пример корректного обращения к модулю объекта из формы:
&НаСервере
Процедура ЗаполнитьНаСервере()
Обработка = РеквизитФормыВЗначение("Объект");
Обработка.ЗаполнитьТаблицу();
ЗначениеВРеквизитФормы(Обработка, "Объект");
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
Формы
- Новую форму создают через ветку «Формы» → добавить. Чтобы она открывалась при запуске, укажите её в свойствах корня как основную форму обработки.
- Если обработка старая и у неё обычная форма, в интерфейсе «Такси» она откроется только в толстом клиенте. Для тонкого и веб-клиента нужна управляемая форма — её придётся сделать заново, автоматически обычная форма не конвертируется.
- Реквизит, добавленный в корень обработки, на форме появляется внутри основного реквизита
Объект. Перетащите его в элементы формы, иначе пользователь его не увидит.
Сохранение
Ctrl+S записывает изменения в тот же файл. Если хотите оставить исходник — Файл → Сохранить как с новым именем. Удобная схема имён: ЗагрузкаЦен_v1.3.epf, ЗагрузкаЦен_v1.4.epf — сразу видно, что откатывать.
Отладка изменённой обработки
Правка без проверки — половина работы. Отладчик Конфигуратора работает с внешней обработкой так же, как с кодом конфигурации.
- В Конфигураторе поставьте точку останова в модуле обработки (
F9). - Запустите отладку:
Отладка → Начать отладкуилиF5. Откроется 1С:Предприятие. - В пользовательском режиме откройте тот же самый файл, что открыт в Конфигураторе, через
Файл → Открыть. - Выполните действие — выполнение остановится на точке.
Если точка не срабатывает, почти всегда причина в пути: в Предприятии открыт другой экземпляр файла (копия из «Загрузок», вложение из почты). Отладчик сопоставляет код по файлу, поэтому путь должен совпадать.
Для обработки, зарегистрированной в справочнике дополнительных обработок, удобнее отлаживать её как обычную внешнюю, открыв через Файл → Открыть. Регистрировать версию в базе стоит уже после того, как код проверен.
Защищённые обработки и закрытый код
Иногда при попытке открыть модуль Конфигуратор просит пароль или показывает, что текст модуля недоступен. Значит, разработчик закрыл исходный код.
Что можно сделать законно:
- 📩 Запросить исходники у автора. Многие разработчики отдают открытую версию по договору или за доплату.
- 🔧 Попросить автора внести правку. Обычно это быстрее, чем переписывать.
- 🧩 Написать свою обработку рядом. Если закрытая обработка готовит данные, а вам нужно их доработать, часто проще сделать отдельную обработку, которая использует результат первой.
- 🔍 Изучить поведение снаружи. Реквизиты, формы и макеты в дереве видны и без пароля — по ним понятно, какие данные обработка ожидает.
Снятие защиты с чужой обработки нарушает права разработчика, если лицензия этого не разрешает. Инструменты «расшифровки» из интернета, кроме юридических рисков, часто сами содержат вредоносный код. Мы такие способы не описываем и не советуем.
Свою обработку тоже можно закрыть паролем, если передаёте её клиенту. Храните пароль и открытую версию в отдельном месте: восстановить забытый пароль штатными средствами нельзя.
Как обновить внешнюю обработку в базе без сбоев
Порядок зависит от того, как обработка попадает к пользователям.
Обновление дополнительной обработки БСП
- Найдите обработку:
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. - Откройте карточку и сначала выгрузите текущую версию в файл — команда выгрузки есть в карточке (в меню «Ещё»). Это ваша точка отката.
- Откройте выгруженный файл в Конфигураторе, внесите изменения.
- В функции
СведенияОВнешнейОбработке()модуля объекта увеличьте номер версии. - Сохраните файл и в карточке обработки загрузите его командой загрузки из файла.
- Запишите карточку и проверьте запуск под обычным пользователем, а не под администратором.
Фрагмент функции регистрации с версией:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.4";
ПараметрыРегистрации.БезопасныйРежим = Истина;
Возврат ПараметрыРегистрации;
КонецФункции
Если в новой версии появился код, которому нельзя работать в безопасном режиме (запись файлов на диск, COM-объекты, внешние компоненты), при БезопасныйРежим = Истина он упадёт с ошибкой. Отключать безопасный режим можно только для обработок, код которых вы проверили сами.
Хранение версий в Git
Файл .epf двоичный, и система контроля версий не покажет, что изменилось. Платформа умеет разбирать внешнюю обработку на XML-файлы и собирать обратно пакетными командами Конфигуратора:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /DumpExternalDataProcessorOrReportToFiles "D:\src\ZagruzkaCen" "D:\epf\ZagruzkaCen.epf"
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /LoadExternalDataProcessorOrReportFromFiles "D:\src\ZagruzkaCen\ZagruzkaCen.xml" "D:\epf\ZagruzkaCen.epf"
Номер платформы в пути подставьте свой. В XML-исходниках изменения видны построчно, и откатить неудачную правку можно за минуту.
Типичные ошибки при изменении обработки
Отдельно про имена. Имя файла можно менять как угодно — внутреннее имя обработки (свойство «Имя» корня) от этого не меняется. А вот для дополнительных обработок БСП важно, чтобы при обновлении загружалась та же обработка, а не похожая: иначе в карточке окажется чужой код с прежними настройками команд.
Ещё одна частая ошибка — правка «вслепую» в рабочей базе. Внешняя обработка может массово перезаписывать документы. Одна опечатка в условии отбора — и перепроведены сотни документов за закрытый период. Новый код сначала запускайте на копии.
Частые вопросы
Можно ли изменить внешнюю обработку без Конфигуратора?
Нужен ли монопольный режим, чтобы править .epf?
Чем внешняя обработка отличается от расширения конфигурации?
Можно ли превратить внешнюю обработку во встроенную?
Как понять, какая версия обработки сейчас в базе?
СведенияОВнешнейОбработке(). Поэтому номер версии при каждой правке стоит менять.