Если «Гвозди», то правильные. Продолжение

Введение

Способ использования так называемых «гвоздей», объектов информационной базы, на которые завязана та или иная бизнес-логика, описанный в первой части статьи весьма удобен, но, к сожалению, не лишен определенных недостатков. Самый существенный из которых — необходимость обновления конфигурации при добавлении нового «гвоздя».

Поэтому хотелось бы предложить альтернативный вариант на базе регистра сведений.

Структура регистра:

Создаем в конфигурации периодический независимый регистр сведений «СоответствиеОбъектов» со следующей структурой:

Измерения:

ПервичныйКлюч — Строка(50)

ВторичныйКлюч — Строка, Число, ЛюбаяСсылка

Ресурсы:

Значение — ЛюбаяСсылка, Строка, Число, Булево, Дата (любой тип значения, которое мы собираемся хранить)

Реквизиты:

Описание — Строка(200) — описание значения, где используется, зачем и т.д.

Вкратце о назначении вторичного ключа:

В случае использования односоставного строкового ключа рано или поздно мы придем к абсолютно неконтролируемой мешанине ключей, например:

Вы ведете разработку в «глубоко отраслевой» (читай, самописной «нетленке») конфигурации. И вам внезапно в рамках какой-либо задачи понадобилось хранить данные о ключевых должностях организаций. Типовой регистр ОтветственныеЛицаОрганизаций по понятным причинам отсутствует.

Если органзаций и/или должностей много, то при использовании одного строкового ключа, вам придется создать записи ДиректорРогаИКопыта, ДиректорРомашка, ДиректорКупиПродай, ГлБухРогаИКопыта, ГлБухРомашка и т.д. и т.п. Так же при разработке придется явно перечислять все эти ключи.

В случае же использования составного ключа вы можете указать первичный ключ Директор, и вторичный ключ СправочникСсылка.Организация «РогаИКопыта».
А в последствии обойти все записи с необходимым первичным ключем, не привязываясь к количеству и конкретным значениям вторичного ключа.

Методы для работы с регистром

Для удобства использования прописываем в модуле менеджера процедуры получения значения по ключам, ключей по значениям и все, что душе угодно )

Применение

Для получения в коде значения, запись для которого мы создали ранее, вызываем соответствующий метод менеджера.

Перед выполнением самого алгоритма, использующего «гвозди» имеет смысл проверить их заполненность через метод КлючиЗаполнены(), чтобы не нагружать алгоритм лишними проверками.

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

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

Comments

So empty here ... leave a comment!

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

Sidebar