Пример: Как используется условные команды в 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);
Если (ТекущаяДата() >= Граница) Тогда
ОткрытьЗначение("Совершеннолетний");
Иначе
ОткрытьЗначение("Нет");
КонецЕсли;
Итог
- Условная команда — фундамент принятия решений.
- Комбинируй с логикой И/ИЛИ/НЕ, всегда ставь скобки.
- Разбивай сложные проверки на флаги — так код чище и устойчивее.

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