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

В режиме 1С:Предприятие внешнюю обработку можно запустить на выполнение, открыв ее как любой другой файл, хранящийся на диске. Такая обработка будет работать точно так же, как если бы она входила в состав прикладного решения.

Любой существующий в конфигурации отчет или обработка может быть преобразован во внешний, и наоборот. Кроме этого внешние обработки и отчеты могут быть добавлены в структуру прикладного решения как новые объекты:

Конфигуратор поддерживает также возможность сравнения и объединения существующей в конфигурации обработки или отчета с внешней обработкой и отчетом, а также сравнение и объединение двух внешних отчетов или обработок.
Создание обработки 1С 8.3 с нуля на примере
Обработка 1С – это прикладной объект конфигурации, который служит для выполнения различных действий над информацией в базе 1С, таких как преобразование данных, добавление, удаление и т.д. Обработки в 1с можно разделить на два вида:
- Внутренние обработки (встроенные в конфигурацию). Полный список таких обработок мы можем увидеть в режиме конфигуратора, открыв окно конфигурации:

- Внешние обработки (можно хранить в виде отдельных файлов с расширением .epf). Список подключённых внешних обработок в управляемом интерфейсе мы можем найти в подсистеме «НСИ и Администрирование» — «Печатные формы, отчёты и обработки» — «Дополнительные отчёты и обработки».

Если появляется необходимость расширить функционал конфигурации с помощью обработки, то следует использовать именно внешние обработки. Это позволит оставить структуру конфигурации неизменной, и облегчит возможность её дальнейшей поддержки.
Пример создания простейшей внешней обработки в 1С 8.3
На форме обработки необходимо дать возможность пользователю ввести текст, а по нажатию на кнопку вывести этот текст в окно сообщений.
В режиме конфигуратора переходим в меню «Файл» — «Новый» выбираем пункт «Внешняя обработка».

В открывшемся окне задаём имя для нашей обработки «МояПерваяОбработка». Определим реквизит «ТекстДляВывода» (тип <Строка>, длина <100>).

Далее добавляем форму обработки, не забудем включить наш реквизит «ТекстДляВвода» в состав формы.

Получите понятные самоучители по 1С бесплатно:
Добавляем команду формы, назначив ей имя «Вывести текст», а так же в окне свойств по нажатию на лупу определим обработчик этой команды на «клиенте».

Код обработки в модуле формы может выглядеть так:
Чтобы мы могли видеть нашу созданную кнопку на форме её необходимо добавить в раздел элементов формы. Это можно сделать простым перетаскиванием.

Наша обработка готова, её можно сохранить в виде файла на диск.

Запустив 1С в режиме предприятия и выбрав наш файл обработки через меню «Файл» — «Открыть» можем проверить её работоспособность.

СведенияОВнешнейОбработке — функция для подключения внешней обработки
Технология подключения внешних обработок и отчётов в управляемом интерфейсе несколько отличается от подключения в обычном режиме. Попытавшись подключить нашу обработку через подсистему «НСИ и Администрирование» — «Печатные формы, отчёты и обработки» — «Дополнительные отчёты и обработки» мы неизменно получим следующую ошибку.

Связана она с тем, что в конфигурациях использующих БСП(библиотеку стандартных подсистем), необходимо предоставлять некие сведения описывающие внешнюю обработку. Такие сведения необходимо возвращать из экспортной функции «СведенияОВнешнейОбработке» в виде структуры. А саму функцию разместить в модуле объекта обработки.
Пример такой функции для нашей обработки может выглядеть так:
Какие сведения необходимо использовать при регистрации той или иной обработки удобно подсмотреть в справочнике «ДополнительныеОтчетыИОбработки» в режиме конфигуратора.

Подключение внешней обработки в режиме 1С:Предприятие
Теперь можем добавить нашу обработку, указав в каких подсистемах программы, она будет располагаться.
На уровне различия в структуре метаданных в отчётах дополнительно можно указать основную Схему Компоновки Данных (СКД) и настройки для сохранения параметров. Также здесь есть используемый в текущий момент компоновщик настроек. В обработках данные структуры не используются.
Указание в отчётах основной СКД является полезной функцией, т.к. при этом можно создать требуемый отчёт, не написав ни единой строчки кода в самом модуле отчёта, что ускоряет разработку и понимание принципов функционирования СКД для новичков.
Внешние отчёты и обработки 1C
В режиме конфигуратора 1С есть возможность создавать не только объекты внутри конфигурации (в дереве метаданных), но и создавать внешние объекты в виде отдельных файлов. Это касается, в том числе, отчётов и обработок. Преимуществом внешних объектов в том, что новые объекты не требуется каждый раз включать в состав конфигурации и, соответственно, обновлять при этом всю информационную базу 1С. Вместо этого можно использовать любые необходимые отчёты и обработки и изменять их без внесения изменений в метаданные базы 1С.
Внешние отчёты/обработки сохраняются в отдельные файлы и имеют следующие расширения:
- Внешний отчёт — *.erf
- Внешняя обработка — *.epf
Пример создания внешней обработки 1С
Создавать внешние объекты довольно просто. Функционал, закладываемый разработчиком в конкретную реализацию отчёта или обработки в 1С 8.3 или 8.2, индивидуален и зависит от решаемой задачи.
Покажем пример создания простой обработки 1С. Обработка по нажатию на кнопку «Выполнить» должна выводить на экран сообщение, заданное пользователем в поле «Вывести».
1. Выбираем информационную базу из списка, заходим в режим конфигуратора 1С.
2. В конфигураторе выбираем пункт меню Файл – Новый…
3. Выбираем из списка вид объекта – Внешняя обработка.
4. Задаём имя обработки. В данном случае имя нашей обработки будет «ПримерВнешнейОбработки».
5. Определяем структуру данных обработки. По условию нашей задачи в структуру реквизитов нужно добавить строковое поле «Вывести».
6. Создаём пользовательскую форму. Тип формы: Обычная.
7. Правой клавишей мыши вызываем контекстное меню. Определяем обработчик нажатия на кнопку «Выполнить».
8. Прописываем код обработки.
9. Сохраняем нашу обработку на диск. Заходим в режим предприятия 1С.
10. Выбираем пункт меню Файл – Открыть…
11. Выбираем созданную нами обработку и нажимаем «Открыть».
12. В форме самой обработки вводим текст и нажимаем кнопку «Выполнить». При этом в служебных сообщениях появляется наш текст.
Мы рассмотрели создание внешней обработки. О том, как создать простейший внешний отчёт на СКД, написано более подробно в этой статье: https://life1c.ru/post/478.
Созданную обработку можно скачать по ссылке ниже.
Дополнительные отчёты и обработки
В конфигурациях 1С существуют также подключаемые внешние отчёты и обработки. Чтобы включить в информационную базу 1С соответствующую обработку/отчёт нужно выполнить ряд действий:
1. Зайти в конфигурацию в режиме предприятия 1С
2. В главном меню выбрать Сервис – Дополнительные отчеты и обработки – Дополнительные внешние обработки
3. Открылся список внешних обработок, загруженных в информационную базу 1С. Нажимаем кнопку «Добавить».
4. Загружаем файл обработки.
5. Запускаем обработку двойным кликом мышки, чтобы проверить её работоспособность.
С помощью данного механизма дополнительных обработок можно также изменять стандартные печатные формы на собственные и добавлять новые. Любой пользователь, таким образом, может расширить функционал типовой конфигурации 1С.
В этой статье мы рассмотрели создание и использование внешних отчётов и обработок. Создание внешних обработок в режиме управляемого приложения более подробно будет рассмотрено в следующей статье.
1C БСП. ВНЕШНИЕ ОТЧЕТЫ И ОБРАБОТКИ
Дополнительные отчеты и обработки — подсистема 1С БСП, предназначена для расширения функционала без изменения конфигурации.
Для более полного ознакомления можно развернуть демонстрационную конфигурацию по БСП. В ней есть необходимые примеры.
Что можно подключить
- внешние обработки (файлы с расширением “epf”) ;
- внешние отчеты (файлы с расширением «erf»).
Виды разработок
- Дополнительная обработка.
- Дополнительный отчет.
- Заполнение объекта. Возможность установить свои кнопки по заполнению документа (ранее были только кнопки по заполнению табличной части).
- Печатная форма. Дополнительная печатная форма. Добавляется кнопка «Дополнительные печатные формы».
- Отчет. Прикрепляемый к справочникам и документам.
- Создание связанных объектов. Свой ввод на основании. В пункт меню «Ввод на основании» добавляется кнопка «Создание связанных объектов…».
Возможности БСП:
- В документах можно добавлять кнопки по заполнению всего документа, кнопки по вводу на основании.
- Обработка может содержать несколько команд меню.
- Вводить на основании и заполнять объекты сразу на основании нескольких объектов.
- Задавать расписание выполнение серверных команд (на сервере).
- Задавать режим «Безопасный» или «Небезопасный», т.е. запускать обработку с учетом ограничением прав или полные права
- Задать режим использования: «Не использовать», «Отладка», «Использовать».
- Включить использование в формах объекта и в форма списков
- Привязать ко всем указанным объектам обработку или отчет.
- Настроить быстрый доступ к определенным командам внешних обработок.
- Возможность указать в каких разделах интерфейса должны появляться дополнительные обработки и отчеты.
Сведения о внешней обработке
Минимальным условием для регистрации разработки является заполнение поля «Вид».
Значение поле может принимать одно из значений, возвращаемых функциями: ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<Вид>().
Таблица. Поле «ВИД».
«Назначение»
Содержит массив объектов конфигурации в формате «<Тип>.<Вид>», для которых будет назначен внешний отчет/обработка.
«Наименование»
Строка. Подставляется в наименование при создании элемента справочника «Дополнительные отчеты и обработки». Если не заполнено, то используется синоним внешней обработки/отчета.
Таблица значений. Загружается в одноименную табличную часть элемента справочника «Дополнительные отчеты и обработки» при регистрации внешней обработки.
Эту табличную часть можно заполнить и вручную.
Колонки таблицы:
Идентификатор – строка (идентификатор команды).
Представление – описание команды.
Модификатор — строка (используется для дополнительных печатных форм).
ПоказыватьОповещение – окно оповещение будет появляться перед началом и после окончания выполнения (для команд клиентских и серверных без формы).
Использование – режим запуска обработки.
В колонке «Использование» указывается тип вызываемой команды. По сочетанию Вид-Тип команды система определяет какая предопределенная процедура будет вызвана из внешней обработки/отчета, и где она будет объявлена — на клиенте или на сервере.
Наиболее часто используются процедуры Печать() и ВыполнитьКоманду(), а также открытие формы без обращения к методу.
Это поле может принимать одно из значений, возвращаемых функциями ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<Тип>(), например, ТипКомандыВызовСерверногоМетода().
Таблица. Возможные варианты использования в таблице.
| Тип команды | Значение поля «Вид» | Вызываемая экспортная процедура |
| ВызовСерверногоМетода | ПечатнаяФорма | Печать( МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) |
| ДополнительнаяОбработка ДополнительныйОтчет Отчет | ВыполнитьКоманду( ИдентификаторКоманды, ПараметрыВыполнения) | |
| СозданиеСвязанныхОбъектов | ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения) | |
| ЗаполнениеОбъекта | ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) | |
| ВызовКлиентскогоМетода | ПечатнаяФорма | &НаКлиенте Печать( ИдентификаторКоманды, ОбъектыНазначенияМассив) |
| ДополнительнаяОбработка ДополнительныйОтчет | &НаКлиенте ВыполнитьКоманду( ИдентификаторКоманды) | |
| СозданиеСвязанныхОбъектов | &НаКлиенте ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) | |
| ЗаполнениеОбъекта Отчет | &НаКлиенте ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначенияМассив) | |
| Для всех видов | в форму передается параметр ДополнительнаяОбработкаСсылка | |
| ОткрытиеФормы | СозданиеСвязанныхОбъектов ЗаполнениеОбъекта Отчет | в форму передается дополнительный параметр ОбъектыНазначения |
| Для всех видов | в форму передаются параметры ИдентификаторКоманды ДополнительнаяОбработкаСсылка ИмяФормы | |
| Отчет | Отчет с макетом СКД может не иметь форму, тогда будет использована общая форма для отчетов по умолчанию | |
| ЗаполнениеФормы | ЗаполнениеОбъекта | ВыполнитьКоманду( ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) |
| СценарийВБезопасномРежиме | Для всех видов | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер .ТипКомандыСценарийВБезопасномРежиме() |
| ЗагрузкаДанныхИзФайла | ДополнительнаяОбработка | см. описание в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер .ТипКомандыЗагрузкаДанныхИзФайла() |
Для типа команды ВызовКлиентскогоМетода необходимо создать форму в обработке, назначить ее основной и объявить экспортную процедуру.
«Версия БСП»
Строка, версия встроенной в конфигурации БСП. Необходима для поддержки совместимости. Можно не заполнять.
«Безопасный Режим»
Булево, отображает режим запуска обработка. В безопасном режиме недоступен привилегированный режим, COM-соединение, загрузка dll, доступ к файловой системе и интернету.
«Информация»
Строка, комментарий, который характеризует обработку.
«Версия»
Строка, версия обработки.
Подготовка разработки к подключению.
Для подключения разработки в базу необходимо задать параметры в экспортной функции модуля объекта «СведенияОВнешнейОбработке».
Пример
Подключение к базе.
Открываем справочник «Дополнительные отчеты и обработки». Кнопкой «Добавить» создаем элемент справочника. После чего система предложит прикрепить вашу разработку. Система автоматически заполнит поля формы функцией «СведенияОВнешнейОбработке.
Отладка
Единственный минус дополнительных отчетов и обработок заключается в том, что внутри них не работает встроенный в платформу отладчик.
Связано это в первую очередь с тем, что, запуская такую форму, система создает временный файл, и точки останова не срабатывают.