Внешняя обработка 1С с нуля: от пустого объекта до рабочего EPF
Содержание
Файл EPF создают в Конфигураторе: Файл → Новый → Внешняя обработка, добавляют форму и код, сохраняют на диск. Получается отдельный файл с расширением .epf, который открывается в любой базе без изменения конфигурации. Внешний отчёт делается так же, но сохраняется как .erf.
Есть три пути. Обычный файл EPF в Конфигураторе — быстро, подходит для разовых задач. Тот же файл, зарегистрированный в справочнике дополнительных обработок, — удобно для пользователей: запуск из меню, права, расписание. Расширение конфигурации — когда нужна доработка с обновлениями. Дальше — первый путь и регистрация, шаг за шагом.
1. Что нужно перед стартом
Для работы нужен Конфигуратор: запуск базы в режиме Конфигуратор и право на него у вашего пользователя. Для тестов удобна отдельная копия базы.
Что подготовить:
- ✅ Тестовую копию базы . Обработка может записывать данные, и отлаживать это на рабочей базе не стоит.
- ✅ Понимание, что обрабатываем: справочник, документы, регистры, файл Excel.
- ✅ Решение, какая форма нужна: управляемая (современная, для тонкого и веб-клиента) или обычная (только для толстого клиента).
- ✅ Папку, где будете хранить исходный EPF и его копии.
Обработка запускается с правами пользователя, который её открыл. Код внутри может читать и менять любые данные, до которых у него есть доступ. Чужие EPF без проверки в рабочую базу не открывайте.
Какой тип объекта выбрать
| Что нужно | Тип | Расширение |
|---|---|---|
| Выполнить действие над данными: загрузка, пакетная правка, служебный режим | Внешняя обработка | .epf |
| Вывести отчёт: схема компоновки данных или ручной вывод в табличный документ | Внешний отчёт | .erf |
В остальном они создаются одинаково: у отчёта чаще добавляют схему компоновки данных, у обработки — форму с командами.
2. Создаём пустой объект в Конфигураторе
- Запустите 1С в режиме
Конфигуратор. - Выберите
Файл → Новый…, в списке —Внешняя обработка,ОК. - Откроется окно объекта. В палитре свойств задайте
Имябез пробелов, напримерПакетноеПереименование. - В поле
Синонимнапишите то, что увидят пользователи: «Пакетное переименование номенклатуры». - Сразу сохраните:
Файл → Сохранить(Ctrl+S), выберите папку. Имя файла по умолчанию совпадает с именем объекта.
Сохраняйте после каждого этапа. Конфигуратор может закрыться из-за ошибки платформы, а несохранённый объект не восстановится.
Имя объекта — это идентификатор для кода. Синоним — подпись для людей. Имя лучше не менять после того, как обработку подключили к базе: на него могут ссылаться права и настройки.
3. Добавляем форму и реквизиты
Без формы обработку запустить можно, но делать в ней нечего. Форму создаёт мастер.
- В дереве слева раскройте ветку объекта, правой кнопкой по
Формы→Добавить. - Тип формы —
Форма обработки. Остальное можно оставить по умолчанию. - Назначьте её основной формой, если спросит.
- Откройте вкладку объекта
Данныеи добавьте реквизиты:Организация(типСправочникСсылка.Организации),ДатаНачала(Дата),Результат(Строка, длина 0 — неограниченная). - Перетащите реквизиты из панели реквизитов формы в её дерево элементов — они появятся на экране.
Команду добавляют в закладке Команды формы. Дайте ей имя Выполнить, в поле Действие создайте процедуру, перетащите команду на форму — получится кнопка.
Если кнопка нужна и на панели, и в подвале, перетащите одну и ту же команду дважды. Дубликаты не нужны.
4. Макеты: печатная форма, шаблон, ресурс
Макет — это заготовка внутри файла. Чаще всего берут табличный документ для печати или отчёта, реже двоичные данные (картинка, шаблон Excel).
- Правой кнопкой по
Макеты→Добавить. - Тип:
Табличный документ. - Нарисуйте таблицу, выделите область и задайте ей имя:
Шапка,Строка,Подвал. - Используйте параметры в виде
[Организация]: в ячейке, у которой в свойствахЗаполнениестоитПараметр.
В коде макет читают через ПолучитьМакет:
Макет = ЭтотОбъект.ПолучитьМакет("Основной");
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Организация = Организация;
ТабДок.Вывести(Область);
В управляемой форме обращение к макету идёт на сервере, а не на клиенте. Если пишете ПолучитьМакет в клиентской процедуре, получите ошибку компиляции.
Не кладите в макет пароли и токены. EPF — это обычный файл, его можно распаковать и прочитать.
Если печатная форма не нужна, пропустите этот раздел. Пустой макет только увеличит файл.
5. Пишем модуль объекта и формы
В 1С разделяют две области кода:
- Модуль формы — работа с экраном: нажатия, заполнение полей, вызов сервера.
- Модуль объекта — серверная логика: запросы, запись данных, расчёты. Открывается в дереве: объект →
Открыть модуль объекта.
Пример. В модуле формы кнопка вызывает серверную процедуру:
&НаКлиенте
Процедура Выполнить(Команда)
Если НЕ ЗначениеЗаполнено(Организация) Тогда
Сообщить("Укажите организацию");
Возврат;
КонецЕсли;
ВыполнитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ВыполнитьНаСервере()
Объект = РеквизитФормыВЗначение("Объект");
Результат = Объект.Обработать(Организация, ДатаНачала);
КонецПроцедуры
В модуле объекта процедура с самой логикой:
Функция Обработать(Организация, ДатаНачала) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Счётчик = 0;
Пока Выборка.Следующий() Цикл
Счётчик = Счётчик + 1;
КонецЦикла;
Возврат "Найдено элементов: " + Счётчик;
КонецФункции
Эта обработка только считает элементы справочника. Записи нет, поэтому её безопасно запускать на любой базе. Пример нужен, чтобы убедиться, что связка «форма → сервер → объект» работает.
Как отладить
- Поставьте точку останова слева от строки (
F9) и запуститеОтладка → Начать отладку(F5). - Запускайте тестовую базу тем же пользователем, под которым обработка будет работать, иначе права скроют ошибку.
- Для разового вывода хватит
Сообщить(…), но не оставляйте его в готовой версии.
Управляемая или обычная форма
От выбора зависит, где обработка запустится.
| Критерий | Управляемая форма | Обычная форма |
|---|---|---|
| Клиенты | Тонкий, веб, толстый | Только толстый |
| Код | Разделение на клиент и сервер, директивы &НаКлиенте, &НаСервере | Один контекст, всё выполняется на клиенте |
| Оформление | Элементы выстраиваются автоматически | Рисуете форму вручную |
| Когда брать | Почти всегда | Старые базы, где нет иных вариантов |
Если база сейчас работает через тонкий клиент или веб, выбирайте управляемую форму. Обычную оставьте для старых задач, которые уже написаны.
Что менять при переносе между базами
- Ссылки на справочники и документы, которых нет в другой конфигурации, вызовут ошибку при компиляции или запуске.
- Обращения к реквизитам, добавленным в вашей конфигурации, в чужой не найдутся.
- Типовые имена объектов (
Справочник.Номенклатура) есть почти везде, а отраслевые и самописные — нет.
Если обработка нужна в разных конфигурациях, вынесите обращения к метаданным в одну процедуру и проверяйте существование объекта через Метаданные.Справочники.Найти("Имя"): она вернёт Неопределено, если объекта нет.
6. Сохраняем файл EPF и делаем копию
Основное сохранение — Файл → Сохранить. Расширение .epf добавляется само. Для отчёта — .erf.
Чтобы получить копию в другое место, используйте Файл → Сохранить как…. Перед передачей коллегам:
- ✅ Проверьте синтаксис каждого модуля: в открытом модуле нажмите
Ctrl+F7, ошибки компиляции появятся в нижней панели. - ✅ Откройте файл в тестовой базе в режиме
1С:Предприятиеи пройдите сценарий целиком. - ✅ Положите рядом короткую инструкцию: что делает, на каких версиях проверена.
Хранение исходников
EPF бинарный, сравнивать версии в системе контроля версий неудобно. Для командной разработки обработку выгружают в набор XML-файлов и модулей через пакетный режим Конфигуратора и собирают обратно. Параметры командной строки смотрите в справке платформы. Для одиночной работы хватит датированных копий: Обработка_v1.epf, Обработка_v2.epf.
7. Как открыть и подключить внешнюю обработку
Есть три способа, от простого к правильному.
| Способ | Как | Когда подходит |
|---|---|---|
| Открыть из файла | В режиме 1С:Предприятие: Файл → Открыть (Ctrl+O), выбрать .epf | Разовая работа, проверка |
| Через справочник дополнительных обработок | Регистрация (см. ниже) | Постоянное использование пользователями |
| Расширение или включение в конфигурацию | Разработчик | Нужно сопровождение и обновления |
Первый способ не требует никаких настроек. Если команда Файл → Открыть не видна, в некоторых конфигурациях она скрыта в меню Главное меню (значок в левом верхнем углу); у пользователя с ограниченными правами её может не быть.
Регистрация в справочнике «Дополнительные отчёты и обработки»
Работает в конфигурациях со встроенной библиотекой стандартных подсистем (в большинстве типовых).
- Откройте
Администрирование → Печатные формы, отчёты и обработки. - Включите флаг
Дополнительные отчёты и обработки, если выключен. - Перейдите по ссылке на справочник дополнительных отчётов и обработок.
- Нажмите
Создать(в некоторых версиях —Добавить из файла), выберите.epf. - Заполните вид обработки (дополнительная обработка, заполнение объекта, создание связанных объектов, печатная форма, отчёт), наименование, ответственного.
- На закладке
Быстрый доступназначьте пользователей и разделы, где появится команда. - Нажмите
Записать и закрыть.
После этого пользователи запускают обработку из выбранного раздела, а не ищут файл.
Для запуска нужны права. Если у пользователя нет доступа к справочнику, он не увидит команду, хотя вы её настроили.
Безопасный режим
Дополнительные обработки по умолчанию выполняются в безопасном режиме: он ограничивает доступ к файлам, внешним программам и некоторым операциям. Если обработка читает Excel или вызывает COM-объект, она в этом режиме не заработает.
- Отключайте режим только для обработок, которым вы доверяете полностью.
- Это настройка карточки обработки в справочнике: в ней отметка о разрешении использования безопасного режима.
8. Типичные ошибки и что делать
Действие, а процедура существует. Если процедура с директивой &НаСервере, команда должна вызывать её через клиентскую процедуру.Если ничего не помогло
- Сделайте новую пустую обработку и добавьте в неё по одному куску кода. Так находится проблемная процедура.
- Проверьте на другой версии платформы. Если открывается — дело в совместимости.
- Откройте журнал регистрации: в Конфигураторе
Администрирование → Журнал регистрации. Там видна точная причина серверных ошибок.
9. Частые вопросы
Чем EPF отличается от ERF?
Можно ли открыть EPF без Конфигуратора?
1С:Предприятие используйте Файл → Открыть. Конфигуратор нужен только для редактирования.Работает ли EPF в веб-клиенте?
Как передать обработку другому пользователю?
.epf и скажите, как его открыть. Для постоянного использования зарегистрируйте её в справочнике дополнительных обработок.