Часто при работе с внешними обработками в 1С:ERP возникает путаница: в одних случаях они открываются без проблем, а в других система выдает ошибку и требует наличия какой-то непонятной функции. Давайте вместе разберемся, в чем причина такого поведения и как правильно работать с внешними файлами *.epf.
Проанализируем ситуацию. На самом деле, существует два принципиально разных способа использования внешних обработок, и от выбора способа зависит, какие требования предъявляются к ее коду. Выясним причину проблемы, рассмотрев оба подхода.
Этот метод является самым быстрым и простым. Он идеально подходит, когда вам нужно выполнить какую-то операцию всего один раз, протестировать код или быстро запустить инструмент, который не требуется встраивать в интерфейс программы для постоянного использования.
Рассмотрим по шагам, как это сделать:
.epf и нажмите "Открыть".Важный момент: при таком способе запуска система 1С не предъявляет никаких специальных требований к коду обработки. Ей не нужна экспортная функция СведенияОВнешнейОбработке(), так как обработка не регистрируется в системе, а просто исполняется "на лету". Именно поэтому многие опытные разработчики утверждают, что эта функция не нужна — они имеют в виду именно этот сценарий использования.
Этот подход используется, когда вы хотите, чтобы ваша обработка стала полноценной частью системы. Например, вы хотите добавить новую кнопку в документ, которая будет выполнять определенные действия, или сделать обработку доступной всем пользователям из определенного раздела программы. В этом случае обработка не просто открывается, а регистрируется в справочнике Дополнительные отчеты и обработки.
Именно для этого механизма и нужна экспортная функция СведенияОВнешнейОбработке(). Когда вы пытаетесь добавить обработку через интерфейс администрирования, система обращается к этой функции, чтобы получить служебную информацию о ней: как ее называть, где отображать, какие команды (кнопки) создавать и для каких объектов конфигурации она предназначена.
Если при добавлении обработки система выдает ошибку, что не найдены сведения о ней, значит, вы пытаетесь ее именно зарегистрировать, а в ее коде отсутствует или некорректно заполнена необходимая функция.
Рассмотрим подробнее, что нужно сделать для успешной регистрации:
В вашей внешней обработке, в модуле объекта, должна быть экспортная функция с точным названием СведенияОВнешнейОбработке. Эта функция должна возвращать структуру с определенными параметрами.
Посмотрим на пример базовой структуры этой функции:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Наименование", "Моя первая дополнительная обработка");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", "Эта обработка предназначена для демонстрации механизма подключения");
Команды = Новый Массив;
// Описываем первую команду (кнопку), которую увидит пользователь
Команда1 = Новый Структура;
Команда1.Вставить("Представление", "Открыть основную форму");
Команда1.Вставить("Идентификатор", "ОткрытьФорму");
Команда1.Вставить("Использование", "ОткрытиеФормы");
Команда1.Вставить("ПоказыватьОповещение", Истина);
Команды.Добавить(Команда1);
ПараметрыРегистрации.Вставить("Команды", Команды);
Возврат ПараметрыРегистрации;
КонецФункции
Проанализируем ключевые параметры:
Вид: Указывает тип. Может быть ДополнительнаяОбработка, ЗаполнениеОбъекта, ПечатнаяФорма и др.Наименование: Имя, под которым обработка будет видна в списке.Команды: Массив структур, описывающий кнопки, которые будут доступны пользователю для запуска обработки из интерфейса. Каждая команда имеет свой Идентификатор и Представление (название кнопки).Когда код обработки готов, ее нужно загрузить в систему. Разберем этот процесс по шагам:
.epf. Если функция СведенияОВнешнейОбработке() заполнена корректно, система не выдаст ошибок и откроет карточку для настройки.Таким образом, мы выяснили, что оба подхода к работе с внешними обработками верны, но предназначены для разных задач. Если вам нужно просто запустить код — используйте "Файл -> Открыть". Если вы хотите интегрировать функционал в систему на постоянной основе — необходимо корректно описать функцию СведенияОВнешнейОбработке() и зарегистрировать обработку через раздел администрирования.