Содержание:
1. Числовой тип данных в базе данных
Примитивный тип данных— это тип данных, предоставляемый языком программирования как базовая встроенная единица языка. Тип данных определяет, какие данные может содержаться в переменной, а также – какие операции могут быть применены к данным.
Платформа предоставляет ограниченный перечень типов данных:
· Число
· Строка
· Дата
· Булево
· Значения типа NULL и Не определено
1. Числовой тип данных в базе данных
Числовой тип данных в базе данных описывает число. Во встроенном языке это всегда число с плавающей запятой. В реквизите БД указывается длина целой и дробной части. В языке число представлено целой частью 32 цифры, дробной частью 10 цифр. Совокупная длина числа 28 символов.
Операции над числами:
• Арифметические операции. + - * /
• Математические функции. Такие как квадратный корень числа, целая часть числа, тригонометрические функции, округление числа до указанной разрядности
• Получения остатка от деления указывается знаком %. Пример: 120%50=20;
Работа с числовым типом данных в базе данных
Реквизит числового типа данных базы данных имеет ограничения самой СУБД, а не платформы.
Приоритет числовых выражений начинается со скобок, далее операции умножения и деления, далее сложение и вычитание.
2. Строковый тип данных
Строковой тип данных – это строка. По сути, строка состоит из множества символов. Строка задается символами, обрамленными двойными кавычками. Пример строкового типа данных:
Сообщение = “Введите счет-фактуру”;
Строка “Введите счет-фактуру” присваивается переменной СООБЩЕНИЕ. Также строки могут быть многострочными.
Пример:
Сообщение = “Не заполнено поле дата”
“проведение документа счет на оплату отменено”;
Также многострочную строку можно обрамить только в одни кавычки, для этого необходимо перед каждойновой строкойпоставить символ |.
В типовых конфигурациях встречается такой синтаксис в запросах.
Например:
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СостоянияКонтрагентов.Состояние
|ИЗ
| РегистрСведений.СостоянияКонтрагентов КАК СостоянияКонтрагентов
|ГДЕ
| СостоянияКонтрагентов.Контрагент = &Контрагент
| И СостоянияКонтрагентов.ИНН = &ИНН
| И СостоянияКонтрагентов.КПП = &КПП";
Элементы строкового типа данных можно соединять, для этого имеется операция конкатенации, аналог операции сложения. К примеру, нужно объединить три строки, для этого применим знак сложения «+»:
Сообщение = “ Классификатор банков еще не загружен.” + “ Загрузить сейчас,” + “ или потом?“;
В результате мы получим одну строку.
В платформе определены множество функций по работе со строками.
Функции в работе со строковым типом данных
3. Тип данных дата (время)
Тип данных дата (время)описывает дату с точностью до дня или до секунды.
Описать дату можно двумя способами. Первый способ с помощью литерала строки, дата пишется строкой обрамленной в одинарные кавычки.
ДатаСчета= ‘ 20150711’;
Формат литерала строки: год месяц день.
В составе даты так же есть возможность указать время
Пример:ДатаСчета= ‘ 20150711235959’;
При указании даты без времени, то время будет равно 00:00:01.
Пример:ДатаСчета= ‘ 2015.07.11’;
Следующий вариант определения даты – использовать функцию Дата(год, месяц, день, час, минута, секунда).
ДатаСчета= Дата (2015, 07, 11);
Параметры времени указывать не обязательно, в таком случае времябудет задано начало дня.
Варианты записи пустой даты. Пустая дата - это значение даты на начало календаря.
ПустаяДатаСчета = ‘00010101’;
ПустаяДатаСчета= Дата(1,1,1);
Обе записи дадут один результат, дата будет считаться пустой.
Для даты имеется операция сложения. В результате операции прибавятся секунды в исходной дате. Пример: Начало = Дата(2010, 1, 1) + 86400;в результате переменная будет содержать значение‘2010, 1, 2’
Тип данных булево
Тип данных Булево состоит из двух значений. Это Истина и Ложь. Используется как в языке, так и в запросах. Значение можно описать константами либо получить в операциях сравнения значений различных примитивных типов данных. При сравнении чисел, дат, строк получаем значение булевого типа.
Пример:
СчетПодписан = Истина;
ДокументПроведен = Ложь;
ЭтоСчет = ВходнаяСтрока = «Счет»;
Если Остаток > 0 Тогда
4. Значения типа NULL
NULL – это значение типа, которое обычно образуется в запросах при соединении таблиц. Также в языке 1С применяется литерал для обозначения данного значения. Тип NULL заполняется в тех полях результата соединений таблиц, для которых отсутствует условие соединения.
Так как тип данных NULL не несет в себе определенного значения, значит, и операции сравнения невозможно применить в данном значении. Поэтому в языке запросов имеется специальные функции.
Функция IS NULL, которая возвращает истину в случае, когда значение поля будет являться NULL.
Пример:
Выбрать
Таблица.ПродавецIS NULL КАК ОтсутствуетПродавец
Функция IS NOT NULL, которая возвращает истину в случае, когда значение поля не будет являться NULL. Пример:
Выбрать
Таблица.ПродавецIS NOT NULL КАК ИмеетсяПродавец
В языке 1С можно применять операцию сравнения с NULL. Например, при обходе результата запроса.
Пример:
Если Выборка.Продавец = NULL Тогда
…
5. Тип Неопределено
Тип Неопределено применяется в полях объектов базы данных составного типа, когда необходимо указать на пустое значение поля. К примеру реквизит документа Получатель имеет тип СправочникСсылка.Пользователи и СправочникСсылка.Сотрудники, присваивая значение Неопределено, мы тем самым указываем пустое значение реквизита.
Так же данное значение используется в языке 1С. Если мы не инициализировали переменную, в таком случае она будет содержать значение Неопределено.
Функции платформы возвращают тип Неопределено для обозначения пустого результата или же невозможность выполнить функцию.
6. Примитивный тип данных Тип
Применяется, когда необходимо сравнить тип значения переменной либо реквизит объекта БД с необходимым типом, либо для указания типа реквизита формы при программном создании.
В платформе 1С для примитивного типа имеются две функции:
1. Тип(«ИмяТипа»)возвращающая значение типпо строковому представлению;
2. ТипЗнч(Значение) возвращает тип значения переменной или реквизита объекта.
Например, необходимо понять какого типа значение передали в функцию:
Функция Сложить(А, Б)
Если ТипЗнч(А) = Тип(«Число») Тогда
Возврат А+Б;
КонецЕсли;
Если ТипЗнч(А) = Тип(«Строка») Тогда
Возврат Число(А)+Число(Б);
КонецЕсли;
КонецФункции;
Специалист компании «Кодерлайн»
Ильгиз Туальбаев