1.4 Как устроены внешние обработки в 1С
❓ 1.4 Как устроены внешние обработки в 1С
📚 Документация
Заголовок раздела «📚 Документация»ИТС: Платформа — Внешние обработки и отчеты
— https://its.1c.ru/db/v8327doc#bookmark:dev:TI000000332
ИТС: Библиотека стандартных подсистем — Дополнительные отчеты и обработки
— https://its.1c.ru/db/bsp321doc#content:3059:hdoc
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Внешняя обработка — это файл обработки, который выполняет те же функции, что и объект метаданных «Обработка», но хранится вне конфигурации, в отдельном файле.
Ключевые особенности внешних обработок:
- Код внешней обработки компилируется при открытии, поэтому достаточно сохранить и переоткрыть файл, чтобы изменения применились.
- Обработку можно загрузить в конфигурацию или выгрузить из неё без потери функциональности.
- Редактирование кода возможно только в режиме Конфигуратора.
- Обработка может храниться:
- в двоичном формате
.epf - или в виде набора
xml-файлов
- в двоичном формате
- В конфигураторе можно работать (открыть) и с
.epf, и сxml-файлами. - Для доступа к внешним обработкам из встроенного языка используется объект встроенного языка
ВнешниеОбработки.
Как получить объект внешней обработки
Заголовок раздела «Как получить объект внешней обработки»Для работы с внешней обработкой необходимо создать объект обработки, для этого используется метод Создать.
Важно:
- В
Создатьможно передать:- полный путь к файлу обработки
- или имя обработки, полученное ранее через метод
Подключить
Про БСП (Библиотека стандартных подсистем)
Заголовок раздела «Про БСП (Библиотека стандартных подсистем)»В типовых конфигурациях внешние обработки обычно подключаются через подсистему БСП «Дополнительные отчеты и обработки».
Особенность:
- БСП использует
ВнешниеОбработки.Подключить(), куда передается адрес временного хранилища - В результате отладка внешних обработок через БСП становится неудобной, потому что:
- обработка загружается из временного хранилища
- а не создаётся напрямую из файла
Из-за этого при отладке обычно приходится:
- либо менять способ создания обработки
- либо использовать специальные расширения
Примеры: подключение и создание внешней обработки
Заголовок раздела «Примеры: подключение и создание внешней обработки»// Подключение обработкиИмяОбработки = ВнешниеОбработки.Подключить(АдресФайла);
// Создание объекта внешней обработкиОбъектВнешняяОбработка = ВнешниеОбработки.Создать(АдресФайла);// илиОбъектВнешняяОбработка = ВнешниеОбработки.Создать(ИмяОбработки);Как это выглядит в БСП (концептуально)
// Как подключается обработка в БСП// ДополнительныеОтчетыИОбработки.ПодключитьВнешнююОбработку(Ссылка)// Функция возвращает имя внешней обработки
ИмяОбработки = ВнешниеОбработки.Подключить(АдресВоВременномХранилище);
// Получение объекта обработки// ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(Ссылка)Возврат ВнешниеОбработки.Создать(ИмяОбработки);Отладка
Заголовок раздела «Отладка»Чтобы тестировать обработку напрямую, можно:
- передавать путь к файлу в метод
Создать - или изменить логику
Подключить, чтобы передавать путь к файлу обработки, которую надо отладить (открыть в конфигураторе)
Примерно так работает расширение от IRONSKILLS для тестирования внешних обработок:
https://ironskills.by/tpost/vr9ypy76d1-otladka-dopolnitelnih-obrabotok-1s.