🔴 Вебинар: Управленческий баланс: как бухгалтер может помочь собственнику →

Обход указания ссылок на конкретные элементы по реквизитам в коде

Бывает, в коде необходимо сослаться на конкретный элемент справочника, плана видов характеристик или иной элемент объектного типа. Приходится ссылаться на конкретные значения реквизитов. Какие ошибки таит такой безобидный код и как их избежать?

Бывает, в коде необходимо сослаться на конкретный элемент справочника, плана видов характеристик или иной элемент объектного типа. Приходится ссылаться на конкретные значения реквизитов. Какие ошибки таит такой безобидный код и как их избежать?

Код наподобие следующего мешает получить удовольствие от проделанной работы:


ЦенаПродажи = Справочники.ТипыЦен.НайтиПоНаименованию("Розничные");  

Это решение чревато ошибками в случае изменения ссылочных реквизитов, и неверно методологически: в случае перенумерации справочника надо лезть в код. Что делать?

Я предлагаю решение, которое не требует модификации стандартных объектов конфигурации, но подразумевает включение возможности внесения изменений в саму конфигурацию. Это решение опробовано на многочисленных типовых и самописных конфигурациях клиентов как в ОП, так и в УП (обычное и управляемое приложения).

В конфигурацию добавляем справочник СсылкиНаОбъекты:

  • - Без кода. Он не мешает, но это лишняя информация.
  • - С реквизитами:
    • "СсылкаНаОбъект" типа "Любая ссылка" или с множественным значением нужных типов;
    • "Описание" тип Строка (неогр.) для описания параметра;
  • - С предопределенными элементами.

В качестве предопределенных элементов задаем те самые объекты, на которые бывает нужна ссылка:

В Наименовании указываем краткое описание параметра. Затем в режиме предприятия добавляем в реквизит "Описание" более подробное описание параметра с указанием механизмов, в которых он используется. В значении выбираем тип и нужный объект:

Ну и теперь то, ради чего весь этот механизм создавался. Из кода можно сослаться на значение такого элемента следующим образом:

СвойствоСрокГарантии = Справочники.СсылкиНаОбъекты.СвойствоСрокГарантии.СсылкаНаОбъект; 

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

Кадровый учет

Вы еще ведете табели в Excel? Почему пора перейти на связку 1С + Битрикс24

Управление рабочим временем сотрудников — важная составляющая успешного бизнеса. Система Битрикс24 предлагает удобный инструмент для решения этой задачи — табель учета рабочего времени. Разберем, как настроить и использовать табель в Битрикс24, расскажем о его функциональных возможностях и интеграции с 1С.

Вы еще ведете табели в Excel? Почему пора перейти на связку 1С + Битрикс24

Начать дискуссию

ГлавнаяБухСтрим