Типы данных и операторы
Переменные
Динамическая типизация.
а = -1;
а = "Один";
Сообщить(а);
//"Один"
ТипЗнч(элмас) - вывести тип переменной.
Можно явно определить имя переменной, ключевое слово Экспорт позволяет обращаться к переменной через контекст модуля. Без экспорта только для эстетики кода.
Перем <Имя переменной 1> [Экспорт]
Типы данных и преобразования типов
Примитивные типы данных
Тип | Описание |
Null |
Исключительно для определения отсутствующего значения при работе с базой данных. |
Неопределено (Undefined) |
Пустое значение, не принадлежащее ни к одному другому типу.
Прямое преобразование в булево: нельзя При сравнении любой тип не равен Неопределено
|
Число |
Определены основные арифметические операции. Максимальная разрядность 38 знаков. Разделитель точка. Прямое преобразование в булево: любое ненулевое Истина, 0 Ложь Преобразование в строку: Строка() |
Строка |
Формат Unicode произвольной длины. Прямое преобразование в булево: нельзя
Преобразование в число:
Преобразование в дату:
|
Дата |
Строка цифр, заключенная в одинарные кавычки вида: 'ГГГГММДДччммсс' Прямое преобразование в булево: нельзя |
Булево |
Значения данного типа имеют два значения Истина и Ложь |
Тип |
Используются для идентификации типов значений. Это необходимо для определения и сравнения типов. |
Универсальные коллекции значений
Тип | Описание |
Массив |
Аналог списка. Конструктор:
Методы: Количество
Найти - Если найден - индекс, иначе неопределено. Очистить - Удаляет все значения из массива. Удалить - удаляет указанный индекс |
Структура
|
Аналог словаря. Ключи только строковые. Конструктор:
Доступ к элементу:
Перебор значений:
Вставить(ключ, значение)
|
Соответствие | Как структура, только ключ может быть любого типа. |
Список значений | Как массив + строковое описание (Представление), Пометка и Картинка |
Фиксированный (массив, соответствие, структура) | Аналогичный объект только для чтения. |
Объекты
Есть встроенные объекты конфигурации, работа с ними - обычный ООП. Создание своего объекта - болт. Возможно извращение через структуры для хранения данных, и соглашения об именовании функций. На форумах на тему ООП в 1С сразу срач "Теоретики идут на х*й, а мы бля ах*евшие проктозники (от слова проктика), нах*я ваши говнообъекты".
Никаких uses / внешних модулей. Использование процедур в разных проектах (или даже в разных модулях одной конфигурации) только копирование/вставка. Придется смириться.
Обращение к свойствам объекта через точку или <Объект>["имя свойства"]
Менеджер = Справочники["Менеджеры"];
Менеджер = Справочники.Менеджеры;
Обращение к методам - через точку.
Условные операторы
?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)
а = Истина;
б = ?(а = Ложь, 0, 1);//б = 1
Если <Логическое выражение> Тогда
// Операторы
[ИначеЕсли <Логическое выражение> Тогда]
// Операторы
[Иначе]
// Операторы
КонецЕсли;
Разное
Выполнить(<Строка>);
Выполнить("Сообщить(а)");
Исполняет строковое представление команды.