10 главных конструкций языка 1С

10 главных конструкций языка 1С

Объясняем по-русски

У «Практикума» вышел курс «Разработчик 1С», и в прошлый раз мы рассказали, что это за язык программирования и зачем он нужен. Теперь настало время основных конструкций языка.

Основное про 1С:

  • Сама 1С — это компания, которая создаёт ПО в России.
  • Язык программирования 1С используется в продуктах этой компании, чтобы создавать решения для автоматизации бизнеса: интернет-магазины, бухгалтерию, складской учёт и т. д. 
  • В 1С можно писать всё на русском, поэтому конструкции будут выглядеть непривычно, но они работают — и это главное.
  • Специалисты 1С нужны, чтобы создавать новые и поддерживать старые системы автоматизации бизнеса в России
  • Это хардкор, и за это платят.

В 1С после каждой команды ставится точка с запятой, а комментарии обозначаются двумя косыми чертами:

// Привет, это комментарий в 1С

Единственное отличие языка 1С от остальных, привычных нам, — в том, что в нём всё по-русски, а это выглядит необычно и иногда сбивает с толку. Но это вопрос практики: пара недель программирования на 1С, и всё станет привычным.

Переменные в 1С

Для объявления переменной используется команда Перем — она показывает, что дальше будет название новой переменной.

Перем ЖурналКод;

Переменные также можно объявлять не явно, просто присваивая им конкретное значение:

СообщПривет = "Привет, это журнал «Код»"

Присваивание и сравнение в 1С

❗️ Сейчас будет сложно. В языке 1С присваивание и сравнение обозначается одним знаком равенства:

// Это — присваивание
Итог = 10;
// А это — сравнение
Если Отчёт = 15…

Как их различать — зависит от контекста. Если знак находится внутри условного оператора, то это сравнение. Если после переменной и за ним идут какие-то действия — это присваивание. Но можно использовать его внутри одной конструкции — в этом случае первый знак будет присваиванием, второй — сравнением.

Типы данных в 1С

В 1С есть все привычные типы данных: числа, строки и логические переменные. Дробная часть числа отделяется точкой:

// целое число
А = 10
// дробное
Б = 123.456
// строка
В = "строка"

Дата берётся в одинарные кавычки:

ДатаОтчета = '2023.07.25';

Ещё в 1С есть массивы — с ними работают точно так же, как в других языках:

// в массиве сразу 3 элемента
Числа = Новый Массив(3);
// присваиваем значение первому элементу
Числа[0] = 5;

Условный оператор в 1С

Внутрь действий условного оператора можно вкладывать сколько угодно команд — все они окажутся между словами Тогда и Иначе:

Если Прибыль > 20000 Тогда
    Результат = "План выполнен";
Иначе
    Результат = "План не выполнен";
КонецЕсли;

Точка с запятой ставится только после КонецЕсли. Если блок Иначе не нужен, тогда вместо него сразу пишется КонецЕсли.

Оператор множественного выбора в 1С

То же самое, что условный оператор, только можно перейти сразу к следующему условию с помощью конструкции ИначеЕсли:

Если Прибыль > 20000 Тогда
    Результат = "План выполнен полностью";
ИначеЕсли Прибыль > 10000 Тогда
    Результат = "План выполнен на базовом уровне";
Иначе
    Результат = "План не выполнен";
КонецЕсли;

Цикл с неизвестным числом повторений в 1С

В других языках это называется циклом с предусловием: пока условие не выполнится — цикл продолжает работу:

Пока НомерСотрудника <= 10 Цикл
// команды цикла
КонецЦикла;

Цикл с известным числом повторений в 1С

Обычный цикл for, только записанный по-русски. При каждом шаге переменная цикла увеличивается на единицу:

Для НомерСотрудника = 1 По 15 Цикл
// команды цикла
КонецЦикла;

Ещё есть перебор диапазона — там переменная цикла берётся из значений другой переменной:

Для каждого НомерСотрудника Из ТаблицаСотрудников Цикл
// команды цикла
КонецЦикла;

Функции в 1С

Для обозначения функций используется слово Функция :-) С ними всё как обычно: есть название, а в скобках — параметры. Ещё функция должна что-то возвращать, для этого используется команда Возврат:

Функция РассчитатьНалог(Сотрудник, ПериодВДнях)
    // команды функции
   Возврат Налог;
КонецФункции

Процедуры в 1С

Отличие процедур от функций в том, что они не возвращают никаких значений, а просто делают то, что у них внутри. При этом у процедуры тоже могут быть параметры — их пишут в скобках после имени:

Процедура ЗавестиТоварНаСклад (Товар)
// команды процедуры
КонецПроцедуры

Объекты в 1С

Формально в языке 1С нет ООП с его классами, объектами и методами. Но понятие объекта всё равно есть — это когда мы создаём что-то новое на основе уже готовых типов данных или переменных:

Итог = Новый Отчёт();

Также можно использовать объекты из встроенных справочников — это здорово упрощает разработку:

Справочники.Номенклатура.СоздатьЭлемент();
Документы.Накладная.НайтиПоНомеру();

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Аня Соколова

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно