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