Новый

Встроенный язык · New

Оператор позволяет создать значение указанного типа. Допустим только для тех типов, для которых разрешено создание с помощью данного оператора (подробнее см. описание объектов языка). Для прикладных объектов необходимо использовать функциональную форму оператора Новый (вариант 2), так как при проверке модулей в конфигураторе не определены типы для прикладных объектов. Если в качестве второго параметра указано значение, отличное от массива, то параметр полностью игнорируется. Пример1: СписокСохранения = Новый Структура; ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения); Пример2: ТипЗначения = Тип("КвалификаторыСтроки"); Параметры = Новый Массив(2); Параметры[0] = 20; Параметры[1] = ДопустимаяДлина.Переменная; КвСтр = Новый(ТипЗначения, Параметры);

Полное описание, параметры и ограничения

Новый (New)

Новый (New)

Синтаксис (вариант 1):
Новый <Идентификатор типа>[(<Парам1>, <Парам2>, …)]

Параметры:
Идентификатор типа
Указывается идентификатор типа, значение которого создается.
<Парам1>, <Парам2>, …
После идентификатора типа в скобках могут указываться параметры, если они определены в конструкторах для данного типа. Допустимое количество параметров и их назначение указывается в описании конструкторов объекта.

Синтаксис (вариант 2):
Новый(<Тип>[, <ПараметрыКонструктора>])

Параметры:
Тип
Имя типа или значение типа Тип

ПараметрыКонструктора
Массив параметров конструктора

Описание:
Оператор позволяет создать значение указанного типа. Допустим только для тех типов, для которых разрешено создание с помощью данного оператора (подробнее см. описание объектов языка).
Для прикладных объектов необходимо использовать функциональную форму оператора Новый (вариант 2), так как при проверке модулей в конфигураторе не определены типы для прикладных объектов.
Если в качестве второго параметра указано значение, отличное от массива, то параметр полностью игнорируется.

Пример1:

СписокСохранения = Новый Структура;
ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения);

Пример2:

ТипЗначения = Тип("КвалификаторыСтроки");
Параметры = Новый Массив(2);
Параметры[0] = 20;
Параметры[1] = ДопустимаяДлина.Переменная;
КвСтр = Новый(ТипЗначения, Параметры);

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Новый: создать собственную структуру заявки и массив позиций

Новый создаёт объект в памяти. Это не команда записи документа в базу.

Где и как запускать

Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.

Подготовка

  1. Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.

  2. Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().

  3. Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.

  4. Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.

Процедура ВыполнитьПример() Экспорт
    Заявка = Новый Структура("Товар,Количество", "Книга", 3);
    Позиции = Новый Массив;
    Позиции.Добавить(Заявка);
    Сообщить(ТипЗнч(Заявка) = Тип("Структура"));
    Сообщить(Заявка.Товар = "Книга" И Заявка.Количество = 3);
    Сообщить(Позиции.Количество() = 1);
    Сообщить(Позиции[0] = Заявка);
КонецПроцедуры

Разбор по шагам

  1. В конструкторе Структура передать имена двух полей и два значения в том же порядке.

  2. Отдельно создать пустой массив.

  3. Добавить в него саму структуру, не её строковое представление.

  4. Проверить тип, поля, размер массива и ссылку на тот же объект.

Как проверить результат

  1. Четыре сообщения Истина.

  2. Никакой новый документ в базе не появляется: Структура и Массив — значения памяти.

Ожидаемый результат

Два конструктора использованы в небольшой законченной задаче.

На что обратить внимание

  1. Не каждый тип создаётся оператором Новый: у конфигурационных объектов есть менеджеры.

  2. Поля структуры определяются явно заданной строкой имён.

  3. Добавление в массив само по себе не копирует объект.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.