Проект

Общее

Профиль

Подключение дополнительных реквизитов (БСП) » История » Версия 1

Всеволод Дорофеев, 23.10.2019 09:59

1 1 Всеволод Дорофеев
h1. Подключение дополнительных реквизитов и сведений (БСП)
2 1 Всеволод Дорофеев
3 1 Всеволод Дорофеев
http://1c-kod.ru/topic/18
4 1 Всеволод Дорофеев
https://master1c8.ru/biblioteka-standartnh-podsistem/podsistema-svoystva-bsp/
5 1 Всеволод Дорофеев
6 1 Всеволод Дорофеев
h3. Подключение дополнительных реквизитов (БСП)
7 1 Всеволод Дорофеев
8 1 Всеволод Дорофеев
источник: http://1c-kod.ru/topic/18
9 1 Всеволод Дорофеев
10 1 Всеволод Дорофеев
1) В нашем объекте добавляем табличную часть "ДополнительныеРеквизиты", а точнее копируем ее из другого существующего справочника или документа, например, из справочника Пользователи, который изначально находится в составе конфигурации БСП.
11 1 Всеволод Дорофеев
2) На форме элемента нашего объекта добавляем группу с наименованием "ГруппаДополнительныеРеквизиты". Именно в этой группе и будет отображаться интерфейс дополнительных реквизитов.
12 1 Всеволод Дорофеев
3) В справочнике "НаборыДополнительныхРеквизитовИСведений" добавляем новый предопределенный элемент по шаблону - Справочник_Склады (если наш объект это справочник и называется он "Склады"). То есть смотрим на существующие предопределенные элементы и добавляем необходимый аналогичным образом.
13 1 Всеволод Дорофеев
4) В Плане видов характеристик "ДополнительныеРеквизитыИСведения" добавляем тип нашего объекта, если необходим такой тип для созданий дополнительных реквизитов.
14 1 Всеволод Дорофеев
5) В модуле формы элемента нашего объекта размещаем следующие куски кода:
15 1 Всеволод Дорофеев
16 1 Всеволод Дорофеев
В процедуре ПриСозданииНаСервере добавляем:
17 1 Всеволод Дорофеев
18 1 Всеволод Дорофеев
<pre>
19 1 Всеволод Дорофеев
    // Обработчик подсистемы "Свойства"
20 1 Всеволод Дорофеев
    ДополнительныеПараметры = Новый Структура;
21 1 Всеволод Дорофеев
    ДополнительныеПараметры.Вставить("Объект", Объект);
22 1 Всеволод Дорофеев
    ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
23 1 Всеволод Дорофеев
    УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
24 1 Всеволод Дорофеев
    // Конец СтандартныеПодсистемы.Свойства
25 1 Всеволод Дорофеев
</pre>
26 1 Всеволод Дорофеев
27 1 Всеволод Дорофеев
В процедуре ПриЧтенииНаСервере добавляем:
28 1 Всеволод Дорофеев
29 1 Всеволод Дорофеев
<pre>
30 1 Всеволод Дорофеев
    // СтандартныеПодсистемы.Свойства
31 1 Всеволод Дорофеев
    УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);    
32 1 Всеволод Дорофеев
    // Конец СтандартныеПодсистемы.Свойства   
33 1 Всеволод Дорофеев
</pre> 
34 1 Всеволод Дорофеев
35 1 Всеволод Дорофеев
В процедуре ОбработкаПроверкиЗаполненияНаСервере добавляем:
36 1 Всеволод Дорофеев
37 1 Всеволод Дорофеев
<pre>
38 1 Всеволод Дорофеев
    // СтандартныеПодсистемы.Свойства
39 1 Всеволод Дорофеев
    УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты, Объект);
40 1 Всеволод Дорофеев
    // Конец СтандартныеПодсистемы.Свойства
41 1 Всеволод Дорофеев
</pre>
42 1 Всеволод Дорофеев
43 1 Всеволод Дорофеев
В процедуре ПередЗаписьюНаСервере  добавляем:
44 1 Всеволод Дорофеев
45 1 Всеволод Дорофеев
<pre>
46 1 Всеволод Дорофеев
    // СтандартныеПодсистемы.Свойства
47 1 Всеволод Дорофеев
    УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
48 1 Всеволод Дорофеев
    // Конец СтандартныеПодсистемы.Свойства
49 1 Всеволод Дорофеев
</pre>
50 1 Всеволод Дорофеев
51 1 Всеволод Дорофеев
Добавляем следующие процедуры:
52 1 Всеволод Дорофеев
53 1 Всеволод Дорофеев
<pre>
54 1 Всеволод Дорофеев
///////////////////////////////////////////////////////////////////// 
55 1 Всеволод Дорофеев
// ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ"
56 1 Всеволод Дорофеев
57 1 Всеволод Дорофеев
&НаКлиенте
58 1 Всеволод Дорофеев
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
59 1 Всеволод Дорофеев
	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
60 1 Всеволод Дорофеев
КонецПроцедуры
61 1 Всеволод Дорофеев
62 1 Всеволод Дорофеев
&НаСервере
63 1 Всеволод Дорофеев
Процедура ОбновитьЭлементыДополнительныхРеквизитов() Экспорт
64 1 Всеволод Дорофеев
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект, РеквизитФормыВЗначение("ФизическоеЛицо"));
65 1 Всеволод Дорофеев
КонецПроцедуры
66 1 Всеволод Дорофеев
67 1 Всеволод Дорофеев
</pre>
68 1 Всеволод Дорофеев
69 1 Всеволод Дорофеев
Не используется
70 1 Всеволод Дорофеев
71 1 Всеволод Дорофеев
-ПРОЦЕДУРЫ ПОДСИСТЕМЫ "СВОЙСТВ"
72 1 Всеволод Дорофеев
    &НаКлиенте
73 1 Всеволод Дорофеев
    Процедура Подключаемый_РедактироватьСоставСвойств()
74 1 Всеволод Дорофеев
        УправлениеСвойствамиКлиент.РедактироватьСоставСвойств(ЭтаФорма, Объект.Ссылка);
75 1 Всеволод Дорофеев
    КонецПроцедуры
76 1 Всеволод Дорофеев
77 1 Всеволод Дорофеев
    &НаСервере
78 1 Всеволод Дорофеев
    Процедура ОбновитьЭлементыДополнительныхРеквизитов()
79 1 Всеволод Дорофеев
        УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма, РеквизитФормыВЗначение("Объект"));
80 1 Всеволод Дорофеев
    КонецПроцедуры-
81 1 Всеволод Дорофеев
82 1 Всеволод Дорофеев
6) И еще один важный момент: у справочника "НаборыДополнительныхРеквизитовИСведений" есть реквизит *Используется*. Для нашего созданного предопределенного элемента (см. пункт 3) необходимо установить значение Истина для этого реквизита. Но в пользовательском режиме 1С:Предприятие это не получится сделать, потому что этого реквизита нет на форме. Но можно воспользоваться стандартной обработкой "Групповое изменение реквизитов", где выбрать справочник "НаборыДополнительныхРеквизитовИСведений", сделать отбор по нашему созданному предопределенному элементу и установить значение Истина для реквизита "Используется". Примечание: если в обработке "Групповое изменение реквизитов" нет для выбора справочника "НаборыДополнительныхРеквизитовИСведений", то необходимо в настройке "Дополнительные параметры" включить галку "Показывать служебные реквизиты".