gifts2017

Альтернативная подсистема констант

Опубликовал Damian (Damian) в раздел Программирование - Инструментарий

Хранение значений и списков значений, в том числе периодических и упорядоченных.
По мотивам публикации об отказе от использования функций НайтиПоНаименованию() и НайтиПоКоду()
До прочтения статьи for_sale "Как отказаться от использования НайтиПоНаименованию() и НайтиПоКоду() в уже работающих наполненных базах при дальнейшей разработке" в подобных описываемых автором ситуациях использовал служебный справочник с предопределенными значениями.
Однако, подход с использованием ПВХ, на мой взгляд, удобнее и методологически правильнее. Посему родился этакий шаблон, который можно, при необходимости, интегрировать в любую конфигурацию.

При создании шаблона идея была немного развита, и теперь можно хранить и получать не только определенные пользователем произвольные "предопределенные" значения, но и списки этих значений. Причем списки могут быть как упорядоченными, так и нет. Кроме этого, как значения, так и списки могут быть периодическими.
Если область применения одиноко стоящих значений не вызывает вопросов (это просто альтернатива константам), то для иллюстрации предопределенных списков приведу несколько примеров.

Обычный список.
Например, можно хранить список складов, по которым не надо получать остатки в каком-то специальном отчете (типа "Брак", "Неликвид" и т.п.)

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

Периодический список.
Предположим, в конфигурации ведется список лиц, которые имеют право подписи документов. Когда-нибудь настанет день, когда состав этих лиц поменяется - кто-то уйдет, кто-то добавится. Но нужна история...

Технические особенности.
  • Получение "предопределеного" значения возможно как с передачей ссылки на элемент ПВХ, так и его имени. Если это единичное значение - будет возвращено именно оно. Если список значений - будет возвращен массив значений.
  • Значения "предопределенных" элементов хранятся в двух регистрах сведений: "Значения предопределенных элементов" и "Значения предопределенных списков". Зависит это от признака в самом элементе ПВХ.
  • Кроме этого, для удобства пользователя реализован макет описаний этих самых "предопределенных" элементов - для реализации "а-ля форма констант", правда для каждого элемента в отдельности.
  • И еще из удобного, на мой взгляд, - возможность открытия диалога выбора файла или каталога для строковых переменных.

Файлы.
К публикации приложены следующие файлы:
- конфигурация
- демо-база
- обработка, иллюстрирующая получение значений
- архив, содержащий все вышеперечиленное для экономии мани при скачивании :)

Скачать файлы

Наименование Файл Версия Размер
Предопределенные элементы и списки.cf 1
.cf 34,99Kb
07.08.14
1
.cf 34,99Kb Скачать
Предопределенные элементы - демо.epf
.epf 6,51Kb
07.08.14
0
.epf 6,51Kb Скачать
Предопределенные элементы и списки.dt
.dt 44,58Kb
07.08.14
0
.dt 44,58Kb Скачать
Предопределенные элементы и списки.zip 8
.zip 78,51Kb
07.08.14
8
.zip 78,51Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. aspirator 23 (aspirator23) 25.08.14 14:21
Хороший идея, но вот почему формирование видов предопределенных элементов сделано только в конфигураторе?
Как один из вариантов - согласен. Но почему не разрешить создание видов предопределенных элементов в Предприятии? Механизм "псевдопредопределенных" элементов урезается. Если мы назначаем "предопределенные" элементы в Предприятии, логично дать возможность и элемент ПВХ создавать в Предприятии. Основная идея ПВХ - это возможность создания дополнительных реквизитов в Предприятии. А обращаться к таким элементам ПВХ можно и по имени.
Не всегда хочется, а в рабочее время нет и возможности "лазить" в конфигуратор, а потребность возникает довольно часто. В примере таких элементов всего несколько, у нас на предприятии реквизитов которые нужны как предопределенные - за сотню.