Как открыть, зарегистрировать и отладить внешнюю обработку в 1С 8.3
Содержание
Внешнюю обработку
в 1С 8.3 подключают двумя способами. Разово — через главное меню Файл → Открыть (или Ctrl+O): выбрали файл .epf, поработали, закрыли. Постоянно — через справочник дополнительных отчётов и обработок: в БП 3.0, ЗУП 3.1 и УТ 11 это Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки → Добавить из файла.
Первый способ годится для разовой задачи: свернуть остатки, загрузить прайс, поправить реквизит у тысячи документов. Второй — для того, чем пользуются каждый день: печатные формы, кнопки заполнения, отчёты по расписанию. Настройка, права доступа и типичные ошибки у этих способов разные, поэтому ниже они разобраны отдельно.
Что такое внешняя обработка и когда она нужна
Внешняя обработка — это программа на встроенном языке 1С, которая хранится в отдельном файле, а не в конфигурации. Её можно подключить к базе без снятия с поддержки и без обновления структуры.
Зачем это бухгалтеру и программисту:
- 🖨️ своя печатная форма — счёт с логотипом, акт с нестандартной таблицей;
- 📥 загрузка данных — из Excel, XML, выгрузки банка или маркетплейса;
- 🧹 групповая обработка — поменять счёт учёта, склад, ставку у сотни объектов разом;
- 📊 нестандартный отчёт, которого нет в типовой;
- ⏰ регламентная задача — ночью выгрузить данные, разослать письма.
Главный плюс — типовая конфигурация остаётся нетронутой. Обновления ставятся как обычно, а файл обработки живёт отдельно. Минус — после крупного обновления конфигурации обработка может перестать работать, если обращается к объектам, которые разработчики 1С переименовали или убрали.
Файлы .epf и .erf: чем отличаются внешние обработки и отчёты
Расширение файла говорит о том, что внутри.
| Расширение | Что это | Основа | Типичные задачи |
|---|---|---|---|
.epf | внешняя обработка | объект «Обработка» | загрузка, заполнение, печать, групповые изменения |
.erf | внешний отчёт | объект «Отчет», чаще на системе компоновки данных | аналитика, сверки, нестандартные выборки |
Подключаются оба типа одинаково. Различие проявляется при регистрации: отчёт ставят видом «Дополнительный отчет» или «Отчет», обработку — видом «Дополнительная обработка», «Печатная форма», «Заполнение объекта» или «Создание связанных объектов».
Есть ещё два признака, которые стоит проверить у любого файла до подключения:
- Тип форм. Управляемые формы работают в тонком клиенте и веб-клиенте. Обработка со старой обычной формой в интерфейсе «Такси» не откроется или откроется только в толстом клиенте.
- Для какой конфигурации написана. Обработка, созданная под УТ 11, в БП 3.0 не найдёт нужных справочников и регистров.
Открыть файл и посмотреть код можно в Конфигураторе: Файл → Открыть. Конфигурацию для этого загружать не нужно, но подключение к базе понадобится.
Как подключить внешнюю обработку в 1С 8.3
Способ 1. Разовое открытие через меню «Файл»
- Откройте главное меню — кнопка с тремя полосками в левом верхнем углу окна.
- Выберите
Файл → Открытьили нажмитеCtrl+O. - Укажите файл
.epfили.erfна диске. - Платформа покажет предупреждение безопасности о том, что файл может выполнять любые действия. Если источник надёжный, подтвердите открытие.
- Откроется форма обработки — работайте с ней как с обычной.
После закрытия программы в базе от обработки ничего не остаётся. В следующий раз файл снова придётся выбирать на диске.
Предупреждение безопасности появляется потому, что у пользователя включена защита от опасных действий. Отключать её ради удобства не стоит: этот диалог — последний шанс не запустить чужой код.
Способ 2. Регистрация в справочнике дополнительных обработок
Этот способ доступен в конфигурациях на Библиотеке стандартных подсистем: БП 3.0, ЗУП 3.1, УТ 11, КА 2, ERP, УНФ.
- Включите функциональность:
Администрирование → Печатные формы, отчеты и обработки, флажок Дополнительные отчеты и обработки. - Перейдите по ссылке Дополнительные отчеты и обработки на той же странице.
- Нажмите Добавить из файла и выберите файл.
- Карточка заполнится сама: наименование, вид, версия, список команд. Если поля остались пустыми — файл не поддерживает регистрацию (об этом ниже).
- Настройте размещение:
- для дополнительной обработки или отчёта — в каких разделах она появится;
- для печатной формы, заполнения объекта и связанных объектов — у каких документов и справочников.
- В таблице команд в колонке Быстрый доступ отметьте пользователей, у которых команда будет видна сразу.
- Нажмите Записать и закрыть.
Дальше обработка вызывается из раздела (группа «Сервис» или «Дополнительные обработки» на панели раздела) или из меню Печать / Заполнить в форме документа.
Сравнение способов
| Критерий | Разовое открытие | Регистрация в базе |
|---|---|---|
| Где хранится | файл на диске | внутри базы, в справочнике |
| Кому доступна | тому, у кого есть файл и право открывать внешние обработки | пользователям, кому её разместили |
| Печать из документа | нет | да |
| Запуск по расписанию | нет | да, для команд вызова серверного метода |
| Безопасный режим | не включается | включается флажком в карточке |
| Что нужно в коде | ничего | экспортная функция СведенияОВнешнейОбработке() |
Как обновить уже зарегистрированную обработку
Удалять старую карточку и создавать новую не нужно — пропадут настройки размещения и быстрого доступа. Откройте карточку и используйте команду загрузки из файла в её командной панели. Чтобы сохранить текущую версию перед заменой, сначала выгрузите её в файл командой рядом.
Регистрация и код: что должно быть внутри файла
Чтобы обработку можно было зарегистрировать, в модуле объекта нужна экспортная функция СведенияОВнешнейОбработке(). Она сообщает подсистеме вид обработки, версию и список команд.
Пример для обработки, которая открывает свою форму из раздела:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.4.1.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = "Загрузить цены из Excel";
Команда.Идентификатор = "ЗагрузитьЦены";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Команда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
Что здесь важно:
- 🔹 Вид определяет, где обработка может появиться. Печатная форма требует ещё и списка объектов назначения в
ПараметрыРегистрации.Назначение. - 🔹 Версия показывается в карточке. Меняйте её при каждой правке — так проще понять, какая копия сейчас в базе.
- 🔹 Тип команды бывает разный: открытие формы, вызов клиентского метода, вызов серверного метода, заполнение формы. Для запуска по расписанию нужен серверный метод — в модуле объекта тогда пишут экспортную процедуру
ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполнения). - 🔹 БезопасныйРежим = Истина ограничивает код: из него нельзя работать с файлами, COM-объектами и внешними ресурсами без отдельного разрешения.
Если обработка куплена готовой, а регистрироваться не хочет — функцию можно дописать самому в Конфигураторе, открыв файл через Файл → Открыть. Логику обработки при этом трогать не нужно.
Права доступа к внешним обработкам
Ошибка «нет прав» — самый частый вопрос после подключения. Права на внешние обработки задаются отдельно от прав на документы и справочники.
Для разового открытия через «Файл» у пользователя должны быть права на интерактивное открытие внешних обработок и отчётов. В типовых конфигурациях на БСП они собраны в роль Интерактивное открытие внешних отчетов и обработок. Её выдают через профиль групп доступа:
Администрирование → Настройки пользователей и прав → Группы доступа.- Откройте группу пользователя и посмотрите её профиль.
- В профиле на вкладке ролей найдите роль по слову «внешних» и включите её. Типовые профили поставляемые и не редактируются — сначала скопируйте профиль, затем правьте копию.
Для зарегистрированных обработок этой роли не нужно. Пользователь видит команду, если обработка размещена в доступном ему разделе и у него есть права на объекты, с которыми она работает. Добавлять и менять сами обработки в справочнике может только тот, у кого есть право на добавление и изменение дополнительных отчётов и обработок — обычно это администратор.
Право открывать произвольные внешние обработки равносильно полному доступу к базе. В файл можно положить любой код: удалить документы, выгрузить персональные данные сотрудников. Выдавайте эту роль только тем, кто понимает, что запускает.
Защита от опасных действий. Это свойство пользователя: при открытии внешнего файла платформа показывает предупреждение. Флажок задаётся в свойствах пользователя в Конфигураторе. Снимать его стоит только у администратора на тестовой базе.
Облачные базы. В сервисе 1С:Фреш открыть произвольный файл через меню нельзя. Подключаются только обработки, прошедшие проверку поставщика сервиса.
Ошибки при подключении внешних обработок и что с ними делать
Если ошибка возникла после обновления конфигурации, а до него всё работало, — почти наверняка сменились имена объектов. Откройте обработку в Конфигураторе и выполните синтаксический контроль модуля: строки с ошибками покажутся сразу.
Отладка и тестирование внешней обработки
Отладку проще всего вести на файле, открытом через меню, а не на зарегистрированной копии.
Как запустить отладку
- Запустите Конфигуратор той же базы.
- Откройте файл обработки:
Файл → Открыть. - Поставьте точки останова в модуле формы или объекта — клавиша
F9. - Запустите 1С:Предприятие из Конфигуратора:
Отладка → Начать отладку(клавишаF5). - В запущенной программе откройте тот же самый файл через
Файл → Открыть. - Выполните действие — отладчик остановится на точке.
Ключевой момент — путь к файлу. Если в Конфигураторе открыт один файл, а в программе — его копия из другой папки, точки останова не сработают.
Отладка серверного кода в клиент-серверной базе
Код на сервере отлаживается, только если служба агента сервера 1С запущена с ключом -debug. Без него остановка произойдёт лишь в клиентских процедурах. Ключ добавляют в параметры запуска службы ragent.
Чтобы изменения в параметрах службы вступили в силу, её нужно перезапустить. Перезапуск оборвёт сеансы всех пользователей — делайте это вне рабочего времени или на тестовом сервере.
Как тестировать перед выдачей пользователям
- 🧪 Прогоняйте обработку на копии базы, а не на рабочей. Особенно если она что-то меняет или удаляет.
- 🧪 Проверьте под пользователем с ограниченными правами, а не только под администратором.
- 🧪 Если обработка будет работать в безопасном режиме — тестируйте её уже зарегистрированной, с включённым флажком.
- 🧪 Для групповых изменений сначала запустите на 5–10 объектах и сверьте результат.
Перед запуском обработки, которая меняет или удаляет данные в рабочей базе, сделайте резервную копию. Отменить групповое изменение кнопкой нельзя.
Внешние обработки для обмена и интеграции с другими системами
Чаще всего внешнюю обработку пишут как мост между 1С и чем-то снаружи. Типичные сценарии:
- 📄 Файлы. Чтение Excel через табличный документ, разбор XML и JSON, выгрузка в CSV для другой программы.
- 🌐 HTTP-сервисы и API. Запросы к сайту, маркетплейсу, банку через объект
HTTPСоединение. - 🔌 COM-соединение. Подключение к другой базе 1С или к внешнему приложению на Windows.
- 🗄️ Прямой доступ к СУБД через внешние источники данных или ADO — для разовых переносов.
Для таких задач безопасный режим мешает: любое обращение к диску или сети в нём запрещено. Варианты решения:
| Ситуация | Что делать |
|---|---|
| Файловая база или клиент-сервер без профилей безопасности | снять флажок безопасного режима в карточке обработки |
| Клиент-сервер с профилями безопасности | при регистрации подсистема запросит разрешения на конкретные ресурсы — администратор их подтверждает |
| Разовый перенос данных | открыть через Файл → Открыть под администратором |
Если интеграция должна работать каждую ночь, зарегистрируйте обработку с командой вызова серверного метода и задайте расписание в её карточке. Задание выполнится без участия пользователя — при условии, что в базе разрешены регламентные задания.
Для постоянной интеграции через HTTP внешняя обработка — временное решение. Устойчивее сделать расширение конфигурации: оно переживает обновления лучше и не требует хранить файл отдельно.