# Подготовка внешних обработок и отчетов для подключения к базе 1С 8.3

# Введение

Внешние обработки (Отчеты) представляют собой обработки (Отчеты), которые не входят в состав прикладного решения и хранятся в отдельных файлах с расширением .epf (.erf).

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

# Подключение внешних обработок (отчетов) в базу

С помощью "Библиотеки стандартных подсистем" существует возможность подключения внешних внешних обработок (отчетов) прямо в базу. Запуск подключенных обработок (отчетов) осуществляется прямо из базы. В этом случае нам не придется хранить файл самой обработки.

Чтобы подключить уже подготовленную внешнюю обработку (отчет) в базу, необходимо прописать в модуль обработки (отчета) функцию регистрации. В модуль объекта можно зайти нажав "Действия" -> "Открыть модуль объекта" "Действия" -> "Открыть модуль объекта"

Функция регистрации для печатной формы выглядит следующим образом:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.1.2.445"); //в качестве параметра ставится версия Библиотеки стандартных подсистем
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма(); //У казывается вид обработки. (Печатная форма, дополнительная обработка, дополнительный отчет)
    ПараметрыРегистрации.Версия = "1.1"; //Версия обработки (отчета)
	ПараметрыРегистрации.Информация = НСтр("ru = 'Перемещение запасов с розничными ценами'"); // Краткое описание обработки
    ПараметрыРегистрации.Назначение.Добавить("Документ.ПеремещениеЗапасов"); // Определение объектов, к которым подключается эта обработка.

    // Добавление разрешений при необходимости
    // Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS","test.ru",443,"Доступ к API интернет-магазина для выгрузки товаров.");
	// ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	// Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина, "Обработка изпользует временное хранилище для картинок.");
	// ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

    // Добавление команды печати.
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Перемещение запасов с розничными ценами'"); //Указывается представление команды
    НоваяКоманда.Идентификатор = "ПеремещениеЗапасовСРозничнымиЦенами"; //Указывается некий идентификатор
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(); // Тут указывается тип команды (открытие формы, вызов серверного метода и т.д.)
    НоваяКоманда.Модификатор = "Макет";
    Возврат ПараметрыРегистрации;
	
КонецФункции

Функция регистрации для внешнего отчета выглядит следующим образом:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.4.45");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
	ПараметрыРегистрации.Версия = "0.2";
	ПараметрыРегистрации.БезопасныйРежим = Истина;
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Пример дополнительного отчета'");
	НоваяКоманда.Идентификатор = "ПримерДополнительногоОтчета";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.ПоказыватьОповещение = Истина;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Функция регистрации для внешней обработки для регламентного выполнения выглядит следующим образом:

#Область ПрограммныйИнтерфейс

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "22.09.05";
	
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина, "Обработка использует временное хранилище.");
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Загрузка данных'");
	НоваяКоманда.Идентификатор = "ЗагрузкаДанных";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	НоваяКоманда.ПоказыватьОповещение = Истина;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции 

Функция ВыполнитьКоманду(Идентификатор, ПараметрыКоманды) Экспорт
	
	Если Идентификатор = "ЗагрузкаДанных" Тогда  
		
		ЗагрузкаДанных(); // здесь код обработки
		
	КонецЕсли;
	
КонецФункции

#КонецОбласти

Функция регистрации для внешней обработки с формой выглядит следующим образом:

Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.4.45");
	
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "23.02.19";
	ПараметрыРегистрации.БезопасныйРежим = Истина;
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Mxik сheck'");
	НоваяКоманда.Идентификатор = "MxikCheck";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.ПоказыватьОповещение = Истина;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Версию библиотеки стандартных подсистем можно в регистре сведений "Версии подсистем". "Версия подсистемы"

После того как добавили функцию регистрации, обработку (отчет) можно добавить в информационную базу.

# Добавление обработки (отчета) в информационную базу

Для того чтобы добавить внешнюю обработку (отчет) в информационную базу необходимо зайти в "Настройки" -> "Администрирование" -> "Печатные формы, отчеты и обработки".

"Печатные формы"

Далее нажимаем "Дополнительные обработки, отчеты"

"Дополнительные обработки"

Нажимаем "Добавить из файла"

"Добавить из файла"

Откроется окно, в этом окне откроется окно предупреждения о безопасности, нажимаем "Продолжить", откроется окно выбора файла обработки. Выбираем файл и нажимаем "Открыть".

"Выбор файла"

Далее все поля заполнятся и функции регистрации, останется только записать эту обработку.

Ярослав Панасик, 09.12.2021

Last Updated: 2/19/2023, 9:36:45 AM