Использование дополнительных реквизитов и сведений » История » Версия 13
Всеволод Дорофеев, 12.04.2022 01:23
1 | 1 | Всеволод Дорофеев | h1. Использование дополнительных реквизитов и сведений |
---|---|---|---|
2 | 1 | Всеволод Дорофеев | |
3 | 1 | Всеволод Дорофеев | h3. Использование дополнительных реквизитов и сведений в БП 2.0 |
4 | 1 | Всеволод Дорофеев | |
5 | 1 | Всеволод Дорофеев | * Справочник ЗначенияСвойствОбъектов |
6 | 1 | Всеволод Дорофеев | * План видов характеристик НазначенияСвойствКатегорийОбъектов |
7 | 1 | Всеволод Дорофеев | * План видов характеристик СвойстваОбъектов |
8 | 1 | Всеволод Дорофеев | * Регистр сведений ЗначенияСвойствОбъектов |
9 | 1 | Всеволод Дорофеев | |
10 | 3 | Всеволод Дорофеев | h3. Использование дополнительных реквизитов и сведений в БП 3.0, УТ11,.. |
11 | 1 | Всеволод Дорофеев | |
12 | 1 | Всеволод Дорофеев | * План видов характеристик ДополнительныеРеквизитыИСведения |
13 | 9 | Всеволод Дорофеев | * Справочник ЗначенияСвойствОбъектов (Дополнительные значения) |
14 | 9 | Всеволод Дорофеев | * Справочник ЗначенияСвойствОбъектовИерархия (Дополнительные значения (иерархия)) |
15 | 1 | Всеволод Дорофеев | * Справочник НаборыДополнительныхРеквизитовИСведений |
16 | 1 | Всеволод Дорофеев | * Регистр сведений ДополнительныеСведения |
17 | 1 | Всеволод Дорофеев | * Табличная часть "Дополнительные реквизиты" справочников и документов |
18 | 1 | Всеволод Дорофеев | |
19 | 10 | Всеволод Дорофеев | *Использование для разных доп.реквизитов единого набора Значений дополнительных реквизитов.* |
20 | 10 | Всеволод Дорофеев | |
21 | 10 | Всеволод Дорофеев | Для этого для дополнительного реквизита (ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения) установить реквизит ВладелецДополнительныхЗначений = [ПВХ.ДРС владелец Значениий доп.реквизитов] |
22 | 10 | Всеволод Дорофеев | |
23 | 10 | Всеволод Дорофеев | |
24 | 11 | Всеволод Дорофеев | h3. Примеры работы |
25 | 11 | Всеволод Дорофеев | |
26 | 1 | Всеволод Дорофеев | <pre> |
27 | 13 | Всеволод Дорофеев | //Получение доп.реквизита при выгрузке |
28 | 12 | Всеволод Дорофеев | ЗначениеДопРеквизита = УправлениеСвойствами.ЗначениеСвойства(ДанныеИБ.Ссылка, "ДокументПолучен_1571e91ee3854e3e93c31762011f3a4d"); |
29 | 12 | Всеволод Дорофеев | |
30 | 12 | Всеволод Дорофеев | AdditionalInfoВставить(ДанныеXDTO, "ОригиналПолучен", ЗначениеЗаполнено(ЗначениеДопРеквизита)); |
31 | 12 | Всеволод Дорофеев | |
32 | 12 | Всеволод Дорофеев | </pre> |
33 | 12 | Всеволод Дорофеев | |
34 | 12 | Всеволод Дорофеев | |
35 | 12 | Всеволод Дорофеев | <pre> |
36 | 1 | Всеволод Дорофеев | //получение доп.реквизита для объекта "Источник" |
37 | 1 | Всеволод Дорофеев | ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Серия", Истина); |
38 | 1 | Всеволод Дорофеев | НайденнаяСтрока = Источник.ДополнительныеРеквизиты.Найти(ЭлементПВХ, "Свойство"); |
39 | 1 | Всеволод Дорофеев | </pre> |
40 | 2 | Всеволод Дорофеев | |
41 | 2 | Всеволод Дорофеев | <pre> |
42 | 2 | Всеволод Дорофеев | //УТ11 |
43 | 2 | Всеволод Дорофеев | //Доп.сведение |
44 | 2 | Всеволод Дорофеев | ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Тип", Истина); |
45 | 2 | Всеволод Дорофеев | МассивСвойств = новый массив; |
46 | 2 | Всеволод Дорофеев | МассивСвойств.Добавить(ЭлементПВХ); |
47 | 2 | Всеволод Дорофеев | ТаблицаСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Источник, ложь, истина, МассивСвойств); |
48 | 2 | Всеволод Дорофеев | НайденнаяСтрока = ТаблицаСвойств.Найти(ЭлементПВХ, "Свойство"); |
49 | 2 | Всеволод Дорофеев | Если не НайденнаяСтрока = Неопределено Тогда |
50 | 2 | Всеволод Дорофеев | Значение = НайденнаяСтрока.Значение; |
51 | 2 | Всеволод Дорофеев | КонецЕсли; |
52 | 2 | Всеволод Дорофеев | |
53 | 4 | Всеволод Дорофеев | </pre> |
54 | 2 | Всеволод Дорофеев | |
55 | 4 | Всеволод Дорофеев | <pre> |
56 | 5 | Всеволод Дорофеев | //Проверим и создадим строковый доп. реквизит к справочнику Номенклатура |
57 | 5 | Всеволод Дорофеев | &НаСервере |
58 | 5 | Всеволод Дорофеев | функция ПроверитьДобавитьСтроковыйДопРеквизитДляНоменклатуры(ИмяРеквизита, ДлинаСтроки=0) |
59 | 5 | Всеволод Дорофеев | |
60 | 5 | Всеволод Дорофеев | //ищем доп. реквизит по заголовку |
61 | 5 | Всеволод Дорофеев | ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок",ИмяРеквизита); |
62 | 5 | Всеволод Дорофеев | Если ЭлПВХ_Ссылка.Пустая() Тогда |
63 | 5 | Всеволод Дорофеев | //если не найдено, то создадим новый |
64 | 5 | Всеволод Дорофеев | ЭлПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент(); |
65 | 5 | Всеволод Дорофеев | ЭлПВХ.Заголовок = ИмяРеквизита; |
66 | 5 | Всеволод Дорофеев | ЭлПВХ.НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура; |
67 | 5 | Всеволод Дорофеев | ЭлПВХ.Наименование = ЭлПВХ.Заголовок+" ("+ЭлПВХ.НаборСвойств+")"; |
68 | 5 | Всеволод Дорофеев | ЭлПВХ.ТипЗначения = Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(ДлинаСтроки)); |
69 | 5 | Всеволод Дорофеев | ЭлПВХ.Записать(); |
70 | 5 | Всеволод Дорофеев | ЭлПВХ_Ссылка = ЭлПВХ.Ссылка; |
71 | 5 | Всеволод Дорофеев | КонецЕсли; |
72 | 5 | Всеволод Дорофеев | |
73 | 5 | Всеволод Дорофеев | //проверим, что реквизит указан в наборе доп. реквизитов заказа покупателя |
74 | 5 | Всеволод Дорофеев | НаборОб = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура.ПолучитьОбъект(); |
75 | 5 | Всеволод Дорофеев | Если НаборОб.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство") = Неопределено Тогда |
76 | 5 | Всеволод Дорофеев | //добавим реквизит в набор |
77 | 5 | Всеволод Дорофеев | СтрНаборОб = НаборОб.ДополнительныеРеквизиты.Добавить(); |
78 | 5 | Всеволод Дорофеев | СтрНаборОб.Свойство = ЭлПВХ_Ссылка; |
79 | 5 | Всеволод Дорофеев | КонецЕсли; |
80 | 5 | Всеволод Дорофеев | Если НаборОб.Модифицированность() Тогда |
81 | 5 | Всеволод Дорофеев | //запишем при необходимости |
82 | 5 | Всеволод Дорофеев | НаборОб.Записать(); |
83 | 5 | Всеволод Дорофеев | КонецЕсли; |
84 | 5 | Всеволод Дорофеев | Возврат ЭлПВХ_Ссылка; |
85 | 5 | Всеволод Дорофеев | КонецФункции |
86 | 5 | Всеволод Дорофеев | </pre> |
87 | 5 | Всеволод Дорофеев | |
88 | 5 | Всеволод Дорофеев | |
89 | 5 | Всеволод Дорофеев | <pre> |
90 | 4 | Всеволод Дорофеев | //Установка доп.реквизита Объекта |
91 | 4 | Всеволод Дорофеев | &НаСервере |
92 | 4 | Всеволод Дорофеев | Процедура УстановитьДополнительныйРеквизитОбъекта(Объект, ИмяРеквизита, ЗначениеРеквизита) |
93 | 4 | Всеволод Дорофеев | |
94 | 4 | Всеволод Дорофеев | ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок",ИмяРеквизита); |
95 | 4 | Всеволод Дорофеев | Если ЭлПВХ_Ссылка.Пустая() Тогда |
96 | 4 | Всеволод Дорофеев | Сообщить("Не найден доп. реквизит "+ИмяРеквизита+", значение не установлено!"); |
97 | 4 | Всеволод Дорофеев | Возврат; |
98 | 4 | Всеволод Дорофеев | КонецЕсли; |
99 | 4 | Всеволод Дорофеев | |
100 | 4 | Всеволод Дорофеев | СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство"); |
101 | 4 | Всеволод Дорофеев | Если СтрДопРеквизиты = Неопределено Тогда |
102 | 4 | Всеволод Дорофеев | СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Добавить(); |
103 | 4 | Всеволод Дорофеев | КонецЕсли; |
104 | 4 | Всеволод Дорофеев | СтрДопРеквизиты.Свойство = ЭлПВХ_Ссылка; |
105 | 4 | Всеволод Дорофеев | СтрДопРеквизиты.Значение = ЗначениеРеквизита; |
106 | 4 | Всеволод Дорофеев | |
107 | 4 | Всеволод Дорофеев | КонецПроцедуры |
108 | 2 | Всеволод Дорофеев | </pre> |
109 | 6 | Всеволод Дорофеев | |
110 | 6 | Всеволод Дорофеев | h3. Установка доп.сведения Объекта |
111 | 6 | Всеволод Дорофеев | |
112 | 6 | Всеволод Дорофеев | <pre> |
113 | 6 | Всеволод Дорофеев | &НаСервереБезКонтекста |
114 | 6 | Всеволод Дорофеев | Функция ЗаписатьЗначениеДополнительногоСведения(Объект, Свойство, Значение) |
115 | 6 | Всеволод Дорофеев | |
116 | 6 | Всеволод Дорофеев | Попытка |
117 | 6 | Всеволод Дорофеев | УстановитьПривилегированныйРежим(Истина); |
118 | 6 | Всеволод Дорофеев | НаборЗаписей = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей(); |
119 | 6 | Всеволод Дорофеев | |
120 | 6 | Всеволод Дорофеев | НаборЗаписей.Отбор.Объект.Установить(Объект); |
121 | 6 | Всеволод Дорофеев | НаборЗаписей.Отбор.Свойство.Установить(Свойство); |
122 | 6 | Всеволод Дорофеев | |
123 | 6 | Всеволод Дорофеев | НоваяСтрокаНабора = НаборЗаписей.Добавить(); |
124 | 6 | Всеволод Дорофеев | |
125 | 6 | Всеволод Дорофеев | НоваяСтрокаНабора.Объект = Объект; |
126 | 6 | Всеволод Дорофеев | НоваяСтрокаНабора.Свойство = Свойство; |
127 | 6 | Всеволод Дорофеев | |
128 | 6 | Всеволод Дорофеев | НоваяСтрокаНабора.Значение = Значение; |
129 | 6 | Всеволод Дорофеев | |
130 | 6 | Всеволод Дорофеев | НаборЗаписей.Записать(); |
131 | 6 | Всеволод Дорофеев | |
132 | 6 | Всеволод Дорофеев | Возврат Истина; |
133 | 6 | Всеволод Дорофеев | Исключение |
134 | 6 | Всеволод Дорофеев | Возврат Ложь; |
135 | 6 | Всеволод Дорофеев | КонецПопытки; |
136 | 6 | Всеволод Дорофеев | КонецФункции |
137 | 6 | Всеволод Дорофеев | |
138 | 6 | Всеволод Дорофеев | </pre> |
139 | 7 | Всеволод Дорофеев | |
140 | 7 | Всеволод Дорофеев | h3. Поиск Объекта по значению доп.сведения |
141 | 7 | Всеволод Дорофеев | |
142 | 7 | Всеволод Дорофеев | <pre> |
143 | 7 | Всеволод Дорофеев | &НаСервереБезКонтекста |
144 | 7 | Всеволод Дорофеев | Функция НайтиОбъектПоДопСведениюСервере(Свойство, Значение) |
145 | 7 | Всеволод Дорофеев | Рез = неопределено; |
146 | 7 | Всеволод Дорофеев | |
147 | 7 | Всеволод Дорофеев | Запрос = Новый Запрос; |
148 | 7 | Всеволод Дорофеев | Запрос.Текст = |
149 | 7 | Всеволод Дорофеев | "ВЫБРАТЬ |
150 | 7 | Всеволод Дорофеев | | ДополнительныеСведения.Объект КАК Объект |
151 | 7 | Всеволод Дорофеев | |ИЗ |
152 | 7 | Всеволод Дорофеев | | РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения |
153 | 7 | Всеволод Дорофеев | |ГДЕ |
154 | 7 | Всеволод Дорофеев | | ДополнительныеСведения.Свойство = &Свойство |
155 | 7 | Всеволод Дорофеев | | И ДополнительныеСведения.Значение = &Значение"; |
156 | 7 | Всеволод Дорофеев | |
157 | 7 | Всеволод Дорофеев | Запрос.УстановитьПараметр("Значение", Значение); |
158 | 7 | Всеволод Дорофеев | Запрос.УстановитьПараметр("Свойство", Свойство); |
159 | 7 | Всеволод Дорофеев | |
160 | 7 | Всеволод Дорофеев | РезультатЗапроса = Запрос.Выполнить(); |
161 | 7 | Всеволод Дорофеев | |
162 | 7 | Всеволод Дорофеев | ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); |
163 | 7 | Всеволод Дорофеев | |
164 | 7 | Всеволод Дорофеев | Если ВыборкаДетальныеЗаписи.Следующий() Тогда |
165 | 7 | Всеволод Дорофеев | Рез = ВыборкаДетальныеЗаписи.Объект; |
166 | 7 | Всеволод Дорофеев | КонецЕсли; |
167 | 7 | Всеволод Дорофеев | Возврат Рез; |
168 | 7 | Всеволод Дорофеев | |
169 | 7 | Всеволод Дорофеев | КонецФункции |
170 | 7 | Всеволод Дорофеев | |
171 | 7 | Всеволод Дорофеев | </pre> |
172 | 8 | Всеволод Дорофеев | |
173 | 8 | Всеволод Дорофеев | h3. Снятие ограничения в 150 символов на длину наименования для дополнительных значений (Справочник.ЗначенияСвойствОбъектов) |
174 | 8 | Всеволод Дорофеев | |
175 | 8 | Всеволод Дорофеев | https://its.1c.ru/db/v8std#content:746:hdoc |
176 | 8 | Всеволод Дорофеев | |
177 | 8 | Всеволод Дорофеев | <pre> |
178 | 8 | Всеволод Дорофеев | |
179 | 8 | Всеволод Дорофеев | #Область ОбработчикиСобытий |
180 | 8 | Всеволод Дорофеев | |
181 | 8 | Всеволод Дорофеев | Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) |
182 | 8 | Всеволод Дорофеев | Поля.Добавить("Наименование"); |
183 | 8 | Всеволод Дорофеев | Поля.Добавить("ПолноеНаименование"); |
184 | 8 | Всеволод Дорофеев | СтандартнаяОбработка = Ложь; |
185 | 8 | Всеволод Дорофеев | КонецПроцедуры |
186 | 8 | Всеволод Дорофеев | |
187 | 8 | Всеволод Дорофеев | |
188 | 8 | Всеволод Дорофеев | Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) |
189 | 8 | Всеволод Дорофеев | //ЛокализацияКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); |
190 | 8 | Всеволод Дорофеев | // 1cmanager.ru Снимаем ограничение на длину наименования в 150 символов |
191 | 8 | Всеволод Дорофеев | Представление = ?(ПустаяСтрока(Данные.ПолноеНаименование), Данные.Наименование, Данные.ПолноеНаименование); |
192 | 8 | Всеволод Дорофеев | СтандартнаяОбработка = Ложь; |
193 | 8 | Всеволод Дорофеев | КонецПроцедуры |
194 | 8 | Всеволод Дорофеев | |
195 | 8 | Всеволод Дорофеев | #КонецОбласти |
196 | 8 | Всеволод Дорофеев | |
197 | 8 | Всеволод Дорофеев | </pre> |