Как открыть, зарегистрировать и отладить внешнюю обработку в 1С 8.3

· 10 мин

Содержание

Внешнюю обработку в 1С 8.3 подключают двумя способами. Разово — через главное меню Файл → Открыть (или Ctrl+O): выбрали файл .epf, поработали, закрыли. Постоянно — через справочник дополнительных отчётов и обработок: в БП 3.0, ЗУП 3.1 и УТ 11 это Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки → Добавить из файла.

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

Что такое внешняя обработка и когда она нужна

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

Зачем это бухгалтеру и программисту:

  • 🖨️ своя печатная форма — счёт с логотипом, акт с нестандартной таблицей;
  • 📥 загрузка данных — из Excel, XML, выгрузки банка или маркетплейса;
  • 🧹 групповая обработка — поменять счёт учёта, склад, ставку у сотни объектов разом;
  • 📊 нестандартный отчёт, которого нет в типовой;
  • ⏰ регламентная задача — ночью выгрузить данные, разослать письма.

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

Файлы .epf и .erf: чем отличаются внешние обработки и отчёты

Расширение файла говорит о том, что внутри.

РасширениеЧто этоОсноваТипичные задачи
.epfвнешняя обработкаобъект «Обработка»загрузка, заполнение, печать, групповые изменения
.erfвнешний отчётобъект «Отчет», чаще на системе компоновки данныханалитика, сверки, нестандартные выборки

Подключаются оба типа одинаково. Различие проявляется при регистрации: отчёт ставят видом «Дополнительный отчет» или «Отчет», обработку — видом «Дополнительная обработка», «Печатная форма», «Заполнение объекта» или «Создание связанных объектов».

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

  1. Тип форм. Управляемые формы работают в тонком клиенте и веб-клиенте. Обработка со старой обычной формой в интерфейсе «Такси» не откроется или откроется только в толстом клиенте.
  2. Для какой конфигурации написана. Обработка, созданная под УТ 11, в БП 3.0 не найдёт нужных справочников и регистров.

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

Как подключить внешнюю обработку в 1С 8.3

Способ 1. Разовое открытие через меню «Файл»

  1. Откройте главное меню — кнопка с тремя полосками в левом верхнем углу окна.
  2. Выберите Файл → Открыть или нажмите Ctrl+O.
  3. Укажите файл .epf или .erf на диске.
  4. Платформа покажет предупреждение безопасности о том, что файл может выполнять любые действия. Если источник надёжный, подтвердите открытие.
  5. Откроется форма обработки — работайте с ней как с обычной.

После закрытия программы в базе от обработки ничего не остаётся. В следующий раз файл снова придётся выбирать на диске.

Предупреждение безопасности появляется потому, что у пользователя включена защита от опасных действий. Отключать её ради удобства не стоит: этот диалог — последний шанс не запустить чужой код.

Способ 2. Регистрация в справочнике дополнительных обработок

Этот способ доступен в конфигурациях на Библиотеке стандартных подсистем: БП 3.0, ЗУП 3.1, УТ 11, КА 2, ERP, УНФ.

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

Дальше обработка вызывается из раздела (группа «Сервис» или «Дополнительные обработки» на панели раздела) или из меню Печать / Заполнить в форме документа.

Сравнение способов

КритерийРазовое открытиеРегистрация в базе
Где хранитсяфайл на дискевнутри базы, в справочнике
Кому доступнатому, у кого есть файл и право открывать внешние обработкипользователям, кому её разместили
Печать из документанетда
Запуск по расписаниюнетда, для команд вызова серверного метода
Безопасный режимне включаетсявключается флажком в карточке
Что нужно в коденичегоэкспортная функция СведенияОВнешнейОбработке()

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

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

Регистрация и код: что должно быть внутри файла

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

Пример для обработки, которая открывает свою форму из раздела:

Функция СведенияОВнешнейОбработке() Экспорт

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

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

	Возврат ПараметрыРегистрации;

КонецФункции

Что здесь важно:

  • 🔹 Вид определяет, где обработка может появиться. Печатная форма требует ещё и списка объектов назначения в ПараметрыРегистрации.Назначение.
  • 🔹 Версия показывается в карточке. Меняйте её при каждой правке — так проще понять, какая копия сейчас в базе.
  • 🔹 Тип команды бывает разный: открытие формы, вызов клиентского метода, вызов серверного метода, заполнение формы. Для запуска по расписанию нужен серверный метод — в модуле объекта тогда пишут экспортную процедуру ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполнения).
  • 🔹 БезопасныйРежим = Истина ограничивает код: из него нельзя работать с файлами, COM-объектами и внешними ресурсами без отдельного разрешения.

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

Права доступа к внешним обработкам

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

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

  1. Администрирование → Настройки пользователей и прав → Группы доступа.
  2. Откройте группу пользователя и посмотрите её профиль.
  3. В профиле на вкладке ролей найдите роль по слову «внешних» и включите её. Типовые профили поставляемые и не редактируются — сначала скопируйте профиль, затем правьте копию.

Для зарегистрированных обработок этой роли не нужно. Пользователь видит команду, если обработка размещена в доступном ему разделе и у него есть права на объекты, с которыми она работает. Добавлять и менять сами обработки в справочнике может только тот, у кого есть право на добавление и изменение дополнительных отчётов и обработок — обычно это администратор.

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

Защита от опасных действий. Это свойство пользователя: при открытии внешнего файла платформа показывает предупреждение. Флажок задаётся в свойствах пользователя в Конфигураторе. Снимать его стоит только у администратора на тестовой базе.

Облачные базы. В сервисе 1С:Фреш открыть произвольный файл через меню нельзя. Подключаются только обработки, прошедшие проверку поставщика сервиса.

Ошибки при подключении внешних обработок и что с ними делать

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

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

Отладка и тестирование внешней обработки

Отладку проще всего вести на файле, открытом через меню, а не на зарегистрированной копии.

Как запустить отладку

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

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

Отладка серверного кода в клиент-серверной базе

Код на сервере отлаживается, только если служба агента сервера 1С запущена с ключом -debug. Без него остановка произойдёт лишь в клиентских процедурах. Ключ добавляют в параметры запуска службы ragent.

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

Как тестировать перед выдачей пользователям

  • 🧪 Прогоняйте обработку на копии базы, а не на рабочей. Особенно если она что-то меняет или удаляет.
  • 🧪 Проверьте под пользователем с ограниченными правами, а не только под администратором.
  • 🧪 Если обработка будет работать в безопасном режиме — тестируйте её уже зарегистрированной, с включённым флажком.
  • 🧪 Для групповых изменений сначала запустите на 5–10 объектах и сверьте результат.

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

Внешние обработки для обмена и интеграции с другими системами

Чаще всего внешнюю обработку пишут как мост между 1С и чем-то снаружи. Типичные сценарии:

  • 📄 Файлы. Чтение Excel через табличный документ, разбор XML и JSON, выгрузка в CSV для другой программы.
  • 🌐 HTTP-сервисы и API. Запросы к сайту, маркетплейсу, банку через объект HTTPСоединение.
  • 🔌 COM-соединение. Подключение к другой базе 1С или к внешнему приложению на Windows.
  • 🗄️ Прямой доступ к СУБД через внешние источники данных или ADO — для разовых переносов.

Для таких задач безопасный режим мешает: любое обращение к диску или сети в нём запрещено. Варианты решения:

СитуацияЧто делать
Файловая база или клиент-сервер без профилей безопасностиснять флажок безопасного режима в карточке обработки
Клиент-сервер с профилями безопасностипри регистрации подсистема запросит разрешения на конкретные ресурсы — администратор их подтверждает
Разовый перенос данныхоткрыть через Файл → Открыть под администратором

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

Для постоянной интеграции через HTTP внешняя обработка — временное решение. Устойчивее сделать расширение конфигурации: оно переживает обновления лучше и не требует хранить файл отдельно.

Частые вопросы по внешним обработкам

Чем внешняя обработка отличается от расширения конфигурации?
Обработка — отдельный инструмент, который запускают явно. Расширение встраивается в конфигурацию и меняет её поведение: добавляет реквизиты, переопределяет код типовых форм. Для печатной формы или загрузки достаточно обработки, для изменения логики документа нужно расширение.
Можно ли запустить внешнюю обработку в веб-клиенте?
Да, если у неё управляемые формы и она зарегистрирована в базе. Обработки с обычными формами в веб-клиенте не работают.
Как узнать, кто и когда зарегистрировал обработку?
Откройте журнал регистрации и отберите события по справочнику дополнительных отчётов и обработок. Там видны пользователь, время и действие.
Обработка была зарегистрирована, а потом пропала из меню. Почему?
Чаще всего ей сменили статус на «Отключена» или убрали размещение. Проверьте карточку: статус «Используется», разделы или объекты назначения заполнены, пользователь отмечен в быстром доступе.
Нужно ли перерегистрировать обработки после обновления конфигурации?
Нет, они хранятся в базе и остаются на месте. Но после крупного обновления стоит проверить каждую: открыть, выполнить команду на тестовом примере.