Основные особенности
Регистрозависимость
Синтаксис языка «1С:Элемент» регистрозависимый. Однако в нем действует следующее ограничение на наименования переменных: нельзя объявить две переменные, которые отличаются только регистром.
Имена переменных
// Это одна и та же переменная
РабочийКаталог = "C:\test\";
рабочийКаталог = "D:\worker\";
// Во второй строке будет ошибка
пер РабочийКаталог = "C:\\test\\"
пер рабочийКаталог = "D:\\worker\\"
Ключевые слова
// Работают оба варианта
Если РабочийКаталог = "" Тогда
Возврат;
КонецЕсли;
если РабочийКаталог = "" тогда
возврат;
конецесли;
// Этот вариант работает
если РабочийКаталог == ""
возврат
;
// Этот вариант не работает
Если РабочийКаталог == ""
Возврат
;
// Работают оба варианта
Версии = новый Массив();
Версии = Новый Массив();
// Этот вариант работает
пер Версии = новый Массив<Версия>()
// Этот вариант не работает
пер Версии = Новый Массив<Версия>()
Ключевые слова
Все ключевые слова языка «1С:Элемент» пишутся строчными буквами. Прописные буквы в ключевых словах не используются. Это позволяет отличать ключевые слова от идентификаторов при просмотре кода без наличия подсветки, например в системах контроля версий.
Примеры ключевых слов
Процедура Скрипт()
КонецПроцедуры
метод Скрипт()
;
Если Результат = 0 Тогда
КонецЕсли;
если Результат == 0
;
Для Счетчик = 1 по 5 Цикл
КонецЦикла;
для Счетчик = 1 по 5
;
Подробнее про ключевые слова.
Упрощенные инструкции
Простые и составные инструкции
Многие привычные инструкции упрощены. Точка с запятой ; в конце простых инструкций не ставится. Этот символ используется в конце составных инструкций вместо ключевых слов КонецЕсли, КонецЦикла, КонецПроцедуры, КонецФункции и так далее.
Процедура Скрипт()
Результат = 0;
Если Результат = 0 Тогда
Для Счетчик = 1 по 5 Цикл
Результат = Результат + 1;
КонецЦикла;
КонецЕсли;
КонецП роцедуры
метод Скрипт()
пер Результат = 0
если Результат == 0
для Счетчик = 1 по 5
Результат += 1
;
;
;
После «если» не пишется «тогда»
В инструкции если не используется ключевое слово Тогда.
Если Результат = 0 Тогда
КонецЕсли;
если Результат == 0
;
Подробнее пр о инструкцию если.
После «для по» не пишется «цикл»
В инструкции для по не используется ключевое слово Цикл.
Для Счетчик = 1 по 5 Цикл
КонецЦикла;
для Счетчик = 1 по 5
;
Подробнее про инструкцию для по.
После «пока» не пишется «цикл»
В инструкции пока не используется ключевое слово Цикл.
Счетчик = 1;
Пока Счетчик < 5 Цикл
Счетчик = Счетчик + 1;
КонецЦикла;
пер Счетчик = 1
пока Счетчик < 5
Счетчик += 1
;
Для ввода угловых скобок < и > используйте сочетание клавиш Alt + б и Alt + ю (подробнее).
Подробнее про инструкцию пока.
В цикле «для из» не пишется «каждого»
В инструкции для из не используется ключевое слово Каждого.
Массив = Новый Массив();
Массив.Добавить(1);
Массив.Добавить(3);
Массив.Добавить(5);
Массив.Добавить(7);
Массив.Добавить(9);
Для Каждого Элемент Из Массив Цикл
Сообщить("Элемент - " + Элемент)
КонецЦикла;
для Элемент из [1, 3, 5, 7, 9]
пер Результат = "Элемент - %Элемент"
;
Для ввода квадратных скобок [ и ] используйте сочетание клавиш Alt + х и Alt + ъ (подробнее).
Подробнее про инструкцию для из.
Статическая типизация
Язык «1С:Элемент» статически типизированный. Это значит, что у каждой переменной, параметра и метода, возвращающего значение, должны быть описаны типы.
Объявление переменной
Переменные нужно объявлять явно. Тип переменной может быть указан явно. Если при объявлении переменной выполняется ее инициализация литералом, то тип переменной рекомендуется не указывать.
// Объявление не обязательно.
// Отсутствие объявления не вызовет ошибку
// при использовании переменной
Перем РабочийКаталог;
// Объявление обязательно.
// Отсутствие объявления вызовет ошибку компиляции
// при использовании переменной
пер РабочийКаталог: Строка
// Объявление и инициализация
пер РабочийКаталог = "C:\\test\\"
Рекомендации по инициализации переменных.
Объявление метода
// Типы параметров не объявляются
Процедура КакПроцедура(Парам1,
Парам2)
Результат = Парам1 + Парам2;
КонецПроцедуры
// Объявление типов параметров обязательно
метод КакПроцедура(Парам1: Строка,
Парам2: Число)
пер Результат = Парам1 + Парам2
;
Объявление типа возвращаемого значения
// Тип возвращаемого значения не объявляется
Функция КакФункция(Парам1,
Парам2)
Возврат Парам1 + Парам2;
КонецФункции
// Объявление типа возвращаемого значения обязательно
метод КакФункция(Парам1: Строка,
Парам2: Число): Строка
возврат Парам1 + Парам2
;
Объявление переменной любого типа
В языке «1С:Элемент» сохранена возможность динамической типизации в стиле «1С:Предприятия». Для этого в описании типа нужно использовать ключевое слово неизвестно. В этом случае все проверки кода с момента написания переносятся на момент его выполнения.
// Объявление не обязательно
Перем РабочийКаталог;
// Объявление обязательно
пер РабочийКаталог: неизвестно
Подробнее про тип неизвестно.
О бъявление метода с параметрами любого типа
// Типы параметров не объявляются
Процедура КакПроцедура(Парам1,
Парам2)
Результат = Парам1 + Парам2;
КонецПроцедуры
// Объявление типов параметров обязательно
метод КакПроцедура(Парам1: неизвестно,
Парам2: неизвестно)
пер Результат = Парам1 + Парам2
;
Объявление любого типа возвращаемого значения
// Тип возвращаемого значения не объявляется
Функция КакФункция(Парам1,
Парам2)
Возврат Парам1 + Парам2;
КонецФункции
// Объявление типа возвращаемого значения обязательно
метод КакФункция(Парам1: неизвестно,
Парам2: неизвестно): неизвестно
возврат Парам1 + Парам2
;
Составные типы
В языке «1С:Элемент» поддерживаются составные типы. С их помощью вы можете указать, что переменная принимает значение одного из нескольких типов.
// Переменная может принимать значения типов Ст рока, Число или Булево
пер Переменная1: Строка|Число|Булево = 0
// Переменная может принимать значения типов Строка или Неопределено
пер Переменная2: Строка?
Для ввода вертикальной черты | используйте сочетание клавиш Alt + \ (подробнее).
Рекомендации по описанию составных типов