Обработки 1С:Предприятия 8.3 от внешнего файла .epf до регистрации в базе

· 11 мин

Содержание

Обработка в 1С — это объект, который выполняет действие с данными, но сам ничего не хранит: заполняет реквизиты, загружает файл, исправляет ссылки, печатает форму. Её запускают из меню конфигурации (встроенная) или открывают из файла с расширением .epf (внешняя). Создать свою можно с нуля в Конфигураторе: Файл → Новый → Внешняя обработка.

Частое заблуждение — считать, что обработка «опасна только для программистов» и пользователю с ней делать нечего. На деле половина ежедневных операций бухгалтера уже идёт через обработки: групповое изменение реквизитов, закрытие месяца , удаление помеченных объектов. Разница лишь в том, что встроенные обработки спрятаны за пунктами меню и не выглядят как отдельные программы.

Что делает обработка и чем она отличается от отчёта и документа

У каждого объекта 1С своя роль. Справочник хранит списки, документ фиксирует факт хозяйственной жизни и делает движения по регистрам, отчёт показывает данные. Обработка — это инструмент действия.

Главное свойство обработки: у неё нет собственной таблицы в базе данных. Реквизиты обработки живут, пока открыта форма. Закрыли окно — значения исчезли, если программист не сохранил их в настройках.

Что обычно поручают обработке:

  • 🔄 массово поменять реквизит у сотен элементов справочника;
  • 📥 загрузить данные из Excel , XML или CSV;
  • 🧹 найти и исправить ошибки: пустые поля, дубли, битые ссылки;
  • 🖨️ сформировать нестандартную печатную форму;
  • ⚙️ выполнить регламентную операцию: перепровести документы, пересчитать итоги;
  • 🔗 выгрузить данные в другую программу или на сайт.

Чем обработка отличается от соседних объектов:

ОбъектХранит данныеГлавная задачаФайл внешнего варианта
СправочникДаСписок элементов—
ДокументДа, плюс движенияФиксирует операцию—
ОтчётНетПоказывает данные, часто через СКД.erf
ОбработкаНетИзменяет, загружает, печатает.epf

Граница между отчётом и обработкой иногда размыта. Обработка тоже умеет вывести табличный документ. Но если задача — только посмотреть цифры с отбором и группировками, правильнее делать отчёт на системе компоновки данных: пользователь сам настроит поля, а программисту не придётся писать код вывода.

Какие бывают обработки 1С

Обработки делят по месту хранения и по способу подключения. Это три разных сценария, и путать их не стоит.

Встроенные обработки конфигурации

Это объекты из ветки «Обработки» дерева метаданных. Они поставляются вместе с типовой конфигурацией и обновляются вместе с ней. В 1С:Бухгалтерии 3.0 к ним относятся, например, «Закрытие месяца», «Групповое изменение реквизитов», «Удаление помеченных объектов», «Помощник расчёта НДС».

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

Внешние обработки

Отдельный файл .epf, который лежит на диске или в базе. Конфигурацию он не меняет. Открыть его можно в любой момент, если у пользователя есть права.

В интерфейсе «Такси» внешний файл открывают через главное меню (кнопка с тремя полосками в левом верхнем углу): Файл → Открыть. После этого платформа покажет предупреждение безопасности, если у пользователя включена защита от опасных действий.

Дополнительные обработки (через БСП)

Это внешние обработки, зарегистрированные в базе через подсистему «Дополнительные отчёты и обработки» Библиотеки стандартных подсистем. Она есть во всех современных типовых: БП 3.0, ЗУП 3.1, УТ 11, КА 2, ERP.

Дополнительные обработки бывают нескольких видов:

ВидГде появляетсяПример
Дополнительная обработкаКоманда «Дополнительные обработки» в выбранном разделеСверка остатков с выгрузкой из склада
Дополнительный отчётКоманда «Дополнительные отчёты» в разделеОтчёт по марже в нестандартном разрезе
Печатная формаМеню «Печать» в документе или справочникеНакладная по форме клиента
Заполнение объектаКнопка «Заполнить» в форме объектаПодбор товаров из файла поставщика
Создание связанных объектовКоманда «Создать на основании»Генерация заявок по заказу

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

Внешняя, встроенная или расширение: как выбрать

Выбор зависит не от сложности кода, а от того, кто будет пользоваться обработкой и как часто обновляется конфигурация.

ВариантПлюсыМинусыКогда выбирать
Внешняя .epf без регистрацииБыстро, ничего не меняет в базеФайл надо хранить и раздавать, нужны права на открытиеРазовая задача, тест, правка данных администратором
Дополнительная обработка (БСП)Хранится в базе, встраивается в меню, есть безопасный режимНужна функция регистрации в модуле объектаРегулярная операция для нескольких пользователей
Обработка в расширенииПолноценный объект метаданных, доступ к общим модулям, типовая остаётся на поддержкеРасширение надо проверять после обновленийБольшая доработка с несколькими объектами
Обработка в основной конфигурацииПолная свободаСнятие с поддержки или усложнение обновленийНетиповая или собственная конфигурация

Для типовых конфигураций правило простое. Небольшая регулярная задача — дополнительная обработка. Доработка, которая затрагивает формы документов или требует общих модулей, — расширение (появились в платформе 8.3.6). Править саму типовую ради одной обработки сегодня почти никогда не нужно.

Какая обработка нужна в вашем случае?

Создаём внешнюю обработку в Конфигураторе шаг за шагом

Для примера сделаем полезную мелочь: обработку, которая считает элементы справочника «Номенклатура» с пустым артикулом. Пример написан под БП 3.0, но принцип одинаков для любой конфигурации на управляемых формах.

Шаг 1. Создайте файл

  1. Запустите базу в режиме «Конфигуратор». Открывать конфигурацию для создания внешней обработки не обязательно, но с открытой конфигурацией работает контекстная подсказка по её объектам.
  2. Выберите Файл → Новый, в списке — «Внешняя обработка», нажмите «ОК».
  3. В окне свойств задайте «Имя» латиницей или кириллицей без пробелов, например ПустыеАртикулы, и «Синоним» — его увидит пользователь.

Шаг 2. Добавьте форму

  1. На закладке «Формы» нажмите кнопку добавления.
  2. В конструкторе оставьте тип «Форма обработки» и отметку назначения основной формой. Нажмите «Готово».
  3. Откроется редактор формы: слева элементы, справа реквизиты и команды, внизу модуль.

Шаг 3. Создайте команду и кнопку

  1. В редакторе формы перейдите на закладку «Команды», добавьте команду Посчитать.
  2. В свойстве «Действие» нажмите на лупу — платформа создаст пустую процедуру-обработчик в модуле формы.
  3. Перетащите команду мышью в дерево элементов слева — появится кнопка.

Шаг 4. Напишите код

Клиентская процедура вызывает серверную функцию, потому что запрос к базе выполняется только на сервере:

&НаКлиенте
Процедура Посчитать(Команда)
	Количество = ПосчитатьНаСервере();
	Сообщить(СтрШаблон("Элементов без артикула: %1", Формат(Количество, "ЧН=0; ЧГ=0")));
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПосчитатьНаСервере()
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	КОЛИЧЕСТВО(Номенклатура.Ссылка) КАК Количество
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	НЕ Номенклатура.ЭтоГруппа
	|	И НЕ Номенклатура.ПометкаУдаления
	|	И Номенклатура.Артикул = """"";
	Выборка = Запрос.Выполнить().Выбрать();
	Выборка.Следующий();
	Возврат Выборка.Количество;
КонецФункции

Директива &НаСервереБезКонтекста не передаёт форму на сервер — вызов быстрее. Агрегатная функция КОЛИЧЕСТВО всегда возвращает одну строку, поэтому одного вызова Следующий() достаточно. Формат с ЧН=0 выводит ноль вместо пустой строки, а ЧГ=0 убирает пробел между разрядами.

Шаг 5. Сохраните и проверьте

  1. Файл → Сохранить как, укажите имя файла, расширение .epf подставится само.
  2. Запустите базу в режиме «1С:Предприятие» и откройте файл через Файл → Открыть.
  3. Нажмите кнопку «Посчитать» — внизу формы появится сообщение с числом.

Для отладки внешней обработки запустите «1С:Предприятие» из Конфигуратора клавишей F5 и поставьте точку останова в модуле. Файл нужно открыть из той же копии Конфигуратора — тогда отладчик остановится на строке.

Шаг 6. Подготовьте к регистрации в базе

Чтобы обработку можно было добавить в «Дополнительные отчёты и обработки», в модуль объекта (не формы) нужна экспортная функция СведенияОВнешнейОбработке. Без неё при загрузке программа сообщит, что файл не содержит сведений для регистрации.

Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.БезопасныйРежим = Истина;

	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = "Номенклатура без артикула";
	Команда.Идентификатор = "ОткрытьФорму";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	Команда.ПоказыватьОповещение = Ложь;

	Возврат ПараметрыРегистрации;
КонецФункции

Строка в скобках — минимальная версия БСП, с которой совместима обработка. БезопасныйРежим = Истина запрещает коду работу с файлами, COM-объектами и внешними компонентами. Запросы к базе в безопасном режиме выполняются, поэтому нашему примеру он не мешает.

Подключение обработки в базу: порядок в БП 3.0

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

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

Теперь в выбранном разделе появится команда «Дополнительные обработки», а в её списке — ваша обработка. В ЗУП 3.1 и УТ 11 путь к настройке тот же: раздел «Администрирование», группа «Печатные формы, отчеты и обработки».

Загружать в рабочую базу обработку из непроверенного источника нельзя. Код внешней обработки выполняется с правами пользователя, который её запустил. Если запустил администратор — обработка может удалить или выгрузить что угодно.

Ошибки при работе с обработками и как их избежать

Большинство проблем возникает не при создании, а когда обработку переносят из одной базы в другую.

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

Ещё три привычки, которые экономят время:

  • 📝 храните исходники обработок в одной папке с версией в имени файла: ПустыеАртикулы_1.2.epf;
  • 🧪 проверяйте обработку, которая меняет данные, на копии базы. Сделать копию — дело пяти минут через выгрузку .dt, а откат массовых изменений без неё часто невозможен;
  • 🔒 не ставьте пароль на модуль, если обработку будет сопровождать кто-то ещё: закрытый код потом никто не прочитает.

Где взять готовые обработки и как их проверить

Писать всё самому не нужно. Готовые обработки берут из нескольких источников:

ИсточникЧто там найтиНа что смотреть
Сама конфигурацияГрупповое изменение реквизитов, загрузка данных из файла, удаление помеченныхУже встроено, ищите через «Все функции»
Стандартные обработки фирмы 1СКонсоль запросов, универсальный обмен XML, поиск и замена значенийДолжны совпадать с версией платформы
Каталоги разработчиковПечатные формы, загрузки из маркетплейсов, сервисные утилитыОтзывы, дата обновления, открытый код
Свой программист или франчайзиЗадачи под конкретную базуДоговор и передача исходников

Многие ищут готовую обработку, хотя она уже есть в базе. Откройте главное меню, выберите Сервис → Параметры и включите флажок «Отображать команду “Все функции”». В главном меню появится пункт «Все функции», а в нём ветка «Обработки» со всеми встроенными обработками, включая скрытые из разделов.

Перед запуском чужого файла:

  1. Откройте его в Конфигураторе и прочитайте модуль объекта и модули форм.
  2. Ищите опасные места: УдалитьОбъекты, Удалить(, работу с файлами (Новый Файл, КопироватьФайл), ПривилегированныйРежим, обращения к интернету через HTTPСоединение.
  3. Если модули закрыты паролем, а автор неизвестен — не запускайте в рабочей базе.
  4. Первый запуск — на копии.

Примеры обработок под разные задачи

Чтобы понять, когда пора писать свою обработку, полезно знать типовые сценарии. Ниже — задачи, которые чаще всего решают обработкой, а не руками.

Для бухгалтера

  • 🧾 Перевыставление однотипных документов: создать 50 актов по списку договоров вместо ручного ввода каждого.
  • 🔍 Поиск документов без счетов-фактур или с расхождением сумм.
  • 📑 Печатная форма акта сверки или накладной по требованию крупного клиента.

Для кладовщика и менеджера

  • 📦 Загрузка прайса поставщика с сопоставлением номенклатуры по артикулу.
  • 🏷️ Массовая установка цен по формуле: закупочная плюс наценка 30 %.
  • 🔄 Выгрузка остатков на сайт или в маркетплейс в CSV.

Для администратора базы

  • 🧹 Поиск дублей контрагентов по ИНН и их объединение через типовую «Поиск и удаление дублей».
  • 🔗 Поиск битых ссылок после неудачного обмена.
  • ⏱️ Регламентная переотправка обменов или пересчёт итогов.

Если задача формулируется как «каждый месяц сделать одно и то же с сотней объектов» — это почти всегда обработка. Если как «посмотреть, сколько и где» — отчёт.

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

Можно ли запустить внешнюю обработку в 1С:Фреш или другом облачном сервисе?
Открыть файл .epf напрямую в сервисе обычно нельзя. Обработку загружают как дополнительную, и перед подключением её проверяет поставщик сервиса.
Нужно ли снимать конфигурацию с поддержки, чтобы добавить обработку?
Нет. Внешние и дополнительные обработки, а также обработки в расширении работают без снятия с поддержки.
Чем файл .epf отличается от .erf?
Расширение .epf у внешней обработки, .erf у внешнего отчёта. Внутри это разные объекты: у отчёта есть схема компоновки данных и стандартные настройки вывода.
Сохраняются ли значения, введённые в форме обработки?
По умолчанию нет: реквизиты обработки живут, пока открыта форма. Чтобы значения запоминались, у формы включают сохранение данных в настройках или пишут их в хранилище настроек кодом.
Будет ли внешняя обработка работать после обновления конфигурации?
Чаще всего да. Сломаться она может, если в новом релизе переименовали реквизит или объект, к которому она обращается. После крупного обновления проверьте регулярные обработки на копии.