Типы данных


Данные в языке программирования 1С делятся на две категории: базовые и агрегатные.

Базовые типы данных являются общими и не привязаны непосредственно к объектам конфигурации. Существуют следующие базовые типы данных:
  • числовой — любое десятичное число;
  • строковый — любая последовательность символов, в том числе и пустая;
  • дата — любая дата и время из допустимого диапазона;
  • булево — принимает одно из двух возможных значений: Истина или Ложь;
  • не определено — пустое значение, не принадлежащее ни к какому другому типу. Базовые типы данных могут быть преобразованы друг в друга функциями преобразования. В разделе, посвященном преобразованию типов данных далее в этой главе, мы рассмотрим, как это делается.
В значениях типа "Число", имеющих дробную часть, в тексте программного целая и дробная части разделяются точкой. Вот так: 5.25.
Значения типа "Строка" в тексте программного модуля заключаются в кавычки.  Вот так: "это — строка".
Значения типа "Дата" в тексте программного модуля заключаются в одинарные кавычки. Вот так: '20120310' или '20120310195900'. Первый пример означает 10 марта 2012 года (2012 год, 03 месяц, 10 день), второй пример — 10 марта 2012 года 19 часов 59 минут 00 секунд (2012 год, 03 месяц, 10 день, 19 час, 59 минута, 00 секунд).

Агрегатные типы данных — специальные типы данных, соответствующие типам объектов дерева конфигурации системы "1С:Предприятие". Сюда же относятся универсальные коллекции значений, такие как СписокЗначений или Массив, а также специфические типы данных, такие как ТекстовыйДокумент или ТабличныйДокумент.

Для наглядности приведем пример работы с агрегатными типами данных:

Товары = Справочники.Номенклатура;
РезультатПоиска = Товары.НайтиПоНаименованию("Зеркало круглое");
Если РезультатПоиска <> Товары.ПустаяСсылка() Тогда
   Сообщить("Артикул " + РезультатПоиска.Артикул);
Иначе
   Предупреждение("Нет такого товара!");КонецЕсли;

Что делает этот код?
  • Объявляет новую переменную Товары типа Справочники.Номенклатура. Это и есть агрегатный тип данных — тип, представленный в дереве конфигурации конкретным объектом.
  • Используя метод справочника НайтиПоНаименованию(), ищем конкретное наименование товара в справочнике, присваивая результат переменной РезультатПоиска. У каждого объекта метаданных есть набор собственных методов, которые пишутся в формате ИмяПеременной.Метод, т. е. через точку. Аналогично, если у объекта есть поля (например, в справочнике товаров поле "Артикул"), к ним также можно обратиться в формате ИмяПеременной.ИмяПоля. Дальше в этой главе мы будем рассматривать методы агрегатных типов данных. Полный список методов можно найти в синтаксис-помощнике (меню Сервис | Ситаксис-помощник), где команды и методы сгруппированы по типам. На рис. 2.6 представлено дерево синтаксис-помощника, открытое как раз на методе НайтиПоНаименованию(), принадлежащем объектам типа "Справочник":
  • Далее мы сравниваем переменную РезультатПоиска с пустой ссылкой типа Справочники.Номенклатура (переменная Товары именно этого типа, мы это задали в первой строке программного кода). То есть если мы что-то нашли, то ссылка не пуста, если не нашли — пуста. Если результат поиска не равен пустой ссылке на элемент справочника номенклатуры (знак <> означает "не равно"), тогда мы сообщаем артикул найденного товара (предваряя его текстовой строкой "Артикул "; если бы мы это не сделали, то получили бы в сообщении просто значение артикула, без пояснения, что это). В противном случае (Иначе) выводится предупреждение в центре экрана о том, что такого товара нет.
Агрегатные типы данных могут быть как неопределенные, так и конкретизированные. Например, тип "Константа", "Справочник", "Документ", "Перечисление" и т. п. — неопределенные агрегатные типы, которые могут обращаться к любому объекту данного типа. Не существует данных типа "Отчет" или "Обработка", потому что эти элементы дерева метаданных не являются данными, а только средствами манипуляции данными и их обработки.

Тип Справочники.Номенклатура, Документы.ПоступлениеТоваровУслуг, Перечисления.ДаНет и т. п. являются конкретизированными агрегатными типами данных, поскольку переменная данного типа ссылается не просто на какой-либо справочник, документ или перечисление, а на конкретно указанный.

 

Похожие новости

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.