Типы данных
Данные в языке программирования 1С делятся на две категории: базовые и агрегатные.
Базовые типы данных являются общими и не привязаны непосредственно к объектам конфигурации. Существуют следующие базовые типы данных:
- числовой — любое десятичное число;
- строковый — любая последовательность символов, в том числе и пустая;
- дата — любая дата и время из допустимого диапазона;
- булево — принимает одно из двух возможных значений: Истина или Ложь;
- не определено — пустое значение, не принадлежащее ни к какому другому типу. Базовые типы данных могут быть преобразованы друг в друга функциями преобразования. В разделе, посвященном преобразованию типов данных далее в этой главе, мы рассмотрим, как это делается.
Значения типа "Строка" в тексте программного модуля заключаются в кавычки. Вот так: "это — строка".
Значения типа "Дата" в тексте программного модуля заключаются в одинарные кавычки. Вот так: '20120310' или '20120310195900'. Первый пример означает 10 марта 2012 года (2012 год, 03 месяц, 10 день), второй пример — 10 марта 2012 года 19 часов 59 минут 00 секунд (2012 год, 03 месяц, 10 день, 19 час, 59 минута, 00 секунд).
Агрегатные типы данных — специальные типы данных, соответствующие типам объектов дерева конфигурации системы "1С:Предприятие". Сюда же относятся универсальные коллекции значений, такие как СписокЗначений или Массив, а также специфические типы данных, такие как ТекстовыйДокумент или ТабличныйДокумент.
Для наглядности приведем пример работы с агрегатными типами данных:
Товары = Справочники.Номенклатура;
РезультатПоиска = Товары.НайтиПоНаименованию("Зеркало круглое");
Если РезультатПоиска <> Товары.ПустаяСсылка() Тогда
Сообщить("Артикул " + РезультатПоиска.Артикул);
Иначе
Предупреждение("Нет такого товара!");КонецЕсли;
Что делает этот код?
- Объявляет новую переменную Товары типа Справочники.Номенклатура. Это и есть агрегатный тип данных — тип, представленный в дереве конфигурации конкретным объектом.
- Используя метод справочника НайтиПоНаименованию(), ищем конкретное наименование товара в справочнике, присваивая результат переменной РезультатПоиска. У каждого объекта метаданных есть набор собственных методов, которые пишутся в формате ИмяПеременной.Метод, т. е. через точку. Аналогично, если у объекта есть поля (например, в справочнике товаров поле "Артикул"), к ним также можно обратиться в формате ИмяПеременной.ИмяПоля. Дальше в этой главе мы будем рассматривать методы агрегатных типов данных. Полный список методов можно найти в синтаксис-помощнике (меню Сервис | Ситаксис-помощник), где команды и методы сгруппированы по типам. На рис. 2.6 представлено дерево синтаксис-помощника, открытое как раз на методе НайтиПоНаименованию(), принадлежащем объектам типа "Справочник":
- Далее мы сравниваем переменную РезультатПоиска с пустой ссылкой типа Справочники.Номенклатура (переменная Товары именно этого типа, мы это задали в первой строке программного кода). То есть если мы что-то нашли, то ссылка не пуста, если не нашли — пуста. Если результат поиска не равен пустой ссылке на элемент справочника номенклатуры (знак <> означает "не равно"), тогда мы сообщаем артикул найденного товара (предваряя его текстовой строкой "Артикул "; если бы мы это не сделали, то получили бы в сообщении просто значение артикула, без пояснения, что это). В противном случае (Иначе) выводится предупреждение в центре экрана о том, что такого товара нет.
Тип Справочники.Номенклатура, Документы.ПоступлениеТоваровУслуг, Перечисления.ДаНет и т. п. являются конкретизированными агрегатными типами данных, поскольку переменная данного типа ссылается не просто на какой-либо справочник, документ или перечисление, а на конкретно указанный.
Комментариев 0