Правим файл .epf: от открытия в Конфигураторе до загрузки новой версии в базу

· 9 мин

Содержание

Чтобы изменить внешнюю обработку в 1С 8.3, откройте Конфигуратор той же базы, где обработка работает, выберите Файл → Открыть и укажите файл .epf. Обработка откроется отдельным деревом объектов: правите модуль, форму или реквизиты, затем сохраняете Ctrl+S. Если обработка зарегистрирована в справочнике дополнительных обработок, новую версию нужно ещё загрузить в карточку — сам файл на диске база не отслеживает.

Инструкция общая для платформы 8.3 и не зависит от конфигурации. Отличается только последний шаг: где лежит обработка — на диске у пользователя или внутри базы в подсистеме дополнительных отчётов и обработок (БП 3.0, ЗУП 3.1, УТ 11 и другие типовые на БСП).

Где открыть внешнюю обработку для редактирования

Изменить файл .epf можно только в Конфигураторе или в 1С:EDT. В режиме 1С:Предприятие обработку можно лишь запустить: Файл → Открыть там открывает форму, а не код.

Какую базу выбрать

Обработку технически откроет Конфигуратор любой базы, но правильный выбор зависит от её содержимого:

  • ✅ База с той же конфигурацией — основной вариант. Реквизиты с типами СправочникСсылка.Номенклатура, ДокументСсылка.РеализацияТоваровУслуг и вызовы общих модулей распознаются корректно.
  • ⚠️ Пустая учебная или тестовая база — годится, если обработка не ссылается на объекты конфигурации (например, утилита работы с файлами). Типы, которых в этой базе нет, Конфигуратор не распознает, и при сохранении они могут потеряться.
  • ❌ Рабочая база под нагрузкой — открывать Конфигуратор можно, монопольный режим для правки внешней обработки не нужен. Но отлаживать новый код лучше на копии.

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

Открытие файла: порядок действий

  1. Запустите 1С в режиме Конфигуратор для нужной базы.
  2. Откройте Файл → Открыть (или Ctrl+O), в фильтре типов выберите внешние обработки и укажите файл.
  3. Появится окно с корнем обработки: реквизиты, табличные части, формы, макеты.
  4. Модуль объекта открывается через контекстное меню корня → Открыть модуль объекта, модуль формы — двойным щелчком по форме и вкладкой «Модуль» внизу редактора.

Конфигурацию базы открывать не обязательно: внешняя обработка редактируется независимо от неё.

Права и роли, которые нужны для изменения и запуска обработки

Здесь две разные задачи с разными правами. Путают их часто, поэтому разведём.

ЗадачаЧто нужно пользователю
Открыть .epf в Конфигураторе и сохранитьПраво запуска Конфигуратора — в типовых конфигурациях его даёт роль «Полные права» (право «Администрирование»)
Открыть внешнюю обработку в 1С:Предприятии через Файл → ОткрытьПраво «Интерактивное открытие внешних обработок» в одной из ролей пользователя
Загрузить новую версию в справочник дополнительных обработокПрава на изменение дополнительных отчётов и обработок (в БСП — администратор или отдельная группа доступа)

Как дать право на открытие внешних обработок

В типовых конфигурациях на БСП есть готовая роль «Интерактивное открытие внешних отчетов и обработок». Включают её не в карточке пользователя напрямую, а через группу доступа:

  1. В пользовательском режиме откройте Администрирование → Настройки пользователей и прав → Группы доступа.
  2. Создайте группу или выберите существующую, укажите профиль, в состав которого входит эта роль.
  3. Добавьте в группу нужных пользователей.

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

Защита от опасных действий

В актуальных версиях платформы при открытии внешнего файла появляется предупреждение безопасности. Оно связано со свойством пользователя «Защита от опасных действий». Свойство видно в Конфигураторе: Администрирование → Пользователи, карточка пользователя.

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

Правка кода, форм и реквизитов: что учесть

Внешняя обработка устроена как обычная обработка конфигурации. Отличия — в нескольких мелочах, которые и ломают изменения.

Модули

  • 📌 Модуль объекта в управляемом приложении доступен только на сервере: обратиться к нему из клиентской процедуры формы напрямую нельзя. Сюда переносят тяжёлые расчёты и запросы.
  • 📌 Модуль формы содержит процедуры с директивами &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. При добавлении новой процедуры не забудьте директиву, иначе по умолчанию она окажется на сервере.
  • 📌 Общие модули конфигурации из внешней обработки вызываются как обычно, но только если обработка запускается в той конфигурации, где они есть.

Пример корректного обращения к модулю объекта из формы:

&НаСервере
Процедура ЗаполнитьНаСервере()
	Обработка = РеквизитФормыВЗначение("Объект");
	Обработка.ЗаполнитьТаблицу();
	ЗначениеВРеквизитФормы(Обработка, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура Заполнить(Команда)
	ЗаполнитьНаСервере();
КонецПроцедуры

Формы

  • Новую форму создают через ветку «Формы» → добавить. Чтобы она открывалась при запуске, укажите её в свойствах корня как основную форму обработки.
  • Если обработка старая и у неё обычная форма, в интерфейсе «Такси» она откроется только в толстом клиенте. Для тонкого и веб-клиента нужна управляемая форма — её придётся сделать заново, автоматически обычная форма не конвертируется.
  • Реквизит, добавленный в корень обработки, на форме появляется внутри основного реквизита Объект. Перетащите его в элементы формы, иначе пользователь его не увидит.

Сохранение

Ctrl+S записывает изменения в тот же файл. Если хотите оставить исходник — Файл → Сохранить как с новым именем. Удобная схема имён: ЗагрузкаЦен_v1.3.epf, ЗагрузкаЦен_v1.4.epf — сразу видно, что откатывать.

Отладка изменённой обработки

Правка без проверки — половина работы. Отладчик Конфигуратора работает с внешней обработкой так же, как с кодом конфигурации.

  1. В Конфигураторе поставьте точку останова в модуле обработки (F9).
  2. Запустите отладку: Отладка → Начать отладку или F5. Откроется 1С:Предприятие.
  3. В пользовательском режиме откройте тот же самый файл, что открыт в Конфигураторе, через Файл → Открыть.
  4. Выполните действие — выполнение остановится на точке.

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

Для обработки, зарегистрированной в справочнике дополнительных обработок, удобнее отлаживать её как обычную внешнюю, открыв через Файл → Открыть. Регистрировать версию в базе стоит уже после того, как код проверен.

Защищённые обработки и закрытый код

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

Что можно сделать законно:

  • 📩 Запросить исходники у автора. Многие разработчики отдают открытую версию по договору или за доплату.
  • 🔧 Попросить автора внести правку. Обычно это быстрее, чем переписывать.
  • 🧩 Написать свою обработку рядом. Если закрытая обработка готовит данные, а вам нужно их доработать, часто проще сделать отдельную обработку, которая использует результат первой.
  • 🔍 Изучить поведение снаружи. Реквизиты, формы и макеты в дереве видны и без пароля — по ним понятно, какие данные обработка ожидает.

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

Свою обработку тоже можно закрыть паролем, если передаёте её клиенту. Храните пароль и открытую версию в отдельном месте: восстановить забытый пароль штатными средствами нельзя.

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

Порядок зависит от того, как обработка попадает к пользователям.

Как пользователи запускают обработку?

Обновление дополнительной обработки БСП

  1. Найдите обработку: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
  2. Откройте карточку и сначала выгрузите текущую версию в файл — команда выгрузки есть в карточке (в меню «Ещё»). Это ваша точка отката.
  3. Откройте выгруженный файл в Конфигураторе, внесите изменения.
  4. В функции СведенияОВнешнейОбработке() модуля объекта увеличьте номер версии.
  5. Сохраните файл и в карточке обработки загрузите его командой загрузки из файла.
  6. Запишите карточку и проверьте запуск под обычным пользователем, а не под администратором.

Фрагмент функции регистрации с версией:

Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "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-исходниках изменения видны построчно, и откатить неудачную правку можно за минуту.

Типичные ошибки при изменении обработки

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

Отдельно про имена. Имя файла можно менять как угодно — внутреннее имя обработки (свойство «Имя» корня) от этого не меняется. А вот для дополнительных обработок БСП важно, чтобы при обновлении загружалась та же обработка, а не похожая: иначе в карточке окажется чужой код с прежними настройками команд.

Ещё одна частая ошибка — правка «вслепую» в рабочей базе. Внешняя обработка может массово перезаписывать документы. Одна опечатка в условии отбора — и перепроведены сотни документов за закрытый период. Новый код сначала запускайте на копии.

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

Можно ли изменить внешнюю обработку без Конфигуратора?
Можно в 1С:EDT — среде разработки на базе Eclipse. В пользовательском режиме код обработки не редактируется.
Нужен ли монопольный режим, чтобы править .epf?
Нет. Внешняя обработка — отдельный файл, структуру базы её правка не меняет. Пользователи могут продолжать работу.
Чем внешняя обработка отличается от расширения конфигурации?
Обработка — самостоятельный инструмент, который запускают вручную. Расширение встраивается в конфигурацию и меняет её поведение: формы документов, проверки, печать. Если нужно поправить типовую логику, правильнее делать расширение.
Можно ли превратить внешнюю обработку во встроенную?
Да, но для типовой конфигурации на поддержке это лишняя работа: придётся включать возможность изменения, а каждое обновление станет сложнее. Удобнее добавить обработку в расширение конфигурации — типовая часть останется нетронутой.
Как понять, какая версия обработки сейчас в базе?
Версия указана в карточке дополнительной обработки — её берут из функции СведенияОВнешнейОбработке(). Поэтому номер версии при каждой правке стоит менять.