Top.Mail.Ru
Меню
Каталог Программы 1С Опыт и отзывы Услуги Компания Статьи Контакты

Программно проверить, есть ли значение перечисления

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft  17.03.2025 Актуальность проверена: 18.03.2025   5 мин.
Содержание

Проверка существования значения перечисления

Чтобы программно проверить, существует ли перечисление с конкретным именем и существует ли у него конкретное значение, достаточно обратиться через переменную Метаданные.Перечисления

В ней содержится массив всех видов перечислений текущей конфигурации 1С.

Чтобы проверить существование какого-либо значения у конкретного перечисления, нужно обратиться к свойству ЗначенияПеречисления. Например, это может выглядеть так:

Метаданные.Перечисления.СтавкиНДС.ЗначенияПеречисления.Найти("НДС5")

Метод Найти вернет значение Неопределено, если в перечислении СтавкиНДС нет значения НДС5.

Когда программная проверка перечислений нужна на практике

Разработали и продаем готовые переносы данных 1С. Начиная с 2025 года появились ставки НДС 5% и 7% для организаций на системе налогообложения УСН.

Однако старые конфигурации 1С, такие как 1С:Комплексная автоматизация 8 ред 1.1 или 1С:Управление торговлей ред.10.3 уже сняты с поддержки и в них таких ставок не появится.

Чтобы написать унифицированный код для нескольких конфигураций 1С, нам потребовалось проверять значения перечислений.

В итоге получился код, приводим его ниже:


ИначеЕсли Метаданные.Перечисления.СтавкиНДС.ЗначенияПеречисления.Найти("НДС5") <> Неопределено И Источник = Перечисления.СтавкиНДС.НДС5 Тогда
Значение = "5%";
ИначеЕсли Метаданные.Перечисления.СтавкиНДС.ЗначенияПеречисления.Найти("НДС5_105") <> Неопределено И Источник = Перечисления.СтавкиНДС.НДС5_105 Тогда
Значение = "5% / 105%";
ИначеЕсли Метаданные.Перечисления.СтавкиНДС.ЗначенияПеречисления.Найти("НДС7") <> Неопределено И Источник = Перечисления.СтавкиНДС.НДС7 Тогда
Значение = "7%";
ИначеЕсли Метаданные.Перечисления.СтавкиНДС.ЗначенияПеречисления.Найти("НДС7_107") <> Неопределено И Источник = Перечисления.СтавкиНДС.НДС7_107 Тогда
Значение = "7% / 107%";

MoscowSoft логотип

Нужна помощь?

Если не получается разобраться с вопросом самостоятельно, обратитесь к нам. Получите бесплатную консультацию эксперта!

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft

Возврат к списку