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

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.Управление холдингом ПредопределённыеЗначения ПВХ общийМодуль

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Как быстро преобразовать расширение в конфигурацию (для дальнейшего переноса в основную конфигурацию, например).

18.03.2020    35682    wtlz    49    

234

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Методы и свойства для программирования в Штрих-М Кассир 5.

13.03.2020    12506    Ignatov_mu    6    

14

Инструментарий разработчика Механизмы типовых конфигураций Программист 1С:Предприятие 8 Абонемент ($m)

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

1 стартмани

16.02.2020    15820    8    da_1c    0    

35

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

Описание основных настроек регистров бухгалтерии, работы виртуальных таблиц "Субконто" и "Движения с субконто" и кое-что еще.

10.02.2020    79526    Infostart    18    

172

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

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

23.12.2019    11638    pro96inf    9    

42
Для отправки сообщения требуется регистрация/авторизация