новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Механизм доп. реквизитов и сведений

  • Добавить свою публикацию
  • для этого требуется регистрация

Это совсем не сложно но в первый раз может отнять пару часов времени

Я буду показывать на примере Бухгалтерии версии (3.0.43.152) 

Есть у меня новый справочник "я_ПодразделенияОрганизаций" вот в него и будем добавлять

Изображение

1.  К новому справочнику нам необходимо добавить табличную часть для хранения доп. 

реквизитов. Идем в номенклатуру - Копировать - Вставить

Изображение

2. Далее в справочнике НаборыДополнительныхРеквизитовИСведений добавляем 
предопределенный элемент Справочник_я_ПодразделенияОрганизаций

Изображение
3. Включаем тип этого справочника в состав ПВХ ДополнительныеРеквизитыИСведения

Изображение

4. Заполняем Характеристики в справочнике я_ПодразделенияОрганизаций

Изображение

5. Идем в Общие - Определяемые типы - ВладелецДополнительныхСведений и ставим там галочку

Изображение
6. В форму элемента нашего справочника переносим стандартный код и создаем группу "ГруппаДополнительныеРеквизиты"

Изображение

 

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Обработчик подсистемы "Свойства"
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("Объект", Объект);
	ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
	УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	// Обработчик подсистемы "Свойства"
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	// Подсистема "Свойства"
	Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
		ОбновитьЭлементыДополнительныхРеквизитов();
		УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

// СтандартныеПодсистемы.Свойства

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

// Конец СтандартныеПодсистемы.Свойства&НаСервере

Процедура ОбновитьЭлементыДополнительныхРеквизитов()
	
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма, РеквизитФормыВЗначение("Объект"));
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
КонецПроцедуры

 

7. Сохраняем обновляем конфу и запускаем 1С 


8. Ну и последнее. Нам необходимо выполнить обновление идентификаторов метаданных

и выставить значение реквизита Используется = истина для созданного нами предопределенного элемента.

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


http://1clancer.ru/catalog/2513 

 
0
≡ к списку статей