ПланСчетовОбъект.<Имя плана счетов>.ПолучитьСсылкуНового

Методы · GetNewObjectRef

Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки.

Синтаксис

ПолучитьСсылкуНового()
Полное описание, параметры и ограничения

ПланСчетовОбъект.<Имя плана счетов>.ПолучитьСсылкуНового (ChartOfAccountsObject.<Chart of accounts name>.GetNewObjectRef)

ПланСчетовОбъект.<Имя плана счетов> (ChartOfAccountsObject.<Chart of accounts name>)

ПолучитьСсылкуНового (GetNewObjectRef)

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

Синтаксис:
ПолучитьСсылкуНового()
Возвращаемое значение:
Тип: ПланСчетовСсылка.<Имя плана счетов>.

Описание:

Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки.

Доступность:

Сервер, толстый клиент, внешнее соединение.

См. также:
ПланСчетовМенеджер.<Имя плана счетов>, метод ПолучитьСсылку

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

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

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

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

Назначить будущую ссылку счёту и проверить отсутствие сохранённого объекта

Непустой UUID не доказывает существование счёта. УстановитьСсылкуНового задаёт ссылку будущего нового объекта, но не записывает его.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.

  2. Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.

  3. Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.

  4. У плана счетов не создавайте пользовательские реквизиты, табличные части, признаки учёта/субконто, предопределённые счета, формы, команды, макеты и дополнительные индексы. Модули оставьте пустыми. Историю данных и два флага обработки её версий выключите. Расширений нет.

  5. Обновите конфигурацию БД. Создайте серверный обработчик ВыполнитьПример() Экспорт в собственной обработке. Фрагмент вставляйте в тело; запускайте уроки по отдельности.

  6. Объекты создаются только в памяти: Записать/Удалить/Заблокировать не вызываются. Регистров бухгалтерии, проводок и фактических остатков в этом примере нет.

Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
КонецЕсли;
Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
    Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
    Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
    ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.ВидыСубконто = Неопределено Тогда
    ВызватьИсключение "Назначьте собственный план аналитик";
КонецЕсли;
Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
    ВызватьИсключение "Нужны только собственные учебные аналитики";
КонецЕсли;
Менеджер = ПланыСчетов.УчебныеСчета85;
Касса = Менеджер.СоздатьСчет();
Касса.Код = "50";
Касса.Наименование = "Учебная касса";
Касса.Вид = ВидСчета.Активный;
Касса.Забалансовый = Ложь;
Касса.Порядок = "50";
Касса.ДополнительныеСвойства.Вставить("МеткаЗадачи", "Только память");
Идентификатор = Новый УникальныйИдентификатор;
ПлановаяСсылка = Менеджер.ПолучитьСсылку(Идентификатор);
Касса.УстановитьСсылкуНового(ПлановаяСсылка);
Сообщить(Касса.ПолучитьСсылкуНового() = ПлановаяСсылка);
Сообщить(Касса.ЭтоНовый());
Сообщить(Не ПлановаяСсылка.Пустая());
Сообщить(ПлановаяСсылка.УникальныйИдентификатор() = Идентификатор);
Сообщить(ПлановаяСсылка.Метаданные().Имя = "УчебныеСчета85");
Сообщить(ПлановаяСсылка.ПолучитьОбъект() = Неопределено);
ПустаяСсылка = Менеджер.ПустаяСсылка();
Сообщить(ПустаяСсылка.Пустая());
Сообщить(ТипЗнч(ПустаяСсылка) = ТипЗнч(ПлановаяСсылка));

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

  1. Генерируем новый случайный UUID, не используем ссылку существующего рабочего счёта.

  2. Менеджер.ПолучитьСсылку создаёт типизированную ссылку; объект кассы остаётся новым.

  3. УстановитьСсылкуНового и ПолучитьСсылкуНового связывают будущую идентичность с объектом в памяти.

  4. ПолучитьОбъект у несуществующей плановой ссылки возвращает Неопределено. Не обращаемся к её Код/Вид как к реальному сохранённому счёту.

  5. Пустая ссылка имеет тот же тип, но отличается от непустой плановой по Пустая().

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

  1. Восемь логических проверок дают Истина.

  2. Плановая ссылка непустая, но сохранённый счёт отсутствует; список счетов не изменился.

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

Показано различие типов, идентификатора будущего счёта и факта его существования.

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

  1. Перед чтением полей объекта проверяйте результат ПолучитьОбъект на Неопределено.

  2. Не используйте произвольные ссылки как подтверждение прав, корректности или наличия счета.

  3. Не назначайте существующий UUID новому объекту ради упражнения.

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

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

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

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

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