При работе с внешними обработками (файлы с расширением .epf) у начинающих разработчиков часто возникает вопрос: где именно располагается программный код и в какой из модулей его необходимо вписать? В отличие от объектов встроенной конфигурации, внешние обработки имеют свои особенности визуального представления в Конфигураторе. Разберем по шагам, как найти нужные разделы для написания кода.
Модуль объекта — это основное место, где описывается логика обработки данных, которая должна быть доступна на сервере. Рассмотрим алгоритм открытия этого модуля:
.epf на диске).Именно здесь размещаются процедуры и функции, которые отвечают за логику работы обработки как объекта. Важно помнить, что в модуле объекта внешней обработки, в отличие от справочников или документов, отсутствует модуль менеджера. Весь экспортный функционал, который должен вызываться извне, следует описывать именно здесь с ключевым словом Экспорт.
Процедура ВыполнитьДействиеНаСервере() Экспорт
// Здесь размещается ваш код
Сообщить("Логика модуля объекта выполнена");
КонецПроцедуры
Если ваша задача — изменить поведение элементов управления (кнопок, полей ввода) или описать логику взаимодействия с пользователем, нам потребуется модуль формы. Выясним, как в него попасть:
В современных версиях платформы (управляемые формы) код в модуле формы четко разделяется директивами компиляции. Рассмотрим пример типичной структуры кода в модуле управляемой формы:
&НаКлиенте
Процедура КомандаВыполнить(Команда)
// Код, который сработает при нажатии кнопки
ВыполнитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ВыполнитьНаСервере()
// Обработка данных на стороне сервера
КонецПроцедуры
Проанализируем ситуацию, когда обработка не просто открывается как файл, а подключена в информационную базу через механизм Дополнительные отчеты и обработки (Библиотека стандартных подсистем). В этом случае процесс внесения изменений усложняется.
Выясним причину, почему изменения в файле на рабочем столе могут не отображаться в программе. Когда вы запускаете обработку через интерфейс 1С (из справочника дополнительных обработок), система копирует её во временный каталог пользователя:
C:\Users\ИмяПользователя\AppData\Local\Temp\имя_файла.epf
Следовательно, выполнение кода идет из этой временной копии. Чтобы ваши изменения вступили в силу, необходимо выполнить следующие действия:
.epf.Рассмотрим подробнее важный нюанс управляемого приложения. Код модуля объекта всегда выполняется на сервере. Чтобы вызвать процедуру из модуля объекта, находясь в контексте модуля формы, нам необходимо сначала преобразовать данные формы в объект. Посмотрим на пример кода:
&НаСервере
Процедура ВызватьМетодОбъекта()
// Преобразуем данные формы (реквизит "Объект") в прикладной объект
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
// Вызываем экспортную процедуру из Модуля Объекта
ОбработкаОбъект.ВыполнитьДействиеНаСервере();
// Если нужно вернуть измененные данные обратно в форму:
ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");
КонецПроцедуры
Подводя итог, зафиксируем основные моменты:
Используя эти инструкции, мы сможем безошибочно находить место для вписывания кода и эффективно управлять логикой внешних программных модулей в системе 1С.