Обработки 1С:Предприятия 8.3 от внешнего файла .epf до регистрации в базе
Содержание
Обработка в 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. Создайте файл
- Запустите базу в режиме «Конфигуратор». Открывать конфигурацию для создания внешней обработки не обязательно, но с открытой конфигурацией работает контекстная подсказка по её объектам.
- Выберите
Файл → Новый, в списке — «Внешняя обработка», нажмите «ОК». - В окне свойств задайте «Имя» латиницей или кириллицей без пробелов, например
ПустыеАртикулы, и «Синоним» — его увидит пользователь.
Шаг 2. Добавьте форму
- На закладке «Формы» нажмите кнопку добавления.
- В конструкторе оставьте тип «Форма обработки» и отметку назначения основной формой. Нажмите «Готово».
- Откроется редактор формы: слева элементы, справа реквизиты и команды, внизу модуль.
Шаг 3. Создайте команду и кнопку
- В редакторе формы перейдите на закладку «Команды», добавьте команду
Посчитать. - В свойстве «Действие» нажмите на лупу — платформа создаст пустую процедуру-обработчик в модуле формы.
- Перетащите команду мышью в дерево элементов слева — появится кнопка.
Шаг 4. Напишите код
Клиентская процедура вызывает серверную функцию, потому что запрос к базе выполняется только на сервере:
&НаКлиенте
Процедура Посчитать(Команда)
Количество = ПосчитатьНаСервере();
Сообщить(СтрШаблон("Элементов без артикула: %1", Формат(Количество, "ЧН=0; ЧГ=0")));
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПосчитатьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КОЛИЧЕСТВО(Номенклатура.Ссылка) КАК Количество
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления
| И Номенклатура.Артикул = """"";
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Возврат Выборка.Количество;
КонецФункции
Директива &НаСервереБезКонтекста не передаёт форму на сервер — вызов быстрее. Агрегатная функция КОЛИЧЕСТВО всегда возвращает одну строку, поэтому одного вызова Следующий() достаточно. Формат с ЧН=0 выводит ноль вместо пустой строки, а ЧГ=0 убирает пробел между разрядами.
Шаг 5. Сохраните и проверьте
Файл → Сохранить как, укажите имя файла, расширение.epfподставится само.- Запустите базу в режиме «1С:Предприятие» и откройте файл через
Файл → Открыть. - Нажмите кнопку «Посчитать» — внизу формы появится сообщение с числом.
Для отладки внешней обработки запустите «1С:Предприятие» из Конфигуратора клавишей F5 и поставьте точку останова в модуле. Файл нужно открыть из той же копии Конфигуратора — тогда отладчик остановится на строке.
Шаг 6. Подготовьте к регистрации в базе
Чтобы обработку можно было добавить в «Дополнительные отчёты и обработки», в модуль объекта (не формы) нужна экспортная функция СведенияОВнешнейОбработке. Без неё при загрузке программа сообщит, что файл не содержит сведений для регистрации.
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = "Номенклатура без артикула";
Команда.Идентификатор = "ОткрытьФорму";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Команда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
Строка в скобках — минимальная версия БСП, с которой совместима обработка. БезопасныйРежим = Истина запрещает коду работу с файлами, COM-объектами и внешними компонентами. Запросы к базе в безопасном режиме выполняются, поэтому нашему примеру он не мешает.
Подключение обработки в базу: порядок в БП 3.0
Внешний файл без регистрации каждый раз открывают вручную. Зарегистрированный — запускают из меню, как типовую команду.
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Включите флажок «Дополнительные отчеты и обработки» и перейдите по одноимённой ссылке.
- Нажмите «Добавить из файла…», согласитесь с предупреждением безопасности и выберите
.epf. - В карточке проверьте наименование и вид. В поле размещения укажите разделы, где появится команда, например «Склад» или «Администрирование».
- На закладке с командами настройте быстрый доступ — каким пользователям команда видна без лишних кликов.
- Нажмите «Записать и закрыть».
Теперь в выбранном разделе появится команда «Дополнительные обработки», а в её списке — ваша обработка. В ЗУП 3.1 и УТ 11 путь к настройке тот же: раздел «Администрирование», группа «Печатные формы, отчеты и обработки».
Загружать в рабочую базу обработку из непроверенного источника нельзя. Код внешней обработки выполняется с правами пользователя, который её запустил. Если запустил администратор — обработка может удалить или выгрузить что угодно.
Ошибки при работе с обработками и как их избежать
Большинство проблем возникает не при создании, а когда обработку переносят из одной базы в другую.
Ещё три привычки, которые экономят время:
- 📝 храните исходники обработок в одной папке с версией в имени файла:
ПустыеАртикулы_1.2.epf; - 🧪 проверяйте обработку, которая меняет данные, на копии базы. Сделать копию — дело пяти минут через выгрузку
.dt, а откат массовых изменений без неё часто невозможен; - 🔒 не ставьте пароль на модуль, если обработку будет сопровождать кто-то ещё: закрытый код потом никто не прочитает.
Где взять готовые обработки и как их проверить
Писать всё самому не нужно. Готовые обработки берут из нескольких источников:
| Источник | Что там найти | На что смотреть |
|---|---|---|
| Сама конфигурация | Групповое изменение реквизитов, загрузка данных из файла, удаление помеченных | Уже встроено, ищите через «Все функции» |
| Стандартные обработки фирмы 1С | Консоль запросов, универсальный обмен XML, поиск и замена значений | Должны совпадать с версией платформы |
| Каталоги разработчиков | Печатные формы, загрузки из маркетплейсов, сервисные утилиты | Отзывы, дата обновления, открытый код |
| Свой программист или франчайзи | Задачи под конкретную базу | Договор и передача исходников |
Многие ищут готовую обработку, хотя она уже есть в базе. Откройте главное меню, выберите Сервис → Параметры и включите флажок «Отображать команду “Все функции”». В главном меню появится пункт «Все функции», а в нём ветка «Обработки» со всеми встроенными обработками, включая скрытые из разделов.
Перед запуском чужого файла:
- Откройте его в Конфигураторе и прочитайте модуль объекта и модули форм.
- Ищите опасные места:
УдалитьОбъекты,Удалить(, работу с файлами (Новый Файл,КопироватьФайл),ПривилегированныйРежим, обращения к интернету черезHTTPСоединение. - Если модули закрыты паролем, а автор неизвестен — не запускайте в рабочей базе.
- Первый запуск — на копии.
Примеры обработок под разные задачи
Чтобы понять, когда пора писать свою обработку, полезно знать типовые сценарии. Ниже — задачи, которые чаще всего решают обработкой, а не руками.
Для бухгалтера
- 🧾 Перевыставление однотипных документов: создать 50 актов по списку договоров вместо ручного ввода каждого.
- 🔍 Поиск документов без счетов-фактур или с расхождением сумм.
- 📑 Печатная форма акта сверки или накладной по требованию крупного клиента.
Для кладовщика и менеджера
- 📦 Загрузка прайса поставщика с сопоставлением номенклатуры по артикулу.
- 🏷️ Массовая установка цен по формуле: закупочная плюс наценка 30 %.
- 🔄 Выгрузка остатков на сайт или в маркетплейс в CSV.
Для администратора базы
- 🧹 Поиск дублей контрагентов по ИНН и их объединение через типовую «Поиск и удаление дублей».
- 🔗 Поиск битых ссылок после неудачного обмена.
- ⏱️ Регламентная переотправка обменов или пересчёт итогов.
Если задача формулируется как «каждый месяц сделать одно и то же с сотней объектов» — это почти всегда обработка. Если как «посмотреть, сколько и где» — отчёт.