Внешняя обработка в 1С 8.3: три способа запуска, права и защита
Содержание
Подключить обработку в 1С можно тремя способами. Разово — через главное меню Файл → Открыть (или Ctrl+O) и выбор файла .epf. Постоянно — через справочник дополнительных обработок: в БП 3.0 и ЗУП 3.1 это Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки → Добавить из файла. Третий способ — из кода, методом ВнешниеОбработки.Подключить().
Для новичка разница простая. Первый способ подходит, чтобы один раз запустить присланный файл. Второй — чтобы обработка жила в базе, была видна нужным пользователям и не терялась вместе с папкой «Загрузки». Третий нужен программисту, который пишет свой механизм запуска.
Что такое внешняя обработка и чем она отличается от встроенной
Обработка — объект 1С, который выполняет действие: загружает данные из Excel, массово меняет реквизиты, заполняет табличную часть, печатает нестандартную форму. Встроенные обработки живут в конфигурации. Внешние хранятся отдельным файлом и подключаются без изменения конфигурации.
Расширения файлов:
- 📄
.epf— внешняя обработка; - 📊
.erf— внешний отчёт; - 🧩
.cfe— расширение конфигурации . Это другой механизм, черезCtrl+Oего не открывают.
Главный плюс внешней обработки: конфигурация остаётся типовой и обновляется без проблем. Минус: файл выполняет код с вашими правами. Если вы администратор, он может сделать в базе всё, что можете вы.
Какие бывают виды дополнительных обработок
В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11, КА 2, ERP) при регистрации программа сама определяет вид обработки по её коду:
| Вид | Где появляется после подключения |
|---|---|
| Дополнительная обработка | В выбранном разделе, в списке дополнительных обработок |
| Дополнительный отчёт | В выбранном разделе, в списке дополнительных отчётов |
| Печатная форма | В меню Печать документа или справочника |
| Заполнение объекта | В командах заполнения формы документа |
| Создание связанных объектов | В командах Создать на основании |
| Отчёт (привязанный) | В командах отчётов формы объекта |
Вид менять вручную нельзя. Он задан разработчиком внутри файла.
Способ 1. Как подключить обработку через меню «Файл» → «Открыть»
Самый быстрый путь. Подходит для разового запуска в файловой и клиент-серверной базе через тонкий или толстый клиент.
- Откройте главное меню программы: значок с тремя полосками в левом верхнем углу окна.
- Выберите
Файл→Открыть. То же самое делает сочетаниеCtrl+O. - Укажите файл
.epfна диске и нажмитеОткрыть. - Платформа покажет предупреждение о том, что файл может содержать опасный код. Если файл из надёжного источника, подтвердите открытие.
- Откроется основная форма обработки. Работайте с ней как с обычным окном 1С.
После закрытия окна обработка из сеанса уходит. В следующий раз файл снова придётся искать на диске.
Почему нет пункта «Файл» или он ничего не открывает
- 🔒 Нет права. У пользователя должно быть право «Интерактивное открытие внешних обработок». В типовых конфигурациях его выдаёт профиль групп доступа «Открытие внешних отчетов и обработок» (
Администрирование→Пользователи и права→Группы доступа). Без права появится сообщениеНарушение прав доступа!. - 🌐 Веб-клиент. В браузере открыть произвольный файл через меню не получится. Используйте второй способ.
- ☁️ Облако на 1С:Фреш. Произвольные файлы там не запускают. Обработку подключают только после проверки в сервисе.
Пункт Файл → Открыть удобен, чтобы проверить обработку на копии базы. Убедились, что она делает нужное, — регистрируйте её постоянно вторым способом.
Способ 2. Подключение обработки через «Дополнительные отчеты и обработки»
Это основной способ для типовых конфигураций. Обработка сохраняется в базе, её видят все нужные пользователи, а в клиент-серверном варианте и в веб-клиенте она работает так же, как в файловой базе.
Шаг 1. Включите функциональность
Пути по конфигурациям:
| Конфигурация | Где включить |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Печатные формы, отчеты и обработки |
| ЗУП 3.1 | Администрирование → Печатные формы, отчеты и обработки |
| Управление торговлей 11 | НСИ и администрирование → Печатные формы, отчеты и обработки |
На открывшейся странице поставьте флажок Дополнительные отчеты и обработки. Рядом станет активной одноимённая ссылка.
Шаг 2. Добавьте файл
- Перейдите по ссылке
Дополнительные отчеты и обработки. - Нажмите
Добавить из файла. - Программа покажет предупреждение о безопасности. Прочитайте и нажмите
Продолжить. - Выберите файл
.epfили.erf. - Откроется карточка. Наименование, вид и версия заполнятся из самого файла.
Если карточка не открылась, а пришло сообщение Невозможно подключить дополнительную обработку из файла. Возможно, она не подходит для этой версии программы. — файл не рассчитан на регистрацию. Подробнее в разделе об ошибках.
Шаг 3. Настройте размещение и доступ
Это шаг, который новички пропускают, а потом ищут обработку по всем меню.
- 📍 Размещение (для дополнительных обработок и отчётов). Щёлкните по полю размещения и отметьте разделы, где обработка должна появиться: например, «Покупки» или «Склад».
- 👥 Быстрый доступ. В табличной части команд нажмите на колонку быстрого доступа и выберите пользователей. У них команда будет сразу на виду, без поиска в списке.
- 🧾 Объекты (для печатных форм и заполнения). Проверьте список документов или справочников, к которым привязана команда. Его задаёт разработчик, но иногда список нужно сузить.
- 🔘 Публикация. Значения:
Используется,Режим отладки,Отключена. Для рабочей эксплуатации —Используется.
Нажмите Записать и закрыть.
Шаг 4. Найдите и запустите
Для дополнительной обработки откройте выбранный раздел. В панели навигации появится команда Дополнительные обработки. В открывшемся списке выберите свою и нажмите Выполнить.
Печатная форма появится в меню Печать документа. Если меню не обновилось, закройте и снова откройте форму документа. Иногда нужен перезапуск сеанса.
Обработку из справочника можно обновить, не удаляя карточку. Откройте её и нажмите Загрузить из файла…. Настройки размещения и пользователей сохранятся. Если удалить карточку и создать новую, придётся настраивать всё заново.
Способ 3. Программное подключение обработки (для разработчиков)
Нужен, когда вы пишете свою команду запуска: например, кнопку в расширении, которая берёт файл с диска пользователя. Работает в тонком и веб-клиенте, потому что файл передаётся на сервер через временное хранилище.
Схема из трёх шагов: поместить файл во временное хранилище , подключить его на сервере, открыть форму по полученному имени.
&НаКлиенте
Процедура ВыбратьИОткрыть(Команда)
Оповещение = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект);
НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
ИмяОбработки = ПодключитьНаСервере(Адрес);
ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодключитьНаСервере(Адрес)
ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;
Возврат ВнешниеОбработки.Подключить(Адрес, , Ложь, ОписаниеЗащиты);
КонецФункции
Что здесь происходит:
НачатьПомещениеФайлаоткрывает диалог выбора и кладёт файл во временное хранилище формы.ВнешниеОбработки.Подключитьподключает обработку на сервере и возвращает её имя.- Третий параметр
Ложь— подключение без безопасного режима. Обработка получает доступ к файлам, COM и внешним компонентам. СтавьтеЛожьтолько для своего проверенного кода. ОткрытьФормус путёмВнешняяОбработка.<Имя>.Формаоткрывает основную форму.
Если форма не нужна и обработка просто выполняет экспортный метод, создайте объект на сервере: ВнешниеОбработки.Создать(ИмяОбработки) и вызовите метод модуля объекта.
Старый приём ВнешниеОбработки.Создать("C:\Путь\Файл.epf") с путём к файлу работает, только если файл лежит там, где его видит процесс, выполняющий код. В клиент-серверной базе это диск сервера 1С, а не компьютер пользователя. Отсюда типичная ошибка «файл не найден», хотя он лежит у пользователя на рабочем столе.
Ошибки при подключении внешних обработок и что с ними делать
Ещё один частый случай: файл скачан из почты, и Windows заблокировала его. Откройте свойства файла в Проводнике и снимите отметку блокировки, если она есть.
Безопасность при работе с внешними обработками
Внешняя обработка — это программа. Перед запуском чужого файла соблюдайте несколько правил.
- 🔍 Источник. Берите файлы у разработчика, с которым есть договор, или у проверенного поставщика. Обработка «с форума» может удалять данные или отправлять их наружу.
- 🧪 Копия базы. Первый запуск обработки, которая меняет данные, — только на копии базы. Массовая обработка за секунды перепишет тысячи документов, и откатить это без резервной копии нельзя.
- 👀 Код. Откройте файл в конфигураторе (
Файл→Открыть) и просмотрите модуль объекта и модуль формы. Насторожить должны обращения кCOMОбъект,HTTPСоединение,УдалитьФайлы,ЗапуститьПриложение. - 🛡️ Безопасный режим. В справочнике дополнительных обработок файл по умолчанию работает в безопасном режиме, если разработчик не запросил иное. Не снимайте ограничения без понимания, зачем они нужны.
Защита от опасных действий
В современных версиях платформы при открытии внешней обработки срабатывает защита от опасных действий: платформа показывает предупреждение перед запуском. Это настраивается для каждого пользователя в конфигураторе (Администрирование → Пользователи, флажок Защита от опасных действий).
Отключить предупреждения для всех баз на компьютере можно параметром в файле conf.cfg каталога платформы:
DisableUnsafeActionProtection=.*
Вместо .* можно указать регулярное выражение для строки соединения конкретной базы. Не отключайте защиту в рабочих базах без необходимости — она срабатывает как раз тогда, когда пользователь открывает неизвестный файл.
Как создать свою обработку: минимальный пример
Свою внешнюю обработку делают в конфигураторе. Конфигурацию базы при этом менять не нужно.
- Запустите базу в режиме
Конфигуратор. - Выберите
Файл→Новый→Внешняя обработкаи нажмитеОК. - Задайте имя на латинице или кириллице без пробелов, например
ЗагрузкаЦен. - На вкладке
Формыдобавьте управляемую форму. Она станет основной. - Добавьте реквизиты, команды и код.
- Сохраните:
Файл→Сохранить как, тип.epf.
Такой файл уже можно открыть через Ctrl+O. Чтобы он встал в справочник дополнительных обработок, добавьте в модуль объекта функцию регистрации:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = "Загрузка цен";
Команда.Идентификатор = "ЗагрузкаЦен";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Команда.ПоказыватьОповещение = Ложь;
Возврат ПараметрыРегистрации;
КонецФункции
Параметр "2.3.1.73" — минимальная версия БСП, с которой совместима обработка. БезопасныйРежим = Истина оставляйте, пока обработке не нужны файлы, COM или интернет.
Если вы правите обработку часто, отлаживайте её через Файл → Открыть в режиме предприятия, а в справочник загружайте уже готовую версию. Для печатных форм и команд заполнения удобен режим публикации Режим отладки: команда видна только администратору.
Какой способ выбрать
| Способ | Когда подходит | Ограничения |
|---|---|---|
Файл → Открыть | Разовый запуск, проверка файла | Нужно право на интерактивное открытие, не работает в веб-клиенте |
| Дополнительные отчёты и обработки | Постоянная работа, печатные формы, команды заполнения | Файл должен содержать регистрационные сведения |
ВнешниеОбработки.Подключить() | Свой механизм запуска в расширении или обработке | Нужен программист, ответственность за безопасный режим |