В основном, как пример.
В глобальнике создаём объект, к примеру
Фаб = СоздатьОбъект(ТФабрика);
и везде где ни попадя пишем
сзМеню = Фаб.СписокЗначений("Налево", "Направо", "Вверх", "Вниз");
сзМеню.ВыбратьЗначение(...);
хедер:
класс ТФабрика = класс_ТФабрика@MD
{
СписокЗначений сзПарам(...); //пары: Имя, Значение
СписокЗначений СписокЗначений(...); //значения (без представлений)
};
реализация:
Функция сзПарам() Экспорт //:СписокЗначений//D:сзПарам("Представление1", Значение1, "Представление2", Значение2, ...)
сзПараметры = Сам(Контекст).ПолучитьСписокПараметров("сзПарам");
сз = СоздатьОбъект("СписокЗначений");
н = 1;
Пока н < сзПараметры.РазмерСписка() Цикл
Имя = сзПараметры.ПолучитьЗначение(н);
н = н + 1;
Значение = сзПараметры.ПолучитьЗначение(н);
н = н + 1;
сз.ДобавитьЗначение(Значение, Имя);
КонецЦикла;
Возврат сз;
КонецФункции
Функция СписокЗначений() Экспорт //:СписокЗначений //D:СписокЗначений(Значение1, Значение2, ... , ЗначениеН)
сзПараметры = Сам(Контекст).ПолучитьСписокПараметров("СписокЗначений");
сз = СоздатьОбъект("СписокЗначений");
сзПараметры.Выгрузить(сз);
Возврат сз;
КонецФункции
Функция Модуль(Конт, ТекстМодуля) Экспорт //:ВыполняемыйМодуль//D:Модуль(Конт, ТекстМодуля): Создаёт выполняемый модуль, и инициализирует его
Модуль = СоздатьОбъект("ВыполняемыйМодуль");
Модуль.УстановитьМодуль(ТекстМодуля);
Модуль.НазначитьКонтекст(Конт);
Модуль.КомпилироватьМодуль();
Модуль.ВыполнитьМодуль();
Возврат Модуль;
КонецФункции
до кучи, такая ещё штука:
хедер
класс ОбщиеМетоды = классОбщиеМетоды@MD
{
Число ОдноИз(Значение, ...);
};
реализация
Функция ОдноИз(Значение) Экспорт //D:ОдноИз(Значение, Вариант1, Вариант2, ...) Возвращает 1, если Значение совпадает с одним из вариантов
Сам = Сам(Контекст);
сзПарам = Сам(Контекст).ПолучитьСписокПараметров("ОдноИз");
Если сзПарам.НайтиЗначение(Значение) > 0 Тогда
Возврат 1;
КонецЕсли;
Возврат 0;
КонецФункции
Задолбало писать
Если (ЧтоТо = 1) ИЛИ (ЧтоТо = 2) ... ИЛИ (ЧтоТо = 77) Тогда
теперь пишу
Если оМетоды.ОдноИз(ЧтоТо, 1, 2, ... 77) = 1 Тогда