﻿Перем Конфигуратор Экспорт;
Перем Информатор Экспорт;
Перем ЗагруженныеОбработки;

Перем СтандартнаяБиблиотека Экспорт;

Функция Init(Designer, СтруктураБиблиотек) Экспорт	
	Конфигуратор = Designer;	
	СтандартнаяБиблиотека = СтруктураБиблиотек.СтандартнаяБиблиотека;
	ЗагруженныеОбработки = Новый Структура;
КонецФункции

Функция LoadEpf(Путь) Экспорт
	Попытка 
		ОбработкаОбъект = ВнешниеОбработки.Создать(Путь);
		ЗагруженныеОбработки.Вставить(ОбработкаОбъект.Метаданные().Имя, ОбработкаОбъект);
		Возврат ОбработкаОбъект;
	Исключение
		Конфигуратор.Message("Ошибка загрузки обработки: " + Путь + Символы.ПС + ОписаниеОшибки());
		Возврат Неопределено;
	КонецПопытки;
КонецФункции

Функция GetMacroses(ОбработкаОбъект) Экспорт
	МассивМакросов = Новый Массив;	
	Попытка
		ТаблицаМетодов = Информатор.ПолучитьТаблицуМетодов(ОбработкаОбъект);
		Для каждого СтрокаТаблицыМетодов из ТаблицаМетодов Цикл
			Если НРег(Лев(СтрокаТаблицыМетодов.Наименование, 6)) = "макрос" 
				И СтрокаТаблицыМетодов.КоличествоПараметров = 0 Тогда
				МассивМакросов.Добавить(СтрокаТаблицыМетодов.Наименование);
			КонецЕсли;
		КонецЦикла;
	Исключение
		Конфигуратор.Message("Ошибка получения списка макросов: " + ОписаниеОшибки());		
	КонецПопытки;
	Возврат МассивМакросов;
КонецФункции

Функция GetEpf(ИмяОбработки) Экспорт
	Возврат ЗагруженныеОбработки[ИмяОбработки];
КонецФункции

Функция глВывестиСообщение(ТекстСообщения, Маркер=0) Экспорт
	Конфигуратор.Message(ТекстСообщения, Маркер);
КонецФункции

Информатор = Обработки.Информатор.Создать();