Настройки обработки
Обработки используются для выполнения различных манипуляций с данными, а также для реализации различных сервисных функций. Реквизиты и табличные части обработки не сохраняются в базе данных. При создании обработки в базе данных не создаются никакие таблицы.
Примеры обработок: выгрузка документа в Excel, загрузка из текстового файла, групповая обработка документов, подбор в документы продажи и т.п.
Обработки находятся в узле Обработки дерева метаданных:

Основные настройки обработки указываются на закладках Данные и Формы.
На закладке Данные можно создать реквизиты и табличные части обработки. К реквизитам обработки и табличным частям можно обращаться по имени в модуле объекта обработки:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//модуль объекта //реквизиты обработки //можно получить значение реквизита обработки Значение1 = РеквизитОбработки1; Значение2 = РеквизитОбработки2; //можно изменить РеквизитОбработки1 = "Обработка 1"; РеквизитОбработки2 = "Обработка 2"; //то же самое с табличной частью обработки СтрокаОбработки = ТабЧастьОбработки.Добавить(); СтрокаОбработки.РеквизитТабЧасти1 = "Обработка 1"; СтрокаОбработки.РеквизитТабЧасти2 = "Обработка 2"; |
На закладке Формы можно создать форму обработки, с помощью которой можно предоставить интерфейс для взаимодействия с пользователм:

Внешние обработки
Помимо обработок, встроенных в состав конфигурации в 1С можно создавать внешние обработки, которые сохраняются как отдельный файл, с возможностью открытия в пользовательском режиме.
Чтобы создать внешнюю обработку нужно в конфигураторе в верхнем меню выбрать Файл -> Новый (или нажать на кнопку с белым листом ниже):

В окне выбора вида документа нужно выделить пункт Внешняя обработка и нажать ОК:

Откроется окно с настройками внешней обработки, где также как и для обычной обработки можно создать реквизиты, табличные части и формы обработки:

Важно отметить, что у внешней обработки нет модуля менеджера.
Для сохранения внешней обработки нужно выбрать в верхнем Меню Файл -> Сохранить (или нажать на кнопку с дискетой ниже):

Указать путь к файлу, имя файла и нажать Сохранить:

Внешняя обработка сохраняется в файле с расширением .epf.
Для открытия внешней обработки в пользовательском режиме нужно в главном меню выбрать Файл -> Открыть и выбрать сохраненный файл внешней обработки:

Любую обработку из состава конфигурации можно сохранить как внешнюю. Для этого нужно в контекстном меню обработки выбрать Сохранить как внешнюю обработку, отчет …:

Также любую обработку из состава конфигурации можно заменить на внешнюю обработку. Для этого в контекстном меню нужно выбрать Заменить на внешнюю обработку, отчет …:

В этом случае текущая обработка будет заменена на внешнюю.
Если нужно добавить внешнюю обработку в состав конфигурации как новую, то нужно в контекстном меню узла Обработки выбрать Вставить внешнюю обработку, отчет …:

Можно выполнять сравнение объединение с внешней обработкой. Для этого в контекстном меню обработки нужно выбрать Сравнить, объединить с внешней обработкой, отчетом…. Это можно использовать для более быстрого редактирования обработки. Сначала сохранить обработку в файл, как внешнюю. Все доработки выполнить во внешней обработки. А потом через сравнение/объединение перенести изменения из внешней обработки во встроенную:


Программная работа с обработками
Программно нельзя добавить новую обработку в состав конфигурации или создать внешнюю обработку. Но можно создать программный объект обработки и потом вызывать ее экспортные методы из модуля объекта. Например, в модуле объекта обработки есть следующая процедура:
1 2 3 |
Процедура Метод_Обработки() Экспорт Сообщить("Вызов метода обработки"); КонецПроцедуры |
С помощью метода Создать менеджера обработки можно создать программный объект обработки, а потом вызвать ее метод:
1 2 3 4 5 6 7 8 |
//создаем программный объект обработки ОбъектОбработка = Обработки.Обработка1.Создать(); //вызываем метод из модуля объекта ОбъектОбработка.Метод_Обработки(); //также можно обращаться к реквизитам обработки ОбъектОбработка.РеквизитОбработки1 = "Обработка 1"; ОбъектОбработка.РеквизитОбработки2 = "Обработка 2"; |
Через объект ОбработкиМенеджер можно перебрать все обработки конфигурации:
1 2 3 |
Для Каждого ОбработкаКонф Из Обработки Цикл ОбъектОбработка = ОбработкаКонф.Создать(); КонецЦикла; |
Внешние обработки тоже можно создать как программный объект, а потом вызывать ее экспортные методы. Для этого используется метод Создать объекта ВнешниеОбработкиМенеджер, с указанием пути к внешней обработки:
1 2 3 4 |
//создаем программный объект обработки ВнешнОбработка = ВнешниеОбработки.Создать("F:\ВнешняяОбработка1.epf"); //вызываем ее экспортный метод ВнешнОбработка.Метод_ВнешнейОбработки(); |
Сохранение внешней обработки в базе данных
Внешние обработки можно хранить в базе данных, а потом через встроенный язык вызывать ее экспортные методы модуля объекта.
Для примера создадим в конфигурации справочник ВнешниеОбработки с реквизитом ВнешняяОбработка с типом Хранилище значения. В данном справочнике будем хранить внешние обработки как двоичные данные.

Сначала нужно подключить внешнюю обработку методом Подключить, получить имя подключенной внешней обработки в информационной базе и через это имя создать программный объект обработки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//записываем внешнюю обработку в базу данных ДД = Новый ДвоичныеДанные("F:\ВнешняяОбработка1.epf"); СпрОбъект = Справочники.ВнешниеОбработки.СоздатьЭлемент(); СпрОбъект.ВнешняяОбработка = Новый ХранилищеЗначения(ДД); СпрОбъект.Записать(); //Получаем навигационную ссылку на внешнюю обработку СсылкаНаОбработку = ПолучитьНавигационнуюСсылку(СпрОбъект, "ВнешняяОбработка"); //подключаем внешнюю обработку, //вторым параметром указываем имя для подключения ИмяОбр = ВнешниеОбработки.Подключить(СсылкаНаОбработку, "ВнешняяОбработка1"); //создаем внешнюю обработку ОбъектВнешнейОбработки = ВнешниеОбработки.Создать(ИмяОбр); //и вызываем ее экспортный метод ОбъектВнешнейОбработки.Метод_ВнешнейОбработки(); |
В методе Подключить вторым параметром можно передать имя внешней обработки, под которым оба будет зарегистрирована в информационной базе. Нельзя зарегистрировать несколько внешних обработок под одним именем. Если не указать данный параметр, то будет использоваться имя самой обработки. Внешние обработки регистрируются на время сеанса, если перезапустить сеанс, то нужно будет заново переподключать внешние обработки.
Сохранение внешней обработки в XML
Начиная с версии платформы 8.3.8 можно сохранять внешние обработки в виде XML файлов. Для этого нужно нужно в меню Действия выбрать Выгрузить в файлы…:

В результате обработка будет сохранена в виде структуры из нескольких каталогов, в которых в XML файлах будет описание обработки, а в BSL файлах исходные тексты модулей.
