Оператор Новый
Встроенный язык 1С является предметно-ориентированным, но некоторые возможности объектно-ориентированных языков программирования в нем присутствуют. Например, создание объектов, обращение к свойствам и методам объекта.
Для создания нового объекта используется оператор Новый. Результатом данного оператора будет значение указанного типа. Например:
//в переменной Массив будет ссылка на объект типа Массив
Массив = Новый Массив();
//в переменной Структура будет ссылка на объект типа Структура
Структура = Новый Структура();
//если используется конструктор без параметров, то можно не указывать скобки.
Массив = Новый Массив;
Структура = Новый Структура;
Оператор Новый выделяет память для объекта, после этого вызывает его конструктор. Конструктор - некое действие, которое создает «заготовку» объекта. Конструктор вызывается при создании нового объекта. Изменить конструктор из встроенного языка 1С нельзя.
С помощью оператор Новый можно создавать прикладные объекты (справочники, документы и т.п.):
//предположим, что у нас есть переменная УИД, в которой хранится
//уникальный идентификатор одного из элементов справочника Товары
Массив = Новый Массив;
Массив.Добавить(УИД);
//в конструктор передаем тип данных значения, которое хотим создать
//и массив с уникальным идентификатором
Спр = Новый ("СправочникСсылка.Товары", Массив);
//в результате в переменной Спр будет ссылка на элемент справочника Товары
//из нее можно получить объект и выполнить какие-либо действия
СпрОб = Спр.ПолучитьОбъект();
СпрОб.Код = "1";
СпрОб.Наименование = "тест";
СпрОб.Записать();
Свойства и методы объекта
Свойства - это некие переменные объекта, которые хранят значения и определяют состояние объекта. Например, у объекта с типом СправочникОбъект.Товары могут быть свойства: Наименование, Код, Артикул и т.п. Как правило свойства доступны как для чтения, так и для изменения. К свойствам объекта можно обращаться через точку или через квадратные скобки от имени переменной:
//в переменной СправочникОбъект будет ссылка на объект типа
//СправочникОбъект.Товары
СправочникОбъект = Справочники.Товары.СоздатьЭлемент();
//меняем его свойства
СправочникОбъект.Наименование = "Диван";
СправочникОбъект.Код = "000000007";
//можно так
СправочникОбъект["Наименование"] = "Диван";
СправочникОбъект["Код"] = "000000007";
Методы - это процедуры и функции, которые можно вызывать у объектов. Вызов метода выполняется через точку от имени переменной:
//в переменной СправочникОбъект будет ссылка на объект типа
//СправочникОбъект.Товары
СправочникОбъект = Справочники.Товары.СоздатьЭлемент();
//вызов метода УстановитьНовыйКод
СправочникОбъект.УстановитьНовыйКод();
Есть ли ООП в 1С?
Холиварный вопрос. Однозначного ответа нет. С одной стороны в 1С можно создавать объекты, можно создавать новые классы (например, новый справочник или новый документ), хотя полностью произвольный класс создать уже не получится. В 1С есть инкапсуляция (да, в 1С нет модификаторов доступа, но инкапсуляция и модификаторы доступа это не одно и то же). Есть наследование, хотя оно сильно ограничено. Есть полиморфизм. Можно сказать что ООП в 1С есть, но программировать в стиле ООП на 1С нельзя.
Сами 1С называют свой язык предметно-ориентированным.
Смотрите также:
Электронный учебник по по программированию в 1С Рекомендации по изучению программирования 1С с нуля Программное решение для сдачи и подготовки к экзаменам Программирование в 1С 8.3 с нуля - краткий самоучитель Комплексная подготовка программистов 1С:Предприятие 8.2 Сайты с уроками программирования и со справочниками Youtube-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки