Типы данных в 1Средприятие 8.х

Перед тем как погрузится в языковые конструкции встроенного языка, мы должны познакомиться с основными типами данных. К счастью,:

У начинающих изучать платформу 1С возникают порой недоумение по поводу определения типов данных и возникающих всяких языковых нюансах. Эта первая статья вводная и посвящена примитивным типам данных 1С, их не так уж и много.

- Число. Под числами в 1С подразумеваются как целые, так и значения с плавающей запятой. Максимальная разрядность значения типа «число» может быть 32 знака, включая десятичную точку. Стоит также учитывать, что ограничение в 32 знака действует на числа, которые будут записываться в базу данных. Возможно объявлять переменную и присваивать в нее значение больше 32 знаков. Для числовых значений, которые хранятся в памяти, данное ограничение не действует. После объявления переменой типа «Число» ее значением будет 0.

- Строка. Как в любом другом языке программирования, в 1С реализованы все необходимые функции для манипулирования строками. Значения данного типа представлены в юникоде (Unicode). Длина переменных типа строка – не ограничена.

- Дата. Помимо самой даты значения данного типа содержат и время. Под временем подразумевается часы, минуты и секунды. Сразу после инициализации переменной типа «Дата» ей будет присвоено значение (дата) «01 января 0001 года 00 часов 00 минут 00 секунд».Это иногда вызывает раздражение, но со временем привыкаешь.

- Булево. Это и понятно, что переменные данного типа могут принимать лишь два значения: Истина, Ложь.

- Неопределено. Значения типа «неопределено» применяются в случаях, когда требуется указать пустое значение, не относящееся ни к какому другому типу данных. Например, нужно объявить переменную, которая потом будет где-нибудь использоваться. Можно присвоить ей значение вроде 0 или «» (т.е. пустая строка), но тем самым сразу устанавливаем для нее соответствующий тип (число или строка). А что если установка одного из этих типов в последствие может помешать? Вот в таких случаях можно использовать значение типа «неопределено». Стоит также заметить, что многие функции встроенного языка, в случае не успешного выполнения, в качестве результата возвращают значение данного типа. При описании своих функции рекомендуется руководствоваться тем же правилом.

- Null. Общий смысл у Null почти такой же, как и у «неопределено». Значения данного типа применяются для обозначения отсутствующего значения в базе данных. Чаще всего, получить значения данного типа можно при использовании языка запросов. Например, запрос в котором используется объединение таблиц. Допустим в одной из таблиц отсутствует значение, удовлетворяющее условию. В таком случае, на месте отсутствующего значения будет значение типа Null.

Со значением типа Null возможно столкнуться не только при работе с запросами. Например, значение типа Null принимают реквизиты, которые не используются объектом. Представим, что у нас есть иерархический справочник с реквизитом «количество». При создании данного реквизита, ему установили свойство «Использование» в значение «Для элемента». Если попробовать обратится к данному реквизиту для элемента справочника типа «группа», то его значением как раз будет Null.

- Тип. Данный тип применяется для определения имеющихся типов. Немного запутано звучит? Ok, попробую объяснить на примере. Представь, что перед тобой встала задача сравнить типы двух переменных. В коде это будет выглядеть примерно так:

Переменная1 = 123; //Поскольку мы присвоили число, значит тип переменной будет «число».Переменная2 = «строка»; //Здесь мы присвоили строку, значит тип переменной будет строка.

Теперь тебе нужно на 100% убедиться, что переменная1 является числовой. Вот тут нам и пригодится тип «Тип» (забавно звучит), а также парочка вспомогательных функций. Пока не будет лезть в подробности. Просто взгляни и попробуй понять нижеприведенный пример:

Если (ТипЗнч(Переменная1) = Тип(«Число»)) Тогда

Сообщить(«Переменная1 является числовой!»);

Иначе

Сообщить(«Переменная1 НЕ является числовой :(»);

КонецЕсли;

В этом небольшом кусочке кода, я сначала получаю тип переменной при помощи функции «ТипЗнч()». Данная функция в качестве параметра принимает значение, тип которого требуется получить. В нашем случае это «Переменная1». Затем мне требуется получить значение типа «Тип», характеризующее тип «Число». Для этого во встроенном языке предусмотрена функция «Тип()». Она принимает всего лишь один аргумент – строковое представление имени типа. Раз нам требуется сравнить с типом «Число», то параметром для функции будет «Число».

Благодарю за помощь в написании статьи Игоря Антонова.