г. Минск, ул. К. Маркса, 32
+375 (29) 636 65 85
г. Минск, ул. К. Маркса, 32
Язык программирования 1С используется для разработки и настройки прикладных решений на платформе 1С:Предприятие. С его помощью разработчики создают обработчики событий, отчеты, обработки, бизнес-логику, автоматизируют расчеты и реализуют обмен данными с другими системами.
Для начинающего программиста синтаксис 1С может показаться непривычным, особенно если до этого он изучал Python, JavaScript, C++ или Java. Однако базовые принципы программирования остаются теми же: переменные, условия, циклы, процедуры, функции, массивы и работа с данными.
В этой статье разберем основные конструкции языка 1С, наиболее часто используемые команды и покажем простые примеры кода.

1С — это встроенный язык программирования, который используется внутри платформы 1С:Предприятие.
В отличие от универсальных языков программирования, 1С тесно связан с объектами прикладного решения. Разработчик работает не только с кодом, но и со справочниками, документами, регистрами, отчетами, формами и другими объектами конфигурации.
Например, в информационной базе могут существовать:
Программный код позволяет управлять поведением этих объектов и автоматизировать работу пользователя.
Язык 1С применяется для:
Поэтому 1С-разработчик должен понимать не только синтаксис языка, но и принципы работы платформы.
Синтаксис 1С достаточно близок к обычному человеческому языку. В русскоязычной версии платформы конструкции выглядят, например, так:
Если Сумма > 10000 Тогда
Сообщить("Большая сумма");
Иначе
Сообщить("Сумма меньше или равна 10000");
КонецЕсли;Условия читаются практически как обычное предложение:
Если сумма больше 10 000, тогда выполнить один блок кода, иначе — другой.
В 1С также можно использовать английский синтаксис, если разработчик работает с соответствующей языковой версией среды.
Переменная — это имя, под которым программа хранит определенное значение.
Например:
Имя = "Анна";
Возраст = 25;
СуммаЗаказа = 1250;Здесь создаются три переменные:
Имя содержит строку;Возраст содержит число;СуммаЗаказа содержит числовое значение.В 1С переменная может менять свое значение:
Количество = 10;
Количество = 15;После выполнения кода переменная Количество будет содержать значение 15.
На практике разработчик постоянно работает с разными типами данных.
| Тип | Пример |
|---|---|
| Число | 1250 |
| Строка | "Компьютер" |
| Булево | Истина, Ложь |
| Дата | ТекущаяДата() |
| Неопределено | Неопределено |
| Массив | Новый Массив |
| Структура | Новый Структура |
| Таблица значений | Новый ТаблицаЗначений |
Например:
Название = "Ноутбук";
Цена = 3500;
ЕстьВНаличии = Истина;
ДатаЗаказа = ТекущаяДата();Операторы позволяют выполнять арифметические действия, сравнивать значения и объединять логические условия.
В 1С используются стандартные математические операции:
Сумма = Цена * Количество;
Разница = Доход - Расход;
СредняяЦена = Сумма / Количество;Основные операторы:
| Оператор | Значение |
|---|---|
+ | сложение |
- | вычитание |
* | умножение |
/ | деление |
Например:
Цена = 100;
Количество = 5;
Сумма = Цена * Количество;
Сообщить(Сумма);Результатом будет 500.
Для проверки условий используются операторы:
= — равно;<> — не равно;> — больше;< — меньше;>= — больше или равно;<= — меньше или равно.Например:
Если Цена > 1000 Тогда
Сообщить("Товар дорогой");
КонецЕсли;Несколько условий можно объединять.
Основные логические операторы:
И;ИЛИ;НЕ.Например:
Если Возраст >= 18 И ЕстьДокумент Тогда
Сообщить("Условие выполнено");
КонецЕсли;Оператор И означает, что должны выполняться оба условия.
С ИЛИ достаточно выполнения хотя бы одного:
Если День = "Суббота" ИЛИ День = "Воскресенье" Тогда
Сообщить("Выходной");
КонецЕсли;Конструкция Если — одна из самых важных в программировании.
Она позволяет программе принимать решения в зависимости от значения условия.
Базовый вариант:
Если Условие Тогда
// код
КонецЕсли;Например:
Если Количество > 0 Тогда
Сообщить("Товар есть в наличии");
КонецЕсли;Когда необходимо предусмотреть два варианта, используется Иначе:
Если Количество > 0 Тогда
Сообщить("Товар есть");
Иначе
Сообщить("Товара нет");
КонецЕсли;Для нескольких вариантов используется ИначеЕсли:
Если Балл >= 90 Тогда
Сообщить("Отлично");
ИначеЕсли Балл >= 70 Тогда
Сообщить("Хорошо");
ИначеЕсли Балл >= 50 Тогда
Сообщить("Удовлетворительно");
Иначе
Сообщить("Нужно повторить материал");
КонецЕсли;Такая конструкция часто встречается в прикладных решениях 1С.
Циклы нужны, когда одну и ту же операцию необходимо выполнить несколько раз.
Например, обработать все элементы списка, перебрать товары или выполнить расчет для каждой строки таблицы.
В 1С используются разные виды циклов.
Цикл Для применяется, когда известно количество повторений.
Для Счетчик = 1 По 10 Цикл
Сообщить(Счетчик);
КонецЦикла;Программа выведет числа от 1 до 10.
Можно использовать цикл для расчета:
Сумма = 0;
Для Счетчик = 1 По 5 Цикл
Сумма = Сумма + Счетчик;
КонецЦикла;
Сообщить(Сумма);Пока используется, когда выполнение должно продолжаться до тех пор, пока условие остается истинным.
Счетчик = 1;
Пока Счетчик <= 5 Цикл
Сообщить(Счетчик);
Счетчик = Счетчик + 1;
КонецЦикла;Здесь цикл будет выполняться, пока Счетчик не станет больше 5.
Одна из самых удобных конструкций 1С — Для каждого.
Она используется для последовательного перебора элементов коллекции.
Например:
Товары = Новый Массив;
Товары.Добавить("Ноутбук");
Товары.Добавить("Монитор");
Товары.Добавить("Клавиатура");
Для каждого Товар Из Товары Цикл
Сообщить(Товар);
КонецЦикла;В результате программа последовательно обработает каждый элемент массива.
Такая конструкция особенно полезна при работе со списками, массивами и другими коллекциями.
Большую часть прикладной логики разработчик оформляет в виде процедур и функций.
Процедура выполняет определенное действие, но не возвращает результат как значение.
Пример:
Процедура ПоказатьСообщение()
Сообщить("Добро пожаловать!");
КонецПроцедурыПосле этого процедуру можно вызвать:
ПоказатьСообщение();Процедуры позволяют не дублировать один и тот же код.
Функция похожа на процедуру, но возвращает результат.
Например:
Функция РассчитатьСумму(Цена, Количество)
Возврат Цена * Количество;
КонецФункцииИспользовать функцию можно следующим образом:
Сумма = РассчитатьСумму(1000, 3);
Сообщить(Сумма);Результатом будет 3000.
В круглых скобках указываются параметры, которые передаются в процедуру или функцию:
Функция РассчитатьСкидку(Сумма, ПроцентСкидки)
Возврат Сумма * ПроцентСкидки / 100;
КонецФункцииТакой подход позволяет создавать универсальные части программы, которые можно использовать в разных местах.
Команда Возврат
Оператор Возврат используется в функциях для передачи результата.
Функция Умножить(Число1, Число2)
Результат = Число1 * Число2;
Возврат Результат;
КонецФункцииБез Возврат функция не сможет вернуть рассчитанное значение вызывающему коду.
Строковые значения в 1С используются постоянно: для названий товаров, комментариев, сообщений, адресов и других данных.
Например:
Имя = "Иван";
Фамилия = "Петров";
ПолноеИмя = Имя + " " + Фамилия;Получится строка:
Иван ПетровДля проверки заполненности значения часто используется:
Если ЗначениеЗаполнено(Имя) Тогда
Сообщить("Имя заполнено");
КонецЕсли;В 1С предусмотрены специальные функции для работы с датами.
Например:
Сегодня = ТекущаяДата();Можно получить текущую дату и время и использовать их в расчетах, отчетах и проверках.
Например:
Если ДатаДокумента < ТекущаяДата() Тогда
Сообщить("Дата документа уже наступила");
КонецЕсли;Работа с датами особенно важна при разработке учетных систем, где постоянно необходимо учитывать периоды, сроки и даты документов.
Массив позволяет хранить несколько значений в одной переменной.
Создать массив можно так:
Товары = Новый Массив;Добавить элементы:
Товары.Добавить("Ноутбук");
Товары.Добавить("Монитор");
Товары.Добавить("Мышь");Получить элемент можно по индексу:
ПервыйТовар = Товары[0];Важно помнить, что нумерация элементов массива начинается с нуля.
Структура позволяет хранить данные в формате «ключ — значение».
Например:
ДанныеКлиента = Новый Структура;
ДанныеКлиента.Вставить("Имя", "Анна");
ДанныеКлиента.Вставить("Возраст", 25);Получить значение можно по ключу:
Имя = ДанныеКлиента.Имя;Структуры часто используются для передачи нескольких параметров между процедурами и функциями.
ТаблицаЗначений используется для работы с набором данных в табличном виде.
Например:
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Название");
Товары.Колонки.Добавить("Цена");После этого в таблицу можно добавлять строки.
Таблицы значений особенно полезны при обработке результатов запросов, формировании отчетов и временной обработке данных.
Для создания объектов в 1С используется оператор Новый.
Например:
Массив = Новый Массив;или:
Структура = Новый Структура;Также с помощью Новый можно создавать другие объекты платформы.
Одна из особенностей программирования в 1С — тесная связь кода с объектами прикладного решения.
Например, разработчик может работать со:
Это отличает разработку на 1С от изучения обычного универсального языка программирования.
Справочники используются для хранения относительно постоянной информации.
Например:
Разработчик может обращаться к элементам справочника из программного кода и выполнять с ними различные операции.
Документы отражают события и операции в информационной базе.
Например:
С помощью кода можно автоматизировать обработку документов и связанные с ними действия.
Одно из важнейших направлений программирования в 1С — работа с языком запросов.
Запрос позволяет получить необходимые данные из информационной базы.
Простейший пример:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Наименование
|ИЗ
| Справочник.Номенклатура КАК Товары";
Результат = Запрос.Выполнить();После выполнения запроса разработчик может обработать полученные данные.
Язык запросов 1С имеет собственный синтаксис и во многом напоминает SQL, поэтому знакомство с базами данных будет полезным для начинающего 1С-разработчика.
В реальных программах могут возникать ошибки. Например, внешняя система может быть недоступна или пользователь может передать некорректные данные.
Для обработки исключений используется конструкция Попытка.
Попытка
// Код, который может вызвать ошибку
Исключение
Сообщить("Произошла ошибка");
КонецПопытки;Это позволяет программе корректно обработать проблемную ситуацию, а не просто завершить выполнение операции.
Комментарии помогают разработчикам понимать, что делает определенный участок программы.
Однострочный комментарий начинается с //:
// Рассчитываем итоговую стоимость
Сумма = Цена * Количество;Комментарии не выполняются программой.
Они особенно полезны в больших проектах, где над одной конфигурацией работают несколько специалистов.
В 1С процедуры и функции могут быть доступны только внутри определенного модуля или использоваться из других частей конфигурации.
Для экспортных процедур и функций используется ключевое слово Экспорт.
Например:
Функция РассчитатьСумму(Цена, Количество) Экспорт
Возврат Цена * Количество;
КонецФункцииТакая функция может использоваться из других программных модулей в тех случаях, когда это допускается архитектурой приложения.
На старте необязательно запоминать весь синтаксис языка. Гораздо важнее понять принцип работы основных конструкций.
| Конструкция | Для чего используется |
|---|---|
Если | проверка условия |
Иначе | альтернативная ветка условия |
ИначеЕсли | дополнительное условие |
Для | цикл с определенным диапазоном |
Пока | цикл по условию |
Для каждого | перебор элементов коллекции |
Процедура | выполнение набора действий |
Функция | выполнение действий с возвратом результата |
Возврат | возврат значения из функции |
Новый | создание объекта |
Попытка | обработка потенциальной ошибки |
Исключение | обработка исключительной ситуации |
Экспорт | предоставление процедуры или функции для использования из других модулей |
Сообщить() | вывод сообщения пользователю |
ТекущаяДата() | получение текущей даты и времени |
ЗначениеЗаполнено() | проверка заполненности значения |
Если человек уже знаком с Python, JavaScript или C++, многие принципы ему будут знакомы:
Главное отличие заключается в том, что язык 1С является частью платформы 1С:Предприятие.
Разработчик не просто пишет отдельную программу. Он создает или изменяет прикладное решение, в котором программный код взаимодействует с объектами информационной базы.
Поэтому обучение 1С-разработке включает не только изучение синтаксиса.
Необходимо разобраться:
Если вы только начинаете изучать программирование на 1С, не стоит пытаться запомнить десятки команд сразу.
Оптимальный путь может выглядеть так:
Начните с переменных, типов данных, операторов, условий и циклов.
Научитесь разбивать программу на отдельные логические блоки.
Познакомьтесь с массивами, структурами и таблицами значений.
Разберитесь, как работают справочники, документы и регистры.
Научитесь получать и обрабатывать данные из информационной базы.
Например, можно попробовать:
Именно практика помогает превратить знание отдельных команд в реальные навыки разработки.
Объединим несколько изученных конструкций в одном примере:
Функция РассчитатьСтоимость(Цена, Количество, Скидка)
Сумма = Цена * Количество;
Если Скидка > 0 Тогда
Сумма = Сумма - Сумма * Скидка / 100;
КонецЕсли;
Возврат Сумма;
КонецФункции
Цена = 1500;
Количество = 3;
Скидка = 10;
ИтоговаяСумма = РассчитатьСтоимость(
Цена,
Количество,
Скидка
);
Сообщить("Итоговая сумма: " + ИтоговаяСумма);В этом небольшом примере используются сразу несколько важных элементов языка:
Возврат;Для начинающего разработчика подобные небольшие задачи — хороший способ постепенно закреплять синтаксис.
Знание других языков не является обязательным условием для старта в 1С-разработке.
Однако дополнительные знания могут быть полезны.
Например:
SQL пригодится для понимания баз данных и запросов.
HTML, CSS и JavaScript могут оказаться полезными при работе с веб-интеграциями и интерфейсами.
JSON и XML часто используются при обмене данными между 1С и внешними системами.
HTTP и API понадобятся для интеграции 1С с сайтами, сервисами и другими приложениями.
Поэтому со временем 1С-разработчик может расширять свой стек технологий в зависимости от задач.
При изучении языка 1С новички часто сталкиваются с похожими проблемами.
Не нужно учить все команды наизусть. Важнее понимать, какую задачу решает каждая конструкция и где ее искать в документации.
Чтение учебника само по себе не сделает человека разработчиком. После изучения каждой темы полезно решать небольшие практические задачи.
Нельзя ограничиваться только языком программирования. Нужно понимать, как устроены конфигурации и объекты 1С.
Начинающему разработчику иногда хочется написать максимально сложное решение. На практике лучше стремиться к понятному и поддерживаемому коду.
Умение находить ошибки — такая же важная часть работы разработчика, как написание кода.
Базовый синтаксис 1С можно освоить достаточно быстро, особенно если у человека уже есть опыт программирования. Но для профессиональной разработки потребуется изучить саму платформу, структуру конфигураций, работу с данными и практические инструменты разработчика.
Нет. Начать изучение 1С можно с нуля. При этом понимание базовых принципов программирования значительно упростит обучение.
У языка 1С и SQL есть сходства, особенно при работе с запросами и данными, но это разные языки и разные инструменты.
Да, самостоятельное обучение возможно. Однако новичку может быть сложно выстроить последовательную программу обучения и разобраться с архитектурой платформы. Практические задания и помощь преподавателя могут существенно ускорить освоение материала.
На начальном этапе важно освоить переменные и типы данных, условия, циклы, процедуры и функции, коллекции, работу с объектами 1С, основы запросов и отладку.
Язык программирования 1С — это только часть профессии 1С-разработчика. Чтобы создавать полноценные прикладные решения, важно одновременно изучать программирование, платформу 1С:Предприятие, работу с базами данных и реальные задачи автоматизации.
В IT ШАГ можно изучать 1С-разработку на практике: от основ программирования и устройства платформы до создания собственных решений и работы с реальными задачами.
Обучение помогает не просто запоминать команды, а понимать, как с помощью 1С автоматизировать бизнес-процессы и создавать работающие программные решения.
Если вы хотите начать путь в IT и попробовать себя в разработке, 1С может стать одним из направлений для первого профессионального опыта.
Вы можете настроить использование каждого типа файлов cookie, за исключением типа «технические/функциональные (обязательные) cookie», без которых невозможно корректное функционирование сайта itstep.by (далее – Сайт).
Сайт запоминает Ваш выбор настроек на 1 год. По окончании этого периода Сайт снова запросит Ваше согласие. Вы вправе изменить свой выбор настроек файлов cookie (в т.ч. отозвать согласие) в любое время в интерфейсе Сайта путем перехода по ссылке в нижней части страницы Сайта «Выбор настроек cookie».
Перед тем как совершить выбор настроек параметров использования файлов cookie Вы можете ознакомиться с Политикой обработки файлов cookie ООО «АЙТИ ШАГ СФЕРА», а также со списком файлов cookie.
Данные cookie-файлы необходимы в статистических целях, позволяют подсчитывать количество и длительность посещений Сайта, анализировать как посетители используют Сайт, что помогает улучшать его производительность и сделать более удобным для использования. Запретить хранение данного типа cookie-файлов можно непосредственно на Сайте либо в настройках браузера. Со списком данных файлов Вы можете ознакомиться здесь.
Данные cookie-файлы необходимы в статистических целях, позволяют подсчитывать количество и длительность посещений Сайта, анализировать как посетители используют Сайт, что помогает улучшать его производительность и сделать более удобным для использования. Запретить хранение данного типа cookie-файлов можно непосредственно на Сайте либо в настройках браузера. Со списком данных файлов Вы можете ознакомиться здесь.
Рекламные cookie-файлы используются для целей маркетинга и улучшения качества рекламы (предоставление более актуального и подходящего контента и персонализированного рекламного материала). Запретить хранение данного типа cookie-файлов можно непосредственно на Сайте либо в настройках браузера. Со списком данных файлов Вы можете ознакомиться здесь.
