Полезные приемы в 1с программировании

лайфхаки 1с

Программирование насколько творческая, настолько же монотонная профессия. Из проекта в проект, вам порой приходится клепать похожий код. Держать все полезности в уме, когда ты параллельно и программист и бизнесмен и логист, очень сложно.

Потому я решил сделать небольшой пост шпаргалку в который буду добавлять небольшие лайфхаки которые упрощают написание кода 1с.

  • Получение свойства дополнительного реквизита

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

Часто при разработке различного функционала я прибегаю, к дополнительным реквизитам, которые имеются в практически любой типовой конфигурации. В таком случае отпадает надобность снятие конфигурации с поддержки. Раз реквизи добавили, значит мы должны иметь возможность получать его свойство. Раньше я это делал запросом к Плану Виду Характеристик ДополнительныеРеквизиты, пока не узнал, что в БСП есть прекрасная функция, которая в разы облегчает получение свойства. Находится она в общем модуле УправлениеСвойствами. И имеет следуюший код

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

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

Выглядит это примерно так

<code> УправлениеСвойствами.ЗначениеСвойства(Контрагент, "ЭлектронныйКлиент_223dae2ed1d5417984af802e539403e9")</code>

Вам также может понравиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика