3_0_1_204

This commit is contained in:
Компания 1С committed 2018-07-11 00:47:00 +03:00
1 parent b783b07432
commit b308afecb3
1135 files changed
+132832 -71409

No files matched your search

@@ -402,6 +402,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -537,6 +538,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -904,6 +906,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -1178,6 +1181,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -64,6 +64,13 @@
ИнициализацияФормы(); ИнициализацияФормы();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -27,6 +27,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -439,6 +440,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -574,6 +576,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1205,6 +1208,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -58,6 +58,13 @@
ИнициализацияФормы(); ИнициализацияФормы();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -140,6 +140,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -300,6 +301,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
@@ -511,6 +513,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -546,6 +549,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
@@ -968,6 +972,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -996,6 +1001,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
@@ -1023,6 +1029,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1149,6 +1156,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -40,6 +40,13 @@
ИнициализацияФормы(); ИнициализацияФормы();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -165,6 +165,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -272,6 +273,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -96,6 +96,43 @@
// Конец СтандартныеПодсистемы.БизнесПроцессыИЗадачи // Конец СтандартныеПодсистемы.БизнесПроцессыИЗадачи
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"ПрисоединитьДополнительныеТаблицы
|ЭтотСписок КАК Задание
|
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадач
|ПО
| ИсполнителиЗадач.РольИсполнителя = Задание.Исполнитель
| И ИсполнителиЗадач.ОсновнойОбъектАдресации = Задание.ОсновнойОбъектАдресации
| И ИсполнителиЗадач.ДополнительныйОбъектАдресации = Задание.ДополнительныйОбъектАдресации
|
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсполнителиЗадач КАК ПроверяющиеЗадач
|ПО
| ПроверяющиеЗадач.РольИсполнителя = Задание.Проверяющий
| И ПроверяющиеЗадач.ОсновнойОбъектАдресации = Задание.ОсновнойОбъектАдресацииПроверяющий
| И ПроверяющиеЗадач.ДополнительныйОбъектАдресации = Задание.ДополнительныйОбъектАдресацииПроверяющий
|;
|РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Автор)
| ИЛИ ЗначениеРазрешено(Исполнитель КРОМЕ Справочник.РолиИсполнителей)
| ИЛИ ЗначениеРазрешено(ИсполнителиЗадач.Исполнитель)
| ИЛИ ЗначениеРазрешено(Проверяющий КРОМЕ Справочник.РолиИсполнителей)
| ИЛИ ЗначениеРазрешено(ПроверяющиеЗадач.Исполнитель)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЗначениеРазрешено(Автор)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -43,7 +43,7 @@
БизнесПроцессыИЗадачиСервер.ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса(ЭтотОбъект); БизнесПроцессыИЗадачиСервер.ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса(ЭтотОбъект);
Если ЗначениеЗаполнено(ГлавнаяЗадача) Если ЗначениеЗаполнено(ГлавнаяЗадача)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГлавнаяЗадача, "БизнесПроцесс") = ЭтотОбъект.Ссылка Тогда И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГлавнаяЗадача, "БизнесПроцесс") = Ссылка Тогда
ВызватьИсключение НСтр("ru = 'Собственная задача бизнес-процесса не может быть указана как главная задача.'"); ВызватьИсключение НСтр("ru = 'Собственная задача бизнес-процесса не может быть указана как главная задача.'");
@@ -58,14 +58,6 @@
Проверяющий); Проверяющий);
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если НЕ ЭтоНовый() И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Предмет") <> Предмет Тогда Если НЕ ЭтоНовый() И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Предмет") <> Предмет Тогда
ИзменитьПредметЗадач(); ИзменитьПредметЗадач();
КонецЕсли; КонецЕсли;
@@ -389,19 +381,19 @@
Строка.НомерНабора = 1; Строка.НомерНабора = 1;
Строка.Чтение = Истина; Строка.Чтение = Истина;
Строка.Изменение = Истина; Строка.Изменение = Истина;
Строка.ЗначениеДоступа = ЭтотОбъект.Автор; Строка.ЗначениеДоступа = Автор;
// Чтение: набор № 2. // Чтение: набор № 2.
Строка = Таблица.Добавить(); Строка = Таблица.Добавить();
Строка.НомерНабора = 2; Строка.НомерНабора = 2;
Строка.Чтение = Истина; Строка.Чтение = Истина;
Строка.ЗначениеДоступа = ЭтотОбъект.ГруппаИсполнителейЗадач; Строка.ЗначениеДоступа = ГруппаИсполнителейЗадач;
// Чтение: набор № 3. // Чтение: набор № 3.
Строка = Таблица.Добавить(); Строка = Таблица.Добавить();
Строка.НомерНабора = 3; Строка.НомерНабора = 3;
Строка.Чтение = Истина; Строка.Чтение = Истина;
Строка.ЗначениеДоступа = ЭтотОбъект.ГруппаИсполнителейЗадачПроверяющий; Строка.ЗначениеДоступа = ГруппаИсполнителейЗадачПроверяющий;
КонецПроцедуры КонецПроцедуры
@@ -159,6 +159,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -527,6 +528,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -555,6 +557,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
@@ -680,6 +683,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
@@ -105,6 +105,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -29,6 +29,10 @@
Элементы.ТребуетОткрытогоОтвета.Видимость = (Объект.Владелец.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз); Элементы.ТребуетОткрытогоОтвета.Видимость = (Объект.Владелец.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз);
КонецЕсли; КонецЕсли;
Если Параметры.Свойство("Наименование") Тогда
Объект.Наименование = Параметры.Наименование;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -172,6 +172,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1727,6 +1728,7 @@
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount> <autoMaxRowsCount>true</autoMaxRowsCount>
<choiceMode>true</choiceMode>
<selectionMode>MultiRow</selectionMode> <selectionMode>MultiRow</selectionMode>
<header>true</header> <header>true</header>
<headerHeight>1</headerHeight> <headerHeight>1</headerHeight>
@@ -1779,6 +1781,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1908,7 +1911,7 @@
ГДЕ ГДЕ
Варианты.Отчет В(&amp;ДоступныеОтчеты) Варианты.Отчет В(&amp;ДоступныеОтчеты)
И ВЫБОР И ВЫБОР
КОГДА &amp;ВариантыПользователя ЕСТЬ NULL КОГДА Не &amp;ЕстьОтборПоВариантам
ТОГДА НЕ Варианты.ПредопределенныйВариант В (&amp;ОтключенныеВариантыПрограммы) ТОГДА НЕ Варианты.ПредопределенныйВариант В (&amp;ОтключенныеВариантыПрограммы)
ИНАЧЕ Варианты.Ссылка В (&amp;ВариантыПользователя) ИНАЧЕ Варианты.Ссылка В (&amp;ВариантыПользователя)
КОНЕЦ</queryText> КОНЕЦ</queryText>
@@ -121,7 +121,7 @@
Список.Параметры.УстановитьЗначениеПараметра("ТипРасширение", Перечисления.ТипыОтчетов.Расширение); Список.Параметры.УстановитьЗначениеПараметра("ТипРасширение", Перечисления.ТипыОтчетов.Расширение);
Список.Параметры.УстановитьЗначениеПараметра("ТипДополнительный", Перечисления.ТипыОтчетов.Дополнительный); Список.Параметры.УстановитьЗначениеПараметра("ТипДополнительный", Перечисления.ТипыОтчетов.Дополнительный);
Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя()); Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя());
Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()); Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()));
ТекущийЭлемент = Элементы.Список; ТекущийЭлемент = Элементы.Список;
@@ -493,7 +493,8 @@
КонецЕсли; КонецЕсли;
РезультатПоиска = ВариантыОтчетов.НайтиСсылки(ПараметрыПоиска); РезультатПоиска = ВариантыОтчетов.НайтиСсылки(ПараметрыПоиска);
ВариантыПользователя = ?(РезультатПоиска = Неопределено, Null, РезультатПоиска.Ссылки); ВариантыПользователя = ?(РезультатПоиска = Неопределено, Новый Массив, РезультатПоиска.Ссылки);
Список.Параметры.УстановитьЗначениеПараметра("ЕстьОтборПоВариантам", РезультатПоиска <> Неопределено);
Список.Параметры.УстановитьЗначениеПараметра("ВариантыПользователя", ВариантыПользователя); Список.Параметры.УстановитьЗначениеПараметра("ВариантыПользователя", ВариантыПользователя);
КонецПроцедуры КонецПроцедуры
@@ -287,6 +287,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1159,6 +1160,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1876,6 +1878,10 @@
<event>AfterWriteAtServer</event> <event>AfterWriteAtServer</event>
<name>ПослеЗаписиНаСервере</name> <name>ПослеЗаписиНаСервере</name>
</handlers> </handlers>
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
<handlers> <handlers>
<event>BeforeWriteAtServer</event> <event>BeforeWriteAtServer</event>
<name>ПередЗаписьюНаСервере</name> <name>ПередЗаписьюНаСервере</name>
@@ -115,6 +115,18 @@
СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "ДеревоПодсистем", "*", Истина); СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "ДеревоПодсистем", "*", Истина);
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы #Область ОбработчикиСобытийЭлементовШапкиФормы
@@ -24,6 +24,28 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| Пользовательский = ЛОЖЬ
| ИЛИ ТолькоДляАвтора = ЛОЖЬ
| ИЛИ ЭтоАвторизованныйПользователь(Автор)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЭтоАвторизованныйПользователь(Автор)";
Ограничение.ТекстДляВнешнихПользователей = Ограничение.Текст;
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -144,10 +166,9 @@
ШаблонКомментария = НСтр("ru = 'Не удалось установить источник данных варианта отчета %1. ШаблонКомментария = НСтр("ru = 'Не удалось установить источник данных варианта отчета %1.
|Возможно он поврежден и не подлежит восстановлению. |Возможно он поврежден и не подлежит восстановлению.
| |
|Информация для администратора: %2'"); |Техническая информация о проблеме: %2'");
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонКомментария, Вариант.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ШаблонКомментария, Вариант.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации( ЗаписьЖурналаРегистрации(
ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение, УровеньЖурналаРегистрации.Предупреждение,
@@ -166,7 +187,6 @@
Иначе Иначе
ШаблонКомментария = НСтр("ru = 'Процедура УстановитьИсточникДанныхВарианта обработала очередной пакет вариантов отчетов: %1'"); ШаблонКомментария = НСтр("ru = 'Процедура УстановитьИсточникДанныхВарианта обработала очередной пакет вариантов отчетов: %1'");
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, Обработано); Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, Обработано);
ЗаписьЖурналаРегистрации( ЗаписьЖурналаРегистрации(
ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, УровеньЖурналаРегистрации.Информация,
@@ -8,7 +8,7 @@
Если ИменаПараметровСеанса = Неопределено Если ИменаПараметровСеанса = Неопределено
Или ИменаПараметровСеанса.Найти("УстановленныеРасширения") <> Неопределено Тогда Или ИменаПараметровСеанса.Найти("УстановленныеРасширения") <> Неопределено Тогда
ПараметрыСеанса.УстановленныеРасширения = КонтрольныеСуммыРасширений(); ПараметрыСеанса.УстановленныеРасширения = УстановленныеРасширения();
УстановленныеПараметры.Добавить("УстановленныеРасширения"); УстановленныеПараметры.Добавить("УстановленныеРасширения");
КонецЕсли; КонецЕсли;
@@ -35,64 +35,59 @@
КонецПроцедуры КонецПроцедуры
// Расширения подключаются только в разделенном режиме, когда // Возвращает отдельные контрольные суммы для основных расширений и
// вход в область данных выполнен под разделенным пользователем, // исправлений для установки параметра сеанса УстановленныеРасширения и
// поэтому обновление кэшей допустимо выполнять только в этом случае. // дальнейшей проверки изменений.
//
Функция УстановленныеРасширенияДоступны() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
Возврат Не ОбщегоНазначения.РазделениеВключено()
Или Не СеансЗапущенБезРазделителей;
КонецФункции
// Возвращает контрольные суммы всех установленных расширений.
// //
// Вызывается при запуске для установки параметра сеанса УстановленныеРасширения, // Вызывается при запуске для установки параметра сеанса УстановленныеРасширения,
// который требуется для анализа наличия расширений и контроля динамического обновления, // который требуется для анализа наличия расширений и контроля динамического обновления,
// а также из формы установки расширений конфигурации в режиме 1С:Предприятия. // а также из формы установки расширений конфигурации в режиме 1С:Предприятия.
// //
// Параметры: // Для сеанса запущенного без разделителей возвращается только состав неразделенных (общих)
// Расширения - Неопределено - получить контрольные суммы установленных расширений. // расширений, независимо от установленных разделителей.
// - ДанныеФормыКоллекция - получить контрольные суммы из указанного списка.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - строки вида "<Имя расширения> (<Версия расширения>) <Контрольная сумма>". // ФиксированнаяСтруктура - со свойствами:
// * Основные - Строка - контрольная сумма всех расширений, кроме исправительных расширений.
// * Исправления - Строка - контрольная сумма всех исправительных расширений.
// //
Функция КонтрольныеСуммыРасширений(Расширения = Неопределено) Экспорт Функция УстановленныеРасширения() Экспорт
Если Расширения = Неопределено Тогда Если ОбщегоНазначения.РазделениеВключено()
Расширения = РасширенияКонфигурации.Получить(); И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
КонецЕсли;
Список = Новый СписокЗначений; МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
Неразделенные = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Для Каждого Расширение Из Расширения Цикл
Если ТипЗнч(Расширение) = Тип("РасширениеКонфигурации") Тогда
КонтрольнаяСумма = Base64Строка(Расширение.ХешСумма);
Иначе Иначе
КонтрольнаяСумма = Расширение.КонтрольнаяСумма; Неразделенные = Ложь;
КонецЕсли;
Список.Добавить(Расширение.Имя + " (" + Расширение.Версия + ") " + КонтрольнаяСумма);
КонецЦикла;
Если Список.Количество() <> 0 Тогда
Список.Добавить("#" + Метаданные.Имя + " (" + Метаданные.Версия + ")");
КонецЕсли; КонецЕсли;
КонтрольныеСуммы = ""; Расширения = РасширенияКонфигурации.Получить();
Для Каждого Элемент Из Список Цикл
КонтрольныеСуммы = КонтрольныеСуммы + Символы.ПС + Элемент.Значение;
КонецЦикла;
Возврат СокрЛ(КонтрольныеСуммы); Основные = Новый Массив;
Исправления = Новый Массив;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
Для Каждого Расширение Из Расширения Цикл
Если Неразделенные И Расширение.ОбластьДействия = ОбластьДействияРасширенияКонфигурации.РазделениеДанных Тогда
Продолжить;
КонецЕсли;
Если МодульОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда
Исправления.Добавить(Расширение);
Иначе
Основные.Добавить(Расширение);
КонецЕсли;
КонецЦикла;
Иначе
Основные = Расширения;
КонецЕсли;
УстановленныеРасширения = Новый Структура;
УстановленныеРасширения.Вставить("Основные", КонтрольныеСуммыРасширений(Основные));
УстановленныеРасширения.Вставить("Исправления", КонтрольныеСуммыРасширений(Исправления));
Возврат Новый ФиксированнаяСтруктура(УстановленныеРасширения);
КонецФункции КонецФункции
@@ -101,29 +96,17 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда УстановленныеРасширения = УстановленныеРасширения();
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
// При входе неразделенного администратора в область получить список неразделенных расширений невозможно. Возврат ПараметрыСеанса.УстановленныеРасширения.Основные <> УстановленныеРасширения.Основные
// Считаем что они не изменились. Или ПараметрыСеанса.УстановленныеРасширения.Исправления <> УстановленныеРасширения.Исправления;
Если ОбщегоНазначения.РазделениеВключено()
И СеансЗапущенБезРазделителей
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат Ложь;
КонецЕсли;
Возврат ПараметрыСеанса.УстановленныеРасширения <> КонтрольныеСуммыРасширений();
КонецФункции КонецФункции
// Добавляет сведения, что сеанс начал использование версии метаданных. // Добавляет сведения, что сеанс начал использование версии метаданных.
Процедура ЗарегистрироватьИспользованиеВерсииРасширений() Экспорт Процедура ЗарегистрироватьИспользованиеВерсииРасширений() Экспорт
Если Не УстановленныеРасширенияДоступны() Тогда Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -156,6 +139,7 @@
КонецПопытки; КонецПопытки;
Если РезультатыЗапроса[0].Выбрать().Количество() < 2 Тогда Если РезультатыЗапроса[0].Выбрать().Количество() < 2 Тогда
ОбновитьПоследнююВерсиюРасширений(ВерсияРасширений);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -176,8 +160,27 @@
НаборЗаписей.ОбменДанными.Загрузка = Истина; НаборЗаписей.ОбменДанными.Загрузка = Истина;
НаборЗаписей.Записать(); НаборЗаписей.Записать();
ОбновитьПоследнююВерсиюРасширений(ВерсияРасширений);
КонецПроцедуры КонецПроцедуры
Функция ПоследняяВерсияРасширений() Экспорт
ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ПоследняяВерсияРасширений";
ХранимыеСвойства = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если ХранимыеСвойства = Неопределено
Или ТипЗнч(ХранимыеСвойства) <> Тип("Структура")
Или Не ХранимыеСвойства.Свойство("ВерсияРасширений")
Или Не ХранимыеСвойства.Свойство("ДатаОбновления") Тогда
ХранимыеСвойства = Новый Структура("ВерсияРасширений, ДатаОбновления", , '00010101');
КонецЕсли;
Возврат ХранимыеСвойства;
КонецФункции
// Удаляет устаревшие версии метаданных. // Удаляет устаревшие версии метаданных.
Процедура УдалитьУстаревшиеВерсииПараметров() Экспорт Процедура УдалитьУстаревшиеВерсииПараметров() Экспорт
@@ -244,7 +247,10 @@
// использоваться сеансами, которые были открыты до этого события. // использоваться сеансами, которые были открыты до этого события.
ВерсияИспользуемаяВНезарегистрированныхСеансах = Неопределено; ВерсияИспользуемаяВНезарегистрированныхСеансах = Неопределено;
ДатаОкончанияСеансовИспользующихРасширенияБезРегистрации = '00010101'; ДатаОкончанияСеансовИспользующихРасширенияБезРегистрации = '00010101';
Если ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения) Тогда
Если ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения.Основные)
Или ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения.Исправления) Тогда
Если Не РезультатыЗапроса[1].Пустой() Тогда Если Не РезультатыЗапроса[1].Пустой() Тогда
Свойства = РезультатыЗапроса[1].Выгрузить()[0]; Свойства = РезультатыЗапроса[1].Выгрузить()[0];
ДатаОкончанияСеансовИспользующихРасширенияБезРегистрации ДатаОкончанияСеансовИспользующихРасширенияБезРегистрации
@@ -330,7 +336,10 @@
// Удаление всех регистраций использования метаданных. // Удаление всех регистраций использования метаданных.
ВсеЗаписи = РегистрыСведений.СеансыВерсийРасширений.СоздатьНаборЗаписей(); ВсеЗаписи = РегистрыСведений.СеансыВерсийРасширений.СоздатьНаборЗаписей();
ВсеЗаписи.Записать(); ВсеЗаписи.Записать();
Если ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения) Тогда
Если ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения.Основные)
Или ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения.Исправления) Тогда
ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Ложь); ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Ложь);
КонецЕсли; КонецЕсли;
Если ВерсииУдалялись Если ВерсииУдалялись
@@ -365,7 +374,7 @@
КонецПроцедуры КонецПроцедуры
// Вызывается из формы УстановленныеРасширения. // Вызывается из формы Расширения.
Процедура ПриУдаленииВсехРасширений() Экспорт Процедура ПриУдаленииВсехРасширений() Экспорт
ЗарегистрироватьПервыйВходПослеУдаленияВсехРасширений(); ЗарегистрироватьПервыйВходПослеУдаленияВсехРасширений();
@@ -385,16 +394,48 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Возвращает контрольные суммы указанных расширений.
//
// Параметры:
// Расширения - Массив - получить контрольные суммы указанных расширений.
//
// Возвращаемое значение:
// Строка - строки вида "<Имя расширения> (<Версия расширения>) <Контрольная сумма>".
//
Функция КонтрольныеСуммыРасширений(Расширения)
Список = Новый СписокЗначений;
Для Каждого Расширение Из Расширения Цикл
КонтрольнаяСумма = Base64Строка(Расширение.ХешСумма);
Список.Добавить(Расширение.Имя + " (" + Расширение.Версия + ") " + КонтрольнаяСумма);
КонецЦикла;
Если Список.Количество() <> 0 Тогда
Список.Добавить("#" + Метаданные.Имя + " (" + Метаданные.Версия + ")");
КонецЕсли;
КонтрольныеСуммы = "";
Для Каждого Элемент Из Список Цикл
КонтрольныеСуммы = КонтрольныеСуммы + Символы.ПС + Элемент.Значение;
КонецЦикла;
Возврат СокрЛ(КонтрольныеСуммы);
КонецФункции
// Возвращает текущую версию расширений. // Возвращает текущую версию расширений.
// Для поиска версии используется описание подключенных расширений. // Для поиска версии используется описание подключенных расширений.
// //
Функция ВерсияРасширений() Функция ВерсияРасширений()
Если Не УстановленныеРасширенияДоступны() Тогда Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат ПустаяСсылка(); Возврат ПустаяСсылка();
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения) Тогда Если Не ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения.Основные)
И Не ЗначениеЗаполнено(ПараметрыСеанса.УстановленныеРасширения.Исправления) Тогда
ЗарегистрироватьПервыйВходПослеУдаленияВсехРасширений(); ЗарегистрироватьПервыйВходПослеУдаленияВсехРасширений();
КонецЕсли; КонецЕсли;
@@ -523,6 +564,32 @@
КонецПроцедуры КонецПроцедуры
// Для процедуры ЗарегистрироватьИспользованиеВерсииРасширений.
Процедура ОбновитьПоследнююВерсиюРасширений(ВерсияРасширений)
Если КонфигурацияБазыДанныхИзмененаДинамически() Тогда
Возврат;
КонецЕсли;
ХранимыеСвойства = ПоследняяВерсияРасширений();
Если ХранимыеСвойства.ВерсияРасширений = ВерсияРасширений Тогда
Возврат;
КонецЕсли;
ХранимыеСвойства.ВерсияРасширений = ВерсияРасширений;
ХранимыеСвойства.ДатаОбновления = ТекущаяДатаСеанса();
ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ПоследняяВерсияРасширений";
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, ХранимыеСвойства, Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
МодульУправлениеДоступомСлужебный.УстановитьОбновлениеДоступа(Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -22,6 +22,24 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| ЧтениеОбъектаРазрешено(Владелец.ВладелецФайла)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ИзменениеОбъектаРазрешено(Владелец.ВладелецФайла)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -80,6 +80,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -160,12 +161,14 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Clearing</event>
<name>РодительОчистка</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<openButton>false</openButton> <openButton>false</openButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
@@ -374,6 +377,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1044,6 +1048,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -33,12 +33,12 @@
</li><li> </li><li>
<div>Настройка <strong>Запрещать ввод некорректного адреса</strong> используется для полей <strong>Адрес</strong>, <strong>Телефон</strong> или <strong>Адрес электронной почты</strong>. Такая настройка позволяет запретить ввод российских адресов, телефонов или адресов электронной почты, которые заполнены не по установленным правилам.</div> <div>Настройка <strong>Запрещать ввод некорректного адреса</strong> используется для полей <strong>Адрес</strong>, <strong>Телефон</strong> или <strong>Адрес электронной почты</strong>. Такая настройка позволяет запретить ввод российских адресов, телефонов или адресов электронной почты, которые заполнены не по установленным правилам.</div>
</li><li> </li><li>
<div>Включите флажок <strong>Разрешить ввод нескольких значений</strong>, для того чтобы можно было ввести несколько значений. Например, у организации или физического лица может быть несколько адресов электронной почты или номеров телефонов, по которым можно с ними связаться.</div></li></ul><h3>Особенности настройки поля Адрес </h3> <div>Включите флажок <strong>Разрешить ввод нескольких значений</strong>, для того чтобы можно было ввести несколько значений. Например, у организации или физического лица может быть несколько адресов электронной почты или номеров телефонов, по которым можно с ними связаться.</div></li></ul><h3>Международный формат адреса</h3>
<ul><li>Включите флажок <strong>Только российский</strong>, для того чтобы запретить выбор другой страны при заполнении адреса. Используйте эту возможность, если у сотрудников Вашей организации только российские адреса, это ускорит ввод информации. При этом становятся доступными дополнительные настройки: <li>Для создания международного адреса (например, для валютных платежей), включите флажок <strong>Международный формат адреса</strong>, в этом случае ссылка <strong>Дополнительные настройки адреса</strong> становится недоступной.
<ul><li><strong>Запрещать ввод некорректного адреса</strong> - если флажок включен, то при некорректном вводе российского адреса невозможно будет ввести данные в программу (имеет смысл только при использовании шаблонов ввода и адресного классификатора - для использования этой возможности включите флажок <strong>Редактировать только в диалоге</strong>). <h3>Дополнительные настройки поля Адрес </h3>
</li><li><strong>Проверять по КЛАДР</strong>; <p>С помощью соответствующей ссылки можно перейти к дополнительным настройкам адреса:</p>
</li><li><strong>Проверять по ФИАС</strong> - при использовании классификатора ФИАС адреса ведутся в дополнительных разрезах (например, <strong>Округ</strong>); <ul><li>Включите флажок <strong>Только российский адрес</strong>, для того чтобы запретить выбор другой страны при заполнении адреса. Используйте эту возможность, если у сотрудников Вашей организации только российские адреса, это ускорит ввод информации. При этом становятся доступными дополнительные настройки:
</li><li><strong>Скрывать неактуальные адреса</strong> - включите флажок, для того чтобы программа не показывала в списках устаревшие адреса на момент последней загрузки классификатора адреса. Такие адреса помечены в списках значком <img src="CommonPicture.КонтактнаяИнформацияНеактуально"></img>. По умолчанию флажок отключен. <ul><li><strong>Запрещать ввод некорректного адреса</strong> - если флажок включен, то при некорректном вводе российского адреса невозможно будет ввести данные в программу (имеет смысл только при использовании шаблонов ввода и адресного классификатора - для использования этой возможности включите флажок <strong>Редактировать только в диалоге</strong>). Адрес проверяется по ФИАС.
</li><li><strong>Указывать ОКТМО</strong> - включите флажок, для того чтобы автоматически заполнялось поле ОКТМО. При необходимости поле можно отредактировать.</li></ul></li><li><strong>Включать страну в представление</strong> - включите флажок, для того чтобы при автоматическом составлении полного адреса в поле <strong>Адрес</strong> указывалась страна. </li><li><strong>Указывать ОКТМО</strong> - включите флажок, для того чтобы автоматически заполнялось поле ОКТМО. При необходимости поле можно отредактировать.</li></ul></li><li><strong>Включать страну в представление</strong> - включите флажок, для того чтобы при автоматическом составлении полного адреса в поле <strong>Адрес</strong> указывалась страна.
</li><li>Если включена возможность хранить историю изменения адреса, то в поле выводится состояние <strong>Хранит историю изменений</strong>.</li></ul><h3>Особенности настройки поля Телефон и факс</h3> </li><li>Если включена возможность хранить историю изменения адреса, то в поле выводится состояние <strong>Хранит историю изменений</strong>.</li></ul><h3>Особенности настройки поля Телефон и факс</h3>
<ul><li> <ul><li>
@@ -56,4 +56,4 @@
<div><strong>Однострочное узкое</strong> - если вид контактной информации <strong>Другое</strong> используется для ввода текстовых данных небольшой длины, то размер поля ввода можно уменьшить.</div></li></ul></li></ul><h3>См. также: </h3> <div><strong>Однострочное узкое</strong> - если вид контактной информации <strong>Другое</strong> используется для ввода текстовых данных небольшой длины, то размер поля ввода можно уменьшить.</div></li></ul></li></ul><h3>См. также: </h3>
<ul><li> <ul><li>
<div><a href="Catalog.ВидыКонтактнойИнформации/Help">Виды контактной информации</a>; </div></li></ul><ul><li><a href="DataProcessor.ВводКонтактнойИнформации/Help">Ввод контактной информации</a>; <div><a href="Catalog.ВидыКонтактнойИнформации/Help">Виды контактной информации</a>; </div></li></ul><ul><li><a href="DataProcessor.ВводКонтактнойИнформации/Help">Ввод контактной информации</a>;
</li><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html> </li><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></li></body></html>
@@ -1,4 +1,3 @@
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
&НаСервере &НаСервере
@@ -153,6 +152,11 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура РодительОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура МеждународныйФорматАдресаПриИзменении(Элемент) Процедура МеждународныйФорматАдресаПриИзменении(Элемент)
@@ -5,7 +5,7 @@
<p>Поставка программы осуществляется c предопределенными группами и элементами списка. Предопределенные группы списка соответствуют спискам или документам программы - носителям контактной информации. Добавление новых групп в список запрещено. Элементы внутри этих групп определяют состав контактной информации соответствующих объектов программы.</p> <p>Поставка программы осуществляется c предопределенными группами и элементами списка. Предопределенные группы списка соответствуют спискам или документам программы - носителям контактной информации. Добавление новых групп в список запрещено. Элементы внутри этих групп определяют состав контактной информации соответствующих объектов программы.</p>
<p>В списках и табличных частях документов программы предусмотрено несколько предопределенных видов контактной информации, кроме того, имеется возможность добавлять новые виды контактной информации. </p> <p>В списках и табличных частях документов программы предусмотрено несколько предопределенных видов контактной информации, кроме того, имеется возможность добавлять новые виды контактной информации. </p>
<p>Настройку видов контактной информации рекомендуется выполнить на этапе начального заполнения программы. Эта рекомендация не исключает настройку в процессе ведения контактной информации. Настройку обычно выполняет администратор программы.</p> <p>Настройку видов контактной информации рекомендуется выполнить на этапе начального заполнения программы. Эта рекомендация не исключает настройку в процессе ведения контактной информации. Настройку обычно выполняет администратор программы.</p>
<p>Список открывается соответствующей командой панели навигации раздела <strong>Администрирование - Общие настройки</strong>.</p> <p>Список открывается соответствующей командой панели навигации раздела <strong>Администрирование - Общие настройки - Контактная информация</strong>.</p>
<h3>Добавление нового поля контактной информации в список или документ</h3> <h3>Добавление нового поля контактной информации в список или документ</h3>
<ul><li> <ul><li>
<div>Выбрав соответствующую группу в списке, нажмите  <strong>Создать</strong>. Заполните необходимые <a href="Catalog.ВидыКонтактнойИнформации.Form.ФормаЭлемента/Help">поля</a>.</div></li></ul><h3>Предопределенные виды контактной информации</h3> <div>Выбрав соответствующую группу в списке, нажмите  <strong>Создать</strong>. Заполните необходимые <a href="Catalog.ВидыКонтактнойИнформации.Form.ФормаЭлемента/Help">поля</a>.</div></li></ul><h3>Предопределенные виды контактной информации</h3>
@@ -112,4 +112,5 @@
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -3,11 +3,11 @@
#Область ОбработчикиСобытий #Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ) Процедура ПередЗаписью(Отказ)
Если ЭтотОбъект.ОбменДанными.Загрузка Тогда Если ОбменДанными.Загрузка Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если НЕ ЭтотОбъект.ЭтоГруппа Тогда Если НЕ ЭтоГруппа Тогда
Результат = УправлениеКонтактнойИнформациейСлужебный.ПроверитьПараметрыВидаКонтактнойИнформации(ЭтотОбъект); Результат = УправлениеКонтактнойИнформациейСлужебный.ПроверитьПараметрыВидаКонтактнойИнформации(ЭтотОбъект);
Если Результат.ЕстьОшибки Тогда Если Результат.ЕстьОшибки Тогда
Отказ = Истина; Отказ = Истина;
@@ -17,6 +17,18 @@
КонецПроцедуры КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ЭтоГруппа Тогда
НепроверяемыеРеквизиты = Новый Массив;
НепроверяемыеРеквизиты.Добавить("Родитель");
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, НепроверяемыеРеквизиты);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -80,6 +80,7 @@
<fillValue xsi:type="core:ReferenceValue"> <fillValue xsi:type="core:ReferenceValue">
<value>Catalog.ВидыКонтактнойИнформации.EmptyRef</value> <value>Catalog.ВидыКонтактнойИнформации.EmptyRef</value>
</fillValue> </fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -190,7 +191,9 @@
</toolTip> </toolTip>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue"/> <fillValue xsi:type="core:StringValue">
<value>МногострочноеШирокое</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
@@ -374,7 +377,7 @@
<name>РеквизитДопУпорядочивания</name> <name>РеквизитДопУпорядочивания</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Реквизит доп упорядочивания</value> <value>Порядок</value>
</synonym> </synonym>
<type> <type>
<types>Number</types> <types>Number</types>
@@ -106,6 +106,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -0,0 +1,752 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>Страницы</name>
<id>1</id>
<items xsi:type="form:FormGroup">
<name>Начальная</name>
<id>3</id>
<items xsi:type="form:FormGroup">
<name>Шапка</name>
<id>11</id>
<items xsi:type="form:Decoration">
<name>Предупреждение32</name>
<id>13</id>
<title>
<key>ru</key>
<value>Предупреждение32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Предупреждение32РасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Предупреждение32КонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<skipOnInput>false</skipOnInput>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияПояснение</name>
<id>16</id>
<title>
<key>ru</key>
<value>%1
Проверить обновление компоненты?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПояснениеРасширеннаяПодсказка</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПояснениеКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<maxWidth>75</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<font xsi:type="core:FontRef">
<font>Style.NormalTextFont</font>
<scale>100</scale>
</font>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Шапка</value>
</title>
<extendedTooltip>
<name>ШапкаРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ПодключитьИнтернетПоддержку</name>
<id>22</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПодключитьИнтернетПоддержкуРасширеннаяПодсказка</name>
<id>23</id>
<title>
<key>ru</key>
<value>Для использования веб-сервиса 1С и загрузки внешних компонент необходимо выполнить подключение к Интернет-поддержке пользователей.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ПодключитьИнтернетПоддержку</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>Button</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Начальная</value>
</title>
<extendedTooltip>
<name>НачальнаяРасширеннаяПодсказка</name>
<id>4</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ДлительнаяОперация</name>
<id>32</id>
<items xsi:type="form:Decoration">
<name>ДлительнаяОперация48</name>
<id>34</id>
<title>
<key>ru</key>
<value>Длительная операция48</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДлительнаяОперация48РасширеннаяПодсказка</name>
<id>36</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДлительнаяОперация48КонтекстноеМеню</name>
<id>35</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ДлительнаяОперация48</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДлительнаяОперацияНадпись</name>
<id>37</id>
<title>
<key>ru</key>
<value>Выполняется получение компоненты с Портала 1С:ИТС</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДлительнаяОперацияНадписьРасширеннаяПодсказка</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДлительнаяОперацияНадписьКонтекстноеМеню</name>
<id>38</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Длительная операция</value>
</title>
<extendedTooltip>
<name>ДлительнаяОперацияРасширеннаяПодсказка</name>
<id>33</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<verticalAlign>Center</verticalAlign>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Ошибка</name>
<id>42</id>
<items xsi:type="form:Decoration">
<name>Ошибка32</name>
<id>47</id>
<title>
<key>ru</key>
<value>Ошибка32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Ошибка32РасширеннаяПодсказка</name>
<id>49</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Ошибка32КонтекстноеМеню</name>
<id>48</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Ошибка32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КраткоеПредставлениеОшибки</name>
<id>44</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>КраткоеПредставлениеОшибки</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>КраткоеПредставлениеОшибкиРасширеннаяПодсказка</name>
<id>46</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КраткоеПредставлениеОшибкиКонтекстноеМеню</name>
<id>45</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка</value>
</title>
<extendedTooltip>
<name>ОшибкаРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Выполнено</name>
<id>50</id>
<items xsi:type="form:Decoration">
<name>Успешно32</name>
<id>52</id>
<title>
<key>ru</key>
<value>Успешно32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Успешно32РасширеннаяПодсказка</name>
<id>54</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Успешно32КонтекстноеМеню</name>
<id>53</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Успешно32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>РезультатВыполнения</name>
<id>58</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>РезультатВыполнения</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>РезультатВыполненияРасширеннаяПодсказка</name>
<id>60</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РезультатВыполненияКонтекстноеМеню</name>
<id>59</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Выполнено</value>
</title>
<extendedTooltip>
<name>ВыполненоРасширеннаяПодсказка</name>
<id>51</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы</value>
</title>
<extendedTooltip>
<name>СтраницыРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>Загрузить</name>
<id>28</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ЗагрузитьРасширеннаяПодсказка</name>
<id>29</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Загрузить</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Отмена</name>
<id>30</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОтменаРасширеннаяПодсказка</name>
<id>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Cancel</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Закрыть</name>
<id>61</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗакрытьРасширеннаяПодсказка</name>
<id>62</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Close</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Help</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ДоступнаЗагрузкаСПортала</name>
<title>
<key>ru</key>
<value>Доступна загрузка с портала 1С:ИТС</value>
</title>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДанныеАутентификацииПорталаСохранены</name>
<title>
<key>ru</key>
<value>Данные аутентификации портала сохранены</value>
</title>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>КраткоеПредставлениеОшибки</name>
<title>
<key>ru</key>
<value>Краткое представление ошибки</value>
</title>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>РезультатВыполнения</name>
<title>
<key>ru</key>
<value>Результат выполнения</value>
</title>
<id>5</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>МассивСсылок</name>
<title>
<key>ru</key>
<value>Массив ссылок</value>
</title>
<id>1</id>
<valueType>
<types>ValueList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType/>
</extInfo>
</attributes>
<formCommands>
<name>ПодключитьИнтернетПоддержку</name>
<title>
<key>ru</key>
<value>Подключить интернет поддержку</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Подключить интернет поддержку</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПодключитьИнтернетПоддержку</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>Загрузить</name>
<title>
<key>ru</key>
<value>Загрузить</value>
</title>
<id>2</id>
<toolTip>
<key>ru</key>
<value>Загрузить</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Загрузить</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>МассивСсылок</name>
<valueType/>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -0,0 +1,175 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
Если ТипЗнч(Параметры.МассивСсылок) <> Тип("Массив")
Или Параметры.МассивСсылок.Количество() = 0 Тогда
ВызватьИсключение НСтр("ru = 'Должна быть хоть одна ссылка указана.'");
КонецЕсли;
ДанныеАутентификацииПорталаСохранены = ДанныеАутентификацииПорталаСохранены();
ДоступнаЗагрузкаСПортала = ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала();
ТекстПояснения = "";
ПредложитьОбновление = Ложь;
Для Каждого Ссылка Из Параметры.МассивСсылок Цикл
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Идентификатор, Версия, ОбновлятьСПортала1СИТС");
ТекстПояснения = ТекстПояснения
+ ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты(Реквизиты.Идентификатор, Реквизиты. Версия)
+ ?(Реквизиты.ОбновлятьСПортала1СИТС, "", НСтр("ru = ' - обновление отключено.'"))
+ Символы.ПС;
ПредложитьОбновление = ПредложитьОбновление Или Реквизиты.ОбновлятьСПортала1СИТС;
Если Реквизиты.ОбновлятьСПортала1СИТС Тогда
МассивСсылок.Добавить(Ссылка);
КонецЕсли;
КонецЦикла;
Если ПредложитьОбновление Тогда
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|Проверить обновление компоненты?'"),
ТекстПояснения);
Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены;
Элементы.Закрыть.Видимость = Ложь;
Иначе
Элементы.ДекорацияПояснение.Заголовок = ТекстПояснения;
Элементы.ПодключитьИнтернетПоддержку.Видимость = Ложь;
Элементы.Загрузить.Видимость = Ложь;
Элементы.Отмена.Видимость = Ложь;
Элементы.Закрыть.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не ДоступнаЗагрузкаСПортала Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодключитьИнтернетПоддержку(Команда = Неопределено)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент");
Оповещение = Новый ОписаниеОповещения("ПослеПодключенияИнтернетПоддержки", ЭтотОбъект);
МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(Оповещение, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Загрузить(Команда)
Если Не ДанныеАутентификацииПорталаСохранены Тогда
ПодключитьИнтернетПоддержку();
Возврат;
КонецЕсли;
Элементы.Загрузить.Доступность = Ложь;
Элементы.Страницы.ТекущаяСтраница = Элементы.ДлительнаяОперация;
ДлительнаяОперация = НачатьОбновлениеКомпонентСПортала();
Если ДлительнаяОперация = Неопределено Тогда
КраткоеПредставлениеОшибки = НСтр("ru = 'Не удалось создать фоновое задание обновления компоненты.'");
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
Оповещение = Новый ОписаниеОповещения("ПослеОбновленияКомпонентСПортала", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПослеПодключенияИнтернетПоддержки(Результат, Параметр) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.ПодключитьИнтернетПоддержку.Видимость = Ложь;
ДанныеАутентификацииПорталаСохранены = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеАутентификацииПорталаСохранены()
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
Возврат МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки();
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаСервере
Функция НачатьОбновлениеКомпонентСПортала()
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("МассивСсылок", МассивСсылок.ВыгрузитьЗначения());
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление внешней компоненты.'");
Возврат ДлительныеОперации.ВыполнитьВФоне("ВнешниеКомпонентыСлужебный.ОбновитьКомпонентыСПортала",
ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
&НаКлиенте
Процедура ПослеОбновленияКомпонентСПортала(Результат, ДополнительныеПараметры) Экспорт
// Ответ:
// - Структура - Выполнено - результат в структуре.
// - Неопределено - Отменено пользователем.
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
КраткоеПредставлениеОшибки = Результат.КраткоеПредставлениеОшибки;
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Элементы.Страницы.ТекущаяСтраница = Элементы.Выполнено;
Элементы.Загрузить.Видимость = Ложь;
Элементы.Отмена.Видимость = Ложь;
Элементы.Закрыть.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,605 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>Страницы</name>
<id>1</id>
<items xsi:type="form:FormGroup">
<name>Начальная</name>
<id>3</id>
<items xsi:type="form:FormGroup">
<name>Шапка</name>
<id>11</id>
<items xsi:type="form:Decoration">
<name>Предупреждение32</name>
<id>13</id>
<title>
<key>ru</key>
<value>Предупреждение32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Предупреждение32РасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Предупреждение32КонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<skipOnInput>false</skipOnInput>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияПояснение</name>
<id>16</id>
<title>
<key>ru</key>
<value>%1
Компонента не загружена в программу.
Загрузить?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПояснениеРасширеннаяПодсказка</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПояснениеКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<maxWidth>75</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<font xsi:type="core:FontRef">
<font>Style.NormalTextFont</font>
<scale>100</scale>
</font>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Шапка</value>
</title>
<extendedTooltip>
<name>ШапкаРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ПодключитьИнтернетПоддержку</name>
<id>22</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПодключитьИнтернетПоддержкуРасширеннаяПодсказка</name>
<id>23</id>
<title>
<key>ru</key>
<value>Для использования веб-сервиса 1С и загрузки внешних компонент необходимо выполнить подключение к Интернет-поддержке пользователей.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ПодключитьИнтернетПоддержку</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>Button</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Начальная</value>
</title>
<extendedTooltip>
<name>НачальнаяРасширеннаяПодсказка</name>
<id>4</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ДлительнаяОперация</name>
<id>32</id>
<items xsi:type="form:Decoration">
<name>ДлительнаяОперация48</name>
<id>34</id>
<title>
<key>ru</key>
<value>Длительная операция48</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДлительнаяОперация48РасширеннаяПодсказка</name>
<id>36</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДлительнаяОперация48КонтекстноеМеню</name>
<id>35</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ДлительнаяОперация48</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДлительнаяОперацияНадпись</name>
<id>37</id>
<title>
<key>ru</key>
<value>Выполняется получение компоненты с Портала 1С:ИТС</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДлительнаяОперацияНадписьРасширеннаяПодсказка</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДлительнаяОперацияНадписьКонтекстноеМеню</name>
<id>38</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Длительная операция</value>
</title>
<extendedTooltip>
<name>ДлительнаяОперацияРасширеннаяПодсказка</name>
<id>33</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<verticalAlign>Center</verticalAlign>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Ошибка</name>
<id>42</id>
<items xsi:type="form:Decoration">
<name>Ошибка32</name>
<id>47</id>
<title>
<key>ru</key>
<value>Ошибка32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Ошибка32РасширеннаяПодсказка</name>
<id>49</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Ошибка32КонтекстноеМеню</name>
<id>48</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Ошибка32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КраткоеПредставлениеОшибки</name>
<id>44</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>КраткоеПредставлениеОшибки</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>КраткоеПредставлениеОшибкиРасширеннаяПодсказка</name>
<id>46</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КраткоеПредставлениеОшибкиКонтекстноеМеню</name>
<id>45</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка</value>
</title>
<extendedTooltip>
<name>ОшибкаРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы</value>
</title>
<extendedTooltip>
<name>СтраницыРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>Загрузить</name>
<id>28</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ЗагрузитьРасширеннаяПодсказка</name>
<id>29</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Загрузить</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Отмена</name>
<id>30</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОтменаРасширеннаяПодсказка</name>
<id>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Cancel</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Help</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ДоступнаЗагрузкаСПортала</name>
<title>
<key>ru</key>
<value>Доступна загрузка с портала 1С:ИТС</value>
</title>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДанныеАутентификацииПорталаСохранены</name>
<title>
<key>ru</key>
<value>Данные аутентификации портала сохранены</value>
</title>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>КраткоеПредставлениеОшибки</name>
<title>
<key>ru</key>
<value>Краткое представление ошибки</value>
</title>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПодключитьИнтернетПоддержку</name>
<title>
<key>ru</key>
<value>Подключить интернет поддержку</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Подключить интернет поддержку</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПодключитьИнтернетПоддержку</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>Загрузить</name>
<title>
<key>ru</key>
<value>Загрузить</value>
</title>
<id>2</id>
<toolTip>
<key>ru</key>
<value>Загрузить</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Загрузить</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ТекстПояснения</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>Идентификатор</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>Версия</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -0,0 +1,144 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
Если Не ПустаяСтрока(Параметры.ТекстПояснения) Тогда
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Компонента не загружена в программу.
|Загрузить?'"),
Параметры.ТекстПояснения);
КонецЕсли;
ДанныеАутентификацииПорталаСохранены = ДанныеАутентификацииПорталаСохранены();
ДоступнаЗагрузкаСПортала = ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала();
Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не ДоступнаЗагрузкаСПортала Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодключитьИнтернетПоддержку(Команда = Неопределено)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент");
Оповещение = Новый ОписаниеОповещения("ПослеПодключенияИнтернетПоддержки", ЭтотОбъект);
МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(Оповещение, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Загрузить(Команда)
Если Не ДанныеАутентификацииПорталаСохранены Тогда
ПодключитьИнтернетПоддержку();
Возврат;
КонецЕсли;
Элементы.Загрузить.Доступность = Ложь;
Элементы.Страницы.ТекущаяСтраница = Элементы.ДлительнаяОперация;
ДлительнаяОперация = НачатьПолучениеКомпонентыСПортала(Параметры.Идентификатор, Параметры.Версия);
Если ДлительнаяОперация = Неопределено Тогда
КраткоеПредставлениеОшибки = НСтр("ru = 'Не удалось создать фоновое задание обновления компоненты.'");
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
Оповещение = Новый ОписаниеОповещения("ПослеПолученияКомпонентыСПортала", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПослеПодключенияИнтернетПоддержки(Результат, Параметр) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.ПодключитьИнтернетПоддержку.Видимость = Ложь;
ДанныеАутентификацииПорталаСохранены = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеАутентификацииПорталаСохранены()
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
Возврат МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки();
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаСервере
Функция НачатьПолучениеКомпонентыСПортала(Идентификатор, Версия)
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("Идентификатор", Идентификатор);
ПараметрыПроцедуры.Вставить("Версия", Версия);
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение внешней компоненты.'");
Возврат ДлительныеОперации.ВыполнитьВФоне("ВнешниеКомпонентыСлужебный.НоваяКомпонентаСПортала",
ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
&НаКлиенте
Процедура ПослеПолученияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт
// Ответ:
// - Структура - Выполнено - результат в структуре.
// - Неопределено - Отменено пользователем.
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
КраткоеПредставлениеОшибки = Результат.КраткоеПредставлениеОшибки;
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
Закрыть(Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -136,6 +136,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -146,20 +147,25 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name> <name>КоманднаяПанель</name>
<id>36</id> <id>36</id>
<items xsi:type="form:FormGroup">
<name>ГруппаДействие</name>
<id>65</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ФормаОбновитьССайта</name> <name>ФормаСоздать</name>
<id>67</id> <id>69</id>
<title>
<key>ru</key>
<value>Добавить из файла...</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<extendedTooltip> <extendedTooltip>
<name>ФормаОбновитьССайтаРасширеннаяПодсказка</name> <name>ФормаСоздатьРасширеннаяПодсказка</name>
<id>68</id> <id>70</id>
<title>
<key>ru</key>
<value>Добавить из файла на диске...</value>
</title>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -167,15 +173,17 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<commandName>Form.Command.ОбновитьССайта</commandName> <commandName>Form.StandardCommand.Create</commandName>
<buttonImportance>Normal</buttonImportance> <buttonImportance>Normal</buttonImportance>
<representation>Auto</representation> <representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items> </items>
<items xsi:type="form:FormGroup">
<name>ГруппаДействие</name>
<id>65</id>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ФормаОбновитьИзФайла</name> <name>ФормаОбновитьИзФайла</name>
<id>58</id> <id>58</id>
@@ -227,6 +235,33 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button">
<name>ОбновитьСПортала1СИТС</name>
<id>67</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОбновитьСПортала1СИТСРасширеннаяПодсказка</name>
<id>68</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ОбновитьСПортала1СИТС</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
@@ -368,7 +403,7 @@
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ОбновлятьССайта</name> <name>ОбновлятьСПортала1СИТС</name>
<id>28</id> <id>28</id>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
@@ -376,11 +411,11 @@
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>Список.ОбновлятьССайта</segments> <segments>Список.ОбновлятьСПортала1СИТС</segments>
</dataPath> </dataPath>
<titleLocation>None</titleLocation> <titleLocation>None</titleLocation>
<extendedTooltip> <extendedTooltip>
<name>ОбновлятьССайтаРасширеннаяПодсказка</name> <name>ОбновлятьСПортала1СИТСРасширеннаяПодсказка</name>
<id>30</id> <id>30</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
@@ -390,7 +425,7 @@
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>ОбновлятьССайтаКонтекстноеМеню</name> <name>ОбновлятьСПортала1СИТСКонтекстноеМеню</name>
<id>29</id> <id>29</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
@@ -710,7 +745,7 @@
Таблица.Версия КАК Версия, Таблица.Версия КАК Версия,
Таблица.Идентификатор КАК Идентификатор, Таблица.Идентификатор КАК Идентификатор,
Таблица.Использование КАК Использование, Таблица.Использование КАК Использование,
Таблица.ОбновлятьССайта КАК ОбновлятьССайта, Таблица.ОбновлятьСПортала1СИТС КАК ОбновлятьСПортала1СИТС,
Таблица.ДатаВерсии КАК ДатаВерсии Таблица.ДатаВерсии КАК ДатаВерсии
ИЗ ИЗ
Справочник.ВнешниеКомпоненты КАК Таблица</queryText> Справочник.ВнешниеКомпоненты КАК Таблица</queryText>
@@ -743,7 +778,7 @@
<name>ОбновитьИзФайла</name> <name>ОбновитьИзФайла</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Обновить из файла на диске...</value> <value>Обновить из файла...</value>
</title> </title>
<id>2</id> <id>2</id>
<toolTip> <toolTip>
@@ -761,6 +796,7 @@
<name>ОбновитьИзФайла</name> <name>ОбновитьИзФайла</name>
</handler> </handler>
</action> </action>
<representation>TextPicture</representation>
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
@@ -790,24 +826,28 @@
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands> <formCommands>
<name>ОбновитьССайта</name> <name>ОбновитьСПортала1СИТС</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Обновить с сайта</value> <value>Обновить с Портала 1С:ИТС</value>
</title> </title>
<id>1</id> <id>1</id>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Обновить с сайта</value> <value>Обновить с Портала 1С:ИТС</value>
</toolTip> </toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ОбновлениеВнешнихКомпонентССайта</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>ОбновитьССайта</name> <name>ОбновитьСПортала</name>
</handler> </handler>
</action> </action>
<representation>TextPicture</representation>
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
@@ -10,10 +10,10 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаССайта() Тогда Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Элементы.ОбновлятьССайта.Видимость = Ложь; Элементы.ОбновлятьСПортала1СИТС.Видимость = Ложь;
Элементы.ФормаОбновитьССайта.Видимость = Ложь; Элементы.ОбновитьСПортала1СИТС.Видимость = Ложь;
КонецЕсли; КонецЕсли;
@@ -55,9 +55,17 @@
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
&НаКлиенте &НаКлиенте
Процедура ОбновитьССайта(Команда) Процедура ОбновитьСПортала(Команда)
ОбновитьКомпонентыССайта(); МассивСсылок = Элементы.Список.ВыделенныеСтроки;
Если МассивСсылок.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПослеОбновленияКомпонентыСПортала", ЭтотОбъект);
ВнешниеКомпонентыСлужебныйКлиент.ОбновитьКомпонентыСПортала(Оповещение, МассивСсылок);
КонецПроцедуры КонецПроцедуры
@@ -72,6 +80,7 @@
ПараметрыФормы = Новый Структура; ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ключ", ДанныеСтроки.Ссылка); ПараметрыФормы.Вставить("Ключ", ДанныеСтроки.Ссылка);
ПараметрыФормы.Вставить("ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии", Истина); ПараметрыФормы.Вставить("ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии", Истина);
ОткрытьФорму("Справочник.ВнешниеКомпоненты.ФормаОбъекта", ПараметрыФормы); ОткрытьФорму("Справочник.ВнешниеКомпоненты.ФормаОбъекта", ПараметрыФормы);
КонецПроцедуры КонецПроцедуры
@@ -92,90 +101,13 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Выполняет обновление компонент с сайта
&НаКлиенте &НаКлиенте
Процедура ОбновитьКомпонентыССайта() Процедура ПослеОбновленияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт
МассивСсылок = Элементы.Список.ВыделенныеСтроки;
Если МассивСсылок.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ДлительнаяОперация = НачатьОбновлениеКомпонентССайтаНаСервере(МассивСсылок);
Если ДлительнаяОперация = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ТекстСообщения = НСтр("ru = 'Выполняется обновление внешних компонент...'");
ПараметрыОжидания.ВыводитьОкноОжидания = Истина;
ПараметрыОжидания.ВыводитьСообщения = Истина;
Оповещение = Новый ОписаниеОповещения("ОбновитьКомпонентыССайтаЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
КонецПроцедуры
// Продолжение процедуры ОбновитьКомпонентыССайта
&НаКлиенте
Процедура ОбновитьКомпонентыССайтаЗавершение(Результат, ДополнительныеПараметры) Экспорт
// Ответ:
// - Структура - Выполнено - результат в структуре.
// - Неопределено - Отменено пользователем.
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Сообщения <> Неопределено Тогда
Для каждого СообщениеПользователю Из Результат.Сообщения Цикл
ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление с сайта'"),,
СообщениеПользователю.Текст, БиблиотекаКартинок.Информация32);
КонецЦикла;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ТекстОшибки = НСтр("ru = 'Ошибка при обновлении с сайта: %1.'");
ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление с сайта'"),,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
Результат.КраткоеПредставлениеОшибки),
БиблиотекаКартинок.Ошибка32);
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
Элементы.Список.Обновить(); Элементы.Список.Обновить();
ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление с сайта'"),,
НСтр("ru = 'Обновление с сайта завершено.'"), БиблиотекаКартинок.Информация32);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
/////////////////////////////////////////////////////////
// Серверная логика модели представления.
// Серверная логика обновления компоненты с сайта.
&НаСервере
Функция НачатьОбновлениеКомпонентССайтаНаСервере(МассивСсылок)
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаССайта() Тогда
Возврат Неопределено;
КонецЕсли;
Если МассивСсылок.Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление внешней компоненты.'");
Возврат ДлительныеОперации.ВыполнитьВФоне("ВнешниеКомпонентыСлужебный.ОбновитьКомпонентыССайта",
МассивСсылок, ПараметрыВыполнения);
КонецФункции
///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
// Представление данных на форме. // Представление данных на форме.
@@ -1,9 +1,21 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body>
<p>Информация о внешней компоненте.</p> <p>Информация о внешней компоненте.</p>
<p>Открывается из списка <a href="Catalog.ВнешниеКомпоненты/Help">Внешние компоненты</a> по кнопке <strong>Создать</strong> или двойному щелчку мыши (также по команде <strong>Еще - Изменить</strong>).</p> <p>Открывается из списка <a href="Catalog.ВнешниеКомпоненты/Help">Внешние компоненты</a> по кнопке <strong>Добавить из файла</strong> или двойному щелчку мыши (также по команде <strong>Еще - Изменить</strong>).</p>
<p>Разработчик размещает в файле внешней компоненты необходимую информацию для ее установки, поэтому основные поля в карточке внешней компоненты заполняются автоматически. Поля являются обязательными для заполнения:</p> <p>Разработчик размещает в файле внешней компоненты необходимую информацию для ее установки, поэтому основные поля в карточке внешней компоненты заполняются автоматически. Поля являются обязательными для заполнения:</p>
<ul><li><strong>Идентификатор</strong> - внутренний идентификатор объекта внешней компоненты; <ul><li><strong>Идентификатор</strong> - внутренний идентификатор объекта внешней компоненты;
</li><li><strong>Наименование</strong> - полное наименование внешней компоненты - выводится пользователям при установке внешней компоненты; </li><li><strong>Версия</strong> - номер версии, с его помощью впоследствии можно определить актуальность внешней компоненты;
</li><li><strong>Версия</strong> - номер версии, с его помощью впоследствии можно определить актуальность внешней компоненты.</li></ul><p>Если после автоматического заполнения остались незаполненными поля, которые являются обязательными для заполнения, карточка не запишется. В этом случае необходимо заполнить их вручную.</p> </li><li><strong>Наименование</strong> - полное наименование внешней компоненты - выводится пользователям при установке внешней компоненты.
<h3>См. также:</h3> </li><li><strong>Обновлять с портала 1С:ИТС</strong> - включите флажок, для того чтобы внешняя компонента автоматически обновлялась с сайта 1С:ИТС.</li></ul><p>Если после автоматического заполнения остались незаполненными поля, которые являются обязательными для заполнения, карточка не запишется. В этом случае необходимо заполнить их вручную.</p>
<h3>Состояние внешней компоненты</h3>
<p>С помощью тумблера можно установить состояние внешней компоненты:</p>
<ul><li><strong>Используется</strong> - устанавливается по умолчанию при подключении внешней компоненты;
</li><li><strong>Отключена</strong> - если использование внешней компоненты в данный момент по каким-либо причинам не нужно (например, сначала ее необходимо протестировать, когда в программе не будет пользователей), можно не удалять ее, а выбрать это положение тумблера. В этом случае внешняя компоненты останется в программе, но не будет никому доступна.</li></ul><h3>Обновление внешней компоненты с портала 1С:ИТС</h3>
<ul><li>
<div>Нажмите кнопку <img src="CommonPicture.ОбновлениеВнешнихКомпонентССайта"></img>, для того чтобы обновить внешнюю компоненту с портала 1С:ИТС. Доступно для внешних компонент, полученных на портале 1С:ИТС.</div></li></ul><h3>Обновление внешней компоненты</h3>
<ul><li>Нажмите кнопку <img src="CommonPicture.ОбновитьФайлИзФайлаНаДиске"></img> <strong>Обновить из файла</strong>. Программа выводит <strong>Предупреждение безопасности</strong>.
</li><li>Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите кнопку <strong>Продолжить</strong>.
</li><li>Укажите путь к файлу на компьютере, нажмите кнопку <strong>Открыть</strong>.
</li><li>Информация в карточке внешней компоненты будет обновлена.</li></ul><h3>Сохранение на компьютер</h3>
<ul><li>Сохраненную на компьютер внешнюю компоненту можно будет использовать в случае нештатных ситуаций.
</li><li>Нажмите <img src="CommonPicture.СохранитьФайлКак"></img> <strong>Сохранить как</strong>.  Укажите путь к файлу на компьютере. Нажмите <strong>Сохранить</strong>.</li></ul><h3>См. также:</h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html> <ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
@@ -1,4 +1,11 @@
#Область ОписаниеПеременных
&НаКлиенте
Перем ДополнительнаяИнформация;
#КонецОбласти
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
&НаСервере &НаСервере
@@ -16,10 +23,10 @@
УстановитьВидимостьДоступность(); УстановитьВидимостьДоступность();
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаССайта() Тогда Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Элементы.ОбновлятьССайта.Видимость = Ложь; Элементы.ОбновлятьСПортала1СИТС.Видимость = Ложь;
Элементы.ФормаОбновитьССайта.Видимость = Ложь; Элементы.ОбновитьСПортала1СИТС.Видимость = Ложь;
КонецЕсли; КонецЕсли;
@@ -40,9 +47,9 @@
// Если вызвана команда "Перечитать" необходимо удалить буфер данных компоненты // Если вызвана команда "Перечитать" необходимо удалить буфер данных компоненты
Если ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты) Тогда Если ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты) Тогда
УдалитьИзВременногоХранилища(АдресДвоичныхДанныхКомпоненты); УдалитьИзВременногоХранилища(АдресДвоичныхДанныхКомпоненты);
АдресДвоичныхДанныхКомпоненты = Неопределено;
КонецЕсли; КонецЕсли;
АдресДвоичныхДанныхКомпоненты = Неопределено;
УстановитьВидимостьДоступность(); УстановитьВидимостьДоступность();
КонецПроцедуры КонецПроцедуры
@@ -58,22 +65,39 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Записана = Истина; // Факт записи свидетельствует положительный результат при закрытии отдельно от записи.
Параметры.ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии = Ложь; // Избежание закрытия формы при ошибке.
КонецПроцедуры
&НаСервере &НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Если Не ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда
УстановитьВидимостьДоступность(); УстановитьВидимостьДоступность();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи) Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда Если ЗавершениеРаботы Тогда
ЗакрытьСПараметромЗакрытия(); Возврат;
КонецЕсли; КонецЕсли;
СтандартнаяОбработка = Ложь;
ПараметрЗакрытия = ВнешниеКомпонентыСлужебныйКлиент.РезультатЗагрузкиКомпоненты();
ПараметрЗакрытия.Загружена = Записана;
ПараметрЗакрытия.Идентификатор = Объект.Идентификатор;
ПараметрЗакрытия.Версия = Объект.Версия;
ПараметрЗакрытия.Наименование = Объект.Наименование;
ПараметрЗакрытия.ДополнительнаяИнформация = ДополнительнаяИнформация;
Закрыть(ПараметрЗакрытия);
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -87,23 +111,28 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОбновлятьСПортала1СИТСПриИзменении(Элемент)
УстановитьВидимостьДоступность();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
&НаКлиенте &НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда) Процедура ОбновитьСПортала(Команда)
ОчиститьСообщения(); Если Модифицированность Тогда
Записать(Новый Структура("ЗаписатьИЗакрыть")); Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаЗаписатьОбъект", ЭтотОбъект);
ПоказатьВопрос(Оповещение,
КонецПроцедуры НСтр("ru = 'Для проверки обновления необходимо записать объект. Записать?'"),
РежимДиалогаВопрос.ДаНет);
&НаКлиенте Иначе
Процедура ОбновитьССайта(Команда) НачатьОбновлениеКомпонентыСПортала();
КонецЕсли;
ОчиститьСообщения();
ОбновитьКомпонентуССайта();
КонецПроцедуры КонецПроцедуры
@@ -127,10 +156,39 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПоддерживаемыеКлиентскиеПриложения(Команда)
Реквизиты = Новый Структура;
Реквизиты.Вставить("Windows_x86");
Реквизиты.Вставить("Windows_x86_64");
Реквизиты.Вставить("Linux_x86");
Реквизиты.Вставить("Linux_x86_64");
Реквизиты.Вставить("Windows_x86_Firefox");
Реквизиты.Вставить("Linux_x86_Firefox");
Реквизиты.Вставить("Linux_x86_64_Firefox");
Реквизиты.Вставить("Windows_x86_MSIE");
Реквизиты.Вставить("Windows_x86_64_MSIE");
Реквизиты.Вставить("Windows_x86_Chrome");
Реквизиты.Вставить("Linux_x86_Chrome");
Реквизиты.Вставить("Linux_x86_64_Chrome");
Реквизиты.Вставить("MacOS_x86_64_Safari");
ЗаполнитьЗначенияСвойств(Реквизиты, Объект);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПоддерживаемыеКлиенты", Реквизиты);
ОткрытьФорму("ОбщаяФорма.ПоддерживаемыеКлиентскиеПриложения", ПараметрыФормы);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
#Область КлиентскаяЛогика
// Строит диалог загрузки компоненты из файла. // Строит диалог загрузки компоненты из файла.
&НаКлиенте &НаКлиенте
Процедура ЗагрузитьКомпонентуИзФайла() Процедура ЗагрузитьКомпонентуИзФайла()
@@ -150,7 +208,7 @@
// - КодВозвратаДиалога.Отмена - Отклонить. // - КодВозвратаДиалога.Отмена - Отклонить.
// - Неопределено - Закрыто окно. // - Неопределено - Закрыто окно.
Если Ответ <> "Продолжить" Тогда Если Ответ <> "Продолжить" Тогда
ЗагрузитьКомпонентуЗавершение(Контекст); ЗагрузитьКомпонентуПриОтображенииОшибки();
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -170,7 +228,7 @@
Процедура ЗагрузитьКомпонентуПослеПомещенияФайла(ПомещенныеФайлы, Контекст) Экспорт Процедура ЗагрузитьКомпонентуПослеПомещенияФайла(ПомещенныеФайлы, Контекст) Экспорт
Если ПомещенныеФайлы = Неопределено Или ПомещенныеФайлы.Количество() = 0 Тогда Если ПомещенныеФайлы = Неопределено Или ПомещенныеФайлы.Количество() = 0 Тогда
ЗагрузитьКомпонентуЗавершение(Контекст); ЗагрузитьКомпонентуПриОтображенииОшибки(НСтр("ru = 'Файл не удалось загрузить на сервер.'"));
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -181,95 +239,85 @@
ПараметрыЗагрузки.Вставить("ИмяФайла", ТолькоИмяФайла(ОписаниеФайла.Имя)); ПараметрыЗагрузки.Вставить("ИмяФайла", ТолькоИмяФайла(ОписаниеФайла.Имя));
Результат = ЗагрузитьКомпонентуИзФайлаНаСервере(ПараметрыЗагрузки); Результат = ЗагрузитьКомпонентуИзФайлаНаСервере(ПараметрыЗагрузки);
Если Не Результат.Загружено Если Результат.Загружена И ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты)Тогда
Или Не ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты)Тогда ДополнительнаяИнформация = Результат.ДополнительнаяИнформация;
Иначе
ЗагрузитьКомпонентуПриОтображенииОшибки(Результат.ОписаниеОшибки);
КонецЕсли;
// Ошибка при загрузке. КонецПроцедуры
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеОтображенияОшибки", ЭтотОбъект, Контекст); // Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
&НаКлиенте
Процедура ЗагрузитьКомпонентуПриОтображенииОшибки(ОписаниеОшибки = "")
Если ПустаяСтрока(ОписаниеОшибки) Тогда
ЗагрузитьКомпонентуПослеОтображенияОшибки(Неопределено);
Иначе
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеОтображенияОшибки", ЭтотОбъект);
СтрокаСПредупреждением = Новый ФорматированнаяСтрока( СтрокаСПредупреждением = Новый ФорматированнаяСтрока(
Результат.ОписаниеОшибки, Символы.ПС, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Необходимо указать zip-архив с внешней компонентой. НСтр("ru = '%1
|Необходимо указать zip-архив с внешней компонентой.
|Подробнее:'"), |Подробнее:'"),
Новый ФорматированнаяСтрока("http://its.1c.ru/db/metodtorg/content/3221/hdoc",,,, "http://its.1c.ru/db/metodtorg/content/3221/hdoc"), "."); ОписаниеОшибки),
Новый ФорматированнаяСтрока("http://its.1c.ru/db/metodtorg/content/3221/hdoc",,,,
"http://its.1c.ru/db/metodtorg/content/3221/hdoc"), ".");
ПоказатьПредупреждение(Оповещение, СтрокаСПредупреждением); ПоказатьПредупреждение(Оповещение, СтрокаСПредупреждением);
Иначе
// Успешно загружена.
Если ПроверитьЗаполнение() Тогда
ЗагрузитьКомпонентуЗавершение(Контекст);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Продолжение процедуры ЗагрузитьКомпонентуИзФайла. // Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
&НаКлиенте &НаКлиенте
Процедура ЗагрузитьКомпонентуПослеОтображенияОшибки(Контекст) Экспорт Процедура ЗагрузитьКомпонентуПослеОтображенияОшибки(ДополнительныеПараметры) Экспорт
ЗагрузитьКомпонентуЗавершение(Контекст); // Открыта через программный интерфейс.
Если Параметры.ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии Тогда
КонецПроцедуры
// Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
&НаКлиенте
Процедура ЗагрузитьКомпонентуЗавершение(Контекст)
Если Параметры.ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии И Открыта() Тогда
Закрыть(); Закрыть();
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Выполняет обновление компоненты с сайта.
&НаКлиенте &НаКлиенте
Процедура ОбновитьКомпонентуССайта() Процедура ПослеЗакрытияВопросаЗаписатьОбъект(РезультатВопроса, Контекст) Экспорт
ДлительнаяОперация = НачатьОбновлениеКомпонентыССайтаНаСервере(); Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
Записать();
Если ДлительнаяОперация = Неопределено Тогда НачатьОбновлениеКомпонентыСПортала();
Возврат;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ТекстСообщения = НСтр("ru = 'Выполняется обновление внешней компоненты...'");
ПараметрыОжидания.ВыводитьОкноОжидания = Истина;
Оповещение = Новый ОписаниеОповещения("ОбновитьКомпонентуССайтаЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
КонецПроцедуры
// Продолжение процедуры ОбновитьКомпонентуССайта.
&НаКлиенте
Процедура ОбновитьКомпонентуССайтаЗавершение(Результат, ДополнительныеПараметры) Экспорт
// Ответ:
// - Структура - Выполнено - результат в структуре.
// - Неопределено - Отменено пользователем.
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ПоказатьПредупреждение(, Результат.КраткоеПредставлениеОшибки);
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
ЗавершитьОбновлениеКомпонентыССайтаНаСервере(Результат);
ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление с сайта'"),,
НСтр("ru = 'Внешняя компонента успешно обновлена.'"), БиблиотекаКартинок.Успешно32);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
///////////////////////////////////////////////////////// &НаКлиенте
// Серверная логика модели представления. Процедура НачатьОбновлениеКомпонентыСПортала()
ЭтоНовый = Объект.Ссылка.Пустая();
Если ЭтоНовый Тогда
Возврат;
КонецЕсли;
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(Объект.Ссылка);
Оповещение = Новый ОписаниеОповещения("ПослеОбновленияКомпонентыСПортала", ЭтотОбъект);
ВнешниеКомпонентыСлужебныйКлиент.ОбновитьКомпонентыСПортала(Оповещение, МассивСсылок);
КонецПроцедуры
&НаКлиенте
Процедура ПослеОбновленияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт
ОбновитьКарточкуПослеОбновленияКомпонентыСПортала();
КонецПроцедуры
#КонецОбласти
#Область СервернаяЛогика
// Серверная логика процедуры ЗагрузитьКомпонентуИзФайла. // Серверная логика процедуры ЗагрузитьКомпонентуИзФайла.
&НаСервере &НаСервере
@@ -281,77 +329,87 @@
ОбъектСправочника = РеквизитФормыВЗначение("Объект"); ОбъектСправочника = РеквизитФормыВЗначение("Объект");
Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпоненте(ПараметрыЗагрузки.АдресХранилищаФайла); Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(ПараметрыЗагрузки.АдресХранилищаФайла,,
Параметры.ПараметрыПоискаДополнительнойИнформации);
Результат = РезультатЗагрузкиКомпоненты();
Если Не Информация.Разобрано Тогда Если Не Информация.Разобрано Тогда
Возврат Новый Структура("Загружено, ОписаниеОшибки", Ложь, Информация.ОписаниеОшибки); Результат.ОписаниеОшибки = Информация.ОписаниеОшибки;
Возврат Результат;
КонецЕсли; КонецЕсли;
ЗаполнитьЗначенияСвойств(ОбъектСправочника, Информация.Реквизиты); // По данным манифеста. Если ЗначениеЗаполнено(ОбъектСправочника.Идентификатор)
И ЗначениеЗаполнено(Информация.Реквизиты.Идентификатор) Тогда
Если ОбъектСправочника.Идентификатор <> Информация.Реквизиты.Идентификатор Тогда
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Текущий идентификатор %1 отличается от загружаемого %2
|Обновление невозможно.'"),
ОбъектСправочника.Идентификатор,
Информация.Реквизиты.Идентификатор);
Возврат Результат;
КонецЕсли;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ОбъектСправочника, Информация.Реквизиты,, "Идентификатор"); // По данным манифеста.
Если Не ЗначениеЗаполнено(ОбъектСправочника.Идентификатор) Тогда
ОбъектСправочника.Идентификатор = Информация.Реквизиты.Идентификатор;
КонецЕсли;
ОбъектСправочника.ИмяФайла = ПараметрыЗагрузки.ИмяФайла; // Установка имени файла. ОбъектСправочника.ИмяФайла = ПараметрыЗагрузки.ИмяФайла; // Установка имени файла.
АдресДвоичныхДанныхКомпоненты = ПоместитьВоВременноеХранилище(Информация.ДвоичныеДанные, АдресДвоичныхДанныхКомпоненты = ПоместитьВоВременноеХранилище(Информация.ДвоичныеДанные,
УникальныйИдентификатор); УникальныйИдентификатор);
ОбъектСправочника.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Загружена из файла %1. %2.'"),
ОбъектСправочника.ИмяФайла,
ТекущаяДатаСеанса());
ЗначениеВРеквизитФормы(ОбъектСправочника, "Объект"); ЗначениеВРеквизитФормы(ОбъектСправочника, "Объект");
Модифицированность = Истина; Модифицированность = Истина;
УстановитьВидимостьДоступность(); УстановитьВидимостьДоступность();
Возврат Новый Структура("Загружено", Истина); Результат.Загружена = Истина;
Результат.ДополнительнаяИнформация = Информация.ДополнительнаяИнформация;
Возврат Результат;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция РезультатЗагрузкиКомпоненты()
Результат = Новый Структура;
Результат.Вставить("Загружена", Ложь);
Результат.Вставить("ОписаниеОшибки", "");
Результат.Вставить("ДополнительнаяИнформация", Новый Соответствие);
Возврат Результат;
КонецФункции КонецФункции
// Серверная логика обновления компоненты с сайта. // Серверная логика обновления компоненты с сайта.
&НаСервере &НаСервере
Функция НачатьОбновлениеКомпонентыССайтаНаСервере() Процедура ОбновитьКарточкуПослеОбновленияКомпонентыСПортала()
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаССайта() Тогда
Возврат Неопределено;
КонецЕсли;
ЭтоНовый = Объект.Ссылка.Пустая();
Если ЭтоНовый Тогда
Возврат Неопределено;
КонецЕсли;
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(Объект.Ссылка);
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление внешней компоненты.'");
Возврат ДлительныеОперации.ВыполнитьВФоне("ВнешниеКомпонентыСлужебный.ОбновитьКомпонентыССайта",
МассивСсылок, ПараметрыВыполнения);
КонецФункции
// Серверная логика обновления компоненты с сайта.
&НаСервере
Процедура ЗавершитьОбновлениеКомпонентыССайтаНаСервере(Результат)
// Обновление формы по новому значению объекта в ИБ.
ЭтотОбъект.Прочитать(); ЭтотОбъект.Прочитать();
Модифицированность = Ложь; Модифицированность = Ложь;
УстановитьВидимостьДоступность(); УстановитьВидимостьДоступность();
КонецПроцедуры КонецПроцедуры
///////////////////////////////////////////////////////// #КонецОбласти
// Представление данных на форме.
#Область Представление
// Для внутреннего использования.
&НаСервере &НаСервере
Процедура УстановитьВидимостьДоступность() Процедура УстановитьВидимостьДоступность()
СправочникОбъект = РеквизитФормыВЗначение("Объект");
ЭтоНовый = Объект.Ссылка.Пустая(); ЭтоНовый = Объект.Ссылка.Пустая();
// Отображение описания ошибки. Элементы.Информация.Видимость = Не ЭтоНовый И ЗначениеЗаполнено(Объект.ОписаниеОшибки);
Элементы.ОшибкаКомпоненты.Видимость = Ложь;
// Зависимость использования и автоматического обновления.
КомпонентаОтключена = (Объект.Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена);
Элементы.ОбновлятьССайта.Доступность = Не КомпонентаОтключена;
// Параметры отображения предупреждений при редактировании // Параметры отображения предупреждений при редактировании
ОтображатьПредупреждение = ОтображениеПредупрежденияПриРедактировании.Отображать; ОтображатьПредупреждение = ОтображениеПредупрежденияПриРедактировании.Отображать;
@@ -374,33 +432,20 @@
// Доступность кнопки Сохранить в файл // Доступность кнопки Сохранить в файл
Элементы.ФормаСохранитьКак.Доступность = Не ЭтоНовый; Элементы.ФормаСохранитьКак.Доступность = Не ЭтоНовый;
Элементы.ФормаОбновитьССайта.Доступность = Не ЭтоНовый; Элементы.ОбновитьСПортала1СИТС.Доступность = Не ЭтоНовый;
// Зависимость использования и автоматического обновления.
КомпонентаОтключена = (Объект.Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена);
Элементы.ОбновлятьСПортала1СИТС.Доступность = Не КомпонентаОтключена И СправочникОбъект.ЭтоКомпонентаПоследнейВерсии();
Элементы.ОбновитьСПортала1СИТС.Доступность = Объект.ОбновлятьСПортала1СИТС;
КонецПроцедуры КонецПроцедуры
///////////////////////////////////////////////////////// #КонецОбласти
// Прочее.
// Для внутреннего использования. #Область Прочее
&НаКлиенте
Процедура ЗакрытьСПараметромЗакрытия()
ПараметрЗакрытия = Неопределено;
Если Параметры.ВернутьРезультатЗагрузкиИзФайла Тогда
ПараметрЗакрытия = Новый Структура;
ПараметрЗакрытия.Вставить("Идентификатор", Объект.Идентификатор);
ПараметрЗакрытия.Вставить("Версия" , Объект.Версия);
ПараметрЗакрытия.Вставить("Наименование" , Объект.Наименование);
КонецЕсли;
Закрыть(ПараметрЗакрытия);
КонецПроцедуры
// Для внутреннего использования.
&НаКлиенте &НаКлиенте
Функция ТолькоИмяФайла(ВыбранноеИмяФайла) Функция ТолькоИмяФайла(ВыбранноеИмяФайла)
@@ -411,3 +456,5 @@
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти
@@ -6,18 +6,23 @@
</li><li>Работа с буфером обмена, сканирование и т.п.; </li><li>Работа с буфером обмена, сканирование и т.п.;
</li><li>Печать штрихкодов, извлечение текстов, компонента склонения и т.д.</li></ul><p>Внешние компоненты можно подключить к программе из файла на компьютере. При необходимости, одновременно могут быть подключены сразу несколько версий одной внешней компоненты. Например, это полезно, когда на разных клиентских компьютерах используются разные драйверы или оборудование.</p> </li><li>Печать штрихкодов, извлечение текстов, компонента склонения и т.д.</li></ul><p>Внешние компоненты можно подключить к программе из файла на компьютере. При необходимости, одновременно могут быть подключены сразу несколько версий одной внешней компоненты. Например, это полезно, когда на разных клиентских компьютерах используются разные драйверы или оборудование.</p>
<p>Программа предоставляет администратору возможность контролировать список внешних компонент, используемых на клиентских рабочих местах. Без контроля администратора пользователи не могут подключать к программе какие-либо сторонние внешние компоненты.</p> <p>Программа предоставляет администратору возможность контролировать список внешних компонент, используемых на клиентских рабочих местах. Без контроля администратора пользователи не могут подключать к программе какие-либо сторонние внешние компоненты.</p>
<p>В списке отражаются все установленные в программе внешние компоненты.</p> <p>В списке отражаются все установленные в программе внешние компоненты. В колонке <img src="CommonPicture.ОбновлениеВнешнихКомпонентССайта" width="16" height="16"></img> флажками обозначаются внешние компоненты, которые обновляются с сайта 1С:ИТС.</p>
<h3>Подключение внешней компоненты</h3> <h3>Подключение внешней компоненты</h3>
<ul><li>Нажмите <strong>Создать</strong>. <ul><li>Нажмите <strong>Добавить из файла</strong>.
</li><li>Программа выводит <strong>Предупреждение безопасности</strong>. Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите <strong>Продолжить</strong>. </li><li>Программа выводит <strong>Предупреждение безопасности</strong>. Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите <strong>Продолжить</strong>.
</li><li>Укажите путь к файлу на компьютере, нажмите <strong>Открыть</strong>. </li><li>Укажите путь к файлу на компьютере, нажмите <strong>Открыть</strong>.
</li><li>Разработчик размещает в файле внешней компоненты необходимую информацию для ее установки, поэтому основные поля в <a href="Catalog.ВнешниеКомпоненты.Form.ФормаЭлемента/Help">карточке внешней компоненты</a> заполняются автоматически.</li></ul><h3>Обновление внешней компоненты</h3> </li><li>Разработчик размещает в файле внешней компоненты необходимую информацию для ее установки, поэтому основные поля в <a href="Catalog.ВнешниеКомпоненты.Form.ФормаЭлемента/Help">карточке внешней компоненты</a> заполняются автоматически.</li></ul><h3>Обновление внешней компоненты с портала 1С:ИТС</h3>
<ul><li>Нажмите кнопку <img src="CommonPicture.ОбновитьФайлИзФайлаНаДиске"></img>. Программа выводит <strong>Предупреждение безопасности</strong>. <ul><li>
<div>С помощью кнопки <img src="CommonPicture.ОбновлениеВнешнихКомпонентССайта"></img> можно обновить внешнюю компоненту с сайта 1С:ИТС. </div>
</li><li>
<div>Доступно для внешних компонент, которые были получены на портале 1С:ИТС. Для обновления нужно зарегистрироваться на портале 1С:ИТС.</div></li></ul><h3>Обновление внешней компоненты из файла</h3>
<ul><li>Нажмите кнопку <strong>Обновить из файла</strong>. Программа выводит <strong>Предупреждение безопасности</strong>.
</li><li>Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите кнопку <strong>Продолжить</strong>. </li><li>Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите кнопку <strong>Продолжить</strong>.
</li><li>Укажите путь к файлу на компьютере, нажмите кнопку <strong>Открыть</strong>. </li><li>Укажите путь к файлу на компьютере, нажмите кнопку <strong>Открыть</strong>.
</li><li>Информация в карточке внешней компоненты будет обновлена.</li></ul><h3>Сохранение внешних компонент на компьютер</h3> </li><li>Информация в карточке внешней компоненты будет обновлена.</li></ul><h3>Сохранение внешних компонент на компьютер</h3>
<ul><li>Сохраненную на компьютер внешнюю компоненту можно будет использовать в случае нештатных ситуаций. <ul><li>Сохраненную на компьютер внешнюю компоненту можно будет использовать в случае нештатных ситуаций.
</li><li>Нажмите кнопку <img src="CommonPicture.СохранитьФайлКак"></img>. Укажите путь к файлу на компьютере. Нажмите <strong>Сохранить</strong>.</li></ul><h3>Отборы в списке</h3> </li><li>Выполните команду <strong>Сохранить как</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.  
</li><li>Укажите путь к файлу на компьютере. Нажмите <strong>Сохранить</strong>.</li></ul><h3>Отборы в списке</h3>
<p>С помощью поля <strong>Показывать</strong> в списке можно отобрать внешние компоненты по следующим признакам:</p> <p>С помощью поля <strong>Показывать</strong> в списке можно отобрать внешние компоненты по следующим признакам:</p>
<ul><li><strong>Все</strong>; <ul><li><strong>Все</strong>;
</li><li><strong>Используемые</strong>; </li><li><strong>Используемые</strong>;
@@ -24,4 +24,75 @@
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Возвращает ссылку на справочник внешней компоненты по идентификатору и версии.
//
// Параметры:
// Идентификатор - Строка - идентификатор объекта внешнего компонента.
// Версия - Строка - (необязательный) версия компоненты.
//
// Возвращаемое значение:
// СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе.
//
Функция НайтиПоИдентификатору(Идентификатор, Версия = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Если Не ЗначениеЗаполнено(Версия) Тогда
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВнешниеКомпоненты.Идентификатор КАК Идентификатор,
| ВнешниеКомпоненты.ДатаВерсии КАК ДатаВерсии,
| ВЫБОР
| КОГДА ВнешниеКомпоненты.Использование = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияВнешнихКомпонент.Используется)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Использование,
| ВнешниеКомпоненты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
|
|УПОРЯДОЧИТЬ ПО
| Использование УБЫВ,
| ДатаВерсии УБЫВ";
Иначе
Запрос.УстановитьПараметр("Версия", Версия);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВнешниеКомпоненты.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ВнешниеКомпоненты.Использование = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияВнешнихКомпонент.Используется)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Использование
|ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
| И ВнешниеКомпоненты.Версия = &Версия
|
|УПОРЯДОЧИТЬ ПО
| Использование УБЫВ";
КонецЕсли;
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат ПустаяСсылка();
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат Результат.Выгрузить()[0].Ссылка;
КонецФункции
#КонецОбласти
#КонецЕсли #КонецЕсли
@@ -2,10 +2,81 @@
#Область ОбработчикиСобытий #Область ОбработчикиСобытий
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Процедура ПередЗаписью(Отказ)
// Если внешняя компонента используется, то необходим контроль уникальности идентификатора и версии объекта. Если ОбменДанными.Загрузка Тогда
Если Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Используется Тогда Возврат;
КонецЕсли;
// Связь реквизитов с пометкой удаления.
Если ПометкаУдаления Тогда
Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена;
КонецЕсли;
// Связь реквизитов с вариантом использования.
Если Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена Тогда
ОбновлятьСПортала1СИТС = Ложь;
КонецЕсли;
// Не должно быть несколько компонент с одним идентификатором, с одновременно включенными ОбновлятьСПортала1СИТС.
Если Не ЭтоКомпонентаПоследнейВерсии() Тогда
ОбновлятьСПортала1СИТС = Ложь;
КонецЕсли;
// Контроль уникальности идентификатора и версии компоненты.
Если Не ЭтоУникальнаяКомпонента() Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Внешняя компонента со значениями Идентификатор ""%1"" и версия ""%2"" уже загружена в программу.'"),
Идентификатор,
Версия);
КонецЕсли;
// Помещение двоичных данных компоненты
ДвоичныеДанныеКомпоненты = Неопределено;
Если ДополнительныеСвойства.Свойство("ДвоичныеДанныеКомпоненты", ДвоичныеДанныеКомпоненты) Тогда
ХранилищеКомпоненты = Новый ХранилищеЗначения(ДвоичныеДанныеКомпоненты);
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Если была загружается компонента новой версии, а у одной из старых есть признак ОбновлятьСПортала1СИТС
// то при перезаписи компонент младших версий признак будет сброшен.
Если ЭтоКомпонентаПоследнейВерсии() Тогда
ПерезаписатьКомпонентыМладшихВерсий();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ЭтоКомпонентаПоследнейВерсии() Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(ВнешниеКомпоненты.ДатаВерсии) КАК ДатаВерсии
|ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат (Выборка.ДатаВерсии = Null) Или (Выборка.ДатаВерсии <= ДатаВерсии)
КонецФункции
Функция ЭтоУникальнаяКомпонента()
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор); Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
@@ -22,116 +93,32 @@
| И ВнешниеКомпоненты.Использование = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияВнешнихКомпонент.Используется) | И ВнешниеКомпоненты.Использование = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияВнешнихКомпонент.Используется)
| И ВнешниеКомпоненты.Ссылка <> &Ссылка"; | И ВнешниеКомпоненты.Ссылка <> &Ссылка";
Конфликтующие = Запрос.Выполнить();
Если Не Конфликтующие.Пустой() Тогда
Отказ = Истина;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Идентификатор ""%1"" и версия ""%2"", указанные для данной компоненты,
|уже используются другой компонентой.
|Для продолжения необходимо изменить использование с ""%3"" на ""%4"".'"),
Идентификатор,
Версия,
Строка(Перечисления.ВариантыИспользованияВнешнихКомпонент.Используется),
Строка(Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "Объект.Использование");
КонецЕсли;
КонецЕсли;
Если ОбновлятьССайта Тогда
// ОбновлятьССайта может быть установлен только у компоненты максимальной версии.
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(ВнешниеКомпоненты.ДатаВерсии) КАК ДатаВерсии
|ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор";
Результат = Запрос.Выполнить(); Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать(); Возврат Результат.Пустой();
Выборка.Следующий();
ЭтоМаксимальнаяВерсия = (Выборка.ДатаВерсии = Null) Или (Выборка.ДатаВерсии = ДатаВерсии);
Если Не ЭтоМаксимальнаяВерсия Тогда КонецФункции
Отказ = Истина; Процедура ПерезаписатьКомпонентыМладшихВерсий()
ТекстОшибки = НСтр("ru = 'Автоматическое обновление может быть включено только для компоненты
|последней версии.
|
|Для продолжения необходимо отключить обновление с сайта.'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "Объект.ОбновлятьССайта");
КонецЕсли;
// Не должно быть несколько объектов (в т.ч. разной версии, в т.ч. отключенных) с одним идентификатором
// у которых одновременно включен ОбновлятьССайта.
Если Не Отказ Тогда
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор); Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1 "ВЫБРАТЬ
| 1 | ВнешниеКомпоненты.Ссылка КАК Ссылка
|ИЗ |ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ |ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор | ВнешниеКомпоненты.Идентификатор = &Идентификатор
| И ВнешниеКомпоненты.ОбновлятьССайта | И ВнешниеКомпоненты.Использование = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияВнешнихКомпонент.Используется)
| И ВнешниеКомпоненты.Ссылка <> &Ссылка"; | И ВнешниеКомпоненты.Ссылка <> &Ссылка";
Конфликтующие = Запрос.Выполнить(); Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Не Конфликтующие.Пустой() Тогда Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Отказ = Истина; Объект.Записать();
КонецЦикла;
ТекстОшибки = НСтр("ru = 'Автоматическое обновление уже включено для другой версии компоненты.
|
|Для продолжения необходимо отключить обновление с сайта.'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "Объект.ОбновлятьССайта");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Связь реквизитов с пометкой удаления.
Если ПометкаУдаления Тогда
Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена;
КонецЕсли;
// Связь реквизитов с вариантом использования.
Если Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена Тогда
ОбновлятьССайта = Ложь;
КонецЕсли;
// Помещение двоичных данных компоненты
ДвоичныеДанныеКомпоненты = Неопределено;
Если ДополнительныеСвойства.Свойство("ДвоичныеДанныеКомпоненты", ДвоичныеДанныеКомпоненты) Тогда
ХранилищеКомпоненты = Новый ХранилищеЗначения(ДвоичныеДанныеКомпоненты);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -244,17 +244,17 @@
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="e5b578a1-e33b-4d49-8064-427aa928a844"> <attributes uuid="e5b578a1-e33b-4d49-8064-427aa928a844">
<name>ОбновлятьССайта</name> <name>ОбновлятьСПортала1СИТС</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Обновлять с сайта 1С</value> <value>Обновлять с Портала 1С:ИТС</value>
</synonym> </synonym>
<type> <type>
<types>Boolean</types> <types>Boolean</types>
</type> </type>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Обновлять с сайта 1С</value> <value>Обновлять с Портала 1С:ИТС</value>
</toolTip> </toolTip>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -498,4 +498,22 @@
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<forms uuid="b848d70a-9d08-4b1a-8df1-17697432516d">
<name>ПоискКомпонентыНаПортале1СИТС</name>
<synonym>
<key>ru</key>
<value>Поиск компоненты на Портале 1С:ИТС</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="9a30b92d-0c5b-4e11-a741-2b6efa8ac229">
<name>ОбновлениеКомпонентСПортала1СИТС</name>
<synonym>
<key>ru</key>
<value>Обновление компонент с Портала 1С:ИТС</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog> </mdclass:Catalog>
@@ -995,6 +995,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1566,6 +1567,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1594,6 +1596,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1848,6 +1851,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1956,6 +1960,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -81,8 +81,9 @@
ХранимыеПараметры.Вставить("ИспользоватьГруппы", ХранимыеПараметры.Вставить("ИспользоватьГруппы",
ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей")); ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей"));
Если НЕ ПравоДоступа("Добавление", Метаданные.Справочники.ВнешниеПользователи) Тогда Если Не ПравоДоступа("Добавление", Метаданные.Справочники.ВнешниеПользователи) Тогда
Элементы.СоздатьВнешнегоПользователя.Видимость = Ложь; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"СоздатьВнешнегоПользователя", "Видимость", Ложь);
КонецЕсли; КонецЕсли;
Если Не ПравоДоступа("Редактирование", Метаданные.Справочники.ГруппыВнешнихПользователей) Тогда Если Не ПравоДоступа("Редактирование", Метаданные.Справочники.ГруппыВнешнихПользователей) Тогда
@@ -135,8 +136,12 @@
Элементы.ВнешниеПользователиСписок.РежимВыбора = Ложь; Элементы.ВнешниеПользователиСписок.РежимВыбора = Ложь;
Элементы.ГруппыВнешнихПользователей.РежимВыбора = Ложь; Элементы.ГруппыВнешнихПользователей.РежимВыбора = Ложь;
Элементы.Комментарии.Видимость = Ложь; Элементы.Комментарии.Видимость = Ложь;
Элементы.ВыбратьВнешнегоПользователя.Видимость = Ложь;
Элементы.ВыбратьГруппуВнешнихПользователей.Видимость = Ложь; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ВыбратьВнешнегоПользователя", "Видимость", Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ВыбратьГруппуВнешнихПользователей", "Видимость", Ложь);
КонецЕсли; КонецЕсли;
ХранимыеПараметры.Вставить("ГруппаВсеПользователи", ХранимыеПараметры.Вставить("ГруппаВсеПользователи",
@@ -931,11 +936,16 @@
Если Параметры.РежимВыбора Тогда Если Параметры.РежимВыбора Тогда
Элементы.ВыбратьГруппуВнешнихПользователей.Видимость = ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
?(ХранимыеПараметры.РасширенныйПодбор, Ложь, ВыборГруппВнешнихПользователей); "ВыбратьГруппуВнешнихПользователей", "Видимость", ?(ХранимыеПараметры.РасширенныйПодбор,
Элементы.ВыбратьВнешнегоПользователя.КнопкаПоУмолчанию = Ложь, ВыборГруппВнешнихПользователей));
?(ХранимыеПараметры.РасширенныйПодбор, Ложь, Не ВыборГруппВнешнихПользователей);
Элементы.ВыбратьВнешнегоПользователя.Видимость = Не ХранимыеПараметры.РасширенныйПодбор; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ВыбратьВнешнегоПользователя", "КнопкаПоУмолчанию", ?(ХранимыеПараметры.РасширенныйПодбор,
Ложь, Не ВыборГруппВнешнихПользователей));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ВыбратьВнешнегоПользователя", "Видимость", Не ХранимыеПараметры.РасширенныйПодбор);
АвтоЗаголовок = Ложь; АвтоЗаголовок = Ложь;
@@ -950,12 +960,11 @@
Заголовок = НСтр("ru = 'Подбор внешних пользователей и групп'"); Заголовок = НСтр("ru = 'Подбор внешних пользователей и групп'");
КонецЕсли; КонецЕсли;
Элементы.ВыбратьВнешнегоПользователя.Заголовок = ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
НСтр("ru = 'Выбрать внешних пользователей'"); "ВыбратьВнешнегоПользователя", "Заголовок", НСтр("ru = 'Выбрать внешних пользователей'"));
Элементы.ВыбратьГруппуВнешнихПользователей.Заголовок =
НСтр("ru = 'Выбрать группы'");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ВыбратьГруппуВнешнихПользователей", "Заголовок", НСтр("ru = 'Выбрать группы'"));
Иначе Иначе
Если ХранимыеПараметры.РасширенныйПодбор Тогда Если ХранимыеПараметры.РасширенныйПодбор Тогда
Заголовок = ХранимыеПараметры.ЗаголовокФормыПодбора; Заголовок = ХранимыеПараметры.ЗаголовокФормыПодбора;
@@ -968,7 +977,8 @@
Если ВыборГруппВнешнихПользователей Тогда Если ВыборГруппВнешнихПользователей Тогда
Заголовок = НСтр("ru = 'Выбор внешнего пользователя или группы'"); Заголовок = НСтр("ru = 'Выбор внешнего пользователя или группы'");
Элементы.ВыбратьВнешнегоПользователя.Заголовок = НСтр("ru = 'Выбрать внешнего пользователя'"); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ВыбратьВнешнегоПользователя", "Заголовок", НСтр("ru = 'Выбрать внешнего пользователя'"));
Иначе Иначе
Заголовок = НСтр("ru = 'Выбор внешнего пользователя'"); Заголовок = НСтр("ru = 'Выбор внешнего пользователя'");
КонецЕсли; КонецЕсли;
@@ -133,6 +133,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -237,6 +238,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -357,6 +359,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -385,6 +388,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -560,6 +564,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -926,6 +931,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1069,6 +1075,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1804,6 +1811,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -1903,14 +1911,8 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>StartChoice</event>
<name>КомментарийНачалоВыбора</name>
</handlers>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<verticalStretch>true</verticalStretch>
<wrap>true</wrap> <wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -170,6 +170,13 @@
ТекущееПредставлениеОбъектаАвторизации = Строка(Объект.ОбъектАвторизации); ТекущееПредставлениеОбъектаАвторизации = Строка(Объект.ОбъектАвторизации);
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -595,14 +602,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
Элемент.ТекстРедактирования, ЭтотОбъект, "Объект.Комментарий");
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура СтраницыГлавноеИКомментарийПриСменеСтраницы(Элемент, ТекущаяСтраница) Процедура СтраницыГлавноеИКомментарийПриСменеСтраницы(Элемент, ТекущаяСтраница)
@@ -27,6 +27,24 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.ТекстДляВнешнихПользователей =
"РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Ссылка)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЭтоАвторизованныйПользователь(Ссылка)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -19,6 +19,24 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| ЧтениеОбъектаРазрешено(ВладелецФайла)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ИзменениеОбъектаРазрешено(ВладелецФайла)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -264,6 +264,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -292,6 +293,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1545,13 +1547,8 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>StartChoice</event>
<name>КомментарийНачалоВыбора</name>
</handlers>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -102,6 +102,13 @@
ОбработатьИнтерфейсРолей("ЗаполнитьРоли", Объект.Роли); ОбработатьИнтерфейсРолей("ЗаполнитьРоли", Объект.Роли);
ОбработатьИнтерфейсРолей("НастроитьИнтерфейсРолейПриЧтенииНаСервере", Истина); ОбработатьИнтерфейсРолей("НастроитьИнтерфейсРолейПриЧтенииНаСервере", Истина);
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -222,14 +229,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
Элемент.ТекстРедактирования, ЭтотОбъект, "Объект.Комментарий");
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРоли #Область ОбработчикиСобытийЭлементовТаблицыФормыРоли
@@ -24,6 +24,20 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.ТекстДляВнешнихПользователей =
"РазрешитьЧтениеИзменение
|ГДЕ
| Ссылка = Значение(Справочник.ГруппыВнешнихПользователей.ВсеВнешниеПользователи)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -33,6 +33,13 @@
ТолькоПросмотр = Истина; ТолькоПросмотр = Истина;
КонецЕсли; КонецЕсли;
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -19,14 +19,17 @@
УпрощенныйИнтерфейсНастройкиПравДоступа = УправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа(); УпрощенныйИнтерфейсНастройкиПравДоступа = УправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа();
Если УпрощенныйИнтерфейсНастройкиПравДоступа Тогда Если УпрощенныйИнтерфейсНастройкиПравДоступа Тогда
Если Элементы.Найти("ФормаСоздать") <> Неопределено Тогда ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
Элементы.ФормаСоздать.Видимость = Ложь; "ФормаСоздать", "Видимость", Ложь);
Элементы.СписокКонтекстноеМенюСоздать.Видимость = Ложь;
КонецЕсли; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
Если Элементы.Найти("ФормаСкопировать") <> Неопределено Тогда "СписокКонтекстноеМенюСоздать", "Видимость", Ложь);
Элементы.ФормаСкопировать.Видимость = Ложь;
Элементы.СписокКонтекстноеМенюСкопировать.Видимость = Ложь; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
КонецЕсли; "ФормаСкопировать", "Видимость", Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"СписокКонтекстноеМенюСкопировать", "Видимость", Ложь);
КонецЕсли; КонецЕсли;
Список.Параметры.УстановитьЗначениеПараметра("Профиль", Параметры.Профиль); Список.Параметры.УстановитьЗначениеПараметра("Профиль", Параметры.Профиль);
@@ -37,10 +40,11 @@
Заголовок = НСтр("ru = 'Группы доступа'"); Заголовок = НСтр("ru = 'Группы доступа'");
Если Элементы.Найти("ФормаСоздатьГруппу") <> Неопределено Тогда ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
Элементы.ФормаСоздатьГруппу.Видимость = Ложь; "ФормаСоздатьГруппу", "Видимость", Ложь);
Элементы.СписокКонтекстноеМенюСоздатьГруппу.Видимость = Ложь;
КонецЕсли; ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"СписокКонтекстноеМенюСоздатьГруппу", "Видимость", Ложь);
КонецЕсли; КонецЕсли;
Если НЕ ПравоДоступа("Чтение", Метаданные.Справочники.ПрофилиГруппДоступа) Тогда Если НЕ ПравоДоступа("Чтение", Метаданные.Справочники.ПрофилиГруппДоступа) Тогда
@@ -95,17 +99,14 @@
ПереносДопустим = НЕ ЗначениеЗаполнено(Элементы.Список.ТекущиеДанные.Пользователь) ПереносДопустим = НЕ ЗначениеЗаполнено(Элементы.Список.ТекущиеДанные.Пользователь)
И Элементы.Список.ТекущиеДанные.Ссылка <> РодительПерсональныхГруппДоступа; И Элементы.Список.ТекущиеДанные.Ссылка <> РодительПерсональныхГруппДоступа;
Если Элементы.Найти("ФормаПеренестиЭлемент") <> Неопределено Тогда ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
Элементы.ФормаПеренестиЭлемент.Доступность = ПереносДопустим; "ФормаПеренестиЭлемент", "Доступность", ПереносДопустим);
КонецЕсли;
Если Элементы.Найти("СписокКонтекстноеМенюПеренестиЭлемент") <> Неопределено Тогда ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
Элементы.СписокКонтекстноеМенюПеренестиЭлемент.Доступность = ПереносДопустим; "СписокКонтекстноеМенюПеренестиЭлемент", "Доступность", ПереносДопустим);
КонецЕсли;
Если Элементы.Найти("СписокПеренестиЭлемент") <> Неопределено Тогда ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
Элементы.СписокПеренестиЭлемент.Доступность = ПереносДопустим; "СписокПеренестиЭлемент", "Доступность", ПереносДопустим);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -1545,6 +1545,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -139,6 +139,13 @@
НачальнаяНастройкаПриЧтенииИСоздании(ТекущийОбъект); НачальнаяНастройкаПриЧтенииИСоздании(ТекущийОбъект);
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -26,6 +26,22 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЭтоГруппа
| ИЛИ Профиль <> Значение(Справочник.ПрофилиГруппДоступа.Администратор)
| И ЭтоАвторизованныйПользователь(Ответственный)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных // ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
@@ -773,34 +789,45 @@
ОбъектовОбработано = 0; ОбъектовОбработано = 0;
ПроблемныхОбъектов = 0; ПроблемныхОбъектов = 0;
Пока Выборка.Следующий() Цикл ШаблонОшибкиОбработкиГруппыДоступа =
Попытка НСтр("ru = 'Не удалось обработать группу доступа ""%1"" по причине:
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка); |%2'");
Исключение ШаблонОшибкиОбновленияТаблицГруппДоступа =
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обновить таблицы группы доступа ""%1"" по причине: НСтр("ru = 'Не удалось обновить таблицы группы доступа ""%1"" по причине:
|%2'"), |%2'");
Строка(Выборка.Ссылка), ШаблонОшибкиОбновленияЗначенийГруппДоступа =
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); НСтр("ru = 'Не удалось обновить значения доступа группы доступа ""%1"" по причине:
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), |%2'");
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
Продолжить;
КонецПопытки;
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыДоступа");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Пока Выборка.Следующий() Цикл
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
НачатьТранзакцию();
Попытка Попытка
ШаблонОшибки = ШаблонОшибкиОбработкиГруппыДоступа;
Блокировка.Заблокировать();
ШаблонОшибки = ШаблонОшибкиОбновленияТаблицГруппДоступа;
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка);
ШаблонОшибки = ШаблонОшибкиОбновленияЗначенийГруппДоступа;
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка); РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка);
ШаблонОшибки = ШаблонОшибкиОбработкиГруппыДоступа;
ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию();
ПроблемныхОбъектов = ПроблемныхОбъектов + 1; ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ИнформацияОбОшибке = ИнформацияОбОшибке(); ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
НСтр("ru = 'Не удалось обновить значения доступа группы доступа ""%1"" по причине:
|%2'"),
Строка(Выборка.Ссылка), Строка(Выборка.Ссылка),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения); УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
Продолжить; Продолжить;
@@ -56,7 +56,7 @@
КонецЕсли; КонецЕсли;
// Проверка наличия только пользователей. // Проверка наличия только пользователей.
Для каждого ТекущаяСтрока Из ЭтотОбъект.Пользователи Цикл Для каждого ТекущаяСтрока Из Пользователи Цикл
Если ТипЗнч(ТекущаяСтрока.Пользователь) <> Тип("СправочникСсылка.Пользователи") Тогда Если ТипЗнч(ТекущаяСтрока.Пользователь) <> Тип("СправочникСсылка.Пользователи") Тогда
ВызватьИсключение ВызватьИсключение
НСтр("ru = 'Предопределенная группа доступа Администраторы НСтр("ru = 'Предопределенная группа доступа Администраторы
@@ -142,6 +142,16 @@
Справочники.ГруппыДоступа.ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке(); Справочники.ГруппыДоступа.ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке();
Справочники.ГруппыДоступа.ОбновитьРолиПользователейИзмененныхПриЗагрузке(); Справочники.ГруппыДоступа.ОбновитьРолиПользователейИзмененныхПриЗагрузке();
Если УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
Если Не ПометкаУдаления Тогда
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступаПриИзмененииУчастниковГруппыДоступа(Ссылка,
Пользователи, СтарыеЗначения.Пользователи);
КонецЕсли;
Если ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
УправлениеДоступомСлужебный.ОбновитьГруппыДоступаРазрешенногоКлючаДоступа(Ссылка);
КонецЕсли;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
@@ -893,14 +893,8 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>StartChoice</event>
<name>КомментарийНачалоВыбора</name>
</handlers>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -57,14 +57,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
Элемент.ТекстРедактирования, ЭтотОбъект, "Объект.Комментарий");
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСостав #Область ОбработчикиСобытийЭлементовТаблицыФормыСостав
@@ -94,6 +94,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -1,9 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> <form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Разделы командного интерфейса</value>
</title>
<items xsi:type="form:Table"> <items xsi:type="form:Table">
<name>Разделы</name> <name>Разделы</name>
<id>1</id> <id>1</id>
@@ -321,6 +317,7 @@
</handlers> </handlers>
<windowOpeningMode>LockOwner</windowOpeningMode> <windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings> <saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl> <autoUrl>true</autoUrl>
<group>Vertical</group> <group>Vertical</group>
<autoFillCheck>true</autoFillCheck> <autoFillCheck>true</autoFillCheck>
@@ -404,10 +401,6 @@
<value>ОК</value> <value>ОК</value>
</title> </title>
<id>1</id> <id>1</id>
<toolTip>
<key>ru</key>
<value>ОК</value>
</toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
@@ -426,10 +419,6 @@
<value>Выделить все</value> <value>Выделить все</value>
</title> </title>
<id>2</id> <id>2</id>
<toolTip>
<key>ru</key>
<value>Выделить все</value>
</toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
@@ -446,10 +435,6 @@
<value>Снять выделение со всех</value> <value>Снять выделение со всех</value>
</title> </title>
<id>3</id> <id>3</id>
<toolTip>
<key>ru</key>
<value>Снять выделение со всех</value>
</toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
@@ -170,6 +170,103 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>ГруппаПояснениеСервис</name>
<id>130</id>
<items xsi:type="form:Decoration">
<name>КартинкаПояснения</name>
<id>132</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КартинкаПоясненияРасширеннаяПодсказка</name>
<id>134</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КартинкаПоясненияКонтекстноеМеню</name>
<id>133</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Информация32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ПояснениеСервис</name>
<id>127</id>
<title>
<key>ru</key>
<value>Правила добавления новых и использования существующих дополнительных обработок устанавливает провайдер сервиса.
Обратитесь за консультацией в службу поддержки сервиса или в компанию, которая предоставила доступ.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПояснениеСервисРасширеннаяПодсказка</name>
<id>129</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПояснениеСервисКонтекстноеМеню</name>
<id>128</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Пояснение для сервиса</value>
</title>
<extendedTooltip>
<name>ГруппаПояснениеСервисРасширеннаяПодсказка</name>
<id>131</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name> <name>КоманднаяПанель</name>
<id>19</id> <id>19</id>
@@ -179,6 +276,10 @@
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>Создать</name> <name>Создать</name>
<id>27</id> <id>27</id>
<title>
<key>ru</key>
<value>Добавить из файла...</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -187,6 +288,10 @@
<extendedTooltip> <extendedTooltip>
<name>СоздатьРасширеннаяПодсказка</name> <name>СоздатьРасширеннаяПодсказка</name>
<id>37</id> <id>37</id>
<title>
<key>ru</key>
<value>Добавить из файла на диске...</value>
</title>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1593,7 +1698,7 @@
<name>ВыгрузитьВФайл</name> <name>ВыгрузитьВФайл</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Выгрузить в файл...</value> <value>Сохранить как...</value>
</title> </title>
<id>1</id> <id>1</id>
<toolTip> <toolTip>
@@ -1603,13 +1708,16 @@
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.СохранитьФайлКак</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>ВыгрузитьВФайл</name> <name>ВыгрузитьВФайл</name>
</handler> </handler>
</action> </action>
<functionalOptions>FunctionalOption.СтандартныеПодсистемыВЛокальномРежиме</functionalOptions> <functionalOptions>FunctionalOption.СтандартныеПодсистемыВЛокальномРежиме</functionalOptions>
<representation>Picture</representation> <representation>TextPicture</representation>
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
@@ -1617,23 +1725,26 @@
<name>ЗагрузитьИзФайла</name> <name>ЗагрузитьИзФайла</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Загрузить из файла...</value> <value>Обновить из файла...</value>
</title> </title>
<id>2</id> <id>2</id>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Загрузить обработку (отчет) из файла на компьютере</value> <value>Обновить обработку (отчет) из файла на компьютере</value>
</toolTip> </toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ОбновитьФайлИзФайлаНаДиске</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>ЗагрузитьФайлОбработкиОтчета</name> <name>ЗагрузитьФайлОбработкиОтчета</name>
</handler> </handler>
</action> </action>
<functionalOptions>FunctionalOption.СтандартныеПодсистемыВЛокальномРежиме</functionalOptions> <functionalOptions>FunctionalOption.СтандартныеПодсистемыВЛокальномРежиме</functionalOptions>
<representation>Picture</representation> <representation>TextPicture</representation>
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
@@ -105,6 +105,8 @@
Элементы.СоздатьГруппу.Видимость = Ложь; Элементы.СоздатьГруппу.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Элементы.ГруппаПояснениеСервис.Видимость = ОбщегоНазначения.РазделениеВключено();
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -150,6 +150,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -178,6 +179,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -261,6 +263,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -426,6 +429,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -573,6 +577,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1197,6 +1202,7 @@
</extendedTooltip> </extendedTooltip>
<type>Page</type> <type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo"> <extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>auto</showTitle> <showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress> <scrollOnCompress>false</scrollOnCompress>
</extInfo> </extInfo>
@@ -2091,6 +2097,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -2344,6 +2351,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -3062,6 +3070,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -3926,22 +3935,25 @@
<name>ЗагрузитьИзФайла</name> <name>ЗагрузитьИзФайла</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Загрузить из файла...</value> <value>Обновить из файла...</value>
</title> </title>
<id>1</id> <id>1</id>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Загрузить обработку (отчет) из файла на компьютере</value> <value>Обновить из файла на диске...</value>
</toolTip> </toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ОбновитьФайлИзФайлаНаДиске</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>ЗагрузитьИзФайла</name> <name>ЗагрузитьИзФайла</name>
</handler> </handler>
</action> </action>
<representation>Picture</representation> <representation>TextPicture</representation>
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
@@ -3949,16 +3961,19 @@
<name>ВыгрузитьВФайл</name> <name>ВыгрузитьВФайл</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Выгрузить в файл...</value> <value>Сохранить как...</value>
</title> </title>
<id>2</id> <id>2</id>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Выгрузить обработку (отчет) в файл на компьютер</value> <value>Сохранить как...</value>
</toolTip> </toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.СохранитьФайлКак</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>ВыгрузитьВФайл</name> <name>ВыгрузитьВФайл</name>
@@ -11,7 +11,7 @@
<div><strong>Режим работы</strong> - <a href="#1">режим подключения</a> дополнительных отчетов и обработок, принимает значения <strong>Безопасный</strong> и <strong>Небезопасный</strong>.</div> <div><strong>Режим работы</strong> - <a href="#1">режим подключения</a> дополнительных отчетов и обработок, принимает значения <strong>Безопасный</strong> и <strong>Небезопасный</strong>.</div>
</li><li> </li><li>
<div> <div>
<p>С помощью переключателя <strong>Публикация </strong>можно включить или отключить доступность обработки или отчета, регулируя использование дополнительных отчетов и обработок. Можно сделать дополнительную обработку или отчет доступной для всех, только для администратора или отключить. Реквизит может принимать следующие значения:</p> <p>С помощью тумблера <strong>Публикация </strong>можно включить или отключить доступность обработки или отчета, регулируя использование дополнительных отчетов и обработок. Можно сделать дополнительную обработку или отчет доступной для всех, только для администратора или отключить. Реквизит может принимать следующие значения:</p>
<ul><li> <ul><li>
<div><strong>Используется</strong> - обработка доступна для использования. Команды обработки доступны в программе для всех пользователей с установленной ролью "Использование дополнительных отчетов и обработок".</div> <div><strong>Используется</strong> - обработка доступна для использования. Команды обработки доступны в программе для всех пользователей с установленной ролью "Использование дополнительных отчетов и обработок".</div>
</li><li> </li><li>
@@ -32,13 +32,13 @@
</li><li><strong>Версия</strong>; </li><li><strong>Версия</strong>;
</li><li><strong>Имя объекта</strong>; </li><li><strong>Имя объекта</strong>;
</li><li><strong>Описание</strong> - подробная информация о дополнительном отчете или обработке.</li></ul></li><li><strong>Группа</strong> - включите дополнительную обработку или отчет в одну из групп. Выберите нужную группу из списка. Группы помогают упорядочить дополнительные отчеты и обработки.</li></ul><h3>Загрузка из файла</h3> </li><li><strong>Описание</strong> - подробная информация о дополнительном отчете или обработке.</li></ul></li><li><strong>Группа</strong> - включите дополнительную обработку или отчет в одну из групп. Выберите нужную группу из списка. Группы помогают упорядочить дополнительные отчеты и обработки.</li></ul><h3>Загрузка из файла</h3>
<ul><li>С помощью команды <strong>Загрузить из файла</strong> можно обновить обработку во внутреннем хранилище программы. Вид загружаемой обработки должен соответствовать текущему виду обработки. Укажите путь к файлу, нажмите <strong>Открыть</strong>.</li></ul><h3>Выгрузка в файл</h3> <ul><li>С помощью кнопки <strong>Обновить из файла</strong> можно обновить обработку во внутреннем хранилище программы. Вид загружаемой обработки должен соответствовать текущему виду обработки. Укажите путь к файлу, нажмите <strong>Открыть</strong>.</li></ul><h3>Выгрузка в файл</h3>
<ul><li>С помощью команды <strong>Выгрузить в файл</strong> можно выгрузить дополнительный отчет или обработку из хранилища в файл на диске компьютера. Укажите папку на компьютере, нажмите <strong>Сохранить</strong>. Имя файлу присваивается автоматически, имеется возможность его переименовать.</li></ul><h3><a name="1">Режим работы</a></h3> <ul><li>С помощью кнопки <strong>Сохранить как</strong> можно выгрузить дополнительный отчет или обработку из хранилища в файл на диске компьютера. Укажите папку на компьютере, нажмите <strong>Сохранить</strong>. Имя файлу присваивается автоматически, имеется возможность его переименовать.</li></ul><h3><a name="1">Режим работы</a></h3>
<ul><li>Как правило, большинство обработок должны выполняться в безопасном режиме. Это гарантирует, что они не содержат "ненадежный" программный код, который выполняется на сервере. <ul><li>Как правило, большинство обработок должны выполняться в безопасном режиме. Это гарантирует, что они не содержат "ненадежный" программный код, который выполняется на сервере.
</li><li>Однако некоторые обработки могут требовать выполнения в небезопасном режиме. Такие обработки следует загружать только из надежных источников (поставщиков) или перед загрузкой самостоятельно выполнять их аудит. </li><li>Однако некоторые обработки могут требовать выполнения в небезопасном режиме. Такие обработки следует загружать только из надежных источников (поставщиков) или перед загрузкой самостоятельно выполнять их аудит.
</li><li>Подробнее о безопасном режиме работы см. документацию по платформе 1С:Предприятие.</li></ul><h3>Особенности регистрации <a name="A">назначаемых</a> дополнительных обработок и отчетов</h3> </li><li>Подробнее о безопасном режиме работы см. документацию по платформе 1С:Предприятие.</li></ul><h3>Особенности регистрации <a name="A">назначаемых</a> дополнительных обработок и отчетов</h3>
<ul><li>Для дополнительных обработок или отчетов, предназначенных для работы со списками или документами программы, можно выбрать из списка объекты, в которых будут доступны команды обработки или отчета. <ul><li>Для дополнительных обработок или отчетов, предназначенных для работы со списками или документами программы, можно выбрать из списка объекты, в которых будут доступны команды обработки или отчета.
<ul><li><strong>Назначение</strong> -  для выбора объектов программы нажмите ссылку, которая принимает значение <strong>Не определено</strong> (если ни одного объекта не выбрано) или перечисляет выбранные объекты. С помощью флажков выберите нужные объекты. <ul><li><strong>Размещение</strong> -  для выбора объектов программы нажмите ссылку, которая принимает значение <strong>Не определено</strong> (если ни одного объекта не выбрано) или перечисляет выбранные объекты. С помощью флажков выберите нужные объекты.
</li><li><strong>Показывать</strong> - команды обработок или отчетов могут быть доступны: </li><li><strong>Показывать</strong> - команды обработок или отчетов могут быть доступны:
<ul><li>из списка выбранных объектов, если установлен флажок <strong>В списках</strong>;  <ul><li>из списка выбранных объектов, если установлен флажок <strong>В списках</strong>; 
</li><li>из окна самого объекта, если установлен флажок <strong>В формах элементов справочников и документов</strong>. Можно установить оба флажка одновременно.</li></ul></li></ul></li><li> </li><li>из окна самого объекта, если установлен флажок <strong>В формах элементов справочников и документов</strong>. Можно установить оба флажка одновременно.</li></ul></li></ul></li><li>
@@ -92,7 +92,7 @@
&НаКлиенте &НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("Справочник.ДополнительныеОтчетыИОбработки.Форма.ПодборРазделов") Тогда Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("Справочник.ДополнительныеОтчетыИОбработки.Форма.РазмещениеВРазделах") Тогда
Если ТипЗнч(ВыбранноеЗначение) <> Тип("СписокЗначений") Тогда Если ТипЗнч(ВыбранноеЗначение) <> Тип("СписокЗначений") Тогда
Возврат; Возврат;
@@ -173,6 +173,13 @@
| И НЕ ДанныеРегистра.Пользователь.Недействителен"; | И НЕ ДанныеРегистра.Пользователь.Недействителен";
БыстрыйДоступ.Загрузить(Запрос.Выполнить().Выгрузить()); БыстрыйДоступ.Загрузить(Запрос.Выполнить().Выгрузить());
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -291,7 +298,7 @@
ПараметрыФормы.Вставить("Разделы", Разделы); ПараметрыФормы.Вставить("Разделы", Разделы);
ПараметрыФормы.Вставить("ВидОбработки", Объект.Вид); ПараметрыФормы.Вставить("ВидОбработки", Объект.Вид);
ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.Форма.ПодборРазделов", ПараметрыФормы, ЭтотОбъект); ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.Форма.РазмещениеВРазделах", ПараметрыФормы, ЭтотОбъект);
Иначе Иначе
// Выбор объектов метаданных // Выбор объектов метаданных
ПараметрыФормы = ПодготовитьПараметрыФормыВыборОбъектовМетаданных(); ПараметрыФормы = ПодготовитьПараметрыФормыВыборОбъектовМетаданных();
@@ -650,7 +657,10 @@
ОбновлениеИзФайлаПоказатьКонфликты(ПараметрыРегистрации); ОбновлениеИзФайлаПоказатьКонфликты(ПараметрыРегистрации);
Иначе Иначе
ОбработчикРезультата = Новый ОписаниеОповещения("ОбновлениеИзФайлаЗавершение", ЭтотОбъект, ПараметрыРегистрации); ОбработчикРезультата = Новый ОписаниеОповещения("ОбновлениеИзФайлаЗавершение", ЭтотОбъект, ПараметрыРегистрации);
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОбработчикРезультата, ПараметрыРегистрации.ТекстОшибки, РежимДиалогаВопрос.ОК); ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОбработчикРезультата, ПараметрыРегистрации.ТекстОшибки,
РежимДиалогаВопрос.ОК, ПараметрыВопроса);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -23,10 +23,7 @@
</li><li><strong>Информация</strong> - описание дополнительной обработки или отчета, которое было написано разработчиком; </li><li><strong>Информация</strong> - описание дополнительной обработки или отчета, которое было написано разработчиком;
</li><li><strong>Имя файла</strong> - расширение и имя файла дополнительной обработки (отчета); </li><li><strong>Имя файла</strong> - расширение и имя файла дополнительной обработки (отчета);
</li><li><strong>Безопасный режим</strong> - принимает значение "Да", если дополнительный отчет или обработка выполняется в безопасном режиме. Как правило, большинство обработок должны выполняться в безопасном режиме. Это гарантирует, что они не содержат "ненадежный программный код, который выполняется на сервере. Однако некоторые обработки могут требовать выполнения в небезопасном режиме. Об этом программа размещает предупреждение. Такие обработки следует загружать только из надежных источников (поставщиков) или перед загрузкой самостоятельно выполнять их аудит. Подробнее о безопасном режиме работы см. документацию по платформе 1С:Предприятие.</li></ul><h3>Добавление дополнительных отчетов или обработок</h3> </li><li><strong>Безопасный режим</strong> - принимает значение "Да", если дополнительный отчет или обработка выполняется в безопасном режиме. Как правило, большинство обработок должны выполняться в безопасном режиме. Это гарантирует, что они не содержат "ненадежный программный код, который выполняется на сервере. Однако некоторые обработки могут требовать выполнения в небезопасном режиме. Об этом программа размещает предупреждение. Такие обработки следует загружать только из надежных источников (поставщиков) или перед загрузкой самостоятельно выполнять их аудит. Подробнее о безопасном режиме работы см. документацию по платформе 1С:Предприятие.</li></ul><h3>Добавление дополнительных отчетов или обработок</h3>
<ul><li>По команде <strong>Создать</strong> программа предложит выбрать файл <a href="v8help://1cv8/ExtRepotrs">внешнего отчета или обработки</a> на компьютере (укажите путь к каталогу на диске) и <a href="Catalog.ДополнительныеОтчетыИОбработки.Form.ФормаЭлемента/Help">настроить его параметры</a>. Набор сведений зависит от назначения обработки или отчета. Если указан неверный файл, то программа выдаст сообщение об ошибке, например, сообщение о том, что дополнительная обработка предназначена для другой версии программы. </li></ul><h3>Группировка дополнительных отчетов и обработок</h3> <ul><li>С помощью кнопки <strong>Добавить из файла</strong> программа предложит выбрать файл <a href="v8help://1cv8/ExtRepotrs">внешнего отчета или обработки</a> на компьютере (укажите путь к каталогу на диске) и <a href="Catalog.ДополнительныеОтчетыИОбработки.Form.ФормаЭлемента/Help">настроить его параметры</a>. Набор сведений зависит от назначения обработки или отчета. Если указан неверный файл, то программа выдаст сообщение об ошибке, например, сообщение о том, что дополнительная обработка предназначена для другой версии программы. </li></ul><h3>Отборы</h3>
<p>Если список большой, то для удобства его использования можно сгруппировать дополнительные отчеты и обработки по различным признакам. Для этого введите необходимое количество групп:</p>
<ul><li>Нажмите <strong>Создать группу</strong> и введите наименование группы. Можно подчинить новую группу другой группе. Для этого в поле <strong>Родитель</strong> выберите группу из списка.
</li><li>Перетащите в группу нужные дополнительные отчеты и обработки с помощью мыши.</li></ul><h3>Отборы</h3>
<p>Если дополнительных отчетов и обработок в списке много, то для удобства поиска можно воспользоваться отборами:</p> <p>Если дополнительных отчетов и обработок в списке много, то для удобства поиска можно воспользоваться отборами:</p>
<ul><li> <ul><li>
<div>по полю <strong>Вид</strong> - выберите один из видов дополнительных отчетов и обработок из списка для отбора, например, "Отчет".  </div> <div>по полю <strong>Вид</strong> - выберите один из видов дополнительных отчетов и обработок из списка для отбора, например, "Отчет".  </div>
@@ -34,8 +31,8 @@
<div>по полю <strong>Публикация</strong> - выберите нужное состояние для отбора, например, "Используется".</div> <div>по полю <strong>Публикация</strong> - выберите нужное состояние для отбора, например, "Используется".</div>
</li><li> </li><li>
<div>по полям <strong>Вид</strong> и <strong>Публикация</strong> - можно сочетать два вида отбора в больших списках.</div></li></ul><h3>Загрузка из файла</h3> <div>по полям <strong>Вид</strong> и <strong>Публикация</strong> - можно сочетать два вида отбора в больших списках.</div></li></ul><h3>Загрузка из файла</h3>
<ul><li>С помощью команды <strong>Загрузить из файла</strong> можно обновить обработку во внутреннем хранилище программы. Укажите путь к файлу, нажмите <strong>Открыть</strong>.</li></ul><h3>Выгрузка в файл</h3> <ul><li>С помощью кнопки <strong>Обновить из файла</strong> можно обновить обработку во внутреннем хранилище программы. Укажите путь к файлу, нажмите <strong>Открыть</strong>.</li></ul><h3>Выгрузка в файл</h3>
<ul><li>С помощью команды <strong>Еще -</strong> <strong>Выгрузить в файл</strong> можно выгрузить дополнительный отчет или обработку из хранилища в файл на диске компьютера. Укажите папку на компьютере, нажмите <strong>Сохранить</strong>. Имя файлу присваивается автоматически, имеется возможность его переименовать.</li></ul><h3><a name="1">Виды дополнительных отчетов и обработок</a></h3> <ul><li>С помощью кнопки <strong>Сохранить как</strong> можно выгрузить дополнительный отчет или обработку из хранилища в файл на диске компьютера. Укажите папку на компьютере, нажмите <strong>Сохранить</strong>. Имя файлу присваивается автоматически, имеется возможность его переименовать.</li></ul><h3><a name="1">Виды дополнительных отчетов и обработок</a></h3>
<p>Существует несколько видов дополнительных отчетов и обработок:</p> <p>Существует несколько видов дополнительных отчетов и обработок:</p>
<ul><li><strong>Глобальные отчеты и обработки</strong> - используются независимо от данных программы, также называются общими. Команды для их использования размещаются в разделах программы. С помощью глобальных отчетов и обработок можно загружать данные в программу, производить обновление или очистку индекса полнотекстового поиска и т.д. Они содержат команды, вызываемые только из разделов командного интерфейса. Команды не зависят от конкретных объектов программы. Список доступных разделов для размещения команд определен разработчиком заранее и включен в файл дополнительного отчета или обработки, его невозможно изменить. <ul><li><strong>Глобальные отчеты и обработки</strong> - используются независимо от данных программы, также называются общими. Команды для их использования размещаются в разделах программы. С помощью глобальных отчетов и обработок можно загружать данные в программу, производить обновление или очистку индекса полнотекстового поиска и т.д. Они содержат команды, вызываемые только из разделов командного интерфейса. Команды не зависят от конкретных объектов программы. Список доступных разделов для размещения команд определен разработчиком заранее и включен в файл дополнительного отчета или обработки, его невозможно изменить.
</li><li><strong>Назначаемые дополнительные отчеты и обработки</strong> - предназначены для конкретных документов или списков программы, которых может быть несколько, при этом список доступных назначений определен разработчиком заранее и включен в текст дополнительного отчета или обработки, поэтому при настройке дополнительного отчета или обработки можно только выбирать из этого списка. К этому типу относятся несколько видов дополнительных отчетов и обработок: </li><li><strong>Назначаемые дополнительные отчеты и обработки</strong> - предназначены для конкретных документов или списков программы, которых может быть несколько, при этом список доступных назначений определен разработчиком заранее и включен в текст дополнительного отчета или обработки, поэтому при настройке дополнительного отчета или обработки можно только выбирать из этого списка. К этому типу относятся несколько видов дополнительных отчетов и обработок:
@@ -25,6 +25,22 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Ссылка)";
Ограничение.ТекстДляВнешнихПользователей = Ограничение.Текст;
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -83,7 +83,7 @@
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Имя ""%1"", используемое отчетом (обработкой) ""%2"", уже занято другим опубликованным дополнительным отчетом (обработкой).'"), НСтр("ru = 'Имя ""%1"", используемое отчетом (обработкой) ""%2"", уже занято другим опубликованным дополнительным отчетом (обработкой).'"),
ИмяОбъекта, ИмяОбъекта,
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотОбъект.Ссылка, "Наименование")); ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Наименование"));
КонецЕсли; КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "Объект.Публикация"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "Объект.Публикация");
КонецЕсли; КонецЕсли;
@@ -825,10 +825,10 @@
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<forms uuid="eafaec9c-030b-4e5f-8fa8-e17dad2feec9"> <forms uuid="eafaec9c-030b-4e5f-8fa8-e17dad2feec9">
<name>ПодборРазделов</name> <name>РазмещениеВРазделах</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Подбор разделов</value> <value>Размещение в разделах</value>
</synonym> </synonym>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
@@ -217,6 +217,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -431,6 +431,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -21,7 +21,6 @@
</dataPath> </dataPath>
<titleLocation>None</titleLocation> <titleLocation>None</titleLocation>
<excludedCommands>CancelSearch</excludedCommands> <excludedCommands>CancelSearch</excludedCommands>
<excludedCommands>Choose</excludedCommands>
<excludedCommands>Copy</excludedCommands> <excludedCommands>Copy</excludedCommands>
<excludedCommands>CreateFolder</excludedCommands> <excludedCommands>CreateFolder</excludedCommands>
<excludedCommands>Delete</excludedCommands> <excludedCommands>Delete</excludedCommands>
@@ -202,6 +202,10 @@
<commandBar/> <commandBar/>
</commandInterface> </commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"> <extInfo xsi:type="form:CatalogFormExtInfo">
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
<useForFoldersAndItems>Folders</useForFoldersAndItems> <useForFoldersAndItems>Folders</useForFoldersAndItems>
</extInfo> </extInfo>
</form:Form> </form:Form>
@@ -18,4 +18,16 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -103,6 +103,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -341,6 +342,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -447,6 +449,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -32,6 +32,14 @@
&НаСервере &НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект) Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ФорматированныйТекст = ТекущийОбъект.Содержание.Получить(); ФорматированныйТекст = ТекущийОбъект.Содержание.Получить();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -23,6 +23,20 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЭтоАвторизованныйПользователь(Автор)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -19,6 +19,24 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| ЧтениеОбъектаРазрешено(ВладелецФайла)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ИзменениеОбъектаРазрешено(ВладелецФайла)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -190,6 +190,10 @@
<event>AfterWriteAtServer</event> <event>AfterWriteAtServer</event>
<name>ПослеЗаписиНаСервере</name> <name>ПослеЗаписиНаСервере</name>
</handlers> </handlers>
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
<useForFoldersAndItems>Folders</useForFoldersAndItems> <useForFoldersAndItems>Folders</useForFoldersAndItems>
</extInfo> </extInfo>
</form:Form> </form:Form>
@@ -29,6 +29,18 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -270,5 +270,9 @@
<event>AfterWriteAtServer</event> <event>AfterWriteAtServer</event>
<name>ПослеЗаписиНаСервере</name> <name>ПослеЗаписиНаСервере</name>
</handlers> </handlers>
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
</extInfo> </extInfo>
</form:Form> </form:Form>
@@ -68,6 +68,18 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -23,6 +23,21 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Владелец)
| ИЛИ НЕ Владелец.ЭтоДополнительноеСведение";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -264,5 +264,9 @@
<event>AfterWriteAtServer</event> <event>AfterWriteAtServer</event>
<name>ПослеЗаписиНаСервере</name> <name>ПослеЗаписиНаСервере</name>
</handlers> </handlers>
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
</extInfo> </extInfo>
</form:Form> </form:Form>
@@ -68,6 +68,18 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -23,6 +23,21 @@
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов // Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Владелец)
| ИЛИ НЕ Владелец.ЭтоДополнительноеСведение";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -87,7 +87,7 @@
Попытка Попытка
Обновлен = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы( Обновлен = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(
"СтандартныеПодсистемы.ИдентификаторыОбъектовМетаданных"); "СтандартныеПодсистемы.БазоваяФункциональность.ИдентификаторыОбъектовМетаданных");
Исключение Исключение
Если Обновить Тогда Если Обновить Тогда
ВызватьИсключение; ВызватьИсключение;
@@ -104,8 +104,7 @@
КонецЕсли; КонецЕсли;
Если ОбъектыРасширений Если ОбъектыРасширений
И ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) И ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) Тогда
И Справочники.ВерсииРасширений.УстановленныеРасширенияДоступны() Тогда
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Если Обновить Тогда Если Обновить Тогда
@@ -332,6 +331,42 @@
КонецПроцедуры КонецПроцедуры
// См. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных.
Функция ИдентификаторыОбъектовМетаданных(ПолныеИменаОбъектовМетаданных, КромеНесуществующих = Ложь, ОдинЭлемент = Ложь) Экспорт
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ИдентификаторыПоПолнымИменам = КэшИдентификаторов().ИдентификаторыПоПолнымИменам;
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
Результат = Новый Соответствие;
ПолныеИменаБезКэша = Новый Массив;
Для Каждого ПолноеИмя Из ПолныеИменаОбъектовМетаданных Цикл
Идентификатор = ИдентификаторыПоПолнымИменам.Получить(ПолноеИмя);
Если Идентификатор = Неопределено Тогда
ПолныеИменаБезКэша.Добавить(ПолноеИмя);
Иначе
Результат.Вставить(ПолноеИмя, Идентификатор);
КонецЕсли;
КонецЦикла;
Если ПолныеИменаБезКэша.Количество() = 0 Тогда
Возврат Результат;
КонецЕсли;
Идентификаторы = ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаБезКэша,
КромеНесуществующих, ОдинЭлемент);
Для Каждого КлючИЗначение Из Идентификаторы Цикл
Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
ИдентификаторыПоПолнымИменам.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
Возврат Результат;
КонецФункции
// Возвращает объект метаданных по переданному идентификатору. // Возвращает объект метаданных по переданному идентификатору.
// //
// Параметры: // Параметры:
@@ -361,7 +396,7 @@
Идентификаторы = Новый Массив; Идентификаторы = Новый Массив;
Идентификаторы.Добавить(Идентификатор); Идентификаторы.Добавить(Идентификатор);
ОбъектыМетаданных = ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора(Идентификаторы, КромеНесуществующихИНедоступных); ОбъектыМетаданных = ОбъектыМетаданныхПоИдентификаторам(Идентификаторы, КромеНесуществующихИНедоступных);
Возврат ОбъектыМетаданных.Получить(Идентификатор); Возврат ОбъектыМетаданных.Получить(Идентификатор);
@@ -394,7 +429,53 @@
// //
Функция ОбъектыМетаданныхПоИдентификаторам(Идентификаторы, КромеНесуществующихИНедоступных = Ложь) Экспорт Функция ОбъектыМетаданныхПоИдентификаторам(Идентификаторы, КромеНесуществующихИНедоступных = Ложь) Экспорт
Возврат ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора(Идентификаторы, КромеНесуществующихИНедоступных); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ОписаниеОбъектовМетаданныхПоИдентификаторам = КэшИдентификаторов().ОписаниеОбъектовМетаданныхПоИдентификаторам;
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
Результат = Новый Соответствие;
ИдентификаторыБезКэша = Новый Массив;
Для Каждого Идентификатор Из Идентификаторы Цикл
Описание = ОписаниеОбъектовМетаданныхПоИдентификаторам.Получить(Идентификатор);
Если Описание = Неопределено
Или Не КромеНесуществующихИНедоступных
И Описание.Ключ = Неопределено Тогда
ИдентификаторыБезКэша.Добавить(Идентификатор);
ИначеЕсли Описание.Ключ = Неопределено Тогда
Результат.Вставить(Идентификатор, Описание.Объект);
ИначеЕсли ТипЗнч(Описание.Ключ) = Тип("Тип") Тогда
Результат.Вставить(Идентификатор, Метаданные.НайтиПоТипу(Описание.Ключ));
Иначе
Результат.Вставить(Идентификатор, Метаданные.НайтиПоПолномуИмени(Описание.Ключ));
КонецЕсли;
КонецЦикла;
Если ИдентификаторыБезКэша.Количество() = 0 Тогда
Возврат Результат;
КонецЕсли;
ОбъектыМетаданныхПоИдентификаторам = ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора(ИдентификаторыБезКэша,
КромеНесуществующихИНедоступных);
Для Каждого КлючИЗначение Из ОбъектыМетаданныхПоИдентификаторам Цикл
ОписаниеОбъектаМетаданных = КлючИЗначение.Значение;
Если ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("Структура") Тогда
Результат.Вставить(КлючИЗначение.Ключ, ОписаниеОбъектаМетаданных.Объект);
ОписаниеОбъектаМетаданных.Объект = Неопределено;
Иначе
Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
ОписаниеОбъектаМетаданных = Новый Структура("Объект, Ключ", КлючИЗначение.Значение)
КонецЕсли;
ОписаниеОбъектовМетаданныхПоИдентификаторам.Вставить(КлючИЗначение.Ключ, ОписаниеОбъектаМетаданных);
КонецЦикла;
Возврат Результат;
КонецФункции КонецФункции
@@ -540,15 +621,15 @@
Если ОбъектыРасширений Если ОбъектыРасширений
И ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) И ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения)
И Не Справочники.ВерсииРасширений.УстановленныеРасширенияДоступны() Тогда И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ТекстОшибки = ТекстОшибки =
НСтр("ru = 'Невозможно обновить идентификаторы объектов расширений НСтр("ru = 'Невозможно обновить идентификаторы объектов расширений
|в сеансе неразделенного пользователя, так как |в сеансе неразделенного пользователя, так как
|расширения для разделенных пользователей не подключены.'"); |расширения для разделенных пользователей не подключены.'");
ВызватьИсключениеПоОшибке(Истина, ТекстОшибки); ВызватьИсключениеПоОшибке(Истина,
Возврат; ОписаниеОшибкиИдентификаторыОбъектовРасширенийНедоступныВНеразделенномРежиме());
КонецЕсли; КонецЕсли;
ПроверкаИспользования(ОбъектыРасширений); ПроверкаИспользования(ОбъектыРасширений);
@@ -569,7 +650,7 @@
Если Не ОбъектыРасширений Тогда Если Не ОбъектыРасширений Тогда
СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы( СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(
"СтандартныеПодсистемы.ИдентификаторыОбъектовМетаданных", Истина); "СтандартныеПодсистемы.БазоваяФункциональность.ИдентификаторыОбъектовМетаданных", Истина);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -609,26 +690,10 @@
ТипОписанияОбъектаМетаданных); ТипОписанияОбъектаМетаданных);
КонецЕсли; КонецЕсли;
Возврат СтандартныеПодсистемыПовтИсп.ИдентификаторОбъектаМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
КонецФункции
// Продолжение процедуры ИдентификаторОбъектаМетаданных.
Функция ИдентификаторОбъектаМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных) Экспорт
Массив = Новый Массив; Массив = Новый Массив;
Массив.Добавить(ПолноеИмяОбъектаМетаданных); Массив.Добавить(ПолноеИмяОбъектаМетаданных);
Идентификаторы = ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(Массив, Истина); Возврат ИдентификаторыОбъектовМетаданных(Массив, , Истина).Получить(ПолноеИмяОбъектаМетаданных);
Возврат Идентификаторы.Получить(ПолноеИмяОбъектаМетаданных);
КонецФункции
// См. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных.
Функция ИдентификаторыОбъектовМетаданных(ПолныеИменаОбъектовМетаданных) Экспорт
Возврат ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных);
КонецФункции КонецФункции
@@ -890,6 +955,7 @@
Строка.Синоним = НСтр("ru = 'Планы обмена'"); Строка.Синоним = НСтр("ru = 'Планы обмена'");
Строка.ИмяВЕдЧисле = "ПланОбмена"; Строка.ИмяВЕдЧисле = "ПланОбмена";
Строка.СинонимВЕдЧисле = НСтр("ru = 'План обмена'"); Строка.СинонимВЕдЧисле = НСтр("ru = 'План обмена'");
Строка.ОбъектыРасширений = Истина;
// Справочники // Справочники
Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
@@ -898,6 +964,7 @@
Строка.Синоним = НСтр("ru = 'Справочники'"); Строка.Синоним = НСтр("ru = 'Справочники'");
Строка.ИмяВЕдЧисле = "Справочник"; Строка.ИмяВЕдЧисле = "Справочник";
Строка.СинонимВЕдЧисле = НСтр("ru = 'Справочник'"); Строка.СинонимВЕдЧисле = НСтр("ru = 'Справочник'");
Строка.ОбъектыРасширений = Истина;
// Документы // Документы
Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
@@ -906,6 +973,7 @@
Строка.Синоним = НСтр("ru = 'Документы'"); Строка.Синоним = НСтр("ru = 'Документы'");
Строка.ИмяВЕдЧисле = "Документ"; Строка.ИмяВЕдЧисле = "Документ";
Строка.СинонимВЕдЧисле = НСтр("ru = 'Документ'"); Строка.СинонимВЕдЧисле = НСтр("ru = 'Документ'");
Строка.ОбъектыРасширений = Истина;
// ЖурналыДокументов // ЖурналыДокументов
Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
@@ -967,6 +1035,7 @@
Строка.Синоним = НСтр("ru = 'Регистры сведений'"); Строка.Синоним = НСтр("ru = 'Регистры сведений'");
Строка.ИмяВЕдЧисле = "РегистрСведений"; Строка.ИмяВЕдЧисле = "РегистрСведений";
Строка.СинонимВЕдЧисле = НСтр("ru = 'Регистр сведений'"); Строка.СинонимВЕдЧисле = НСтр("ru = 'Регистр сведений'");
Строка.ОбъектыРасширений = Истина;
// РегистрыНакопления // РегистрыНакопления
Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
@@ -1480,7 +1549,7 @@
ИЛИ Свойства.ЗначениеПустойСсылки <> СвойстваОбъекта.ЗначениеПустойСсылки ИЛИ Свойства.ЗначениеПустойСсылки <> СвойстваОбъекта.ЗначениеПустойСсылки
ИЛИ Свойства.ИмяРасширения <> СвойстваОбъекта.ИмяРасширения ИЛИ Свойства.ИмяРасширения <> СвойстваОбъекта.ИмяРасширения
ИЛИ Свойства.ХешСуммаРасширения <> СвойстваОбъекта.ХешСуммаРасширения ИЛИ Свойства.ХешСуммаРасширения <> СвойстваОбъекта.ХешСуммаРасширения
ИЛИ Свойства.ИмяПредопределенныхДанных <> "" ИЛИ Свойства.ИмяПредопределенныхДанных <> СвойстваОбъекта.ИмяПредопределенныхДанных
ИЛИ Свойства.ПометкаУдаления ИЛИ Свойства.ПометкаУдаления
ИЛИ КлючОбъектаМетаданных = Неопределено ИЛИ КлючОбъектаМетаданных = Неопределено
ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных
@@ -1496,7 +1565,7 @@
// Установка новых свойств идентификатора объекта метаданных. // Установка новых свойств идентификатора объекта метаданных.
ЗаполнитьЗначенияСвойств(Свойства, СвойстваОбъекта); ЗаполнитьЗначенияСвойств(Свойства, СвойстваОбъекта);
Свойства.ИмяПредопределенныхДанных = ""; Свойства.ИмяПредопределенныхДанных = СвойстваОбъекта.ИмяПредопределенныхДанных;
Если КлючОбъектаМетаданных = Неопределено Если КлючОбъектаМетаданных = Неопределено
ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных
@@ -1912,6 +1981,7 @@
СвойстваОбъектовМетаданных.Колонки.Добавить("ПорядокКоллекции", Новый ОписаниеТипов("Число")); СвойстваОбъектовМетаданных.Колонки.Добавить("ПорядокКоллекции", Новый ОписаниеТипов("Число"));
СвойстваОбъектовМетаданных.Колонки.Добавить("Родитель", Новый ОписаниеТипов(МассивТиповРодителя)); СвойстваОбъектовМетаданных.Колонки.Добавить("Родитель", Новый ОписаниеТипов(МассивТиповРодителя));
СвойстваОбъектовМетаданных.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150))); СвойстваОбъектовМетаданных.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150)));
СвойстваОбъектовМетаданных.Колонки.Добавить("ИмяПредопределенныхДанных", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255)));
СвойстваОбъектовМетаданных.Колонки.Добавить("Синоним", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255))); СвойстваОбъектовМетаданных.Колонки.Добавить("Синоним", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255)));
СвойстваОбъектовМетаданных.Колонки.Добавить("ПолныйСиноним", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(510))); СвойстваОбъектовМетаданных.Колонки.Добавить("ПолныйСиноним", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(510)));
СвойстваОбъектовМетаданных.Колонки.Добавить("БезДанных", Новый ОписаниеТипов("Булево")); СвойстваОбъектовМетаданных.Колонки.Добавить("БезДанных", Новый ОписаниеТипов("Булево"));
@@ -1925,16 +1995,22 @@
СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений); СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений);
КонецЕсли; КонецЕсли;
Если ОбъектыРасширений И Не ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) Тогда ИменаПредопределенныхДанных = ?(ОбъектыРасширений,
Возврат СвойстваОбъектовМетаданных; Метаданные.Справочники.ИдентификаторыОбъектовРасширений,
КонецЕсли; Метаданные.Справочники.ИдентификаторыОбъектовМетаданных).ПолучитьИменаПредопределенных();
Для каждого СвойстваКоллекции Из СвойстваКоллекций Цикл ИменаПредопределенных = Новый Соответствие;
ДобавитьСвойстваОбъектовМетаданных(Метаданные[СвойстваКоллекции.Имя], СвойстваКоллекции, Для Каждого ИмяПредопределенного Из ИменаПредопределенныхДанных Цикл
СвойстваОбъектовМетаданных, ОбъектыРасширений); ИменаПредопределенных.Вставить(ИмяПредопределенного, Ложь);
КонецЦикла; КонецЦикла;
Если Не ОбъектыРасширений Или ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) Тогда
Для каждого СвойстваКоллекции Из СвойстваКоллекций Цикл
ДобавитьСвойстваОбъектовМетаданных(Метаданные[СвойстваКоллекции.Имя], СвойстваКоллекции,
СвойстваОбъектовМетаданных, ОбъектыРасширений, ИменаПредопределенных);
КонецЦикла;
СвойстваОбъектовМетаданных.Индексы.Добавить("ПолноеИмя"); СвойстваОбъектовМетаданных.Индексы.Добавить("ПолноеИмя");
КонецЕсли;
Возврат СвойстваОбъектовМетаданных; Возврат СвойстваОбъектовМетаданных;
@@ -1944,10 +2020,11 @@
Знач СвойстваКоллекции, Знач СвойстваКоллекции,
Знач СвойстваОбъектовМетаданных, Знач СвойстваОбъектовМетаданных,
Знач ОбъектыРасширений, Знач ОбъектыРасширений,
Знач ИменаПредопределенных,
Знач ПолноеИмяРодителя = "", Знач ПолноеИмяРодителя = "",
Знач ПолныйСинонимРодителя = "") Знач ПолныйСинонимРодителя = "")
Для каждого ОбъектМетаданных Из КоллекцияОбъектовМетаданных Цикл Для Каждого ОбъектМетаданных Из КоллекцияОбъектовМетаданных Цикл
ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
Расширение = ОбъектМетаданных.РасширениеКонфигурации(); Расширение = ОбъектМетаданных.РасширениеКонфигурации();
@@ -1961,7 +2038,8 @@
МетаданныеНайтиПоПолномуИмени(ПолноеИмя); МетаданныеНайтиПоПолномуИмени(ПолноеИмя);
КонецЕсли; КонецЕсли;
Если НЕ СвойстваКоллекции.БезДанных Если Не СвойстваКоллекции.БезДанных
И Не ОбъектыРасширений
И СтрНайти(СвойстваКоллекции.ИмяВЕдЧисле, "Регистр") = 0 И СтрНайти(СвойстваКоллекции.ИмяВЕдЧисле, "Регистр") = 0
И СтрНайти(СвойстваКоллекции.ИмяВЕдЧисле, "Константа") = 0 Тогда И СтрНайти(СвойстваКоллекции.ИмяВЕдЧисле, "Константа") = 0 Тогда
@@ -1997,9 +2075,15 @@
СвойстваКоллекции, СвойстваКоллекции,
СвойстваОбъектовМетаданных, СвойстваОбъектовМетаданных,
ОбъектыРасширений, ОбъектыРасширений,
ИменаПредопределенных,
ПолноеИмя, ПолноеИмя,
НоваяСтрока.ПолныйСиноним + ". "); НоваяСтрока.ПолныйСиноним + ". ");
КонецЕсли; КонецЕсли;
ИмяПредопределенного = СтрЗаменить(ПолноеИмя, ".", "");
Если ИменаПредопределенных.Получить(ИмяПредопределенного) <> Неопределено Тогда
НоваяСтрока.ИмяПредопределенныхДанных = ИмяПредопределенного;
ИменаПредопределенных.Вставить(ИмяПредопределенного, Истина);
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -2476,14 +2560,14 @@
КонецФункции КонецФункции
// Для функций ИдентификаторОбъектаМетаданныхПоПолномуИмени, ИдентификаторыОбъектовМетаданных. // Для функций ИдентификаторОбъектаМетаданныхПоПолномуИмени, ИдентификаторыОбъектовМетаданных.
Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, ОдинЭлемент = Ложь) Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент)
СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина, СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина,
ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()); ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных());
Попытка Попытка
Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора( Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(
ПолныеИменаОбъектовМетаданных, ОдинЭлемент); ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент);
Исключение Исключение
Если Не ОбщегоНазначения.РазделениеВключено() Если Не ОбщегоНазначения.РазделениеВключено()
Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
@@ -2498,7 +2582,7 @@
Если Идентификаторы = Неопределено Тогда Если Идентификаторы = Неопределено Тогда
ОбновитьДанныеСправочника(); ОбновитьДанныеСправочника();
Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора( Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(
ПолныеИменаОбъектовМетаданных, ОдинЭлемент); ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент);
КонецЕсли; КонецЕсли;
Возврат Идентификаторы; Возврат Идентификаторы;
@@ -2506,13 +2590,13 @@
КонецФункции КонецФункции
// Для функций ИдентификаторыОбъектовМетаданных. // Для функций ИдентификаторыОбъектовМетаданных.
Функция ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(ПолныеИменаОбъектовМетаданных, ОдинЭлемент) Функция ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент)
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
ДоступныИдентификаторыОбъектовРасширений = ДоступныИдентификаторыОбъектовРасширений =
ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения)
И Справочники.ВерсииРасширений.УстановленныеРасширенияДоступны(); И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПолныеИмена", ПолныеИменаОбъектовМетаданных); Запрос.УстановитьПараметр("ПолныеИмена", ПолныеИменаОбъектовМетаданных);
@@ -2553,6 +2637,7 @@
Выгрузка.Индексы.Добавить("ПолноеИмя"); Выгрузка.Индексы.Добавить("ПолноеИмя");
Ошибки = Новый Массив; Ошибки = Новый Массив;
ДобавитьУточнениеОшибкиПараметровРаботыПрограммыДляРазработчика = Ложь;
ИдентификаторыИзКлючей = Неопределено; ИдентификаторыИзКлючей = Неопределено;
@@ -2565,6 +2650,9 @@
// Если идентификатор не найден по полному имени, возможно что полное имя задано с ошибкой. // Если идентификатор не найден по полному имени, возможно что полное имя задано с ошибкой.
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъектаМетаданных); ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
Если ОбъектМетаданных = Неопределено Тогда Если ОбъектМетаданных = Неопределено Тогда
Если КромеНесуществующих Тогда
Продолжить;
КонецЕсли;
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Объект метаданных не найден по полному имени: НСтр("ru = 'Объект метаданных не найден по полному имени:
|""%1"".'"), |""%1"".'"),
@@ -2602,6 +2690,19 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Расширение = ОбъектМетаданных.РасширениеКонфигурации();
Если Расширение <> Неопределено
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Идентификаторы объектов метаданных расширений не поддерживаются в неразделенном режиме.
|Невозможно вернуть идентификатор объекта метаданных ""%1""
|расширения ""%2"" версии ""%3"".'"),
ПолноеИмяОбъектаМетаданных, Расширение.Имя, Расширение.Версия);
Ошибки.Добавить(ОписаниеОшибки);
Продолжить;
КонецЕсли;
Если СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда Если СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда
Если ИдентификаторыИзКлючей = Неопределено Тогда Если ИдентификаторыИзКлючей = Неопределено Тогда
ИдентификаторыИзКлючей = ИдентификаторыИзКлючей(); ИдентификаторыИзКлючей = ИдентификаторыИзКлючей();
@@ -2614,14 +2715,13 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ШаблонОшибки = ?(ДоступныИдентификаторыОбъектовРасширений, ШаблонОшибки = ?(Расширение <> Неопределено,
НСтр("ru = 'Для объекта метаданных ""%1"" НСтр("ru = 'Для объекта метаданных ""%1""
|не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"" и |не найден идентификатор в регистре сведений ""Идентификаторы объектов версий расширений"".'"),
|регистре сведений ""Идентификаторы объектов версий расширений"".'"),
НСтр("ru = 'Для объекта метаданных ""%1"" НСтр("ru = 'Для объекта метаданных ""%1""
|не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"".'")); |не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"".'"));
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных) ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных);
+ СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика(); ДобавитьУточнениеОшибкиПараметровРаботыПрограммыДляРазработчика = Истина;
Ошибки.Добавить(ОписаниеОшибки); Ошибки.Добавить(ОписаниеОшибки);
Продолжить; Продолжить;
@@ -2633,8 +2733,8 @@
|регистре сведений ""Идентификаторы объектов версий расширений"".'"), |регистре сведений ""Идентификаторы объектов версий расширений"".'"),
НСтр("ru = 'Для объекта метаданных ""%1"" НСтр("ru = 'Для объекта метаданных ""%1""
|найдено несколько идентификаторов в справочнике ""Идентификаторы объектов метаданных"".'")); |найдено несколько идентификаторов в справочнике ""Идентификаторы объектов метаданных"".'"));
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных) ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных);
+ СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика(); ДобавитьУточнениеОшибкиПараметровРаботыПрограммыДляРазработчика = Истина;
Ошибки.Добавить(ОписаниеОшибки); Ошибки.Добавить(ОписаниеОшибки);
Продолжить; Продолжить;
@@ -2660,6 +2760,7 @@
ПолноеИмяОбъектаМетаданных, НазваниеСправочника, РезультатПроверки.ОбъектМетаданных); ПолноеИмяОбъектаМетаданных, НазваниеСправочника, РезультатПроверки.ОбъектМетаданных);
КонецЕсли; КонецЕсли;
ДобавитьУточнениеОшибкиПараметровРаботыПрограммыДляРазработчика = Истина;
Ошибки.Добавить(ОписаниеОшибки); Ошибки.Добавить(ОписаниеОшибки);
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -2696,8 +2797,8 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ТекстВсехОшибок = ТекстВсехОшибок ТекстВсехОшибок = ТекстВсехОшибок + ?(ДобавитьУточнениеОшибкиПараметровРаботыПрограммыДляРазработчика,
+ СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика(); СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика(), "");
ВызватьИсключение ЗаголовокОшибки + Разделитель + ТекстВсехОшибок; ВызватьИсключение ЗаголовокОшибки + Разделитель + ТекстВсехОшибок;
КонецЕсли; КонецЕсли;
@@ -2990,13 +3091,39 @@
+ СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика(); + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
КонецЕсли; КонецЕсли;
ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, РезультатПроверки.ОбъектМетаданных); ОписаниеОбъектаМетаданных = Новый Структура("Объект, Ключ", РезультатПроверки.ОбъектМетаданных);
Если РезультатПроверки.КлючОбъектаМетаданных <> Неопределено Тогда
ОписаниеОбъектаМетаданных.Ключ = РезультатПроверки.КлючОбъектаМетаданных;
Иначе
ОписаниеОбъектаМетаданных.Ключ = Свойства.ПолноеИмя;
КонецЕсли;
ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, ОписаниеОбъектаМетаданных);
КонецЦикла; КонецЦикла;
Возврат ОбъектыМетаданныхИдентификаторов; Возврат ОбъектыМетаданныхИдентификаторов;
КонецФункции КонецФункции
// Для функций ОбъектыМетаданныхПоИдентификаторам, ИдентификаторыОбъектовМетаданных.
Функция КэшИдентификаторов()
КлючДанныхПовторногоИспользования = Строка(ПараметрыСеанса.КлючДанныхПовторногоИспользования);
Возврат СтандартныеПодсистемыПовтИсп.КэшИдентификаторовОбъектовМетаданных(КлючДанныхПовторногоИспользования);
КонецФункции
// Для вызова из СтандартныеПодсистемыПовтИсп.КэшИдентификаторовОбъектовМетаданных.
Функция КэшИдентификаторовОбъектовМетаданных(КлючДанныхПовторногоИспользования) Экспорт
Хранилище = Новый Структура;
Хранилище.Вставить("ИдентификаторыПоПолнымИменам", Новый Соответствие);
Хранилище.Вставить("ОписаниеОбъектовМетаданныхПоИдентификаторам", Новый Соответствие);
Возврат Новый ФиксированнаяСтруктура(Хранилище);
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции замены идентификатора в базе данных. // Процедуры и функции замены идентификатора в базе данных.
@@ -135,6 +135,51 @@
<codeType>String</codeType> <codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength> <codeAllowedLength>Variable</codeAllowedLength>
<defaultPresentation>AsDescription</defaultPresentation> <defaultPresentation>AsDescription</defaultPresentation>
<predefined>
<items id="11f4f8a3-e2c3-4d4f-b7e2-a0bfaa1f0194">
<name>РегистрСведенийНастройкиВариантовОтчетов</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="9f48c326-12f8-4b88-a79b-bdb9afebcdb5">
<name>РегистрСведенийДанныеБизнесПроцессов</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="eca991f5-cbc7-4eaf-b7e9-04e65369c25c">
<name>РегистрСведенийДополнительныеСведения</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="be5c1ebb-eafe-4294-aa88-91b181f4e9de">
<name>РегистрСведенийИсполнителиЗадач</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="59edb0b6-aebb-4b30-99fd-60134db1affb">
<name>РегистрСведенийНапоминанияПользователя</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="d8a38942-8a25-40ae-8832-e08416c8f5c1">
<name>РегистрСведенийНастройкиУчетныхЗаписейЭлектроннойПочты</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="911a6de4-2849-4b14-80e2-2bef5cad025c">
<name>РегистрСведенийПредметыПапкиВзаимодействий</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
</predefined>
<predefinedDataUpdate>DontAutoUpdate</predefinedDataUpdate>
<editType>InDialog</editType> <editType>InDialog</editType>
<choiceMode>BothWays</choiceMode> <choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.ИдентификаторыОбъектовМетаданных.Form.ФормаЭлемента</defaultObjectForm> <defaultObjectForm>Catalog.ИдентификаторыОбъектовМетаданных.Form.ФормаЭлемента</defaultObjectForm>
@@ -135,7 +135,7 @@
<codeType>String</codeType> <codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength> <codeAllowedLength>Variable</codeAllowedLength>
<defaultPresentation>AsDescription</defaultPresentation> <defaultPresentation>AsDescription</defaultPresentation>
<predefinedDataUpdate>AutoUpdate</predefinedDataUpdate> <predefinedDataUpdate>DontAutoUpdate</predefinedDataUpdate>
<editType>InDialog</editType> <editType>InDialog</editType>
<choiceMode>BothWays</choiceMode> <choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.ИдентификаторыОбъектовРасширений.Form.ФормаЭлемента</defaultObjectForm> <defaultObjectForm>Catalog.ИдентификаторыОбъектовРасширений.Form.ФормаЭлемента</defaultObjectForm>
@@ -72,6 +72,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -211,6 +212,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -352,6 +354,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>NormalSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -587,6 +590,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -666,6 +670,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1229,6 +1234,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>WeakSeparation</representation> <representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
@@ -1351,6 +1357,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1379,6 +1386,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1482,6 +1490,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1702,6 +1711,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1766,6 +1776,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1946,6 +1957,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -2065,6 +2077,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -2170,6 +2183,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -676,7 +676,7 @@
ИнформационныйТекст = НСтр("ru = 'График работы заполнен до %1'"); ИнформационныйТекст = НСтр("ru = 'График работы заполнен до %1'");
Форма.ЗаполненностьИнформационныйТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ИнформационныйТекст, Формат(Форма.ДатаЗаполненности, "ДЛФ=D")); Форма.ЗаполненностьИнформационныйТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ИнформационныйТекст, Формат(Форма.ДатаЗаполненности, "ДЛФ=D"));
Иначе Иначе
#Если ВебКлиент Или ТонкийКлиент Тогда #Если ВебКлиент Или ТонкийКлиент ИЛИ МобильныйКлиент Тогда
ТекущаяДата = ОбщегоНазначенияКлиент.ДатаСеанса(); ТекущаяДата = ОбщегоНазначенияКлиент.ДатаСеанса();
#Иначе #Иначе
ТекущаяДата = ТекущаяДатаСеанса(); ТекущаяДата = ТекущаяДатаСеанса();
@@ -0,0 +1,484 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ГруппаПользовательскихНастроек</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<verticalStretch>false</verticalStretch>
<extendedTooltip>
<name>ГруппаПользовательскихНастроекРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>19</id>
<items xsi:type="form:Button">
<name>ФормаВключитьВозможностьРедактирования</name>
<id>23</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаВключитьВозможностьРедактированияExtendedTooltip</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ВключитьВозможностьРедактирования</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>CommandBar</type>
<extInfo xsi:type="form:CommandBarExtInfo">
<horizontalAlign>Left</horizontalAlign>
<commandSource>Form</commandSource>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>СписокНаименование</name>
<id>16</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>СписокНаименованиеРасширеннаяПодсказка</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокНаименованиеКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СписокСписок</name>
<id>25</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Список</segments>
</dataPath>
<extendedTooltip>
<name>СписокСписокРасширеннаяПодсказка</name>
<id>27</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСписокКонтекстноеМеню</name>
<id>26</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДляВнешнихПользователей</name>
<id>28</id>
<title>
<key>ru</key>
<value>ВП</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ДляВнешнихПользователей</segments>
</dataPath>
<extendedTooltip>
<name>ДляВнешнихПользователейРасширеннаяПодсказка</name>
<id>30</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДляВнешнихПользователейКонтекстноеМеню</name>
<id>29</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>Хеш</name>
<id>31</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Хеш</segments>
</dataPath>
<extendedTooltip>
<name>ХешРасширеннаяПодсказка</name>
<id>33</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ХешКонтекстноеМеню</name>
<id>32</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>34</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name>
<id>36</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СсылкаКонтекстноеМеню</name>
<id>35</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>5</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
<id>7</id>
<extendedTooltip>
<name>СписокСтрокаПоискаРасширеннаяПодсказка</name>
<id>9</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСтрокаПоискаКонтекстноеМеню</name>
<id>8</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокСостояниеПросмотра</name>
<id>10</id>
<extendedTooltip>
<name>СписокСостояниеПросмотраРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСостояниеПросмотраКонтекстноеМеню</name>
<id>11</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокУправлениеПоиском</name>
<id>13</id>
<extendedTooltip>
<name>СписокУправлениеПоискомРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокУправлениеПоискомКонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<choiceMode>true</choiceMode>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<mainTable>Catalog.КлючиДоступа</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<formCommands>
<name>ВключитьВозможностьРедактирования</name>
<title>
<key>ru</key>
<value>Включить возможность редактирования</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Включить возможность редактирования только для целей поиска неисправности (требуется углубленное понимание работы механизма)</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ВключитьВозможностьРедактирования</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>
@@ -0,0 +1,32 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
ТолькоПросмотр = Истина;
Если Параметры.РежимВыбора Тогда
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
Иначе
Элементы.Список.РежимВыбора = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВключитьВозможностьРедактирования(Команда)
ТолькоПросмотр = Ложь;
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,59 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
ТолькоПросмотр = Истина;
РасшифровкаСоставаПолей = РасшифровкаСоставаПолей(Объект.СоставПолей);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВключитьВозможностьРедактирования(Команда)
ТолькоПросмотр = Ложь;
ПоказатьПредупреждение(,
НСтр("ru = 'Ключ доступа не следует изменять, так как он сопоставлен с разными объектами.
|Чтобы исправить нестандартную проблему следует удалить ключ доступа или
|связь с ним в регистрах и выполнить процедуру обновления доступа.'"));
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция РасшифровкаСоставаПолей(СоставПолей)
ТекущееЧисло = СоставПолей;
Расшифровка = "";
НомерТабличнойЧасти = 0;
Пока ТекущееЧисло > 0 Цикл
Остаток = ТекущееЧисло - Цел(ТекущееЧисло / 16) * 16;
Если НомерТабличнойЧасти = 0 Тогда
Расшифровка = НСтр("ru = 'Шапка'") + ": " + Остаток;
Иначе
Расшифровка = Расшифровка + ", " + НСтр("ru = 'Табличная часть'") + " " + НомерТабличнойЧасти + ": " + Остаток;
КонецЕсли;
ТекущееЧисло = Цел(ТекущееЧисло / 16);
НомерТабличнойЧасти = НомерТабличнойЧасти + 1;
КонецЦикла;
Возврат Расшифровка;
КонецФункции
#КонецОбласти
@@ -0,0 +1,859 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="16939af9-e459-43da-8e0d-5d5891af6e0c">
<producedTypes>
<objectType typeId="d8a88bf4-4b52-41df-b3c4-3fe185a72c0c" valueTypeId="9a6e2ade-0fb8-47a7-b352-5e9976696d95"/>
<refType typeId="4aaa43fc-dd07-4baf-8f05-c129c5afda80" valueTypeId="20323143-2be0-49bb-8278-74caf1ad3cfd"/>
<selectionType typeId="45cd3fda-2ea3-4b02-b973-41113cd43bca" valueTypeId="fe97e1fa-b92f-4814-ac95-547da6d196cc"/>
<listType typeId="57c42149-4074-4e33-b28c-fdf893fd6865" valueTypeId="ae1b3750-b717-47fb-9c9a-d0448d78b749"/>
<managerType typeId="00988702-a738-4521-8ed9-52f20c04c18a" valueTypeId="4cf2a3d8-e249-477e-a8cb-f96a7a9c7955"/>
</producedTypes>
<name>КлючиДоступа</name>
<synonym>
<key>ru</key>
<value>Ключи доступа</value>
</synonym>
<inputByString>Catalog.КлючиДоступа.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<objectPresentation>
<key>ru</key>
<value>Ключ доступа</value>
</objectPresentation>
<explanation>
<key>ru</key>
<value>Группа однотипных объектов или записей регистра с одинаковым доступом. Ключ доступа содержит проверяемые значения (организацию, группу доступа контрагентов, … произвольное значение), полученные через поля доступа.</value>
</explanation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<descriptionLength>36</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.КлючиДоступа.Form.ФормаЭлемента</defaultObjectForm>
<defaultListForm>Catalog.КлючиДоступа.Form.ФормаСписка</defaultListForm>
<defaultChoiceForm>Catalog.КлючиДоступа.Form.ФормаСписка</defaultChoiceForm>
<attributes uuid="1d736a09-6c8f-433a-bf5b-201996bf4c62">
<name>Список</name>
<synonym>
<key>ru</key>
<value>Список</value>
</synonym>
<type>
<types>CatalogRef.ИдентификаторыОбъектовМетаданных</types>
</type>
<toolTip>
<key>ru</key>
<value>Список элементов справочников, документов, регистров и др., для которого используется ключ доступа.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="157988ad-d482-41df-b3e3-f2a0383d7130">
<name>ДляВнешнихПользователей</name>
<synonym>
<key>ru</key>
<value>Для внешних пользователей</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Ключ доступа для внешних пользователей</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="33af87a9-db69-41da-a33a-0435da2155e3">
<name>Хеш</name>
<synonym>
<key>ru</key>
<value>Хеш</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Хеш-сумма содержимого ключа, позволяющая сделать быстрый поиск по индексу</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="c95831b4-7d1d-4a9a-b5d0-caa03c4f4eca">
<name>СоставПолей</name>
<synonym>
<key>ru</key>
<value>Состав полей</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>17</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Количество полей в шапке и табличных частях, которые задействованы в ключе доступа (количество закодировано в группах по 4 бита, начиная с младших).
Используется при поиске объектов и записей регистров с устаревшими ключами доступа.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="81b63f1d-2c65-4efb-8599-8a4d97b612ab">
<name>Значение1</name>
<synonym>
<key>ru</key>
<value>Значение 1</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Значение доступа, группа значений доступа, ключ доступа, идентификатор списка или значение для условия, которое извлекается через поле доступа (непосредственно или как группа значения доступа или через «точку» или через соединение)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="4b13a2c6-a6ce-47a0-8d9e-1a5dbe8d4b00">
<name>Значение2</name>
<synonym>
<key>ru</key>
<value>Значение 2</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="d1dde981-615a-461f-b0c5-a85f51003a2c">
<name>Значение3</name>
<synonym>
<key>ru</key>
<value>Значение 3</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="f5970c48-63d7-4064-bdfc-482b72939347">
<name>Значение4</name>
<synonym>
<key>ru</key>
<value>Значение 4</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5c8039c0-34d8-4443-bd8f-dfe3dc2977a8">
<name>Значение5</name>
<synonym>
<key>ru</key>
<value>Значение 5</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<tabularSections uuid="335f379a-2974-44ce-a668-e7ffe2ce6263">
<producedTypes>
<objectType typeId="c91156b8-8359-4b88-bb17-214a5811aca8" valueTypeId="b03280ea-9696-4c46-bb5e-14b44be6bec5"/>
<rowType typeId="c129dccd-37e4-409e-81d9-44048a6b28a6" valueTypeId="e7949cfc-d78b-4f0b-bbb9-cd6f19c32e4a"/>
</producedTypes>
<name>Шапка</name>
<synonym>
<key>ru</key>
<value>Шапка</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="7edd75a2-9d03-4330-9185-28d0f0d4a2e4">
<name>Значение6</name>
<synonym>
<key>ru</key>
<value>Значение 6</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="f7cc4f9e-cf9a-41f5-865f-d64108b981a5">
<name>Значение7</name>
<synonym>
<key>ru</key>
<value>Значение 7</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="b58f8947-344c-4902-832c-d8004da55c34">
<name>Значение8</name>
<synonym>
<key>ru</key>
<value>Значение 8</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="35cccc1d-3d67-4d39-aa79-2c30a5347587">
<name>Значение9</name>
<synonym>
<key>ru</key>
<value>Значение 9</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="b6ee01eb-31ab-4f39-b4ff-37a04e3c7f35">
<name>Значение10</name>
<synonym>
<key>ru</key>
<value>Значение 10</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="0776dfb2-67e0-4e11-9f94-abde790ff7e2">
<producedTypes>
<objectType typeId="5f56fdff-bec7-454e-9e8c-18f245f45892" valueTypeId="deca0f53-11d2-4a89-a013-13021e008d9a"/>
<rowType typeId="80f3f921-58c0-49e9-8f48-8e061e62ef7c" valueTypeId="9c15d3d7-fa16-499f-b1f4-879bf0338f8c"/>
</producedTypes>
<name>ТабличнаяЧасть1</name>
<synonym>
<key>ru</key>
<value>Табличная часть 1</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="9c92b833-7406-48e2-9f59-69d575a3898f">
<name>Значение1</name>
<synonym>
<key>ru</key>
<value>Значение 1</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="0cc5334f-8147-455c-8262-540324415812">
<name>Значение2</name>
<synonym>
<key>ru</key>
<value>Значение 2</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="f3c4e6db-7c4e-4027-8bfd-f7854d566fc1">
<name>Значение3</name>
<synonym>
<key>ru</key>
<value>Значение 3</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="0eeb2f75-7092-4487-891f-cdbc9aa978cb">
<name>Значение4</name>
<synonym>
<key>ru</key>
<value>Значение 4</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="4ac60443-c7cb-492f-98b4-7e48bf9bfaa6">
<name>Значение5</name>
<synonym>
<key>ru</key>
<value>Значение 5</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="22979d50-ea57-4fab-9673-1b537838aead">
<producedTypes>
<objectType typeId="f2898d7f-ff05-4faa-89c3-bba1ee064ab6" valueTypeId="ff1dc3c5-7d1e-46ac-b743-71078d311e96"/>
<rowType typeId="d11f0778-78de-442a-a3bd-88ed83f540bc" valueTypeId="6d8e5cb8-0325-464d-aaaa-ef525adeb89d"/>
</producedTypes>
<name>ТабличнаяЧасть2</name>
<synonym>
<key>ru</key>
<value>Табличная часть 2</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="14676ee5-c247-46c6-a37e-c4362de79bb9">
<name>Значение1</name>
<synonym>
<key>ru</key>
<value>Значение 1</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="9fa36fe3-814e-4472-94ee-5d9d2b230b24">
<name>Значение2</name>
<synonym>
<key>ru</key>
<value>Значение 2</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="4b59dc62-0352-45a8-b33b-c42f4eea75ee">
<name>Значение3</name>
<synonym>
<key>ru</key>
<value>Значение 3</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="ea8a50ce-f09c-49f7-be58-ff2864e4eaa3">
<name>Значение4</name>
<synonym>
<key>ru</key>
<value>Значение 4</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="2020d672-bef4-4b30-885e-7f41364e412b">
<name>Значение5</name>
<synonym>
<key>ru</key>
<value>Значение 5</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="c292ddbc-9402-4c43-93d8-f8efafa6456e">
<producedTypes>
<objectType typeId="63ba96a9-0076-4f8a-a339-664fa1b8c10d" valueTypeId="4060e2b6-842a-4863-959b-152a4287fee8"/>
<rowType typeId="936c6038-2931-46cf-99bc-316a202b7638" valueTypeId="c8938644-aa3a-4dca-b176-174d27d8673c"/>
</producedTypes>
<name>ТабличнаяЧасть3</name>
<synonym>
<key>ru</key>
<value>Табличная часть 3</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="0281cbd6-972d-4632-9a6a-f8791e2534ee">
<name>Значение1</name>
<synonym>
<key>ru</key>
<value>Значение 1</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="bae01f18-b6f3-44e4-93c3-ffcb3ef01b98">
<name>Значение2</name>
<synonym>
<key>ru</key>
<value>Значение 2</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="98d66bf0-617a-40aa-97bd-896d37a966ab">
<name>Значение3</name>
<synonym>
<key>ru</key>
<value>Значение 3</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="1847bb2f-8309-4c49-b752-ef7ec16d4230">
<name>Значение4</name>
<synonym>
<key>ru</key>
<value>Значение 4</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="ca23f432-e2a3-4385-8cc1-7e9c96f9d7a1">
<name>Значение5</name>
<synonym>
<key>ru</key>
<value>Значение 5</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<tabularSections uuid="e1856045-f394-45b8-9f0c-298812f1f514">
<producedTypes>
<objectType typeId="cac7e327-cfce-4c34-87c5-521c594c9f18" valueTypeId="0bc6dff5-cc09-4dc4-bd80-61509460d357"/>
<rowType typeId="e1bfe5c9-03a3-4157-8bf0-ecb795ddd8a3" valueTypeId="354a056e-327b-4d94-a924-ed85cfb6618a"/>
</producedTypes>
<name>ТабличнаяЧасть4</name>
<synonym>
<key>ru</key>
<value>Табличная часть 4</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="eb175c1d-7fcb-4807-82e3-688639468116">
<name>Значение1</name>
<synonym>
<key>ru</key>
<value>Значение 1</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="4ed9c099-700f-409b-bd91-e24719046953">
<name>Значение2</name>
<synonym>
<key>ru</key>
<value>Значение 2</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="85b935b4-5eec-40cf-9d99-02cb3f599492">
<name>Значение3</name>
<synonym>
<key>ru</key>
<value>Значение 3</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="5764a412-4a20-4b2e-9905-ce74a9cac3ae">
<name>Значение4</name>
<synonym>
<key>ru</key>
<value>Значение 4</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="c4330791-d8f7-400f-b270-dee567e7a695">
<name>Значение5</name>
<synonym>
<key>ru</key>
<value>Значение 5</value>
</synonym>
<type>
<types>DefinedType.ЗначениеДоступа</types>
</type>
<toolTip>
<key>ru</key>
<value>Тоже, что реквизит Значение 1</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<forms uuid="aab8ec4d-51de-4c1a-9794-266c119332d1">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="77cb6e52-37a9-423c-8260-6998161adcb5">
<name>ФормаЭлемента</name>
<synonym>
<key>ru</key>
<value>Форма элемента</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>
@@ -650,13 +650,6 @@
<skipOnInput>false</skipOnInput> <skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation> <titleLocation>None</titleLocation>
<excludedCommands>Change</excludedCommands> <excludedCommands>Change</excludedCommands>
<excludedCommands>Choose</excludedCommands>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>CreateFolder</excludedCommands>
<excludedCommands>Delete</excludedCommands>
<excludedCommands>MoveItem</excludedCommands>
<excludedCommands>SetDeletionMark</excludedCommands>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>Представление</name> <name>Представление</name>
<id>4</id> <id>4</id>
@@ -1583,6 +1576,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -0,0 +1,82 @@
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив - список имен реквизитов объекта.
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Возврат Результат;
КонецФункции
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Возвращает ссылку на справочник внешней компоненты по идентификатору и версии.
//
// Параметры:
// Идентификатор - Строка - идентификатор объекта внешнего компонента.
// Версия - Строка - (необязательный) версия компоненты.
//
// Возвращаемое значение:
// СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе.
//
Функция НайтиПоИдентификатору(Идентификатор, Версия = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Если Не ЗначениеЗаполнено(Версия) Тогда
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВнешниеКомпоненты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ОбщиеВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
|
|УПОРЯДОЧИТЬ ПО
| ВнешниеКомпоненты.ДатаВерсии УБЫВ";
Иначе
Запрос.УстановитьПараметр("Версия", Версия);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВнешниеКомпоненты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ОбщиеВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
| И ВнешниеКомпоненты.Версия = &Версия";
КонецЕсли;
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат ПустаяСсылка();
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат Результат.Выгрузить()[0].Ссылка;
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -0,0 +1,387 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="46417026-c44a-4a06-af41-9cf6495a33b4">
<producedTypes>
<objectType typeId="d7f8cb83-b0fd-4cb5-a40f-6872c9869fa4" valueTypeId="d3b236a0-5ff7-4925-a8e4-cadf5b1a6145"/>
<refType typeId="a9d51596-9576-47e4-9426-f35b081100ae" valueTypeId="8ef71878-93fc-42bb-ad99-490dc71a45d0"/>
<selectionType typeId="c880a3f7-0f8f-4ca2-a0cc-6ff7174ee047" valueTypeId="0f75a3a6-a7d2-4225-b35d-ce0faaeb2f25"/>
<listType typeId="0c480581-c3a7-456d-acc2-c1c8d3f1325a" valueTypeId="1293465e-c97f-4f49-99ee-0d2dc2f059d3"/>
<managerType typeId="6ce17795-082f-45f0-a22e-600fe646b0b5" valueTypeId="163a0c77-9c4c-4239-a15c-dcebbc6a9280"/>
</producedTypes>
<name>ОбщиеВнешниеКомпоненты</name>
<synonym>
<key>ru</key>
<value>Общие внешние компоненты</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ОбщиеВнешниеКомпоненты.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
<key>ru</key>
<value>Общая внешняя компонента</value>
</objectPresentation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<descriptionLength>150</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<attributes uuid="363c15f3-660e-4e19-b3cc-37c5d05e8d22">
<name>Идентификатор</name>
<synonym>
<key>ru</key>
<value>Идентификатор</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>150</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Внутренний идентификатор объекта внешней компоненты.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:StringValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="eeb4b6f1-2476-467d-9862-6fe9d3013b2c">
<name>Версия</name>
<synonym>
<key>ru</key>
<value>Версия</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>20</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Версия внешней компоненты</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:StringValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="59d5cd7d-7f53-4015-89d9-bb8ad89f8c04">
<name>ДатаВерсии</name>
<synonym>
<key>ru</key>
<value>Дата версии</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="9d7f7dde-fea8-4064-abe2-bb7d04500cb2">
<name>ХранилищеКомпоненты</name>
<synonym>
<key>ru</key>
<value>Хранилище компоненты</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Двоичные данные внешней компоненты, содержит ZIP-архив (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3af45dae-f563-4d23-a87a-11b4d9d5d7a7">
<name>Windows_x86</name>
<synonym>
<key>ru</key>
<value>Windows x86</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="fe102b7b-b61f-4572-b2d0-c0af11bfb7d7">
<name>Windows_x86_64</name>
<synonym>
<key>ru</key>
<value>Windows x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="2cfa0db8-f0e6-4513-ab19-52dccff302bc">
<name>Linux_x86</name>
<synonym>
<key>ru</key>
<value>Linux x86</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b9fece39-6e5d-44c0-af5c-ad13cfb71560">
<name>Linux_x86_64</name>
<synonym>
<key>ru</key>
<value>Linux x86_64</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a9c30e99-c265-471d-9115-50ac2bb05191">
<name>Windows_x86_Firefox</name>
<synonym>
<key>ru</key>
<value>Windows x86 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="d388c9ca-1dbd-45b9-ac33-5ffa8cb11499">
<name>Linux_x86_Firefox</name>
<synonym>
<key>ru</key>
<value>Linux x86 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="efebb079-b913-4249-b128-e0ffc7ab43dd">
<name>Linux_x86_64_Firefox</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Firefox</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="52077ee4-fef1-451f-8338-86563ff5cf60">
<name>Windows_x86_MSIE</name>
<synonym>
<key>ru</key>
<value>Windows x86 MSIE</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="8e6780f8-8d0e-47d1-ac26-47bf5d906f61">
<name>Windows_x86_64_MSIE</name>
<synonym>
<key>ru</key>
<value>Windows x86_64 MSIE</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="fd4a26c1-31e0-4216-92e0-1e090ec4f094">
<name>Windows_x86_Chrome</name>
<synonym>
<key>ru</key>
<value>Windows x86 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="637148a3-0f54-4d41-91dd-a0aa6e191015">
<name>Linux_x86_Chrome</name>
<synonym>
<key>ru</key>
<value>Linux x86 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="9a86e2fe-a9bc-4f0a-a16e-a97944fe8539">
<name>Linux_x86_64_Chrome</name>
<synonym>
<key>ru</key>
<value>Linux x86_64 Chrome</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="86755cbc-efd8-43e7-bba8-975c0a51f38f">
<name>MacOS_x86_64_Safari</name>
<synonym>
<key>ru</key>
<value>Mac OS x86_64 Safari</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
</mdclass:Catalog>
Loaded 100 of 1135 files, more files were not shown because too many files have changed in this diff. Show more