Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
Для обращения к предопределенному виду расчета необходимо:
найти его по неизменяемому коду: ПланыВидовРасчета.<Имя плана видов расчета>.НайтиПоКоду(Код)
Неправильно: Код элемента - это реквизит данных, который в большинстве конфигураций может быть изменяемым и не гарантирует стабильности для программной логики. Предопределенность обеспечивается не «кодом», а именем предопределенных данных, заданным в конфигураторе, поэтому для надежного обращения поиск по коду не подходит.
найти его по неизменяемому наименованию: ПланыВидовРасчета.<Имя плана видов расчета>.НайтиПоНаименованию(Наименование)
Неправильно: Наименование - пользовательское представление и часто редактируется, а еще может зависеть от языка интерфейса и правил формирования представления. Для кода важна ссылка на конкретный предопределенный объект, поэтому опираться на наименование рискованно и не является правильным способом.
найти его по заданному в конфигураторе имени: ПланыВидовРасчета.<Имя плана видов расчета>.<Имя предопределенного объекта>
Правильно: Предопределенные элементы создаются разработчиком и имеют системное «имя предопределенных данных», по которому платформа позволяет получать ссылку напрямую через менеджер объекта. Такой способ не зависит от пользовательских изменений кода/наименования и считается корректным для логики сложных периодических расчетов.
программно найти предопределенный элемент нельзя, пользователь просто его не может удалить и пометить на удаление
Неправильно: Предопределенный элемент как раз и нужен для того, чтобы на него можно было надежно ссылаться в программном коде (например, в алгоритмах начислений). Платформа предоставляет прямой доступ по имени предопределенного объекта, а ограничения для пользователя (нельзя удалить/пометить) - лишь сопутствующее свойство.
Пояснение
Предопределенный вид расчета - это элемент плана видов расчета, который разработчик задает в конфигураторе и связывает с данными информационной базы через «Имя предопределенных данных». Смысл предопределенных данных в том, чтобы код мог получать нужную ссылку напрямую и не зависеть от того, что пользователь поменял код или наименование элемента.
Как это выглядит на практике:
- В конфигураторе есть план видов расчета, например «Начисления», и в нем предопределенные виды расчета «Оклад», «Премия», «Больничный».
- В коде вы обращаетесь напрямую:
ВидРасчетаОклад = ПланыВидовРасчета.Начисления.Оклад;
Далее эту ссылку используете при формировании набора записей регистра расчета, при проверке вытеснений/приоритетов, выборе формул и т.п.
Почему не стоит искать по коду/наименованию:
- Код и наименование - это реквизиты данных, которые могут быть изменены (вручную, при загрузке данных, при обменах), из-за чего поиск начнет возвращать не то значение или вообще ничего.
- Предопределенное имя задается именно для программной идентификации и сохраняет смысл даже при изменении пользовательских реквизитов.
Дополнительный контекст и «подводные камни»:
- Если предопределенный элемент описан в конфигурации, но в базе не сопоставлен (например, после некорректной загрузки/обмена), прямое обращение может вернуть пустую ссылку/ошибку в логике. В таких случаях обычно используют стандартные инструменты администрирования/обработки предопределенных данных, чтобы восстановить соответствие.
- В типовых решениях часто применяют универсальные функции получения предопределенных элементов по полному имени (например, когда имя формируется строкой) - но базовый и самый понятный способ в прикладном коде именно прямое обращение через менеджер: ПланыВидовРасчета.<План>.<Предопределенный>.