Подчастую в коде можно наблюдать передачу режимов выполнения в процедуру типа:
Процедура Печать(Режим = 0)
Где, Режим = 0 - один вариант печати, = 1 - другой, и т.д.
Не наглядно.
Другой вариант:
Процедура Печать(Режим = "ПростаяНакладная")
Уже лучше, но все равно использование строковых констант для этих целей как-то напрягает.
И в буковке можно где-нибудь ошибиться и не заметить, и усложнение посмотреть все варианты централизовано.
Есть еще вариант, где режим используется как строковые константы, но сверяется
с полями структуры:
Если Режим = Варианты.ПростаяНакладная Тогда // где Варианты.ПростаяНакладная = "ПростаяНакладная" и объявлена как переменная модуля
Этот вариант мне нравится больше всего, но проблемно когда нужно использовать на клиенте.
Благо предопределенное значение на клиенте кешируется, а на сервере старый баг,когда это не рекомендовалось - давным давно поправлен, по моему даже из стандартов убрали запрет на ПредопределенноеЗначение на сервере
(0) Структуры.
Проблема не в том что использовать а как чтобы не объявлять в модулях а использовать из одного общего модуля.
Фактически тут удобнее функции использовать.
Делается общий модуль Режим с экспортными функциями ОдинВариантПечати() и ДругойВариантПечати(), которые возвращают 0 и 1.
Далее банально:
Печать(Режим.ОдинВариантПечати());
Кому не нравятся скобки (лично мне пофиг) может сделать через Перем и/или структуры, будет красивей.
Печать(Режим.ВариантыПечати.Один);
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн