Объекты встроенного языка 1С

Mar 27, 2022 19:19

Оператор Новый

Встроенный язык 1С является предметно-ориентированным, но некоторые возможности объектно-ориентированных языков программирования в нем присутствуют. Например, создание объектов, обращение к свойствам и методам объекта.

Для создания нового объекта используется оператор Новый. Результатом данного оператора будет значение указанного типа. Например:

//в переменной Массив будет ссылка на объект типа Массив
Массив = Новый Массив();

//в переменной Структура будет ссылка на объект типа Структура
Структура = Новый Структура();

//если используется конструктор без параметров, то можно не указывать скобки.
Массив = Новый Массив;
Структура = Новый Структура;

Оператор Новый выделяет память для объекта, после этого вызывает его конструктор. Конструктор - некое действие, которое создает «заготовку» объекта. Конструктор вызывается при создании нового объекта. Изменить конструктор из встроенного языка 1С нельзя.

С помощью оператор Новый можно создавать прикладные объекты (справочники, документы и т.п.):

//предположим, что у нас есть переменная УИД, в которой хранится
//уникальный идентификатор одного из элементов справочника Товары
Массив = Новый Массив;
Массив.Добавить(УИД);

//в конструктор передаем тип данных значения, которое хотим создать
//и массив с уникальным идентификатором
Спр = Новый ("СправочникСсылка.Товары", Массив);
//в результате в переменной Спр будет ссылка на элемент справочника Товары
//из нее можно получить объект и выполнить какие-либо действия
СпрОб = Спр.ПолучитьОбъект();
СпрОб.Код = "1";
СпрОб.Наименование = "тест";
СпрОб.Записать();

Свойства и методы объекта

Свойства - это некие переменные объекта, которые хранят значения и определяют состояние объекта. Например, у объекта с типом СправочникОбъект.Товары могут быть свойства: Наименование, Код, Артикул и т.п. Как правило свойства доступны как для чтения, так и для изменения. К свойствам объекта можно обращаться через точку или через квадратные скобки от имени переменной:

//в переменной СправочникОбъект будет ссылка на объект типа
//СправочникОбъект.Товары
СправочникОбъект = Справочники.Товары.СоздатьЭлемент();
//меняем его свойства
СправочникОбъект.Наименование = "Диван";
СправочникОбъект.Код = "000000007";
//можно так
СправочникОбъект["Наименование"] = "Диван";
СправочникОбъект["Код"] = "000000007";

Методы - это процедуры и функции, которые можно вызывать у объектов. Вызов метода выполняется через точку от имени переменной:

//в переменной СправочникОбъект будет ссылка на объект типа
//СправочникОбъект.Товары
СправочникОбъект = Справочники.Товары.СоздатьЭлемент();
//вызов метода УстановитьНовыйКод
СправочникОбъект.УстановитьНовыйКод();

Есть ли ООП в 1С?

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

Сами 1С называют свой язык предметно-ориентированным.

Смотрите также:
Электронный учебник по по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Программное решение для сдачи и подготовки к экзаменам
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up