Внешняя обработка 1С с нуля: от пустого объекта до рабочего EPF

· 9 мин

Содержание

Файл EPF создают в Конфигураторе: Файл → Новый → Внешняя обработка, добавляют форму и код, сохраняют на диск. Получается отдельный файл с расширением .epf, который открывается в любой базе без изменения конфигурации. Внешний отчёт делается так же, но сохраняется как .erf.

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

1. Что нужно перед стартом

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

Что подготовить:

  • ✅ Тестовую копию базы . Обработка может записывать данные, и отлаживать это на рабочей базе не стоит.
  • ✅ Понимание, что обрабатываем: справочник, документы, регистры, файл Excel.
  • ✅ Решение, какая форма нужна: управляемая (современная, для тонкого и веб-клиента) или обычная (только для толстого клиента).
  • ✅ Папку, где будете хранить исходный EPF и его копии.

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

Какой тип объекта выбрать

Что нужноТипРасширение
Выполнить действие над данными: загрузка, пакетная правка, служебный режимВнешняя обработка.epf
Вывести отчёт: схема компоновки данных или ручной вывод в табличный документВнешний отчёт.erf

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

2. Создаём пустой объект в Конфигураторе

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

Сохраняйте после каждого этапа. Конфигуратор может закрыться из-за ошибки платформы, а несохранённый объект не восстановится.

Имя объекта — это идентификатор для кода. Синоним — подпись для людей. Имя лучше не менять после того, как обработку подключили к базе: на него могут ссылаться права и настройки.

3. Добавляем форму и реквизиты

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

  1. В дереве слева раскройте ветку объекта, правой кнопкой по Формы → Добавить.
  2. Тип формы — Форма обработки. Остальное можно оставить по умолчанию.
  3. Назначьте её основной формой, если спросит.
  4. Откройте вкладку объекта Данные и добавьте реквизиты: Организация (тип СправочникСсылка.Организации), ДатаНачала (Дата), Результат (Строка, длина 0 — неограниченная).
  5. Перетащите реквизиты из панели реквизитов формы в её дерево элементов — они появятся на экране.

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

Если кнопка нужна и на панели, и в подвале, перетащите одну и ту же команду дважды. Дубликаты не нужны.

4. Макеты: печатная форма, шаблон, ресурс

Макет — это заготовка внутри файла. Чаще всего берут табличный документ для печати или отчёта, реже двоичные данные (картинка, шаблон Excel).

  1. Правой кнопкой по Макеты → Добавить.
  2. Тип: Табличный документ.
  3. Нарисуйте таблицу, выделите область и задайте ей имя: Шапка, Строка, Подвал.
  4. Используйте параметры в виде [Организация]: в ячейке, у которой в свойствах Заполнение стоит Параметр.

В коде макет читают через ПолучитьМакет:

Макет = ЭтотОбъект.ПолучитьМакет("Основной");
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Организация = Организация;
ТабДок.Вывести(Область);

В управляемой форме обращение к макету идёт на сервере, а не на клиенте. Если пишете ПолучитьМакет в клиентской процедуре, получите ошибку компиляции.

Не кладите в макет пароли и токены. 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Разовая работа, проверка
Через справочник дополнительных обработокРегистрация (см. ниже)Постоянное использование пользователями
Расширение или включение в конфигурациюРазработчикНужно сопровождение и обновления

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

Регистрация в справочнике «Дополнительные отчёты и обработки»

Работает в конфигурациях со встроенной библиотекой стандартных подсистем (в большинстве типовых).

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

После этого пользователи запускают обработку из выбранного раздела, а не ищут файл.

Для запуска нужны права. Если у пользователя нет доступа к справочнику, он не увидит команду, хотя вы её настроили.

Безопасный режим

Дополнительные обработки по умолчанию выполняются в безопасном режиме: он ограничивает доступ к файлам, внешним программам и некоторым операциям. Если обработка читает Excel или вызывает COM-объект, она в этом режиме не заработает.

  • Отключайте режим только для обработок, которым вы доверяете полностью.
  • Это настройка карточки обработки в справочнике: в ней отметка о разрешении использования безопасного режима.

8. Типичные ошибки и что делать

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

Если ничего не помогло

  1. Сделайте новую пустую обработку и добавьте в неё по одному куску кода. Так находится проблемная процедура.
  2. Проверьте на другой версии платформы. Если открывается — дело в совместимости.
  3. Откройте журнал регистрации: в Конфигураторе Администрирование → Журнал регистрации. Там видна точная причина серверных ошибок.

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

Чем EPF отличается от ERF?
EPF — внешняя обработка, ERF — внешний отчёт. Создаются одинаково, но отчёт обычно строится на схеме компоновки данных.
Можно ли открыть EPF без Конфигуратора?
Да. В режиме 1С:Предприятие используйте Файл → Открыть. Конфигуратор нужен только для редактирования.
Работает ли EPF в веб-клиенте?
Да, если форма управляемая и код не использует недоступные в веб-клиенте функции: прямую работу с файлами и COM-объекты.
Как передать обработку другому пользователю?
Отправьте файл .epf и скажите, как его открыть. Для постоянного использования зарегистрируйте её в справочнике дополнительных обработок.
Что делать, если обработка перестала работать после обновления конфигурации?
Откройте её в Конфигураторе и проверьте обращения к метаданным: объект могли переименовать или удалить. Исправьте и пересохраните.