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

Методы · GetRef

Формирует ссылку из значения типа УникальныйИдентификатор. Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.

Синтаксис

ПолучитьСсылку(<УникальныйИдентификатор>)
Полное описание, параметры и ограничения

ПланСчетовМенеджер.<Имя плана счетов>.ПолучитьСсылку (ChartOfAccountsManager.<Chart of accounts name>.GetRef)

ПланСчетовМенеджер.<Имя плана счетов> (ChartOfAccountsManager.<Chart of accounts name>)

ПолучитьСсылку (GetRef)

Доступен, начиная с версии 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 новому объекту ради упражнения.

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

Построить ссылку собственного счёта без определения или проводки в базе

Функциональный Новый с прикладным Тип создаёт ссылку. Новый UUID передаётся массивом; наличие ссылки не означает наличия определения счёта или остатка.

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

Полный серверный модуль своей НОВОЙ пустой учебной конфигурации по подготовке; платформа 8.5.1.1343. При записи всегда откат, рабочие данные не используются. Здесь не запускался.

Подготовка

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

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

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

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

  5. Опыт с маской @@@.@@@.@@ использует строковые коды. Не переносите его сравнения на иной числовой/немаскированный план. АвтоПорядокПоКоду выключен: Порядок хранится отдельно от кода.

  6. Модули собственных объектов/менеджеров пустые, подписок, расширений и внешних действий нет. Не используйте рабочую базу или её копию с действующими обработчиками.

  7. Код здесь в 1С не запускался. HTML показывает урок: проверены исходники и установленная справка именно 8.5.1.1343, но запись/открытие формы в ваших базах не выполнялись.

  8. Ссылка идентифицирует запись, объект служит для её изменения. Свойства ссылки readonly, ВерсияДанных — непрозрачная строка, не номер версии конфигурации.

  9. Непустая плановая ссылка не подтверждает существование записи; перед чтением данных отсутствующая запись исключается отдельно.

  10. В собственной базе создайте серверный общий модуль УчебныеСсылкиПланов, вставьте ВЕСЬ модуль одного урока. ВыполнитьПример() Экспорт вызывайте из собственной процедуры формы с &НаСервереБезКонтекста. Обновите конфигурацию БД.

  11. Опыт записи допускается только вне чужой транзакции. Внутри своей транзакции создаются исключительно новые собственные записи; при успехе и ошибке выполняется откат. Не заменяйте его фиксацией.

  12. Записанные собственные ссылки запоминаются сразу после записи. После отмены каждая проверяется на ПолучитьОбъект=Неопределено. Никакого удаления по имени, первой строке или всей коллекции нет.

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

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

  1. Подготовить свой маскированный план в новой УчебныйУчет85 и проверить его настройки.

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

  3. Создать новый собственный UUID и Массив с одним аргументом.

  4. Построить плановую ссылку, сравнить UUID и ПолучитьСсылку.

  5. Отдельно проверить отсутствие определения счёта; данные отсутствующего счёта не читать.

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

  1. Семь сравнений Истина.

  2. Никакой счёт или проводка не записан.

  3. Ссылка и бухгалтерский остаток не смешиваются.

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

На новом UUID разобран конструктор прикладной ссылки счёта.

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

  1. Прикладной Тип существует только после создания указанных собственных метаданных. В функциональный Новый массив передаёт аргументы конструктора.

  2. Свойства ссылки не присваиваются. Для изменения копии используется именно новый объект, который возвращает Скопировать.

  3. Уровень пустой ссылки вызывает исключение; иерархические методы используются только у записанных собственных объектов внутри транзакции.

  4. Откат БД не отменяет внешние действия обработчиков. Поэтому конфигурация пустая, модули/подписки без сети, печати, файлов и почты.

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

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

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

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

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