Базовые типы данных

В языке поддерживаются следующие базовые типы данных:

·         числовой;

·         строковый;

·         дата.

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции.

Строковым типом может задаваться любая последовательность символов, в том числе и пустая.

Типом дата может представляться любая корректная дата.

В процессе работы модуля или вычисления выражений может возникнуть необходимость в преобразовании типов данных отдельных значений. Для базо­вых типов определены следующие правила преобразования:

Число -> Строка

Если число не имеет форматных установок, то его строковым представлени­ем является полное представление числа в формате с фиксированной точкой.

Дата -> Строка

Дата преобразованная к строковому типу имеет вид ДД.ММГ, где ГГ — две цифры года, ММ — числовое обозначение месяца (01, ..., 12), ДД — день месяца.

Строка -> Число

Строка преобразуется в число пока это возможно. Получившееся число счи­тается результатом преобразования. (Например, строка "1.22 Glass" будет преобразована к числу 1.22). Если в начале строки не имеется ничего, что мог­ло бы быть проинтерпретировано как число, то результат равен 0.

Дата -> Число

Результатом данного преобразования является численное представление да­ты.

Строка -> Дата

Если в начале строки содержится что-то, что может быть проинтерпретиро­вано как строковое представление даты в виде ДД.ММГ, где ГГ — две цифры года, ММ — числовое обозначение месяца (01, ..., 12), ДД — день месяца, то бу­дет произведено соответствующее преобразование. В противном случае значе­ние даты будет нулевым.

Число -> Дата

Делается попытка взять целую часть Числа и проинтерпретировать как чис­ленное представление даты. Если число отрицательно, то итогом является ну­левая дата.

Агрегатные типы данных

Агрегатные типы данных — это специализированные типы данных систе­мы 1Средприятие, суть которых — отражение объектов предметной области и способ работы с ними. Работа с агрегатными типами данных языка напоминает работу с объектными типами в Delphi. Атрибуты агрегатного типа данных аналогичны свойствам, а методы — методам объектного типа.

Замечание. При конфигурировании агрегатных типов данных, например Справочников, Документов, Регистров и т. п. не рекомендуется использо­вать в качестве идентификаторов создаваемых рекизитов существующие термины названий атрибутов и методов объектов.

Типичная последовательность работы с объектом агрегатного типа данных выглядит следующим образом:

·         с помощью функции СоздатьОбъект создается объект агрегатного типа данных, и какой-либо переменной присваивается ссылка на него;

·         объект позиционируется на нужном элементе данных;

·         производятся различные манипуляции с объектом агрегатного типа дан­ных через вызовы методов и обращения к его атрибутам.

·         в случае, если объект агрегатного типа данных больше не нужен, он мо­жет быть отсоединен от переменной посредством переприсваивания пе­ременной какого-либо значения базового типа (например, числа 0). От­соединение объекта выполнять не обязательно.

Пример:

// Создаем объект типа "справочникотрудники"

Сотр = СоздатьОбъект("Справочникотрудники");

// Позиционируем созданный объект Сотр по известному наименованию

СотрайтиПоНаименованию("Петров");

Если Сотрыбран() = 1 Тогда

   // если сотрудник найден, отобразим его оклад

   Предупреждение("Оклады" + Сотрклад);

Иначе

   Предупреждение("Петров не найден" + " !!!");

КонецЕсли;

// отсоединяем объект

Сотр=0;

Замечание. Объект, созданный при помощи функции. СоздатьОбъект, изна­чально не определен, т. е. не содержит никакого конкретного значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный документ или элемент справочника). Для до­кументов позиционирование выполняется при помощи методов НайтиДокумент, НайтиПоНомеру, ПолучитьДокумент. Для справочни­ков позиционирование выполняется при помощи методов НайтиЭлемент, НайтиПоКоду, ПолучитьЭлемент.

Замечание. Следует понимать, что в случае, если значение переменной, содер­жащей ссылку на объект агрегатного типа данных, присвоить другой пе­ременной, то это не означает создание нового объекта, просто другая пе­ременная будет содержать ссылку на тот же объект. Новые объекты соз­даются только с помощью обращения к функции СоздатьОбъект. Уда­ление объекта производится самой системой после того, когда не остается ни одной переменной, содержащей ссылку на объект.

Агрегатными типами данных называются следующие типы данных:

Константа — средство работы с постоянными (или условно постоянными) значениями.

Справочник — средство для ведения списков однородных элементов дан­ных. Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан (например, для перечисления «ФормаОплаты» можно задать возможные значения: «Нал», «Безнал»). В отличие от справочни­ков, списки значений в перечислении задаются в процессе их создания в конфи­гураторе и при выполнении задачи не могут быть изменены.

Документ — средство для ввода первичной информации о совершаемых хо­зяйственных операциях.

Регистр — средство обработки и накопления сводной информации опера­тивного учета, доступны только при наличии компоненты «Оперативный учет».

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

Счет — это агрегатный тип данных для доступа к объектам данных — бух­галтерским счетам. Бухгалтерские счета используются компонентой «Бухгал­терский учет» системы 1Средприятие для идентификации разрезов синтети­ческого учета наличия и движения средств. В общем виде смысл типа данных «Счет» вполне соответвует общепринятому понятию «Счет» в бухгалтерском учете.

ВидСубконто является служебным типом данных. Он предназначен для идентификации Вида субконто, созданного в метаданных. В основном он ис­пользуется для передачи в качестве параметра различным процедурам и функ­циям компоненты «Бухгалтерский учет» и для выбора вида субконто в формах. Список возможных значений этого типа данных определен видами субконто, созданными в конфигурации. Значения типа «ВидСубконто» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа используется глобальный атрибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа «Вид­Субконто» соответствующих имеющимся видам субконто. Кроме того, глобаль­ный атрибут ВидыСубконто имеет методы для обхода всех существующих ви­дов субконто. (Данные типа ВидСубконто доступны только при наличии компо­ненты «Бухгалтерский учет»)

Операция — средство для манипулирования из встроенного языка данны­ми бухгалтерских операций и проводок формируемых документом. Так как проводки в системе 1Средприятие принадлежат операциям, то управление и операциями и проводками выполняется объектом «Операция». (Данные типа Операция доступны только при наличии компоненты «Бухгалтерский учет»)

БухгалтерскиеИтоги — средство для организации доступа к бухгалтер­ским итогам в различных разрезах, за различные периоды и с разной степенью детализации. При наличии в системе 1Средприятие компоненты «Бухгалтер­ский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамиче­ский пересчет бухгалтерских итогов и их извлечение средствами встроенного языка. Система хранения бухгалтерских итогов поддерживается системой 1Средприятие автоматически на основе существующих планов счетов. При редактировании планов счетов — в конфигураторе или при работе с системой 1Средприятие — для счета могут быть установлены ряд свойств, которые влияют на организацию хранения бухгалтерских итогов: это признаки ведения валютного и количственного учета, а также включение аналитического учета по субконто. Изменение бухгалтерских итогов может производиться только про­водками бухгалтерских операций. (Данные типа БухгалтерскиеИтоги доступны только при наличии компоненты «Бухгалтерский учет»)

ЖурналРасчетов — средство для учета расчетных действий по тем или иным объектам расчета. Каждая строка журнала расчетов соответствует одному расчетному действию — акту расчета, выполняемому по определенному алго­ритму (виду расчета), в определенном временном интервале и имеющему ре­зультат. (ЖурналыРасчетов доступны только при наличии компоненты «Рас­чет»)

ВидРасчета — средство для выполнения расчетов по определенным алго­ритмам через журнал расчетов. Перечень видов расчета, доступных в конкрет­ной конфигурации, их названия и другие свойства определяются в конфигура­торе. (ВидыРасчета доступны только при наличии компоненты «Расчет»)

ГруппаРасчетов — тип данных, предназначенный для объединения видов расчета по тому или иному признаку. Перечень групп расчетов, доступных в конкретной конфигурации, их названия и другие свойства определяются в конфигураторе. (ГруппыРасчетов доступны только при наличии компоненты «Расчет»)

Календарь — средство для ведения учета времени по календарным датам. Перечень календарей, доступных в конкретной конфигурации, их названия и другие свойства определяются в конфигураторе. (Календари доступны только при наличии компоненты «Расчет»)

Запрос — средство для выполнения обращения к документам, регистрам, документам, справочникам и журналам расчетов с целью получения сводной информации при формировании выходных отчетов. В программных модулях допускается создавать произвольное число объектов типа Запрос при помощи вызова системной функции СоздатьОбъект.

Текст — средство работы с текстовыми документами. В программных мо­дулях допускается создавать произвольное число объектов типа Текст при по­мощи вызова системной функции СоздатьОбъект.

Таблица — средство работы с таблицами (отчетами). В программных моду­лях допускается создавать произвольное число объектов типа Таблица, при по­мощи вызова системной функции СоздатьОбъект.

СписокЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗна­чений при помощи вызова системной функции СоздатьОбъект.

ТаблицаЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗна­чений при помощи вызова системной функции СоздатьОбъект.

Картинка — средство для работы с графическими файлами. При добавле­нии в диалоговых формах и в таблицах полей типа «Картинка», система авто­матически создает объекты Картинка, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произ­вольное число объектов типа Картинка при помощи вызова системной функ­ции СоздатьОбъект.

Периодический — средство для работы с периодическими реквизитами справочников и периодическими константами. В программных модулях допус­кается создавать произвольное число объектов типа Периодический при помощи вызова системной функции СоздатьОбъект.

ФС — средство для работы с дисковыми файлами непосредственно из встроенного языка системы 1Средприятие. В программных модулях допуска­ется создавать произвольное число объектов типа ФС при помощи вызова сис­темной функции СоздатьОбъект. Кроме того, в глобальном контексте по умол­чанию существует один уже созданный объект этого типа с именем ФС (имя объекта совпадает с названием агрегатного типа данных).

XBase — средство для работы с файлами баз данных DBF формата непо­средственно из встроенного языка системы 1Средприятие. В программных модулях допускается создавать произвольное число объектов типа XBase при помощи вызова системной функции СоздатьОбъект.

 

Пример:

*

Спр = СоздатьОбъект("Справочникотрудники");

А = Спрыбрать("Выберите объект", 0);

//Выбираем наименование и оклад как атрибуты справочника

Сообщить("Выбран сотрудник " + Спраименование);

Сообщить("Оклад - " + Спрклад );

*

Спр = СоздатьОбъект("Справочникотрудники");

А = Спрыбрать("Выберите объект", 0);

Док = СоздатьОбъект("ДокументриказНаДоплату");

Доковый();

// Устанавливаем атрибут НомерДок

ДокомерДок = "777";

// Устанавливаем атрибут ДатаДок

ДокатаДок = '14.04.96';

ДокипРасчета = ВидРасчета.ДоплатаСуммой;

 

Спр = СоздатьОбъект("Справочниковары");

А = Спрыбрать("Выберите товар", 0);

Доку = СоздатьОбъект("ДокументаклПрих");

Докуовый();                // Вызываем метод

Докуклад = 22;

ДокуомерДок = "777";       // Устанавливаем номер документа

ДокуатаДок = '14.04.96';   // Устанавливаем дату документа

ДокувтоВремяОтключить();   // Вызываем метод

ДокустановитьВремя(17, 30, 00);

ДокуоваяСтрока();          // Вызываем метод

Докуовар = Спр.ТекущийЭлемент();

Докуоличество = 100;

 

Сайт управляется системой uCoz