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

Программирование - Практика программирования

Как к новому справочнику подключить механизм дополнительных реквизитов и сведений

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наименование Файл Версия Размер
НастрокаНабораДополнительныхРеквизитовИСведений
.epf 6,52Kb
22.06.16
10
.epf 1.0 6,52Kb 10 Скачать

См. также

Комментарии
1. Никита Грызлов (nixel) 319 23.06.16 01:21 Сейчас в теме
Не надоело итс перепечатывать?
Не говоря уже о том, что пару версий БСП вперед или назад и алгоритм может быть уже другой?
2. Ярослав Володимирович (myr4ik07) 108 23.06.16 11:50 Сейчас в теме
(1) nixel, нехай передруковує, не всі ж мають доступ до ІТС, в мене немає доступу і мені дуже цікаво!
3. Яков Коган (Yashazz) 2165 23.06.16 19:35 Сейчас в теме
Одно из двух - или это беспардонный копипаст без указания источника, что, насколько помню, нарушение законодательства, насчёт перепечатки материалов с ИТС, или это самостоятельное и героическое изобретение велосипеда.
4. Сергей К. (eskor) 79 30.06.16 12:03 Сейчас в теме
(3) Yashazz, да не похоже на перепечатку, просто человек почитав ИТС понял, что не всем дано вникнуть в глубинных смысл тамошних статей, поэтому и написал пошаговую инструкцию: что, где, когда.
В конце концов, на сайте множество новичков, для них такие статьи благо. Однозначно пусть будет!
Winstoncuk; +1 Ответить
5. A G (grachev1c) 30.06.16 13:15 Сейчас в теме
Спрос на ИТС в формате "для народа" есть!
Инфостарт и сам себя позиционирует в том числе для домохозяек бухгалтеров, плюс все молодые бойцы из франчей на инфостарте сидят - набираются опыта, кто-то с ноля.

Но и проблема есть!
Инфостарт по контенту сделали реально крутые в 1С и не только ребята. А сейчас их труд размывается и замывается не таким эксклюзивным материалом. В общей массе уровень падает - плата за популярность.

Интересно когда старожилы будут вытеснены армией новых неофитов 1С, куда они уйдут?

Ну в общем я про то, что, по-моему мнению, Инфостарту пора начинать разводить контент по уровню сложности. Просто деления на роли пользователей (бухгалтер, директор, менеджер, программист) не хватает - программист программисту рознь!

PS. Прости автор за оффтоп и спасибо за повод.
Winstoncuk; igo1; +2 Ответить
6. Валерий Гайдабура (director04) 3492 01.07.16 16:00 Сейчас в теме
У меня к автору один вопрос: а нахрена прикручивать механизм доп. реквизитов к созданному тобой же справочнику?
Механизм доп. реквизитов подразумевает возможность добавления дополнительных разрезов аналитики, без изменения типовой конфигурации.
Вы уже добавили свой справочник. Почему бы вам не добавить в него необходимые вам реквизиты, и без лишнего гемороя?

И второе: в представленном вами примере, вы карежите типовую конфигурацию (Бухгалтерия предприятия). Ну и огребете же вы говна при очередных обновлениях своей базы.
Мое мнение - вся ваша работа - это детский сад - желание поупражняться типа "а получится ли это у меня".
А вот подумать, как потом все это обслуживать при обновлениях - на это уже соображения не хватило.

Прошу прощения за нравоучение.
8. Дмитрий Юрьевич (MenZurKa) 26.04.17 10:54 Сейчас в теме
(6) Это иногда требуется, когда необходимо включить не типовой объект в уже работающую схему с использованием доп. реквизитов, без внесения изменений в типовой механизм типовых объектов.

Прошу прощения за масло-масляное.
7. Роман Озеряный (rozer) 198 02.07.16 21:30 Сейчас в теме
Вроде тут в разделе видео от компании neti про бсп много различных видео...
9. Ян Шевенда (robix) 09.01.18 21:16 Сейчас в теме
Что имеется ввиду под "выставить значение реквизита Используется = истина для созданного нами предопределенного элемента." ? Это как ?
Оставьте свое сообщение