Механизм хранения и обращения к нетиповым предопределенным значениям

24.06.24

Разработка - Механизмы типовых конфигураций

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

Цель: необходимо обращаться в коде к нетиповым предопределённым значениям

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

За основу хранения данных возьмём объект конфигурации – план видов характеристик (далее - ПВХ). Данный объект позволяет хранить для каждой характеристики тип значения, который данный объект может принимать. Более подробно о данном объекте написано в документации: https://v8.1c.ru/platforma/plan-vidov-harakteristik/

Разберём по пунктам реализацию данного механизма.

  1. Создаём ПВХ, заполняя в пункте «Основные» по примеру, представленному на рисунке 1.

 


Рисунок 1 - Пункт «Основные»

 

В пункте «Основные» содержится следующая информация:

Имя ПВХ, его синоним и тип значения, которое (-ые) может храниться в данном ПВХ.

В Пояснение можно написать следующее:
Все константы должны добавляться как предопределённые элементы.
Можно хранить список значений в табличной части элемента.

  1. В пункте «Данные» реквизитный состав объекта и табличной части представлен на рисунке 2.

 

Рисунок 2 - Пункт «Данные»

 

В пункте «Данные» содержится следующая информация:

СписокЗначений - это реквизит с типом Булево

Значение - это реквизит, с типом Характеристика.ОК_Константы

Значения - это табличная часть, в которой хранится реквизит Значение с типом Характеристика.ОК_Константы

  1.  В пункте «Прочее» определяем перечень предопределённых значений в зависимости от контекста задачи; примерный перечень представлен на рисунке 3.

 

Рисунок 3 - Пункт «Прочее»

 

  1. Результат пунктов 1-3 в пользовательском режиме показан на рисунке 4.

Рисунок 4 - Пункт «Пользовательский режим»

 

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

ОК_КонстантыВызовСервера - это общий модуль, у которого свойства, указанные на рисунке 5.

 

Рисунок 5 - Пункт «Пользовательский режим»

 

  1. Функции в общем модуле.
#Область ПрограммныйИнтерфейс

// Параметры:
//  ЭлементПВХ  - ПланВидовХарактеристикСсылка.ОК_Константы - Предопределенный элемент плана 
//
// Возвращаемое значение:
//   Произвольный   - Значение константы
//
Функция ЗначениеКонстанты(ЭлементПВХ) Экспорт
	
	Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭлементПВХ, "Значение");
	
КонецФункции 


// Параметры:
//  ЭлементПВХ  - ПланВидовХарактеристикСсылка.ОК_Константы - Предопределенный элемент плана 
//
// Возвращаемое значение:
//   Массив   - массив значений константы
//
Функция ЗначенияКонстанты(ЭлементПВХ) Экспорт
	
	ЭлементПВХ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭлементПВХ, "Ссылка");
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ОК_КонстантыЗначения.Значение КАК Значение
		|ИЗ
		|	ПланВидовХарактеристик.ОК_Константы.Значения КАК ОК_КонстантыЗначения
		|ГДЕ
		|	ОК_КонстантыЗначения.Ссылка = &Ссылка
		|	И ОК_КонстантыЗначения.Ссылка.СписокЗначений
		|	И НЕ ОК_КонстантыЗначения.Ссылка.ПометкаУдаления";
	
	Запрос.УстановитьПараметр("Ссылка", ЭлементПВХ);
	
	Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Значение");
	
КонецФункции 

// Параметры:
//  ЭлементПВХ  - ПланВидовХарактеристикСсылка.ОК_Константы - Предопределенный элемент плана 
//  ЗначениеПВХ - устанавливаемое значение ЭлементаПВХ
Процедура УстановитьЗначениеКонстанты(ЭлементПВХ, ЗначениеПВХ) Экспорт
	
	ПВХОбъект = ЭлементПВХ.ПолучитьОбъект(); 
	ПВХОбъект.Значение = ЗначениеПВХ;
	ПВХОбъект.Записать();

 КонецПроцедуры

 
#КонецОбласти
  1. Пример вызова функций.
ОК_КонстантыВызовСервера.ЗначениеКонстанты("ПланВидовХарактеристик.ОК_Константы.Договоры")= ЭтотОбъект.ВидДокумента

 

Механизм готов.

Комментарии, пожелания приветствуются!

С уважением, Оля-ля.

ДокументооборотКОРП 1С:ERP.Управление холдингом ПредопределённыеЗначения ПВХ общийМодуль

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    1851    PROSTO-1C    0    

18

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1888    Vidz    0    

11

Механизмы типовых конфигураций Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Проблемы при создании ресурсной спецификации. Связь настроек спецификации и настроек структуры заказа в ЕРП 2.5.

06.05.2024    1272    It-digit    1    

2

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    1113    tango    5    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    902    tango    5    

4
Оставьте свое сообщение