условная команда в 1С


Пример: Как используется условные команды в 1С


Пример 01.

Число = 10;

Если Число > 5 Тогда
    Сообщить("Число больше пяти");
Иначе
    Сообщить("Число меньше или равно пяти");
КонецЕсли;

Пример 02.

Имя = "Иван";

Если Имя = "Иван" Тогда
    Сообщить("Привет, Иван!");
Иначе
    Сообщить("Это не Иван");
КонецЕсли;

Пример 03.

Возраст = 18;

Если Возраст >= 18 Тогда
    Сообщить("Совершеннолетний");
Иначе
    Сообщить("Несовершеннолетний");
КонецЕсли;

Пример 04.

Оценка = 4;

Если Оценка = 5 Тогда
    Сообщить("Отлично");
ИначеЕсли Оценка = 4 Тогда
    Сообщить("Хорошо");
ИначеЕсли Оценка = 3 Тогда
    Сообщить("Удовлетворительно");
Иначе
    Сообщить("Плохо");
КонецЕсли;

Пример 05.

Возраст = 20;
Город = "Москва";

Если (Возраст >= 18) И (Город = "Москва") Тогда
    Сообщить("Доступ разрешён");
Иначе
    Сообщить("Доступ запрещён");
КонецЕсли;

Условные команды в 1С нужны для того, чтобы программа могла выбирать разные действия в зависимости от ситуации. Если условие выполняется — программа делает одно, если нет — другое. Это делает программу «умной», а не однообразной.

В 1С такие команды называются:

  • Если — для проверки условия,
  • ИначеЕсли — для дополнительных вариантов,
  • Иначе — для действий, если ни одно условие не подошло.

Быстрый старт: синтаксис

// Базовая форма

Если <ЛогическоеВыражение> Тогда

<Команды>

КонецЕсли;

// Расширенная форма

Если <Условие1> Тогда

<Команды1>

ИначеЕсли <Условие2> Тогда

<Команды2>

Иначе

<Команды3>

КонецЕсли;

Заметь: условие — это всегда выражение, которое возвращает Истина/Ложь.


Мини‑пример: быстрая валидация ввода

Возраст = 0;

ВвестиЧисло(Возраст);

Если (Возраст < 0) Тогда

ОткрытьЗначение("Возраст не может быть отрицательным");

ИначеЕсли (Возраст < 18) Тогда

ОткрытьЗначение("Доступ ограничен (до 18)");

Иначе

ОткрытьЗначение("Добро пожаловать!");

КонецЕсли;

Диапазоны и составные условия (И/ИЛИ/НЕ)

X = 0; ВвестиЧисло(X);

Если (X >= 10) И (X <= 20) Тогда

ОткрытьЗначение("X в диапазоне [10..20]");

ИначеЕсли ( (X < 0) ИЛИ (X > 100) ) Тогда

ОткрытьЗначение("X вне допустимых границ");

Иначе

ОткрытьЗначение("Обычное значение");

КонецЕсли;

Даты и условия по времени

Заказ = ДатаВремя(2025, 9, 15, 16, 30, 0);

Дедлайн = ДатаВремя(2025, 9, 20, 23, 59, 59);

Если (Заказ <= Дедлайн) Тогда

ОткрытьЗначение("Заказ принят вовремя");

Иначе

ОткрытьЗначение("Заказ просрочен");

КонецЕсли;

Строки: проверка непустого значения

Имя = "";

ВвестиСтроку(Имя);

Если (СтрДлина(Имя) = 0) Тогда

ОткрытьЗначение("Введите имя");

ИначеЕсли (СтрДлина(Имя) < 3) Тогда

ОткрытьЗначение("Слишком короткое имя");

Иначе

ОткрытьЗначение("Привет, " + Имя);

КонецЕсли;

Паттерны для чистого кода

A. Ранний выход из веток (минимум вложенности)

Чек = 5200;

Если (Чек < 0) Тогда

ОткрытьЗначение("Ошибка суммы");

ИначеЕсли (Чек < 5000) Тогда

ОткрытьЗначение("Скидка не применяется");

Иначе

ОткрытьЗначение("Применена скидка 10%");

КонецЕсли;

B. Разносим сложное условие на логические флаги

Возраст = 21; ЕстьПаспорт = Истина;

ВозрастOK = (Возраст >= 18);

ДокументыOK = ЕстьПаспорт;

Если (ВозрастOK И ДокументыOK) Тогда

ОткрытьЗначение("Доступ разрешён");

Иначе

ОткрытьЗначение("Доступ запрещён");

КонецЕсли;

«Подводные камни»

  • Нет скобок — нет однозначности. Явно группируй условия.
  • Строки/числа/даты: не смешивай без необходимости, используй Число(), ДатаВремя().
  • Дублирующиеся ветки. Если код в двух ветках одинаков — упростить логику.
  • Длинные условия. Вводи промежуточные переменные-флаги (см. выше).

Практика (интереснее стандартного)

Задание 1. Вводится три числа A, B, C. Вывести:

  • «Возрастают», если A < B < C;
  • «Убывают», если A > B > C;
  • Иначе — «Смешанный порядок».
A = 0; B = 0; C = 0;

ВвестиЧисло(A); ВвестиЧисло(B); ВвестиЧисло(C);

Если (A < B) И (B < C) Тогда

ОткрытьЗначение("Возрастают");

ИначеЕсли (A > B) И (B > C) Тогда

ОткрытьЗначение("Убывают");

Иначе

ОткрытьЗначение("Смешанный порядок");

КонецЕсли;

Задание 2. Вводятся два числа. Если оба положительные — вывести их сумму, иначе — произведение.

A = 0; B = 0;

ВвестиЧисло(A); ВвестиЧисло(B);

Если (A > 0) И (B > 0) Тогда

ОткрытьЗначение(A + B);

Иначе

ОткрытьЗначение(A * B);

КонецЕсли;

Задание 3. Пользователь вводит дату рождения. Вывести «Совершеннолетний», если сегодня ему ≥ 18 лет.

Рождение = ДатаВремя(2008, 1, 1); // замените на ввод

Граница = ДобавитьКДате(Рождение, Год, 18);

Если (ТекущаяДата() >= Граница) Тогда

ОткрытьЗначение("Совершеннолетний");

Иначе

ОткрытьЗначение("Нет");

КонецЕсли;

Итог

  • Условная команда — фундамент принятия решений.
  • Комбинируй с логикой И/ИЛИ/НЕ, всегда ставь скобки.
  • Разбивай сложные проверки на флаги — так код чище и устойчивее.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *