Программирование насколько творческая, настолько же монотонная профессия. Из проекта в проект, вам порой приходится клепать похожий код. Держать все полезности в уме, когда ты параллельно и программист и бизнесмен и логист, очень сложно.
Потому я решил сделать небольшой пост шпаргалку в который буду добавлять небольшие лайфхаки которые упрощают написание кода 1с.
- Получение свойства дополнительного реквизита
Получение свойства дополнительного реквизита.
Часто при разработке различного функционала я прибегаю, к дополнительным реквизитам, которые имеются в практически любой типовой конфигурации. В таком случае отпадает надобность снятие конфигурации с поддержки. Раз реквизи добавили, значит мы должны иметь возможность получать его свойство. Раньше я это делал запросом к Плану Виду Характеристик ДополнительныеРеквизиты, пока не узнал, что в БСП есть прекрасная функция, которая в разы облегчает получение свойства. Находится она в общем модуле УправлениеСвойствами. И имеет следуюший код
<code> // Возвращает значение дополнительного свойства объекта. // // Параметры: // Объект - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура, // ДокументСсылка.ЗаказПокупателя, ... // Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на // дополнительный реквизит, значение которого нужно получить. // - Строка - Имя дополнительного свойства. // // Возвращаемое значение: // Произвольный - любое значение, допустимое для свойства. // Функция ЗначениеСвойства(Объект, Свойство) Экспорт ПолучатьРеквизиты = УправлениеСвойствамиСлужебный.ЭтоОбъектМетаданныхСДополнительнымиРеквизитами(Объект.Метаданные()); Результат = ЗначенияСвойств(Объект, ПолучатьРеквизиты, Истина, Свойство); Если Результат.Количество() = 1 Тогда Возврат Результат[0].Значение; КонецЕсли; КонецФункции</code>
Что примечательно, вместо второго параметра Свойство, можно использовать автоматически генерируемое имя дополнительных реквизитов для разработчиков.
Выглядит это примерно так
<code> УправлениеСвойствами.ЗначениеСвойства(Контрагент, "ЭлектронныйКлиент_223dae2ed1d5417984af802e539403e9")</code>