&НаКлиенте
Процедура ПриОткрытии(Отказ)
СписокСтандартныхОбработок = ПолучитьСписокСтандартныхОбработок();
Для Каждого СтандартнаяОбработка Из СписокСтандартныхОбработок Цикл
ИмяОбработки = ПодключитьВнешнююОбработкуНаСервере(СтандартнаяОбработка.Значение, СтандартнаяОбработка.Представление);
ФормаВнешнейОбработки = ПолучитьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
Элементы.СтандартнаяОбрабтка.СписокВыбора.Добавить(ИмяОбработки, ФормаВнешнейОбработки.Заголовок);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСписокСтандартныхОбработок()
СписокСтандартныхОбработок = Новый СписокЗначений;
//
ФайлСтандартныхОбработок = НайтиФайлы(КаталогПрограммы(), "mngbase_ru.res").Получить(0);
ЧтениеТекста = Новый ЧтениеТекста(ФайлСтандартныхОбработок.ПолноеИмя,,,, Ложь);
ТекстСтандартныхОбработок = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
//
НомерВхождения = 0;
Последний_разделитель = Неопределено;
Пока Истина Цикл
НомерВхождения = НомерВхождения + 1;
Позиция_epf = СтрНайти(ТекстСтандартныхОбработок, ".epf",,, НомерВхождения);
Если Позиция_epf = 0 Тогда
Прервать;
КонецЕсли;
//
Позиция_разделитель = СтрНайти(ТекстСтандартныхОбработок, Символ(0), НаправлениеПоиска.СКонца, Позиция_epf, 1);
Позиция_слэш = СтрНайти(ТекстСтандартныхОбработок, "/",,, НомерВхождения);
Если Позиция_epf > Позиция_слэш И Позиция_слэш > Позиция_разделитель Тогда
Прервать;
КонецЕсли;
//
ИмяСтандартнойОбработки = Сред(ТекстСтандартныхОбработок, Позиция_разделитель + 1, Позиция_epf - Позиция_разделитель - 1);
Если СтрЧислоСтрок(ИмяСтандартнойОбработки) > 1 Тогда
Прервать;
КонецЕсли;
//
ПутьСтандартнойОбработки = СтрШаблон("v8res://mngbase/%1.epf", ИмяСтандартнойОбработки);
Если СтрНайти(ТекстСтандартныхОбработок, ПутьСтандартнойОбработки) = 0 Тогда
ЭтаОбработкаИмеетДругойПуть = Истина;
КонецЕсли;
//
СписокСтандартныхОбработок.Добавить(ИмяСтандартнойОбработки, ПутьСтандартнойОбработки);
КонецЦикла;
//
Возврат СписокСтандартныхОбработок;
КонецФункции // ПолучитьСписокСтандартныхОбработок()
&НаСервереБезКонтекста
Функция ПодключитьВнешнююОбработкуНаСервере(Имя, Путь)
ИмяОбработки = ВнешниеОбработки.Подключить(Путь, Имя, Ложь);
Возврат ИмяОбработки;
КонецФункции
//
&НаКлиенте
Процедура СтандартнаяОбрабткаПриИзменении(Элемент)
ОткрытьВыбраннуюФорму();
КонецПроцедуры
&НаКлиенте
Процедура СтандартнаяОбрабткаОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьВыбраннуюФорму();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьВыбраннуюФорму()
ОткрытьФорму("ВнешняяОбработка." + СтандартнаяОбрабтка + ".Форма");
КонецПроцедуры // ОткрытьВыбраннуюФорму()
|