Skip to main content

Типы данных и операторы

Переменные

Динамическая типизация.

а = -1;
а = "Один";
Сообщить(а);
//"Один"

Можно явно определить имя переменной, ключевое слово Экспорт позволяет обращаться к переменной через контекст модуля. Без экспорта только для эстетики кода.

Перем <Имя переменной 1> [Экспорт]

Типы данных и преобразования типов

Примитивные типы данных

Тип Описание
Null

Исключительно для определения отсутствующего значения при работе с базой данных.

Неопределено (Undefined)

Пустое значение, не принадлежащее ни к одному другому типу.

а = Неопределено;
б = ?(а = Неопределено, 0, 1);//б = 0

Прямое преобразование в булево: нельзя

При сравнении любой тип не равен Неопределено

а = 0;
б = ?(а = Неопределено, 0, 1);//б = 1
Число

Определены основные арифметические операции. Максимальная разрядность 38 знаков. Разделитель точка. 

Прямое преобразование в булево: любое ненулевое Истина, 0 Ложь

Преобразование в строку: Строка()

Строка

Формат Unicode произвольной длины.

Прямое преобразование в булево: нельзя

а = "";
б = ?(а, 0, 1); //вызовет ошибку

Преобразование в число:

Ч1 = Число(СтрокаЧ1);//вызовет исключение при невозможности

 Преобразование в дату: 

Дата("20211231123456"); //YYYYMMDDHHMMSS
Дата("2021", "12", "24", "12", "34", "56");
Дата

Строка цифр, заключенная в одинарные кавычки вида: 'ГГГГММДДччммсс'

Прямое преобразование в булево: нельзя

Булево

Значения данного типа имеют два значения Истина и Ложь

Тип

Используются для идентификации типов значений. Это необходимо для определения и сравнения типов.

Универсальные коллекции значений

Объекты

Есть встроенные объекты конфигурации, работа с ними - обычный ООП. Создание своего объекта - болт. Возможно извращение через структуры для хранения данных, и соглашения об именовании функций. На форумах на тему ООП в 1С сразу срач "Теоретики идут на х*й, а мы бля ах*евшие проктозники (от слова проктика), нах*я ваши говнообъекты".

Никаких uses / внешних модулей. Использование процедур в разных проектах (или даже в разных модулях одной конфигурации) только копирование/вставка. Придется смириться.

Обращение к свойствам объекта через точку или <Объект>["имя свойства"]

Менеджер = Справочники["Менеджеры"];
Менеджер = Справочники.Менеджеры;

Обращение к методам - через точку.

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

?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)   

а = Истина;
б = ?(а = Ложь, 0, 1);//б = 1

Если <Логическое выражение> Тогда
// Операторы
[ИначеЕсли <Логическое выражение> Тогда]
// Операторы
[Иначе]
// Операторы
КонецЕсли;