Skip to content

Доп. расширения под конфигурации #6

@SeiOkami

Description

@SeiOkami

Продолжение #4

В разных конфигурациях есть свои костыли, которые по имени формы определяют объект метаданных

Например, УТ11
ПодключаемыеКомандыЭДОСлужебный.КомандыЭДОФормы

&ИзменениеИКонтроль("КомандыЭДОФормы")
Функция SCF_КомандыЭДОФормы(Форма, НаправлениеЭД, ТолькоВМенюЕще)

	Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") Тогда
		ИмяФормы = Форма.ИмяФормы;
	Иначе
		ИмяФормы = Форма;
	КонецЕсли;

	КомандыЭДО = СоздатьКоллекциюКомандЭДО();

	ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяФормы);
	Если ОбъектМетаданных <> Неопределено 
		И Не Метаданные.ОбщиеФормы.Содержит(ОбъектМетаданных) Тогда
		ОбъектМетаданных = ОбъектМетаданных.Родитель();
	КонецЕсли;
	
	#Вставка
	Если ОбъектМетаданных = Неопределено Тогда
		Возврат КомандыЭДО;
	КонецЕсли;
	#КонецВставки

	ДобавляемыеКомандыЭДО = СоздатьКоллекциюКомандЭДО();
	СформироватьКомандыЭДО(ОбъектМетаданных.ПолноеИмя(), ДобавляемыеКомандыЭДО, НаправлениеЭД, ТолькоВМенюЕще);

	Для Каждого КомандаЭДО Из ДобавляемыеКомандыЭДО Цикл
		Если КомандыЭДО.Найти(КомандаЭДО.Идентификатор, "Идентификатор") = Неопределено Тогда
			ЗаполнитьЗначенияСвойств(КомандыЭДО.Добавить(), КомандаЭДО);	
		КонецЕсли;
	КонецЦикла;

	КомандыЭДО.Сортировать("Порядок Возр, Представление Возр");

	ЧастиИмени = СтрРазделить(ИмяФормы, ".");
	КраткоеИмяФормы = ЧастиИмени[ЧастиИмени.Количество()-1];

	// фильтр по именам форм
	Для НомерСтроки = -КомандыЭДО.Количество() + 1 По 0 Цикл
		КомандаЭДО = КомандыЭДО[-НомерСтроки];
		СписокФорм = СтрРазделить(КомандаЭДО.СписокФорм, ",", Ложь);
		Если СписокФорм.Количество() > 0 И СписокФорм.Найти(КраткоеИмяФормы) = Неопределено Тогда
			КомандыЭДО.Удалить(КомандаЭДО);
		КонецЕсли;
	КонецЦикла;

	ОпределитьВидимостьКомандЭДОПоФункциональнымОпциям(КомандыЭДО, Форма);

	Возврат КомандыЭДО;

КонецФункции

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions