3_1_2_150

This commit is contained in:
Компания 1С committed 2019-09-18 22:50:00 +03:00
1 parent 28f5f6c774
commit ccbf98d8bf
1113 files changed
+66602 -34649

No files matched your search

@@ -6,16 +6,11 @@
<GridHorizontalStep>20</GridHorizontalStep>
<GridVerticalStep>20</GridVerticalStep>
<PrintParameters>
<Paper xsi:type="xs:decimal">9</Paper>
<PageOrientation>Portrait</PageOrientation>
<Collate xsi:type="xs:decimal">1</Collate>
<Copies>1</Copies>
<TopMargin>10</TopMargin>
<LeftMargin>10</LeftMargin>
<BottomMargin>10</BottomMargin>
<RightMargin>10</RightMargin>
<BlackAndWhite>false</BlackAndWhite>
<PaperSource xsi:type="xs:decimal">7</PaperSource>
<FitPageMode>Auto</FitPageMode>
</PrintParameters>
<Items>
@@ -354,13 +354,6 @@
<key>ru</key>
<value>Номер и важность</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ГруппаНомерИВажностьExtendedTooltip</name>
<id>181</id>
@@ -725,13 +718,6 @@
<key>ru</key>
<value>Содержание</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ГруппаСодержаниеExtendedTooltip</name>
<id>187</id>
@@ -1758,5 +1744,9 @@
<event>BeforeWriteAtServer</event>
<name>ПередЗаписьюНаСервере</name>
</handlers>
<handlers>
<event>OnWriteAtServer</event>
<name>ПриЗаписиНаСервере</name>
</handlers>
</extInfo>
</form:Form>
@@ -61,7 +61,11 @@
Возврат;
КонецЕсли;
// Запись объекта бизнес-процесса.
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект);
КонецПроцедуры
@@ -227,7 +231,9 @@
&НаКлиенте
Процедура ИзменитьЗадание(Команда)
Если Модифицированность Тогда
Записать();
КонецЕсли;
ПоказатьЗначение(,Объект.БизнесПроцесс);
КонецПроцедуры
@@ -295,10 +301,11 @@
Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект)
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
ЗаданиеОбъект.Выполнено = ЗаданиеВыполнено;
ЗаданиеОбъект.Записать();
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс);
БизнесПроцессОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка);
БизнесПроцессОбъект.Выполнено = ЗаданиеВыполнено;
БизнесПроцессОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы
КонецПроцедуры
@@ -392,13 +392,6 @@
<key>ru</key>
<value>Номер и важность</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ГруппаНомерИВажностьExtendedTooltip</name>
<id>202</id>
@@ -440,7 +433,7 @@
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
@@ -1883,5 +1876,9 @@
<event>BeforeWriteAtServer</event>
<name>ПередЗаписьюНаСервере</name>
</handlers>
<handlers>
<event>OnWriteAtServer</event>
<name>ПриЗаписиНаСервере</name>
</handlers>
</extInfo>
</form:Form>
@@ -69,8 +69,11 @@
Возврат;
КонецЕсли;
ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект);
КонецПроцедуры
&НаСервере
@@ -216,8 +219,10 @@
&НаКлиенте
Процедура ИзменитьЗаданиеВыполнить(Команда)
Если Модифицированность Тогда
Записать();
ПоказатьЗначение(,ЗаданиеСсылка);
КонецЕсли;
ПоказатьЗначение(, ЗаданиеСсылка);
КонецПроцедуры
@@ -307,11 +312,12 @@
Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект)
УстановитьПривилегированныйРежим(Истина);
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
ЗаданиеОбъект.Выполнено = ЗаданиеВыполнено;
ЗаданиеОбъект.Подтверждено = ЗаданиеПодтверждено;
ЗаданиеОбъект.Записать();
ЗаданиеОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы
КонецПроцедуры
@@ -529,13 +529,6 @@
<key>ru</key>
<value>Исполнение</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ГруппаИсполнениеExtendedTooltip</name>
<id>115</id>
@@ -1135,13 +1128,6 @@
<key>ru</key>
<value>Автор</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ГруппаОбщиеСведенияExtendedTooltip</name>
<id>128</id>
@@ -1358,7 +1358,7 @@
ИЗ
БизнесПроцесс.Задание КАК БизнесПроцессЗадание
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцессыДляЗапуска КАК ПроцессыДляЗапуска
ПО БизнесПроцессЗадание.Ссылка = ПроцессыДляЗапуска.БизнесПроцесс</queryText>
ПО БизнесПроцессЗадание.Ссылка = ПроцессыДляЗапуска.Владелец</queryText>
<mainTable>BusinessProcess.Задание</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
@@ -66,12 +66,15 @@
//
Процедура ПриПеренаправленииЗадачи(ЗадачаСсылка, НоваяЗадачаСсылка) Экспорт
// АПК:1327-выкл Блокировка бизнес-процесса установлена ранее
// в вызывающей функции БизнесПроцессыИЗадачиВызовСервера.ПеренаправитьЗадачи.
БизнесПроцессОбъект = ЗадачаСсылка.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка);
БизнесПроцессОбъект.РезультатВыполнения = РезультатВыполненияПриПеренаправлении(ЗадачаСсылка)
+ БизнесПроцессОбъект.РезультатВыполнения;
УстановитьПривилегированныйРежим(Истина);
БизнесПроцессОбъект.Записать();
// АПК:1327-вкл
КонецПроцедуры
@@ -84,21 +87,34 @@
//
Процедура ОбработкаВыполненияПоУмолчанию(ЗадачаСсылка, БизнесПроцессСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
ЭтоТочкаМаршрутаВыполнить = (ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить);
ЭтоТочкаМаршрутаПроверить = (ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Проверить);
Если Не ЭтоТочкаМаршрутаВыполнить И Не ЭтоТочкаМаршрутаПроверить Тогда
Возврат;
КонецЕсли;
// Устанавливаем значения по умолчанию для пакетного выполнения задач.
Если ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить Тогда
НачатьТранзакцию();
Попытка
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(БизнесПроцессСсылка);
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = БизнесПроцессСсылка.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
Если ЭтоТочкаМаршрутаВыполнить Тогда
ЗаданиеОбъект.Выполнено = Истина;
ЗаданиеОбъект.Записать();
ИначеЕсли ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Проверить Тогда
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = БизнесПроцессСсылка.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
ИначеЕсли ЭтоТочкаМаршрутаПроверить Тогда
ЗаданиеОбъект.Выполнено = Истина;
ЗаданиеОбъект.Подтверждено = Истина;
ЗаданиеОбъект.Записать();
КонецЕсли;
ЗаданиеОбъект.Записать(); // АПК:1327 Блокировка в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы.
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
@@ -141,6 +157,40 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
// СтандартныеПодсистемы.ПодключаемыеКоманды
// Определяет список команд создания на основании.
//
// Параметры:
// КомандыСозданияНаОсновании - ТаблицаЗначений - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.
// Параметры - Структура - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
КонецПроцедуры
// Для использования в процедуре ДобавитьКомандыСозданияНаОсновании других модулей менеджеров объектов.
// Добавляет в список команд создания на основании этот объект.
//
// Параметры:
// КомандыСозданияНаОсновании - ТаблицаЗначений - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений, Неопределено - описание добавленной команды.
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульСозданиеНаОсновании = ОбщегоНазначения.ОбщийМодуль("СозданиеНаОсновании");
Возврат МодульСозданиеНаОсновании.ДобавитьКомандуСозданияНаОсновании(КомандыСозданияНаОсновании, Метаданные.БизнесПроцессы.Задание);
КонецЕсли;
Возврат Неопределено;
КонецФункции
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти
#КонецОбласти
@@ -15,6 +15,10 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа.
//
// Параметры:
// Таблица - ТаблицаЗначений - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа.
//
Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт
БизнесПроцессыИЗадачиПереопределяемый.ПриЗаполненииНаборовЗначенийДоступа(ЭтотОбъект, Таблица);
@@ -363,10 +363,7 @@
</synonym>
<comment>Объект системы, &quot;по поводу&quot; которого был создан бизнес-процесс.</comment>
<type>
<types>DocumentRef</types>
<types>TaskRef</types>
<types>ChartOfCharacteristicTypesRef</types>
<types>CatalogRef</types>
<types>DefinedType.ПредметЗадачи</types>
</type>
<toolTip>
<key>ru</key>
@@ -754,7 +754,7 @@
<id>2</id>
<toolTip>
<key>ru</key>
<value>Загрузить курсы валют с веб-сайта 1С</value>
<value>Загрузить курсы валют из Интернета</value>
</toolTip>
<use>
<common>true</common>
@@ -84,7 +84,7 @@
СтрокаСписка = Строки[Выборка.Валюта];
СтрокаСписка.Данные["Курс"] = Выборка.Курс;
Если Выборка.Кратность <> 1 Тогда
Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'руб. за %1 %2'"),
Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'за %1 %2'"),
Выборка.Кратность, СтрокаСписка.Данные["Наименование"]);
СтрокаСписка.Данные["Кратность"] = Пояснение;
КонецЕсли;
@@ -7,10 +7,10 @@
<div><strong>Наименование валюты</strong> - полное наименование валюты.</div>
</li>
<li>
<div><strong>Цифровой код</strong> - уникальный числовой код, принят международным стандартом, служит для идентификации валюты при загрузке курсов из сети Интернет (с портала 1С:ИТС).</div>
<div><strong>Цифровой код</strong> - уникальный числовой код, служит для идентификации валюты при загрузке курсов из сети Интернет (с портала 1С:ИТС).</div>
</li>
<li>
<div><strong>Символьный код</strong> - принят международным стандартом, используется как краткое наименование и основное представление валюты.</div>
<div><strong>Символьный код</strong> - используется как краткое наименование и основное представление валюты.</div>
</li>
<li>
<div><strong>Курс валюты</strong> - переключатель установлен в положение <b>з</b><strong>агружается из интернета</strong>, если курс валюты может загружаться с портала 1С:ИТС. </div></li></ul><h3>Особенности использования переключателя Курс валюты</h3>
@@ -138,7 +138,7 @@
&НаКлиенте
Процедура ПриИзмененииПараметровПрописиВалюты(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Если Результат = Неопределено Или Результат = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
+3 -7
View File
@@ -8,21 +8,17 @@
</li>
<li>
<div>
<div><strong>Цифр. код</strong> - уникальный числовой код, принят международным стандартом, служит для идентификации валюты при загрузке курсов из сети Интернет.</div></div>
<div><strong>Цифр. код</strong> - уникальный цифровой код, служит для идентификации валюты при загрузке курсов из сети Интернет. Например, 840 для доллара США.</div></div>
</li>
<li>
<div><strong>Симв. код</strong> - принят международным стандартом, используется как основное представление валюты.</div>
<div><strong>Симв. код</strong> - символьный код валюты, используется в качестве представления в полях ввода. Например, EUR (Евро).</div>
</li>
<li><strong>Курс</strong> - значение <a href="InformationRegister.КурсыВалют/Help">курса</a> на текущую дату.
</li>
<li>
<div><strong>Кратность</strong> - по умолчанию заполнено единицей и не выводится. Если курс какой-либо валюты очень низкий (точность составляет меньше четырех знаков дробной части), то в этом поле указывается количество котировочных единиц. Например, курс вьетнамского донга (VND) составляет 16,1574 руб. за 10000 VND. Состоит из трех вспомогательных колонок, в которых размещается данное выражение:</div>
<ul><li>
<div><strong>Руб</strong>.<strong> за</strong> - логическая связка.</div>
</li>
<li>
<div><strong>Кратность</strong> - проставляется количество котировочных единиц.</div>
</li>
<div><strong>Кратность</strong> - проставляется количество котировочных единиц.</div></li>
<li>
<div><strong>Краткое наименование</strong> - указывается символьный код валюты</div></li></ul></li></ul><h3>Добавление валюты из Общероссийского классификатора валют (ОКВ)</h3>
<ul><li>
@@ -124,7 +124,7 @@
Возврат;
КонецЕсли;
Если ВыполняетсяФоновыйПересчетКурсов() Тогда
Если ДополнительныеСвойства.Свойство("ОбновитьКурсы") И ВыполняетсяФоновыйПересчетКурсов() Тогда
ВызватьИсключение НСтр("ru = 'Не удалось записать валюту, так как еще не завершился фоновый пересчет курсов.
|Попробуйте записать валюту позже.'");
КонецЕсли;
@@ -141,6 +141,10 @@
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ВыполняетсяФоновыйПересчетКурсов()
ПараметрыЗадания = Новый Структура;
@@ -87,7 +87,8 @@
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("СмешаннаяВажность");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЗаблокированныйРеквизитЦвет);
ЦветЗаблокированногоРеквизита = Метаданные.ЭлементыСтиля.ЗаблокированныйРеквизитЦвет;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветЗаблокированногоРеквизита.Значение);
ВариантыОтчетов.УстановитьУсловноеОформлениеДереваПодсистем(ЭтотОбъект);
@@ -599,6 +599,82 @@
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаОбменВариантамиОтчетов</name>
<id>200</id>
<items xsi:type="form:Button">
<name>ОбновитьВариантОтчетаИзФайла</name>
<id>196</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОбновитьВариантОтчетаИзФайлаРасширеннаяПодсказка</name>
<id>197</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>
</items>
<items xsi:type="form:Button">
<name>СохранитьВариантОтчетаВФайл</name>
<id>198</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СохранитьВариантОтчетаВФайлРасширеннаяПодсказка</name>
<id>199</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>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Обмен вариантами отчетов</value>
</title>
<extendedTooltip>
<name>ГруппаОбменВариантамиОтчетовРасширеннаяПодсказка</name>
<id>201</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1832,6 +1908,9 @@
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Отчет</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.ПолноеИмяОтчета</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.ТипОтчета</segments>
</notDefaultUseAlwaysAttributes>
@@ -1870,13 +1949,15 @@
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Описание, ВариантыОтчетов.Описание) КАК СТРОКА(1000))
КОНЕЦ КАК Описание,
ВЫБОР
КОГДА ВариантыОтчетов.ТипОтчета В (ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Внутренний),
ВариантыОтчетов.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Расширение))
КОГДА ВариантыОтчетов.ТипОтчета В (
ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Внутренний),
ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Расширение))
ТОГДА ВариантыОтчетов.Отчет.Имя
КОГДА ВариантыОтчетов.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Дополнительный)
ТОГДА ВариантыОтчетов.Отчет
ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150)), 14, 137)
КОНЕЦ КАК ИмяОтчета,
СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета,
ВЫБОР
КОГДА ВариантыОтчетов.ПометкаУдаления = ИСТИНА
ТОГДА 4
@@ -1899,6 +1980,9 @@
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений
ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка
И (ПредставленияИзРасширений.КодЯзыка = &amp;КодЯзыка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях
ПО СведенияОРасширениях.ВерсияРасширений = &amp;ВерсияРасширений
И СведенияОРасширениях.Идентификатор = ВариантыОтчетов.Отчет
ГДЕ
ВариантыОтчетов.Отчет В(&amp;ДоступныеОтчеты)
И ВЫБОР
@@ -1907,7 +1991,6 @@
ИНАЧЕ ВариантыОтчетов.Ссылка В (&amp;ВариантыПользователя)
КОНЕЦ</queryText>
<mainTable>Catalog.ВариантыОтчетов</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
@@ -2180,6 +2263,58 @@
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>СохранитьВариантОтчетаВФайл</name>
<title>
<key>ru</key>
<value>Сохранить в файл...</value>
</title>
<id>3</id>
<toolTip>
<key>ru</key>
<value>Сохранить вариант отчета в файл</value>
</toolTip>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.СохранитьФайлКак</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>СохранитьВариантОтчетаВФайл</name>
</handler>
</action>
<representation>TextPicture</representation>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ОбновитьВариантОтчетаИзФайла</name>
<title>
<key>ru</key>
<value>Обновить из файла...</value>
</title>
<id>4</id>
<toolTip>
<key>ru</key>
<value>Обновить вариант отчета из файла</value>
</toolTip>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ОбновитьФайлИзФайлаНаДиске</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ОбновитьВариантОтчетаИзФайла</name>
</handler>
</action>
<representation>TextPicture</representation>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ТолькоВарианты</name>
<valueType>
@@ -92,6 +92,7 @@
Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()));
Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка);
Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
ТекущийЭлемент = Элементы.Список;
@@ -181,7 +182,7 @@
Возврат;
КонецЕсли;
ПараметрыРазмещения = Новый Структура("Варианты, Действие, Приемник, Источник"); //МассивВариантов, Всего, Представление
ПараметрыРазмещения = Новый Структура("Варианты, Действие, Приемник, Источник");
ПараметрыРазмещения.Варианты = Новый Структура("Массив, Всего, Представление");
ПараметрыРазмещения.Варианты.Массив = ПараметрыПеретаскивания.Значение;
ПараметрыРазмещения.Варианты.Всего = ПараметрыПеретаскивания.Значение.Количество();
@@ -290,6 +291,44 @@
ВариантыОтчетовКлиент.ПоказатьНастройкиОтчета(Элементы.Список.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьВариантОтчетаВФайл(Команда)
ВариантОтчета = Элементы.Список.ТекущаяСтрока;
Если Не ЗначениеЗаполнено(ВариантОтчета) Тогда
Возврат;
КонецЕсли;
ПараметрыСохранения = Новый Структура(ВариантыОтчетовКлиентСервер.СвойстваСохраненияВариантаОтчета());
ПараметрыСохранения.ВариантОтчета = ВариантОтчета;
ОткрытьФорму(
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.СохранениеВариантаОтчетаВФайл",
ПараметрыСохранения,
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьВариантОтчетаИзФайла(Команда)
Ссылка = Элементы.Список.ТекущаяСтрока;
Если ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ВариантыОтчетов") Тогда
Возврат;
КонецЕсли;
СвойстваВариантаОтчета = ВариантыОтчетовКлиент.СвойстваВариантаОтчетаОснования();
СвойстваВариантаОтчета.Ссылка = Ссылка;
СвойстваВариантаОтчета.ПредставлениеВарианта = Строка(Ссылка);
Обработчик = Новый ОписаниеОповещения(
"ОбновитьВариантОтчетаИзФайла", ВариантыОтчетовКлиент, СвойстваВариантаОтчета);
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Архив ZIP (*.zip)|*.zip'");
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
ФайловаяСистемаКлиент.ЗагрузитьФайл(Обработчик, ПараметрыЗагрузки);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -335,7 +374,8 @@
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Описание");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
ЦветПоясняющегоТекста = Метаданные.ЭлементыСтиля.ПоясняющийТекст;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветПоясняющегоТекста.Значение);
КонецПроцедуры
@@ -530,8 +570,13 @@
Размещено = 0;
УжеРазмещены = "";
НеМогутРазмещаться = "";
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЗаблокироватьВариантыОтчетовПередРазмещением(Блокировка, ПараметрыРазмещения.Варианты.Массив);
Блокировка.Заблокировать();
Для Каждого ВариантСсылка Из ПараметрыРазмещения.Варианты.Массив Цикл
Если ВариантСсылка.ТипОтчета = Перечисления.ТипыОтчетов.Внешний Тогда
НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС)
@@ -599,6 +644,7 @@
+ Строка(ВариантСсылка);
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
@@ -610,9 +656,26 @@
ОбновитьСодержимоеСписка();
КонецЕсли;
Возврат Новый Структура("Размещено,УжеРазмещены,НеМогутРазмещаться", Размещено, УжеРазмещены, НеМогутРазмещаться);
Возврат Новый Структура("Размещено, УжеРазмещены, НеМогутРазмещаться", Размещено, УжеРазмещены, НеМогутРазмещаться);
КонецФункции
&НаСервере
Процедура ЗаблокироватьВариантыОтчетовПередРазмещением(Блокировка, ВариантыОтчетов)
ИсточникДанных = Новый ТаблицаЗначений;
ИсточникДанных.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ВариантыОтчетов"));
Для Каждого ВариантОтчета Из ВариантыОтчетов Цикл
Строка = ИсточникДанных.Добавить();
Строка.Ссылка = ВариантОтчета;
КонецЦикла;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВариантыОтчетов");
ЭлементБлокировки.ИсточникДанных = ИсточникДанных;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "Ссылка");
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСодержимоеСпискаКлиент(Событие)
Замер = НачатьЗамер(Событие);
@@ -32,10 +32,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Opening</event>
<name>НаименованиеОткрытие</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -82,10 +78,6 @@
<event>StartChoice</event>
<name>ОписаниеНачалоВыбора</name>
</handlers>
<handlers>
<event>Opening</event>
<name>ОписаниеОткрытие</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
@@ -145,6 +137,12 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Страницы</name>
<id>269</id>
<items xsi:type="form:FormGroup">
<name>Пользователи</name>
<id>271</id>
<items xsi:type="form:FormField">
<name>Доступен</name>
<id>109</id>
@@ -185,76 +183,64 @@
<choiceList>
<presentation>
<key>ru</key>
<value>Только для автора</value>
<value>Только автору</value>
</presentation>
<value xsi:type="core:StringValue">
<value>1</value>
<value>ТолькоДляАвтора</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>Всем пользователям</value>
<value>Указанным пользователям</value>
</presentation>
<value xsi:type="core:StringValue">
<value>2</value>
<value>УказаннымПользователям</value>
</value>
</choiceList>
<orientation>Vertical</orientation>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ДеревоПодсистемЗаголовокИВидимостьПоУмолчанию</name>
<id>236</id>
<items xsi:type="form:Decoration">
<name>ДеревоПодсистемЗаголовок</name>
<id>238</id>
<items xsi:type="form:Table">
<name>ПользователиВарианта</name>
<id>275</id>
<title>
<key>ru</key>
<value>Размещение в панелях отчетов: </value>
<value>Пользователи варианта</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДеревоПодсистемЗаголовокРасширеннаяПодсказка</name>
<id>240</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемЗаголовокКонтекстноеМеню</name>
<id>239</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Left</groupHorizontalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ВидимостьПоУмолчанию</name>
<id>203</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ВидимостьПоУмолчанию</segments>
<segments>ПользователиВарианта</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<titleLocation>None</titleLocation>
<excludedCommands>Add</excludedCommands>
<excludedCommands>Change</excludedCommands>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>CopyToClipboard</excludedCommands>
<excludedCommands>EndEdit</excludedCommands>
<excludedCommands>Pickup</excludedCommands>
<items xsi:type="form:FormField">
<name>ПользователиВариантаПометка</name>
<id>291</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПользователиВарианта.Check</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПользователиВариантаПометкаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ВидимостьПоУмолчаниюРасширеннаяПодсказка</name>
<id>205</id>
<name>ПользователиВариантаПометкаРасширеннаяПодсказка</name>
<id>293</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -263,17 +249,125 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВидимостьПоУмолчаниюКонтекстноеМеню</name>
<id>204</id>
<name>ПользователиВариантаПометкаКонтекстноеМеню</name>
<id>292</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ПользователиВариантаЗначение</name>
<id>288</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПользователиВарианта.Value</segments>
</dataPath>
<extendedTooltip>
<name>ПользователиВариантаЗначениеРасширеннаяПодсказка</name>
<id>290</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользователиВариантаЗначениеКонтекстноеМеню</name>
<id>289</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<autoCommandBar>
<name>ПользователиВариантаКоманднаяПанель</name>
<id>277</id>
<items xsi:type="form:FormGroup">
<name>ПользователиВариантаГруппаПодобрать</name>
<id>294</id>
<items xsi:type="form:Button">
<name>ПользователиВариантаПодобратьПользователейГруппы</name>
<id>296</id>
<title>
<key>ru</key>
<value>Пользователей (группы)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПользователиВариантаПодобратьПользователейГруппыРасширеннаяПодсказка</name>
<id>297</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>
</items>
<items xsi:type="form:Button">
<name>ПользователиВариантаПодобратьГруппыВнешнихПользователей</name>
<id>298</id>
<title>
<key>ru</key>
<value>Группы внешних пользователей</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПользователиВариантаПодобратьГруппыВнешнихПользователейРасширеннаяПодсказка</name>
<id>299</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>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -281,11 +375,11 @@
</userVisible>
<title>
<key>ru</key>
<value>Дерево подсистем заголовок и видимость по умолчанию</value>
<value>Подобрать</value>
</title>
<extendedTooltip>
<name>ДеревоПодсистемЗаголовокИВидимостьПоУмолчаниюРасширеннаяПодсказка</name>
<id>237</id>
<name>ПользователиВариантаГруппаПодобратьРасширеннаяПодсказка</name>
<id>295</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -293,16 +387,229 @@
<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>
<type>Popup</type>
<extInfo xsi:type="form:PopupGroupExtInfo">
<representation>Auto</representation>
<importance>Normal</importance>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ПользователиВариантаПодобратьПользователей</name>
<id>300</id>
<title>
<key>ru</key>
<value>Подобрать</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПользователиВариантаПодобратьПользователейРасширеннаяПодсказка</name>
<id>301</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>
</items>
<items xsi:type="form:Button">
<name>ПользователиВариантаУдалить</name>
<id>302</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПользователиВариантаУдалитьРасширеннаяПодсказка</name>
<id>303</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.ПользователиВарианта.StandardCommand.Delete</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>BeforeAddRow</event>
<name>ПользователиВариантаПередНачаломДобавления</name>
</handlers>
<handlers>
<event>BeforeDeleteRow</event>
<name>ПользователиВариантаПередУдалением</name>
</handlers>
<handlers>
<event>ChoiceProcessing</event>
<name>ПользователиВариантаОбработкаВыбора</name>
</handlers>
<handlers>
<event>OnChange</event>
<name>ПользователиВариантаПриИзменении</name>
</handlers>
<searchStringAddition>
<name>ПользователиВариантаСтрокаПоиска</name>
<id>279</id>
<extendedTooltip>
<name>ПользователиВариантаСтрокаПоискаРасширеннаяПодсказка</name>
<id>281</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользователиВариантаСтрокаПоискаКонтекстноеМеню</name>
<id>280</id>
<autoFill>true</autoFill>
</contextMenu>
<source>ПользователиВарианта</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>ПользователиВариантаСостояниеПросмотра</name>
<id>282</id>
<extendedTooltip>
<name>ПользователиВариантаСостояниеПросмотраРасширеннаяПодсказка</name>
<id>284</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользователиВариантаСостояниеПросмотраКонтекстноеМеню</name>
<id>283</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>ПользователиВарианта</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>ПользователиВариантаУправлениеПоиском</name>
<id>285</id>
<extendedTooltip>
<name>ПользователиВариантаУправлениеПоискомРасширеннаяПодсказка</name>
<id>287</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользователиВариантаУправлениеПоискомКонтекстноеМеню</name>
<id>286</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>ПользователиВарианта</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ПользователиВариантаРасширеннаяПодсказка</name>
<id>278</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользователиВариантаКонтекстноеМеню</name>
<id>276</id>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<rowSelectionMode>Row</rowSelectionMode>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<horizontalLinesBWA>false</horizontalLinesBWA>
<verticalLinesBWA>false</verticalLinesBWA>
<useAlternationRowColorBWA>false</useAlternationRowColorBWA>
<autoInsertNewRow>true</autoInsertNewRow>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<fileDragMode>AsFileRef</fileDragMode>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>ПользователиВарианта.Picture</segments>
</rowPictureDataPath>
<autoMaxCardHeight>true</autoMaxCardHeight>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Пользователи</value>
</title>
<extendedTooltip>
<name>ПользователиРасширеннаяПодсказка</name>
<id>272</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>273</id>
<items xsi:type="form:Table">
<name>ДеревоПодсистем</name>
<id>80</id>
@@ -595,7 +902,6 @@
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColorBWA>false</useAlternationRowColorBWA>
<autoInsertNewRow>true</autoInsertNewRow>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
@@ -605,6 +911,57 @@
<currentRowUse>SelectionPresentationAndChoice</currentRowUse>
<autoMaxCardHeight>true</autoMaxCardHeight>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Разделы</value>
</title>
<extendedTooltip>
<name>РазделыРасширеннаяПодсказка</name>
<id>274</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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы</value>
</title>
<extendedTooltip>
<name>СтраницыРасширеннаяПодсказка</name>
<id>270</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">
<pagesRepresentation>TabsOnTop</pagesRepresentation>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Родитель</name>
<id>224</id>
@@ -2129,6 +2486,93 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПользователиВарианта</name>
<title>
<key>ru</key>
<value>Пользователи варианта</value>
</title>
<id>3</id>
<valueType>
<types>ValueList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType>
<types>CatalogRef.ГруппыВнешнихПользователей</types>
<types>CatalogRef.ГруппыПользователей</types>
<types>CatalogRef.Пользователи</types>
</itemValueType>
</extInfo>
</attributes>
<attributes>
<name>ИспользоватьГруппыПользователей</name>
<id>5</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИспользоватьВнешнихПользователей</name>
<id>9</id>
<valueType>
<types>Boolean</types>
</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>
<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>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПодобратьПользователей</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -2,27 +2,35 @@
<p>Предназначен для хранения <a href="Catalog.ВариантыОтчетов/Help">вариантов отчетов</a> и настройки их размещения в командном интерфейсе.</p>
<h3><a name="Реквизиты">Сведения</a> о варианте отчета</h3>
<ul><li>Заполните <strong>Наименование</strong> варианта отчета, которое выводится в списках программы и в панели отчетов.
</li><li>Напишите <strong>Описание - </strong>подробную информацию о варианте отчета, которая выводится как подсказка в панелях отчетов и в списках вариантов отчетов.
</li><li>Нажмите переключатель <strong>Доступен</strong> для того чтобы определить, кому будет виден данный вариант отчета:
<ul><li><strong>Только для автора</strong> - варианта отчета виден только автору, которого можно <img src="StdPicture.InputFieldSelect"></img> <strong>Выбрать</strong> из списка <a href="Catalog.Пользователи/Help">пользователей</a>. При этом имеется возможность назначить отчету другого автора, если это необходимо, например, ответственный за этот отчет поменялся.
</li><li><strong>Всем пользователям</strong> - доступность всем пользователям данного отчета.
<ul><li><strong>По умолчанию виден в панели отчетов</strong> - включите флажок, чтобы отчет был всегда виден всем пользователям в <a href="CommonForm.ПанельОтчетов/Help">панели отчетов</a>.</li></ul></li></ul></li></ul><p></p>
</li>
<li>Напишите <strong>Описание - </strong>подробную информацию о варианте отчета, которая выводится как подсказка в панелях отчетов и в списках вариантов отчетов.
</li>
<li>Укажите <b>Автора</b> отчета, выбрав из списка пользователей. Например, так можно закрепить варианты отчетов за конкретными сотрудниками, назначив из ответственными за актуальность варианта отчета. </li></ul><h3>Доступность</h3>
<div>На вкладке <b>Пользователи</b> с помощью переключателя <strong>Доступен</strong> можно указать, кому будет виден данный вариант отчета:</div>
<div>
<ul><li><strong>Только автору</strong>;</li>
<li><b>Указанным пользователям</b>.</li></ul></div>
<div>С помощью кнопки <b>Подобрать</b> можно выбрать из списка <a href="Catalog.Пользователи/Help">пользователей</a>, которым будет доступен отчет. </div>
<div>Для указанных пользователей отчет будет отображаться в <a href="CommonForm.ПанельОтчетов/Help">панели отчетов</a>, подменю и окне выбора варианта отчета. Остальным пользователям, имеющим права на отчет, он будет доступен из списка Все отчеты, а также в режиме настройки панели отчетов.</div>
<div>
<p></p>
<h3><a name="Размещение">Размещение в панелях отчетов</a></h3>
<p>Размещение вариантов отчетов могут менять администраторы вариантов отчетов и авторы.</p>
<p>Размещение вариантов отчетов на вкладке <b>Разделы</b> могут менять администраторы вариантов отчетов и авторы.</p>
<ul><li>Включите один или несколько флажков в колонке <strong>Раздел, группа</strong> для размещения варианта отчетов в разделах или группах программы. При размещении в разделе вариант отчета будет выводиться в верхней части панели отчетов раздела, без размещения в группах.
</li><li>
</li>
<li>
<div>В колонке <strong>Важность</strong> выберите способ выделения варианта отчета в группе: </div>
<ul><li>
<div><strong>Важный</strong> – вариант отчета будет выделен жирным шрифтом.</div>
</li><li>
</li>
<li>
<div><strong>См. также</strong> – вариант отчета будет выведен в отдельной группе внизу панели отчетов.</div></li></ul></li></ul><p></p>
<h3><a name="Команды">Формирование отчета</a></h3>
<ul><li>Нажмите <strong>Открыть</strong>, укажите необходимые для <a href="CommonForm.ФормаОтчета/Help">отчета</a> <a href="CommonForm.ФормаНастроекОтчета/Help">параметры</a>, затем нажмите <strong>Сформировать</strong>.</li></ul><h3>Сброс настроек</h3>
<ul><li>
<div>Сброс настроек может быть необходим, если они ошибочны и затрудняют работу с отчетом. Выполните команды:</div>
</li><li>
<div><strong>Еще - Сбросить настройки размещения</strong> - сбросить настройки размещения по данному варианту отчета;</div>
</li><li>
<div><strong>Еще - Сбросить настройки пользователей</strong> - сбросить пользовательские настройки в панелях отчетов по данному варианту отчета.</div></li></ul><h3>См. также:</h3>
<p></p>
<ul><li><strong>Еще - Сбросить настройки размещения</strong> - сбросить настройки размещения по данному варианту отчета;</li>
<li><strong>Еще - Сбросить настройки пользователей</strong> - сбросить пользовательские настройки в панелях отчетов по данному варианту отчета.</li></ul><p></p>
<h3>См. также:</h3>
<ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></div></body></html>
@@ -18,7 +18,7 @@
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Доступен = ?(Объект.ТолькоДляАвтора, "1", "2");
Доступен = ?(Объект.ТолькоДляАвтора, "ТолькоДляАвтора", "УказаннымПользователям");
ПолныеПраваНаВарианты = ВариантыОтчетов.ПолныеПраваНаВарианты();
ПравоНаЭтотВариант = ПолныеПраваНаВарианты Или Объект.Автор = Пользователи.АвторизованныйПользователь();
@@ -45,7 +45,6 @@
Элементы.Доступен.ТолькоПросмотр = Не ПолныеПраваНаВарианты;
Элементы.Автор.ТолькоПросмотр = Не ПолныеПраваНаВарианты;
Элементы.ВидимостьПоУмолчанию.ТолькоПросмотр = Не ПолныеПраваНаВарианты;
Элементы.ТехническаяИнформация.Видимость = ПолныеПраваНаВарианты;
// Заполнение имени отчета для команды "Просмотр".
@@ -60,19 +59,22 @@
ПерезаполнитьДерево(Ложь);
ЛокализуемыеЭлементы = Новый Массив;
ЛокализуемыеЭлементы.Добавить(Элементы.Наименование);
ЛокализуемыеЭлементы.Добавить(Элементы.Описание);
ЛокализацияСервер.ПриСозданииНаСервере(ЛокализуемыеЭлементы);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
ВариантыОтчетов.ОпределитьПоведениеСпискаПользователейВариантаОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ПараметрыОткрытияФормыОтчета <> Неопределено Тогда
Отказ = Истина;
ВариантыОтчетовКлиент.ОткрытьФормуОтчета(Неопределено, ПараметрыОткрытияФормыОтчета);
КонецЕсли;
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект, Ложь);
КонецПроцедуры
&НаКлиенте
@@ -87,15 +89,14 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// Запись свойств, связанных с предопределенным вариантом отчета.
ОписаниеИзменено = Ложь;
Если ЭтоПредопределенный Тогда
ПредопределенныйВариант = ТекущийОбъект.ПредопределенныйВариант.ПолучитьОбъект();
ЛокализацияСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
ТекущийОбъект.ВидимостьПоУмолчаниюПереопределена =
Объект.ВидимостьПоУмолчанию <> ПредопределенныйВариант.ВидимостьПоУмолчанию;
ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание) И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание));
Если Не ОписаниеИзменено Тогда
ТекущийОбъект.Описание = "";
@@ -114,10 +115,13 @@
КонецЕсли;
ВариантыОтчетов.ДеревоПодсистемЗаписать(ТекущийОбъект, ИзмененныеРазделы);
ЛокализацияСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ЭтоПредопределенный И Не ОписаниеИзменено Тогда
ТекущийОбъект.Представления.Очистить();
КонецЕсли;
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПользователиВарианта", ПользователиВарианта);
КонецПроцедуры
&НаСервере
@@ -132,7 +136,7 @@
ПерезаполнитьДерево(Ложь);
ЗаполнитьИзПредопределенного(ТекущийОбъект);
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
@@ -152,7 +156,10 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЗаполнитьИзПредопределенного(ТекущийОбъект);
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
РегистрыСведений.НастройкиВариантовОтчетов.ПрочитатьНастройкиДоступностиВариантаОтчета(
ТекущийОбъект.Ссылка, ПользователиВарианта, ИспользоватьГруппыПользователей, ИспользоватьВнешнихПользователей);
КонецПроцедуры
@@ -163,22 +170,64 @@
&НаКлиенте
Процедура ОписаниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВариантыОтчетовКлиент.РедактироватьМногострочныйТекст(ЭтотОбъект, Элемент.ТекстРедактирования, Объект, "Описание", НСтр("ru = 'Описание'"));
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(Элемент.ТекстРедактирования, ЭтотОбъект, "Описание", НСтр("ru = 'Описание'"));
КонецПроцедуры
&НаКлиенте
Процедура ДоступенПриИзменении(Элемент)
Объект.ТолькоДляАвтора = (ЭтотОбъект.Доступен = "1");
Объект.ТолькоДляАвтора = (Доступен = "ТолькоДляАвтора");
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеОткрытие(Элемент, СтандартнаяОбработка)
ЛокализацияКлиент.ПриОткрытии(Объект, Элемент, "Наименование", СтандартнаяОбработка);
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПользователиВарианта
&НаКлиенте
Процедура ПользователиВариантаПриИзменении(Элемент)
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОписаниеОткрытие(Элемент, СтандартнаяОбработка)
ЛокализацияКлиент.ПриОткрытии(Объект, Элемент, "Описание", СтандартнаяОбработка);
Процедура ПользователиВариантаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаПередУдалением(Элемент, Отказ)
Если Не ИспользоватьГруппыПользователей
И Не ИспользоватьВнешнихПользователей Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ВариантыОтчетовКлиент.ПользователиВариантаОтчетаОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаПометкаПриИзменении(Элемент)
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
@@ -197,12 +246,32 @@
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодобратьПользователей(Команда)
ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьГруппыВнешнихПользователей(Команда)
ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(ЭтотОбъект, Истина);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
ВариантыОтчетов.УстановитьУсловноеОформлениеСпискаПользователейВариантаОтчета(ЭтотОбъект);
ВариантыОтчетов.УстановитьУсловноеОформлениеДереваПодсистем(ЭтотОбъект);
КонецПроцедуры
@@ -231,9 +300,6 @@
КонецЕсли;
ПредопределенныйВариант = ВариантОбъект.ПредопределенныйВариант.ПолучитьОбъект();
Если ВариантОбъект.ВидимостьПоУмолчаниюПереопределена = Ложь Тогда
ВариантОбъект.ВидимостьПоУмолчанию = ПредопределенныйВариант.ВидимостьПоУмолчанию;
КонецЕсли;
ВариантОбъект.Наименование = ПредопределенныйВариант.Наименование;
@@ -1,4 +1,4 @@
<!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.10570.1001"></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.10570.1001"></meta></head><body class="">
<p>Предназначен для управления вариантами отчетов, для настройки размещения в панелях отчетов разделов программы.</p>
<p>Программа позволяет сохранять и использовать несколько вариантов одного и того же отчета. Предусмотрены предопределенные варианты отчетов. Также можно создавать свои собственные варианты отчетов, изменяя настройки существующих: <a href="v8help://mngui/reportFormMain">настройки</a> формирования и внешнего вида (состав полей, сортировки, группировки, условное оформление).</p>
<p>В программе предусмотрена возможность создавать общие варианты отчетов. Общие варианты отчетов доступны всем пользователям этого отчета.</p>
@@ -9,63 +9,95 @@
<p>Список состоит из двух частей: </p>
<ul><li>в левой части расположено дерево разделов и групп командного интерфейса программы, в которых имеются панели отчетов.
<ul><li>При перемещении по узлам дерева список автоматически фильтруется по выбранному разделу или группе.
</li><li>При помощи флажка <strong>Включая подчиненные</strong> можно показать все отчеты раздела или группы, включая варианты отчетов вложенных групп. </li></ul></li><li>В правой части размещается список отчетов. </li></ul><p>В списке выводится: </p>
</li>
<li>При помощи флажка <strong>Включая подчиненные</strong> можно показать все отчеты раздела или группы, включая варианты отчетов вложенных групп. </li></ul></li>
<li>В правой части размещается список отчетов. </li></ul><p>В списке выводится: </p>
<ul><li>
<div><strong>Наименование</strong> - полное наименование варианта отчета, которое выводится в списках.</div>
</li><li><strong>Автор</strong> - полное имя пользователя, который является автором варианта отчета.
</li><li><strong>Описание</strong> - подробная информация о варианте отчета.</li></ul><p>Для того чтобы добавить колонки в список, нажмите <strong>Еще - Изменить форму</strong> (настройки сохраняются):</p>
</li>
<li><strong>Автор</strong> - полное имя пользователя, который является автором варианта отчета.
</li>
<li><strong>Описание</strong> - подробная информация о варианте отчета.</li></ul><p>Для того чтобы добавить колонки в список, нажмите <strong>Еще - Изменить форму</strong> (настройки сохраняются):</p>
<ul><li>
<div>Картинка <strong>Доступен всем пользователям:</strong></div>
<ul><li>
<div>видна - вариант отчета доступен всем пользователям, </div>
</li><li>
<div>не видна - вариант отчета доступен только автору.</div></li></ul></li><li><strong>Техническая информация</strong>:
</li>
<li>
<div>не видна - вариант отчета доступен только автору.</div></li></ul></li>
<li><strong>Техническая информация</strong>:
<ul><li>
<div><strong>Имя отчета</strong> - имя, под которым отчет зарегистрирован в программе. </div>
</li><li>
</li>
<li>
<div><strong>Отчет</strong> - полное наименование отчета (представление). </div>
</li><li>
</li>
<li>
<div><strong>Тип отчета</strong> - существуют три типа отчетов: </div>
<ul><li>
<div><strong>Внутренний</strong> </div>
</li><li>
</li>
<li>
<div><strong>Дополнительный</strong> </div>
</li><li>
<div><strong>Внешний</strong> - варианты внешних отчетов не могут размещаться в панели отчетов.</div></li></ul></li><li>
</li>
<li>
<div><strong>Внешний</strong> - варианты внешних отчетов не могут размещаться в панели отчетов.</div></li></ul></li>
<li>
<div><strong>Ключ варианта</strong> - имя предопределенного или уникальный идентификатор пользовательского варианта отчета. </div>
</li><li>
</li>
<li>
<div><strong>Наименования параметров и отборов</strong> - перечисляются параметры и отборы отчетов.</div>
</li><li>
</li>
<li>
<div><strong>Наименования полей</strong> - перечисляются наименования полей отчетов.</div></li></ul></li></ul><h3>Поиск</h3>
<p>Если список вариантов отчетов большой, то с помощью поиска можно быстро найти нужный вариант отчета. </p>
<ul><li>В поле <strong>Поиск</strong> наберите искомое значение, нажмите <strong>Найти</strong>. Поиск проводится в выделенном разделе (группе).
<ul><li>
<p>Отчеты можно искать по слову (части слова), также возможен поиск по нескольким словам. Поиск осуществляется: </p>
<ul><li>в наименованиях отчета;
</li><li>в описаниях варианта отчета;
</li><li>в представлениях полей варианта отчета;
</li><li>в представлениях параметров и отборов варианта отчета;
</li><li>в наименованиях пользовательских настроек варианта отчета;
</li><li>в наименованиях разделов и групп программы и панели отчетов.</li></ul></li></ul></li></ul><h3>Формирование отчета</h3>
</li>
<li>в описаниях варианта отчета;
</li>
<li>в представлениях полей варианта отчета;
</li>
<li>в представлениях параметров и отборов варианта отчета;
</li>
<li>в наименованиях пользовательских настроек варианта отчета;
</li>
<li>в наименованиях разделов и групп программы и панели отчетов.</li></ul></li></ul></li></ul><h3>Формирование отчета</h3>
<ul><li>
<div>Выделите один из вариантов отчетов, нажмите <strong>Открыть</strong>, произведите необходимые настройки, нажмите <strong>Сформировать</strong>.</div>
</li><li>
</li>
<li>
<div>В списке <strong>Все отчеты</strong> также можно воспользоваться двойным щелчком мыши на нужном варианте отчета.</div></li></ul><h3>Настройка варианта отчета</h3>
<ul><li>
<div>Выберите вариант отчета, нажмите <strong>Изменить</strong>, отредактируйте необходимые <a href="Catalog.ВариантыОтчетов.Form.ФормаЭлемента/Help">поля</a>.</div>
</li><li>
<div>В списке <strong>Варианты отчетов</strong>, предназначенном только для администратора, также можно воспользоваться двойным щелчком мыши на нужном варианте отчета.</div></li></ul><h3>Удаление варианта отчета</h3>
</li>
<li>
<div>В списке <strong>Варианты отчетов</strong>, предназначенном только для администратора, также можно воспользоваться двойным щелчком мыши на нужном варианте отчета.</div></li></ul><h3>Обновление варианта отчета из файла</h3>
<p></p>
<ul><li>С помощью кнопки <img src="CommonPicture.ОбновитьФайлИзФайлаНаДиске"></img> <b>Обновить из файла</b> можно загрузить вариант отчета, сохраненный вместе с пользовательскими настройками в архивный файл на компьютере. Укажите путь к архиву с вариантом отчета.</li>
<li>Данная возможность предназначена для обмена настройками вариантов отчета между информационными базами идентичной структуры.</li></ul><p></p>
<h3>Сохранение варианта отчета в файл</h3>
<p></p>
<ul><li>С помощью кнопки <img src="CommonPicture.СохранитьФайлКак"></img> <b>Сохранить в файл</b> можно записать вариант отчета (с включением пользовательских настроек). Укажите путь к архивному файлу на компьютере. Вместе с вариантом отчета по умолчанию сохраняются и пользовательские настройки. Можно отменить сохранение всех или некоторых настроек с помощью флажков.</li>
<li>Данная возможность предназначена для обмена настройками вариантов отчета между информационными базами идентичной структуры.</li></ul><h3>Удаление варианта отчета</h3>
<ul><li>Пользовательский вариант отчета с помощью команды меню <strong>Еще</strong> можно <strong>Пометить на удаление</strong>. Также можно воспользоваться клавишей <strong>Del</strong>.
</li><li>Повторно выполните эту команду, для того чтобы <strong>Снять пометку удаления</strong>.
</li><li>Эта возможность недоступна для предопределенных вариантов отчетов.</li></ul><h3>Размещение вариантов отчетов в разделах программы </h3>
</li>
<li>Повторно выполните эту команду, для того чтобы <strong>Снять пометку удаления</strong>.
</li>
<li>Эта возможность недоступна для предопределенных вариантов отчетов.</li></ul><h3>Размещение вариантов отчетов в разделах программы </h3>
<p><a href="Catalog.ВариантыОтчетов.Form.РазмещениеВРазделах/Help">Размещение</a> варианта отчета может быть изменено автором отчета или администратором.</p>
<ul><li>Варианты отчетов можно перемещать из текущего раздела/группы в другие при помощи перетаскивания мышью. Если при перетаскивании зажать клавишу <strong>Ctrl</strong>, то вариант отчета будет добавлен в новую группу, а также останется в текущей группе. Программа запрашивает подтверждение размещения варианта отчета. Для подтверждения нажмите <strong>Да</strong>.
</li><li>
</li>
<li>
<p>С помощью команды <strong>Еще - Разместить в разделах</strong> можно настроить размещение сразу для нескольких вариантов отчетов, указав, в каких разделах и группах командного интерфейса программы они должны располагаться.</p>
</li><li>
</li>
<li>
<p>Предусмотрены дополнительные возможности по настройке внешнего вида панели отчетов в программе: можно выделить тот или иной вариант отчета как <strong>Важный</strong> или поместить в группу <strong>См. также</strong>.</p></li></ul><ul><li>
<p> В списке <strong>Варианты отчетов</strong>, предназначенном только для администратора, команда <strong>Разместить в разделах</strong> для удобства управления вариантами отчетов выведена в командную панель списка.</p></li></ul><h3>Сброс настроек</h3>
<ul><li>
<div>Нажмите <strong>Еще - Сбросить настройки размещения</strong>, для того чтобы восстановить исходные настройки выбранных вариантов отчетов: размещение в разделах программы, доступность и видимость по умолчанию. Может выполняться только для предопределенных вариантов отчетов; </div>
</li><li>Нажмите <strong>Еще - Сбросить настройки пользователей</strong>, для того чтобы сбросить пользовательские настройки выбранных вариантов отчетов: видимость и быстрый доступ.</li></ul><h3>См. также: </h3>
</li>
<li>Нажмите <strong>Еще - Сбросить настройки пользователей</strong>, для того чтобы сбросить пользовательские настройки выбранных вариантов отчетов: видимость и быстрый доступ.</li></ul><h3>См. также: </h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
@@ -135,7 +135,7 @@
Если ЭтоПредопределенный Тогда
Данные.Ссылка = Данные.ПредопределенныйВариант;
КонецЕсли;
ЛокализацияКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецПроцедуры
@@ -10,7 +10,14 @@
#Область ОбработчикиСобытий
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
ИнициализироватьОбъект(ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ИсключаемыеРеквизиты = Новый Массив;
Если Не Пользовательский Тогда
@@ -26,18 +33,23 @@
,
"Наименование");
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ДополнительныеСвойства.Свойство("ЗаполнениеПредопределенных") Тогда
ПроверитьЗаполнениеПредопределенного(Отказ);
КонецЕсли;
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
ПользователемИзмененаПометкаУдаления = (
Не ЭтоНовый()
И ПометкаУдаления <> Ссылка.ПометкаУдаления
@@ -88,20 +100,110 @@
КонецЦикла;
ЗаполнитьПоляДляПоиска();
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПользователиВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ПользователиВарианта");
ЭтоНовый = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь);
РегистрыСведений.НастройкиВариантовОтчетов.ЗаписатьНастройкиДоступностиВариантаОтчета(
Ссылка, ЭтоНовый, ПользователиВарианта);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ИнициализироватьОбъект(ДанныеЗаполнения)
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
НастройкиВариантаОтчета = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаполнения, "Настройки");
Если ТипЗнч(НастройкиВариантаОтчета) = Тип("НастройкиКомпоновкиДанных") Тогда
Настройки = Новый ХранилищеЗначения(НастройкиВариантаОтчета);
КонецЕсли;
#Область УстановкаТипаОтчета
Если ТипЗнч(Отчет) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Внутренний;
ИначеЕсли ТипЗнч(Отчет) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Расширение;
ИначеЕсли ТипЗнч(Отчет) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный;
ИначеЕсли ТипЗнч(Отчет) = Тип("Строка") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Внешний;
КонецЕсли;
#КонецОбласти
#Область УстановкаДанныхВЗависимостиОтЗначенияАвтора
Если ЗначениеЗаполнено(Автор) Тогда
Пользовательский = ЗначениеЗаполнено(Автор);
ПользователиВарианта = Новый СписокЗначений;
ПользователиВарианта.Добавить(Автор);
ДополнительныеСвойства.Вставить("ПользователиВарианта", ПользователиВарианта);
КонецЕсли;
#КонецОбласти
#Область УстановкаРодителя
Основание = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаполнения, "Основание");
Если ТипЗнч(Основание) = ТипЗнч(Ссылка) Тогда
СвойстваОснования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Основание, "Родитель, Отчет, Пользовательский");
Если СвойстваОснования.Отчет = Отчет Тогда
Родитель = ?(СвойстваОснования.Пользовательский, СвойстваОснования.Родитель, Основание);
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(Родитель) Тогда
ЗаполнитьРодителя();
КонецЕсли;
#КонецОбласти
КонецЕсли;
КонецПроцедуры
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
ЛокализацияСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецПроцедуры
// Заполнение реквизитов НаименованияПолей и НаименованияПараметровИОтборов.
Процедура ЗаполнитьПоляДляПоиска()
Дополнительный = (ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный);
Если Не Пользовательский И Не Дополнительный Тогда
Возврат;
@@ -118,48 +220,66 @@
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВариантыОтчетов.ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, Ссылка);
КонецПопытки;
КонецПроцедуры
// Заполняет родителя варианта отчета, основываясь на ссылке отчета и предопределенных настройках.
Процедура ЗаполнитьРодителя() Экспорт
ТекстЗапроса =
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| Предопределенные.Ссылка КАК ПредопределенныйВариант
|ПОМЕСТИТЬ втПредопределенные
| ПредопределенныеВарианты.Ссылка,
| ПредопределенныеВарианты.Включен
|ПОМЕСТИТЬ ПредопределенныеВарианты
|ИЗ
| Справочник.ПредопределенныеВариантыОтчетов КАК Предопределенные
| Справочник.ПредопределенныеВариантыОтчетов КАК ПредопределенныеВарианты
|ГДЕ
| Предопределенные.Отчет = &Отчет
| И Предопределенные.ПометкаУдаления = ЛОЖЬ
| И Предопределенные.ГруппироватьПоОтчету
| ТИПЗНАЧЕНИЯ(&Отчет) <> ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| И ПредопределенныеВарианты.Отчет = &Отчет
| И НЕ ПредопределенныеВарианты.ПометкаУдаления
| И ПредопределенныеВарианты.ГруппироватьПоОтчету
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| ПредопределенныеВарианты.Ссылка,
| ПредопределенныеВарианты.Включен
|ИЗ
| Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ПредопределенныеВарианты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредопределенныеВариантыОтчетовВерсийРасширений КАК ДоступныеВарианты
| ПО ДоступныеВарианты.Вариант = ПредопределенныеВарианты.Ссылка
|ГДЕ
| ТИПЗНАЧЕНИЯ(&Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| И ПредопределенныеВарианты.Отчет = &Отчет
| И ПредопределенныеВарианты.ГруппироватьПоОтчету
| И НЕ ДоступныеВарианты.Вариант ЕСТЬ NULL
|
|УПОРЯДОЧИТЬ ПО
| Предопределенные.Включен УБЫВ
| ПредопределенныеВарианты.Включен УБЫВ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ВариантыОтчетов.Ссылка
|ИЗ
| втПредопределенные КАК втПредопределенные
| ПредопределенныеВарианты КАК ПредопределенныеВарианты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов КАК ВариантыОтчетов
| ПО втПредопределенные.ПредопределенныйВариант = ВариантыОтчетов.ПредопределенныйВариант
| ПО ПредопределенныеВарианты.Ссылка = ВариантыОтчетов.ПредопределенныйВариант
|ГДЕ
| ВариантыОтчетов.ПометкаУдаления = ЛОЖЬ";
Если ТипОтчета = Перечисления.ТипыОтчетов.Расширение Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ".ПредопределенныеВариантыОтчетов", ".ПредопределенныеВариантыОтчетовРасширений");
КонецЕсли;
Запрос = Новый Запрос;
| НЕ ВариантыОтчетов.ПометкаУдаления");
Запрос.УстановитьПараметр("Отчет", Отчет);
Запрос.Текст = ТекстЗапроса;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Родитель = Выборка.Ссылка;
КонецЕсли;
КонецПроцедуры
// Базовые проверки корректности данных предопределенных вариантов отчетов.
Процедура ПроверитьЗаполнениеПредопределенного(Отказ)
Если ПометкаУдаления Или Не Предопределенный Тогда
Возврат;
ИначеЕсли Не ЗначениеЗаполнено(Отчет) Тогда
@@ -175,11 +295,15 @@
Иначе
Возврат;
КонецЕсли;
ВызватьИсключение ТекстОшибки;
КонецПроцедуры
Функция НеЗаполненоПоле(ИмяПоля)
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнено поле ""%1""'"), ИмяПоля);
КонецФункции
#КонецОбласти
@@ -348,6 +348,7 @@
<key>ru</key>
<value>Отчет</value>
</synonym>
<comment>АПК:1329 - в таблице предполагается мало записей (в ERP ~ 1200) - оптимизация не требуется</comment>
<type>
<types>CatalogRef.ИдентификаторыОбъектовРасширений</types>
<types>String</types>
@@ -359,7 +360,7 @@
</type>
<toolTip>
<key>ru</key>
<value>Ссылка отчета или его полное имя.</value>
<value>Ссылка отчета или полное имя внешнего отчета.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
@@ -117,6 +117,10 @@
Процедура ЗарегистрироватьИспользованиеВерсииРасширений() Экспорт
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
МодульУправлениеДоступомСлужебный.ПриРегистрацииИспользованияВерсииРасширенийВНеразделенномСеансе();
КонецЕсли;
Возврат;
КонецЕсли;
@@ -689,9 +693,10 @@
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И Выборка.Количество() = 1 Тогда
Объект = Выборка.Ссылка.ПолучитьОбъект();
// АПК:143-выкл - требуется ТекущаяДата(), так как именно она устанавливается в поле НачалоСеанса.
// АПК:143-выкл - №643.2.1 Требуется ТекущаяДата сервера, а не ТекущаяДатаСеанса,
// так как именно ТекущаяДата устанавливается в поле НачалоСеанса.
Объект.ПоследняяДатаДобавленияВторойВерсии = ТекущаяДата();
// АПК:143-вкл
// АПК:143-вкл.
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Истина);
@@ -754,12 +759,28 @@
Если Выгрузка.Количество() = 1
И Не ЗначениеЗаполнено(Выгрузка[0].ДатаПервогоВходаПослеУдаленияВсехРасширений) Тогда
Объект = Выгрузка[0].Ссылка.ПолучитьОбъект();
// АПК:143-выкл - требуется ТекущаяДата(), так как именно она устанавливается в поле НачалоСеанса.
ВерсияРасширенийСсылка = Выгрузка[0].Ссылка;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВерсииРасширений");
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВерсияРасширенийСсылка);
Блокировка.Заблокировать();
Объект = ВерсияРасширенийСсылка.ПолучитьОбъект();
Если Не ЗначениеЗаполнено(Объект.ДатаПервогоВходаПослеУдаленияВсехРасширений) Тогда
// АПК:143-выкл. См. 643.2.1. Требуется ТекущаяДата сервера, а не ТекущаяДатаСеанса,
// так как именно ТекущаяДата устанавливается в поле НачалоСеанса.
Объект.ДатаПервогоВходаПослеУдаленияВсехРасширений = ТекущаяДата();
// АПК:143-вкл
// АПК:143-вкл.
Объект.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
@@ -145,7 +145,7 @@
ЧислоВыделенныхСтрок = Элементы.Список.ВыделенныеСтроки.Количество();
Если ЧислоВыделенныхСтрок <> 2 И ЧислоВыделенныхСтрок <> 1 Тогда
ПоказатьПредупреждение(, НСтр("ru='Для просмотра отличий необходимо выбрать две версии файла.'"));
ПоказатьПредупреждение(, НСтр("ru = 'Для просмотра отличий необходимо выбрать две версии файла.'"));
Возврат;
КонецЕсли;
@@ -91,28 +91,13 @@
Процедура ПередУдалением(Отказ)
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
Если НЕ Том.Пустая() И ОбщегоНазначения.СсылкаСуществует(Том) Тогда
ПолныйПуть = РаботаСФайламиСлужебный.ПолныйПутьТома(Том) + ПутьКФайлу;
Попытка
Файл = Новый Файл(ПолныйПуть);
Файл.УстановитьТолькоЧтение(Ложь);
УдалитьФайлы(ПолныйПуть);
ПутьСПодкаталогом = Файл.Путь;
МассивФайловВКаталоге = НайтиФайлы(ПутьСПодкаталогом, ПолучитьМаскуВсеФайлы());
Если МассивФайловВКаталоге.Количество() = 0 Тогда
УдалитьФайлы(ПутьСПодкаталогом);
КонецЕсли;
СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме();
ЗаполнитьЗначенияСвойств(СвойстваФайла, ЭтотОбъект);
Исключение
РаботаСФайламиВТомахСлужебный.УдалитьФайл(
РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Ошибка удаления файла.'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,
Файл, ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЕсли;
// Проверку ОбменДанными.Загрузка следует выполнять начиная с этой строки.
@@ -362,20 +362,12 @@
КОНЕЦ
КОНЕЦ КАК ИндексПиктограммы,
СправочникВидыКонтактнойИнформации.Ссылка,
СправочникВидыКонтактнойИнформации.ПометкаУдаления,
СправочникВидыКонтактнойИнформации.Предопределенный,
СправочникВидыКонтактнойИнформации.Родитель,
СправочникВидыКонтактнойИнформации.ЭтоГруппа,
ВЫБОР
КОГДА &amp;ЭтоОсновнойЯзык
ТОГДА СправочникВидыКонтактнойИнформации.Наименование
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ВидыКонтактнойИнформацииПредставления.Наименование, СправочникВидыКонтактнойИнформации.Наименование) КАК СТРОКА(150))
КОНЕЦ КАК Наименование,
СправочникВидыКонтактнойИнформации.Тип,
СправочникВидыКонтактнойИнформации.РеквизитДопУпорядочивания,
СправочникВидыКонтактнойИнформации.РедактированиеТолькоВДиалоге,
СправочникВидыКонтактнойИнформации.МожноИзменятьСпособРедактирования,
СправочникВидыКонтактнойИнформации.ТолькоНациональныйАдрес,
СправочникВидыКонтактнойИнформации.Используется
ИЗ
Справочник.ВидыКонтактнойИнформации КАК СправочникВидыКонтактнойИнформации
@@ -33,7 +33,7 @@
Если Копирование И Группа Тогда
Отказ = Истина;
ПоказатьПредупреждение(, НСтр("ru='Добавление новых групп в справочнике запрещено.'"));
ПоказатьПредупреждение(, НСтр("ru = 'Добавление новых групп в справочнике запрещено.'"));
КонецЕсли;
КонецПроцедуры
@@ -45,12 +45,17 @@
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
@@ -121,10 +121,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Opening</event>
<name>НаименованиеОткрытие</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
@@ -246,24 +242,27 @@
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>РедактированиеТолькоВДиалоге</name>
<id>9</id>
<name>ВидРедактирования</name>
<id>168</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>
<segments>Объект.ВидРедактирования</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<handlers>
<event>OnChange</event>
<name>РедактированиеТолькоВДиалогеПриИзменении</name>
<name>ВидРедактированияПриИзменении</name>
</handlers>
<extendedTooltip>
<name>РедактированиеТолькоВДиалогеExtendedTooltip</name>
<id>93</id>
<name>ВидРедактированияРасширеннаяПодсказка</name>
<id>170</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -272,16 +271,51 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РедактированиеТолькоВДиалогеКонтекстноеМеню</name>
<id>10</id>
<name>ВидРедактированияКонтекстноеМеню</name>
<id>169</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>15</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<listChoiceMode>true</listChoiceMode>
<typeDomainEnabled>true</typeDomainEnabled>
<choiceList>
<presentation>
<key>ru</key>
<value>В диалоге</value>
</presentation>
<value xsi:type="core:StringValue">
<value>Диалог</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>В поле ввода</value>
</presentation>
<value xsi:type="core:StringValue">
<value>ПолеВвода</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>В диалоге и поле ввода</value>
</presentation>
<value xsi:type="core:StringValue">
<value>ПолеВводаИДиалог</value>
</value>
</choiceList>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаХранитьИсториюИзменений</name>
@@ -28,12 +28,16 @@
КонецЕсли;
КонецЕсли;
Если Объект.Ссылка.Пустая() Тогда
Объект.ВидРедактирования = "ПолеВводаИДиалог";
КонецЕсли;
СсылкаРодителя = Объект.Родитель;
Элементы.ХранитьИсториюИзменений.Доступность = Объект.РедактированиеТолькоВДиалоге;
Элементы.ХранитьИсториюИзменений.Доступность = Объект.ВидРедактирования = "Диалог";
Элементы.РазрешитьВводНесколькихЗначений.Доступность = НЕ Объект.ХранитьИсториюИзменений;
Если Не Объект.МожноИзменятьСпособРедактирования Тогда
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Элементы.ВидРедактирования.Доступность = Ложь;
Элементы.РазрешитьВводНесколькихЗначений.Доступность = Ложь;
Элементы.ГруппаНаименованиеНастройкиПоТипам.Доступность = Ложь;
Элементы.ХранитьИсториюИзменений.Доступность = Ложь;
@@ -72,7 +76,7 @@
ДоступныДополнительныеНастройкиАдреса = (Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено
И Метаданные.Обработки["РасширенныйВводКонтактнойИнформации"].Формы.Найти("НастройкиАдреса") <> Неопределено);
ЛокализацияСервер.ПриСозданииНаСервере(Элементы.Наименование);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры
@@ -84,7 +88,7 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
@@ -95,7 +99,7 @@
Отказ = Истина;
КонецЕсли;
ЛокализацияСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецПроцедуры
@@ -110,7 +114,7 @@
КонецЕсли;
КонецЕсли;
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
@@ -141,9 +145,9 @@
КонецПроцедуры
&НаКлиенте
Процедура РедактированиеТолькоВДиалогеПриИзменении(Элемент)
Процедура ВидРедактированияПриИзменении(Элемент)
Если Объект.РедактированиеТолькоВДиалоге Тогда
Если Объект.ВидРедактирования = "Диалог" Тогда
Элементы.ХранитьИсториюИзменений.Доступность = Истина;
Иначе
Элементы.ХранитьИсториюИзменений.Доступность = Ложь;
@@ -187,10 +191,8 @@
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеОткрытие(Элемент, СтандартнаяОбработка)
ЛокализацияКлиент.ПриОткрытии(Объект, Элемент, "Наименование", СтандартнаяОбработка);
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
@@ -228,32 +230,35 @@
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Адрес;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Объект.МожноИзменятьСпособРедактирования;
Элементы.ВидРедактирования.Доступность = Объект.МожноИзменятьСпособРедактирования;
Элементы.ДополнительныеНастройкиАдреса.Видимость = ДоступныДополнительныеНастройкиАдреса;
Элементы.ДополнительныеНастройкиАдреса.Доступность = Не Объект.МеждународныйФорматАдреса;
Элементы.ВидРедактирования.Видимость = Истина;
Иначе
Элементы.ДополнительныеНастройкиАдреса.Видимость = Ложь;
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.АдресЭлектроннойПочты;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Элементы.ВидРедактирования.Видимость = Ложь;
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Skype") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Skype;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Элементы.ВидРедактирования.Видимость = Ложь;
Элементы.РазрешитьВводНесколькихЗначений.Доступность = Истина;
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон")
Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Телефон;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Объект.МожноИзменятьСпособРедактирования;
Элементы.ВидРедактирования.Доступность = Объект.МожноИзменятьСпособРедактирования;
Элементы.ВидРедактирования.Видимость = Истина;
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Другое") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Другое;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Элементы.ВидРедактирования.Доступность = Ложь;
Элементы.ВидРедактирования.Видимость = Ложь;
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.ВебСтраница") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Прочие;
Элементы.РедактированиеТолькоВДиалоге.Видимость = Ложь;
Элементы.ВидРедактирования.Видимость = Ложь;
Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь;
Иначе
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Прочие;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Элементы.ВидРедактирования.Доступность = Ложь;
КонецЕсли;
КонецЕсли;
@@ -270,12 +275,12 @@
Элементы.ХранитьИсториюИзменений.Доступность = Ложь;
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
Объект.РедактированиеТолькоВДиалоге = Ложь;
Объект.ВидРедактирования = "ПолеВвода";
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон")
Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда
// Нет изменений
Иначе
Объект.РедактированиеТолькоВДиалоге = Ложь;
Объект.ВидРедактирования = "ПолеВводаИДиалог";
КонецЕсли;
КонецЕсли;
@@ -45,6 +45,123 @@
// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
// СтандартныеПодсистемы.ПоискИУдалениеДублей
// Анализирует пары ссылок справочника на возможность замены одной на другую
// во всех местах использования с прикладной точки зрения.
// Проверки на запрет замены групп и ссылок разных типов производятся автоматически при начале замены.
//
// Параметры:
// ПарыЗамен - Соответствие - Ключ - что будет заменено, значение - на что будет заменено.
// Параметры - Структура - Набор флагов, описывающих действие с заменяемыми элементами.
// Содержит необязательные реквизиты:
// * СпособУдаления - Строка, может принимать значения:
// "Непосредственно" - Если после замены ссылка нигде не используется,
// то она будет удалена непосредственно
// "Пометка" - Если после замены ссылка не используется, то
// она будет помечена на удаление.
// Любые другие значения говорят о том, что заменяемая ссылка не будет изменена.
//
// Возвращаемое значение:
// Соответствие - Ключ - исходная ссылка, значение - строка - описание, почему замена недопустима.
// Если все замены допустимы, то возвращается пустое соответствие;
//
Функция ВозможностьЗаменыЭлементов(Знач ПарыЗамен, Знач Параметры = Неопределено) Экспорт
Результат = Новый Соответствие;
Для Каждого КлючЗначение Из ПарыЗамен Цикл
ТекущаяСсылка = КлючЗначение.Ключ;
ЦелеваяСсылка = КлючЗначение.Значение;
Если ТекущаяСсылка = ЦелеваяСсылка Тогда
Продолжить;
КонецЕсли;
// Разрешаем заменять вид контактной информации на другой, только если они относятся к одной группе.
МожноЗаменять = ТекущаяСсылка.Родитель = ЦелеваяСсылка.Родитель;
Если Не МожноЗаменять Тогда
Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Элемент ""%1"" относится к ""%2"", а ""%3"" - к ""%4""'"),
ТекущаяСсылка, ТекущаяСсылка.Родитель, ЦелеваяСсылка, ЦелеваяСсылка.Родитель);
Результат.Вставить(ТекущаяСсылка, Ошибка);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
// Вызывается для определения прикладных параметров поиска дублей.
//
// Параметры:
//
// ПараметрыПоиска - Структура - Предлагаемые параметры поиска. Содержит поля:
//
// * ПравилаПоиска - ТаблицаЗначений - Предлагаемые правила сравнения для объектов.
// Может быть изменена для установки новых вариантов. Содержит колонки.
// ** Реквизит - Строка - Имя реквизита для сравнения.
// ** Правило - Строка - Правило сравнения: "Равно" - сравнение по равенству, "Подобно" -подобие строк,
// "" - пустая строка - не сравнивать.
//
// * КомпоновщикОтбора - КомпоновщикНастроекКомпоновкиДанных - Инициализированный компоновщик для
// предварительного отбора. Может быть изменен, например, для
// усиления отборов.
//
// * ОграниченияСравнения - Массив - Предназначен для заполнения описания прикладных правил-ограничений.
// Должен быть дополнен структурами с полями:
// ** Представление - Строка - Описание правила-ограничения для пользователя.
// ** ДополнительныеПоля - Строка - Список дополнительных реквизитов запятую, необходимых для
// дополнительного анализа.
//
// * КоличествоЭлементовДляСравнения - Число - Количество кандидатов в дубли, передаваемых одним вызовом
// обработчику.
//
// ДополнительныеПараметры - Произвольный - Значение, переданное при вызове программного интерфейса
// ОбщегоНазначения.НайтиДублиЭлементов.
// При вызове пользователем из обработки "ПоискИЗаменаДублей" равно Неопределено.
//
Процедура ПараметрыПоискаДублей(ПараметрыПоиска, ДополнительныеПараметры = Неопределено) Экспорт
Ограничение = Новый Структура;
Ограничение.Вставить("Представление", НСтр("ru = 'Относятся к одной группе и одного типа (адрес, телефон и пр.).'"));
Ограничение.Вставить("ДополнительныеПоля", "Родитель, Тип");
ПараметрыПоиска.ОграниченияСравнения.Добавить(Ограничение);
// Размер таблицы для передачи в обработчик.
ПараметрыПоиска.КоличествоЭлементовДляСравнения = 100;
КонецПроцедуры
// Вызывается для определения дублей по прикладным правилам.
//
// Параметры:
//
// ТаблицаКандидатов - ТаблицаЗначений - Описывает кандидатов в дубли. Содержит колонки:
// - Ссылка1 - ЛюбаяСсылка - Ссылка на элемент первого кандидата.
// - Ссылка2 - ЛюбаяСсылка - Ссылка на элемент второго кандидата.
// - ЭтоДубли - Булево - Флаг того, что кандидаты действительно являются дублями. По умолчанию содержит
// значение Ложь, может быть изменено на Истина, если кандидаты - действительно
// дубли.
// - Поля1 - Структура - Содержит поля Код, Наименование и дополнительные поля первого кандидата,
// указанные в ПараметрыПоискаДублей.
// - Поля2 - Структура - Содержит поля Код, Наименование и дополнительные поля второго кандидата,
// указанные в ПараметрыПоискаДублей.
//
// ДополнительныеПараметры - Произвольный - Значение, переданное при вызове программного интерфейса
// ОбщегоНазначения.НайтиДублиЭлементов.
// При вызове пользователем из обработки "ПоискИЗаменаДублей" равно Неопределено.
//
Процедура ПриПоискеДублей(ТаблицаКандидатов, ДополнительныеПараметры = Неопределено) Экспорт
Для Каждого Вариант Из ТаблицаКандидатов Цикл
Если Вариант.Поля1.Родитель = Вариант.Поля2.Родитель И Вариант.Поля1.Тип = Вариант.Поля2.Тип Тогда
Вариант.ЭтоДубли = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПоискИУдалениеДублей
#КонецОбласти
#КонецОбласти
@@ -54,7 +171,87 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
ЛокализацияКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
// Регистрирует к обработке виды контактной информации другое у которых необходимо заполнить поле ВидРедактирования.
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка КАК Ссылка
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.ЭтоГруппа = ЛОЖЬ";
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры,
РезультатЗапроса.ВыгрузитьКолонку("Ссылка"));
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ВидКонтактнойИнформацииСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВидыКонтактнойИнформации");
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
Пока ВидКонтактнойИнформацииСсылка.Следующий() Цикл
Попытка
ВидКонтактнойИнформации = ВидКонтактнойИнформацииСсылка.Ссылка.ПолучитьОбъект();
Если ВидКонтактнойИнформации.УдалитьРедактированиеТолькоВДиалоге Тогда
ВидКонтактнойИнформации.ВидРедактирования = "Диалог";
ИначеЕсли ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты
Или ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Skype
Или ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Другое Тогда
ВидКонтактнойИнформации.ВидРедактирования = "ПолеВвода";
ИначеЕсли ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
ВидКонтактнойИнформации.ВидРедактирования = "Диалог";
Иначе
ВидКонтактнойИнформации.ВидРедактирования = "ПолеВводаИДиалог";
КонецЕсли;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВидКонтактнойИнформации);
ОбъектовОбработано = ОбъектовОбработано + 1;
Исключение
// Если не удалось обработать какой-либо вид контактной информации, повторяем попытку снова.
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать вид контактной информации: %1 по причине: %2'"),
ВидКонтактнойИнформацииСсылка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
Метаданные.Справочники.ВидыКонтактнойИнформации, ВидКонтактнойИнформацииСсылка.Ссылка, ТекстСообщения);
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВидыКонтактнойИнформации");
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедуре ЗаполнитьВидыКонтактнойИнформации не удалось обработать некоторые виды контактной информации (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
Иначе
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
Метаданные.Справочники.ВидыКонтактнойИнформации,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ЗаполнитьВидыКонтактнойИнформации обработала очередную порцию видов контактной информации: %1'"),
ОбъектовОбработано));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -16,6 +16,10 @@
Возврат;
КонецЕсли;
Если СтрНачинаетсяС(ИмяПредопределенныхДанных, "Удалить") Тогда
Возврат;
КонецЕсли;
Если НЕ ЭтоГруппа Тогда
Результат = УправлениеКонтактнойИнформациейСлужебный.ПроверитьПараметрыВидаКонтактнойИнформации(ЭтотОбъект);
Если Результат.ЕстьОшибки Тогда
@@ -32,6 +36,11 @@
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если СтрНачинаетсяС(ИмяПредопределенныхДанных, "Удалить") Тогда
ПроверяемыеРеквизиты.Очистить();
Возврат;
КонецЕсли;
Если ЭтоГруппа Тогда
НепроверяемыеРеквизиты = Новый Массив;
@@ -42,13 +51,17 @@
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
ИмяПредопределенногоВида = "";
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытий
#Область СлужебныеПроцедурыИФункции
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
ЛокализацияСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецПроцедуры
@@ -185,6 +185,29 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="322645d4-e3fb-467b-a55d-d8e74cff2ea3">
<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:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="0f314b6b-5ed1-46ed-bdfd-cf53330c2783">
<name>ВидПоляДругое</name>
<synonym>
@@ -368,10 +391,10 @@
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="45a2569e-820c-4d7d-ba74-4a781d26bb2b">
<name>РедактированиеТолькоВДиалоге</name>
<name>УдалитьРедактированиеТолькоВДиалоге</name>
<synonym>
<key>ru</key>
<value>Редактирование только в диалоге</value>
<value>(не используется) Редактирование только в диалоге</value>
</synonym>
<type>
<types>Boolean</types>
@@ -172,6 +172,7 @@
<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>
@@ -203,6 +204,7 @@
<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>
@@ -227,7 +227,7 @@
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеПомещенияФайла", ЭтотОбъект, Контекст);
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Внешняя компонента (*.zip)|*.zip|Все файлы(*.*)|*.*'");
ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Внешняя компонента (*.zip)|*.zip|Все файлы (*.*)|*.*'");
ПараметрыЗагрузки.Диалог.Заголовок = НСтр("ru = 'Выберите файл внешней компоненты'");
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
@@ -266,14 +266,10 @@
Иначе
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеОтображенияОшибки", ЭтотОбъект);
СтрокаСПредупреждением = Новый ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
СтрокаСПредупреждением = НСтр("ru = '%1
|Необходимо указать zip-архив с внешней компонентой.
|Подробнее:'"),
ОписаниеОшибки),
Новый ФорматированнаяСтрока("https://its.1c.ru/db/metod8dev/content/3221",,,,
"https://its.1c.ru/db/metod8dev/content/3221"), ".");
|Подробнее см. <a href = ""https://its.1c.ru/db/metod8dev/content/3221"">Технология создания внешних компонент</a>'");
СтрокаСПредупреждением = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СтрокаСПредупреждением, ОписаниеОшибки);
ПоказатьПредупреждение(Оповещение, СтрокаСПредупреждением);
КонецЕсли;
@@ -355,7 +351,7 @@
Если ОбъектСправочника.Идентификатор <> Информация.Реквизиты.Идентификатор Тогда
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Текущий идентификатор %1 отличается от загружаемого %2
НСтр("ru = 'Текущий идентификатор %1 отличается от загружаемого %2
|Обновление невозможно.'"),
ОбъектСправочника.Идентификатор,
Информация.Реквизиты.Идентификатор);
@@ -34,9 +34,9 @@
// Контроль уникальности идентификатора и версии компоненты.
Если Не ЭтоУникальнаяКомпонента() Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Внешняя компонента со значениями Идентификатор ""%1"" и версия ""%2"" уже загружена в программу.'"),
НСтр("ru = 'Внешняя компонента с таким идентификатором ""%1"" и датой ""%2"" уже загружена в программу.'"),
Идентификатор,
Версия);
ДатаВерсии);
КонецЕсли;
// Помещение двоичных данных компоненты
@@ -110,6 +110,11 @@
Процедура ПерезаписатьКомпонентыМладшихВерсий()
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеКомпоненты");
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Идентификатор);
Блокировка.Заблокировать();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Запрос.УстановитьПараметр("ДатаВерсии", ДатаВерсии);
@@ -127,6 +132,7 @@
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Заблокировать();
Объект.Записать();
КонецЦикла;
@@ -98,6 +98,7 @@
<lang>ru</lang>
</pages>
</help>
<dataLockFields>Catalog.ВнешниеКомпоненты.Attribute.Идентификатор</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -356,21 +356,9 @@
Неопределено);
Иначе
ГруппаПомеченаНаУдаление = Элементы.ГруппыВнешнихПользователей.ДанныеСтроки(Строка).ПометкаУдаления;
КоличествоПользователей = ПараметрыПеретаскивания.Значение.Количество();
ДействиеИсключитьПользователя = (ХранимыеПараметры.ГруппаВсеПользователи = Строка);
ДействиеСПользователем =
?((ХранимыеПараметры.ГруппаВсеПользователи = ТекущаяСтрокаГруппы) ИЛИ ГруппаСТипомВсеОбъектыАвторизации,
НСтр("ru = 'Включить'"),
?(Перемещение, НСтр("ru = 'Переместить'"), НСтр("ru = 'Скопировать'")));
Если ГруппаПомеченаНаУдаление Тогда
ШаблонДействия = ?(Перемещение, НСтр("ru = 'Группа ""%1"" помечена на удаление. %2'"),
НСтр("ru = 'Группа ""%1"" помечена на удаление. %2'"));
ДействиеСПользователем = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДействия, Строка(Строка), ДействиеСПользователем);
КонецЕсли;
ВключитьВГруппу = (ХранимыеПараметры.ГруппаВсеПользователи = ТекущаяСтрокаГруппы) ИЛИ ГруппаСТипомВсеОбъектыАвторизации;
Если КоличествоПользователей = 1 Тогда
Если ДействиеИсключитьПользователя Тогда
@@ -380,15 +368,30 @@
Строка(Элементы.ГруппыВнешнихПользователей.ТекущаяСтрока));
ИначеЕсли Не ГруппаПомеченаНаУдаление Тогда
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Включить пользователя ""%1"" в группу ""%2""?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Переместить пользователя ""%1"" в группу ""%2""?'");
Иначе
Шаблон = НСтр("ru = 'Скопировать пользователя ""%1"" в группу ""%2""?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователя ""%2"" в группу ""%3""?'"),
ДействиеСПользователем,
Шаблон,
Строка(ПараметрыПеретаскивания.Значение[0]),
Строка(Строка));
Иначе
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Включить пользователя ""%2"" в эту группу?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Переместить пользователя ""%2"" в эту группу?'");
Иначе
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Скопировать пользователя ""%2"" в эту группу?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователя ""%2"" в эту группу?'"),
ДействиеСПользователем,
Шаблон,
Строка(Строка),
Строка(ПараметрыПеретаскивания.Значение[0]));
КонецЕсли;
Иначе
@@ -399,15 +402,30 @@
Строка(Элементы.ГруппыВнешнихПользователей.ТекущаяСтрока));
ИначеЕсли Не ГруппаПомеченаНаУдаление Тогда
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Включить пользователей (%1) в группу ""%2""?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Переместить пользователей (%1) в группу ""%2""?'");
Иначе
Шаблон = НСтр("ru = 'Скопировать пользователей (%1) в группу ""%2""?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователей (%2) в группу ""%3""?'"),
ДействиеСПользователем,
Шаблон,
КоличествоПользователей,
Строка(Строка));
Иначе
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Включить пользователей (%2) в эту группу?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Переместить пользователей (%2) в эту группу?'");
Иначе
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Скопировать пользователей (%2) в эту группу?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователей (%2) в эту группу?'"),
ДействиеСПользователем,
Шаблон,
Строка(Строка),
КоличествоПользователей);
КонецЕсли;
КонецЕсли;
@@ -2746,6 +2746,19 @@
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПользовательИБАутентификацияСтандартнаяЗначениеПрямогоИзменения</name>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПоказатьТолькоВыбранныеРоли</name>
<title>
@@ -65,7 +65,6 @@
Объект.ОбъектАвторизации = Параметры.ОбъектАвторизацииНовогоВнешнегоПользователя;
ОбъектАвторизацииЗаданПриОткрытии = ЗначениеЗаполнено(Объект.ОбъектАвторизации);
ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект);
ИначеЕсли ЗначениеЗаполнено(ГруппаНовогоВнешнегоПользователя) Тогда
@@ -112,7 +111,11 @@
ОбработатьИнтерфейсРолей("НастроитьИнтерфейсРолейПриСозданииФормы", Истина);
НачальноеОписаниеПользователяИБ = НачальноеОписаниеПользователяИБ();
ОбщаяНастройкаФормы(Объект, Истина);
НастроитьФорму(Объект, Истина);
Если ОбъектАвторизацииЗаданПриОткрытии Тогда
ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
Элементы.ГруппаШапка.ТолькоПросмотр = Истина;
@@ -172,7 +175,7 @@
МодульУправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
ОбщаяНастройкаФормы(ТекущийОбъект);
НастроитьФорму(ТекущийОбъект);
ТекущееПредставлениеОбъектаАвторизации = Строка(Объект.ОбъектАвторизации);
@@ -201,7 +204,7 @@
КонецПроцедуры
&НаСервере
Процедура ОбщаяНастройкаФормы(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено)
Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено)
Если НачальноеОписаниеПользователяИБ = Неопределено Тогда
Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере.
@@ -373,7 +376,7 @@
ТекущийОбъект.ДополнительныеСвойства.ОписаниеПользователяИБ.РезультатДействия);
КонецЕсли;
ОбщаяНастройкаФормы(ТекущийОбъект, , ПараметрыЗаписи);
НастроитьФорму(ТекущийОбъект, , ПараметрыЗаписи);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
@@ -468,7 +471,7 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" не найдена в метаданных.'"), Строка.Синоним),
"Роли",
ЭлементыДерева.Индекс(Строка),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %%1 не найдена в метаданных.'"), Строка.Синоним));
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %2 не найдена в метаданных.'"), Строка.Синоним, "%1"));
КонецЕсли;
Если Строка.ЭтоНедоступнаяРоль Тогда
ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(Ошибки,
@@ -476,7 +479,7 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" недоступна для внешних пользователей.'"), Строка.Синоним),
"Роли",
ЭлементыДерева.Индекс(Строка),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %%1 недоступна для внешних пользователей.'"), Строка.Синоним));
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %2 недоступна для внешних пользователей.'"), Строка.Синоним, "%1"));
КонецЕсли;
КонецЦикла;
ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(Ошибки, Отказ);
@@ -512,10 +515,18 @@
Если Объект.Недействителен Тогда
ВходВПрограммуРазрешен = Ложь;
Иначе
ВходВПрограммуРазрешен = ВходВПрограммуРазрешенЗначениеПрямогоИзменения
И (ПользовательИБАутентификацияOpenID
Или ПользовательИБАутентификацияСтандартная);
Если Не ПользовательИБАутентификацияOpenID
И Не ПользовательИБАутентификацияСтандартнаяЗначениеПрямогоИзменения
И ПользовательИБАутентификацияСтандартная Тогда
ПользовательИБАутентификацияСтандартная = Ложь;
КонецЕсли;
ИначеЕсли ВходВПрограммуРазрешенЗначениеПрямогоИзменения Тогда
Если Не ПользовательИБАутентификацияСтандартная
И Не ПользовательИБАутентификацияOpenID Тогда
ПользовательИБАутентификацияСтандартная = Истина;
КонецЕсли;
ВходВПрограммуРазрешен = Истина;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -533,6 +544,14 @@
Возврат;
КонецЕсли;
Если Не ВходВПрограммуРазрешен
И Не ПользовательИБАутентификацияOpenID
И Не ПользовательИБАутентификацияСтандартнаяЗначениеПрямогоИзменения
И ПользовательИБАутентификацияСтандартная Тогда
ПользовательИБАутентификацияСтандартная = Ложь;
КонецЕсли;
ОбновитьИмяДляВхода(ЭтотОбъект);
Если ВходВПрограммуРазрешен
@@ -577,6 +596,7 @@
Процедура ПользовательИБАутентификацияСтандартнаяПриИзменении(Элемент)
АутентификацияПриИзменении();
ПользовательИБАутентификацияСтандартнаяЗначениеПрямогоИзменения = ПользовательИБАутентификацияСтандартная;
КонецПроцедуры
@@ -746,6 +766,17 @@
Элементы = Форма.Элементы;
// Настройка необходимости заполнения.
Если ТребуетсяЗаписьПользователяИБ(Форма, Ложь) Тогда
НоваяСтраница = Элементы.ИмяСОтметкойНезаполненного;
Иначе
НоваяСтраница = Элементы.ИмяБезОтметкиНезаполненного;
КонецЕсли;
Если Элементы.ИмяПереключениеОтметкиНезаполненного.ТекущаяСтраница <> НоваяСтраница Тогда
Элементы.ИмяПереключениеОтметкиНезаполненного.ТекущаяСтраница = НоваяСтраница;
КонецЕсли;
Если Форма.ПользовательИБСуществует Тогда
Возврат;
КонецЕсли;
@@ -755,7 +786,8 @@
Если Элементы.ИмяПереключениеОтметкиНезаполненного.ТекущаяСтраница = Элементы.ИмяБезОтметкиНезаполненного Тогда
Если Не ЗначениеЗаполнено(Форма.ПользовательИБИмяЗначениеПрямогоИзменения)
Если (Не ЗначениеЗаполнено(Форма.ПользовательИБИмяЗначениеПрямогоИзменения)
Или Форма.ПользовательИБИмяЗначениеПрямогоИзменения = КраткоеИмя)
И Форма.ПользовательИБИмя = КраткоеИмя Тогда
Форма.ПользовательИБИмя = "";
@@ -773,8 +805,6 @@
&НаКлиенте
Процедура АутентификацияПриИзменении()
УстановитьДоступностьСвойств(ЭтотОбъект);
Если НЕ ПользовательИБАутентификацияOpenID
И НЕ ПользовательИБАутентификацияСтандартная Тогда
@@ -784,6 +814,8 @@
ВходВПрограммуРазрешен = ВходВПрограммуРазрешенЗначениеПрямогоИзменения;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
КонецПроцедуры
// Продолжение процедуры СменитьПароль.
@@ -1064,7 +1096,6 @@
ОписаниеПользователяИБ = Пользователи.НовоеОписаниеПользователяИБ();
ОписаниеПользователяИБ.ПоказыватьВСпискеВыбора = Ложь;
ОписаниеПользователяИБ.АутентификацияСтандартная = Истина;
ОписаниеПользователяИБ.Роли = Новый Массив;
Возврат ОписаниеПользователяИБ;
@@ -1091,6 +1122,7 @@
Если Пользователи.ВходВПрограммуРазрешен(ПрочитанныеСвойства) Тогда
ВходВПрограммуРазрешен = Истина;
ВходВПрограммуРазрешенЗначениеПрямогоИзменения = Истина;
ОписаниеПользователяИБ.АутентификацияСтандартная = Истина;
КонецЕсли;
// Копирование свойств и ролей пользователяИБ.
@@ -1186,6 +1218,11 @@
ПользовательИБАутентификацияСтандартная = ХранимыеСвойства.АутентификацияСтандартная;
КонецЕсли;
Если ПользовательИБСуществует Тогда
ПользовательИБАутентификацияСтандартнаяЗначениеПрямогоИзменения
= ПользовательИБАутентификацияСтандартная;
КонецЕсли;
ОбработатьИнтерфейсРолей("ЗаполнитьРоли", ОписаниеПользователяИБ.Роли);
ПриЧтенииВходВПрограммуРазрешен = ВходВПрограммуРазрешен;
@@ -1367,16 +1404,6 @@
Элементы.Комментарий.ТолькоПросмотр =
Не (ДействияВФорме.СвойстваЭлемента = "Редактирование" И УровеньДоступа.УправлениеСписком);
// Настройка необходимости заполнения.
Если ТребуетсяЗаписьПользователяИБ(Форма, Ложь) Тогда
НоваяСтраница = Элементы.ИмяСОтметкойНезаполненного;
Иначе
НоваяСтраница = Элементы.ИмяБезОтметкиНезаполненного;
КонецЕсли;
Если Элементы.ИмяПереключениеОтметкиНезаполненного.ТекущаяСтраница <> НоваяСтраница Тогда
Элементы.ИмяПереключениеОтметкиНезаполненного.ТекущаяСтраница = НоваяСтраница;
КонецЕсли;
ОбновитьИмяДляВхода(Форма);
// Настройка доступности связанных элементов.
@@ -12,6 +12,7 @@
<key>ru</key>
<value>Внешние пользователи</value>
</synonym>
<comment>АПК:413 - №744.2.1.1 Допустимо не отключать историю выбора, так как она используется, а переопределение отбора фиксированное, то есть служебные и недействительные пользователи в нее не попадут, но если как-то попали, то это не является проблемой</comment>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ВнешниеПользователи.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
@@ -139,6 +140,7 @@
<lang>ru</lang>
</pages>
</help>
<dataLockFields>Catalog.ВнешниеПользователи.Attribute.ИдентификаторПользователяИБ</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -121,6 +121,7 @@
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>Use</createOnInput>
<dataLockFields>Catalog.ВопросыШаблонаАнкеты.StandardAttribute.Owner</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -95,6 +95,7 @@
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<dataLockFields>Catalog.ВстречаПрисоединенныеФайлы.Attribute.ВладелецФайла</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -30,6 +30,8 @@
Иначе
Заголовок = НСтр("ru = 'Выбор группы внешних пользователей'");
КонецЕсли;
АвтоЗаголовок = Ложь;
Иначе
Элементы.Список.РежимВыбора = Ложь;
КонецЕсли;
@@ -194,7 +194,7 @@
<value>Выбранные пользователи указанных видов</value>
</presentation>
<value xsi:type="core:StringValue">
<value>ВыбранныеПользователиВидов</value>
<value>ВыбранныеПользователиУказанныхВидов</value>
</value>
</choiceList>
<choiceList>
@@ -203,7 +203,7 @@
<value>Все пользователи указанных видов</value>
</presentation>
<value xsi:type="core:StringValue">
<value>ВсеПользователиВидов</value>
<value>ВсеПользователиУказанныхВидов</value>
</value>
</choiceList>
<backColor xsi:type="core:ColorRef">
@@ -49,7 +49,7 @@
Элементы.Состав.Видимость = ЗначениеЗаполнено(ДействияВФорме.СоставГруппы);
Элементы.ОтображениеРолей.Видимость = ЗначениеЗаполнено(ДействияВФорме.Роли);
УчастникиГруппы = ?(Объект.ВсеОбъектыАвторизации, "ВсеПользователиВидов", "ВыбранныеПользователиВидов");
УчастникиГруппы = ?(Объект.ВсеОбъектыАвторизации, "ВсеПользователиУказанныхВидов", "ВыбранныеПользователиУказанныхВидов");
ЭтоГруппаВсеВнешниеПользователи =
Объект.Ссылка = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи;
@@ -174,7 +174,7 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" не найдена в метаданных.'"), Строка.Синоним),
"Роли",
ЭлементыДерева.Индекс(Строка),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %%1 не найдена в метаданных.'"), Строка.Синоним));
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %2 не найдена в метаданных.'"), Строка.Синоним, "%1"));
КонецЕсли;
Если Строка.ЭтоНедоступнаяРоль Тогда
ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(Ошибки,
@@ -182,7 +182,7 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" недоступна для внешних пользователей.'"), Строка.Синоним),
"Роли",
ЭлементыДерева.Индекс(Строка),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %%1 недоступна для внешних пользователей.'"), Строка.Синоним));
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Роль ""%1"" в строке %2 недоступна для внешних пользователей.'"), Строка.Синоним, "%1"));
КонецЕсли;
КонецЦикла;
КонецЕсли;
@@ -216,7 +216,7 @@
&НаКлиенте
Процедура СоставУчастниковПриИзменении(Элемент)
Объект.ВсеОбъектыАвторизации = (УчастникиГруппы = "ВсеПользователиВидов");
Объект.ВсеОбъектыАвторизации = (УчастникиГруппы = "ВсеПользователиУказанныхВидов");
Если Объект.ВсеОбъектыАвторизации Тогда
Объект.Состав.Очистить();
КонецЕсли;
@@ -445,7 +445,7 @@
И Объект.Родитель <> Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
Элементы.ТипПользователей.Доступность = Ложь;
УчастникиГруппы = Элементы.УчастникиГруппы.СписокВыбора.НайтиПоЗначению("ВыбранныеПользователиВидов").Значение;
УчастникиГруппы = Элементы.УчастникиГруппы.СписокВыбора.НайтиПоЗначению("ВыбранныеПользователиУказанныхВидов").Значение;
Иначе
@@ -570,13 +570,6 @@
<key>ru</key>
<value>Участники группы</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ПользователиГруппыExtendedTooltip</name>
<id>344</id>
@@ -1042,6 +1035,10 @@
<items xsi:type="form:FormField">
<name>ЗначенияДоступаНомерСтрокиПоВиду</name>
<id>308</id>
<title>
<key>ru</key>
<value>N</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1137,6 +1134,47 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ЗначенияДоступаВключаяНижестоящие</name>
<id>448</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ЗначенияДоступа.ВключаяНижестоящие</segments>
</dataPath>
<titleLocation>None</titleLocation>
<toolTip>
<key>ru</key>
<value>Включая нижестоящие (с иерархией)</value>
</toolTip>
<extendedTooltip>
<name>ЗначенияДоступаВключаяНижестоящиеРасширеннаяПодсказка</name>
<id>450</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗначенияДоступаВключаяНижестоящиеКонтекстноеМеню</name>
<id>449</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerPicture xsi:type="core:PictureRef">
<picture>CommonPicture.ИерархическийСписок</picture>
</headerPicture>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<autoCommandBar>
<name>ЗначенияДоступаКоманднаяПанель</name>
<id>68</id>
@@ -1252,6 +1290,7 @@
<heightInTableRows>2</heightInTableRows>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
@@ -1309,13 +1348,6 @@
<key>ru</key>
<value>Ограничения доступа</value>
</title>
<titleFont xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</titleFont>
<extendedTooltip>
<name>ДоступExtendedTooltip</name>
<id>362</id>
@@ -42,7 +42,7 @@
Если НЕ ДействияСПользователемСервиса.ИзменениеАдминистративногоДоступа Тогда
ВызватьИсключение
НСтр("ru = 'Не достаточно прав доступа для изменения состава администраторов.'");
НСтр("ru = 'Недостаточно прав доступа для изменения состава администраторов.'");
КонецЕсли;
КонецЕсли;
@@ -50,10 +50,6 @@
ВыполненаПроцедураПриСозданииНаСервере = Истина;
Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
Элементы.ПользователиДобавить.ТолькоВоВсехДействиях = Ложь;
КонецЕсли;
Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
Если Не Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы
И Не УправлениеДоступомСлужебный.ЭтоПрофильОткрытиеВнешнихОтчетовИОбработок(Объект.Профиль) Тогда
@@ -104,7 +104,7 @@
// элементам в процессе обновления конфигурации базы данных.
//
// Параметры:
// ЕстьИзменения - Булево (возвращаемое значение) - если производилась запись,
// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись,
// устанавливается Истина, иначе не изменяется.
//
Процедура ПометитьНаУдалениеГруппыДоступаПомеченныхПрофилей(ЕстьИзменения = Неопределено) Экспорт
@@ -326,7 +326,7 @@
КонецЕсли;
КонецЦикла;
Отбор = Новый Структура("ВидДоступа, ЗначениеДоступа");
Отбор = Новый Структура("ВидДоступа, ЗначениеДоступа, ВключаяНижестоящие");
Для Каждого Строка Из ТекущийОбъект.ЗначенияДоступа Цикл
ЗаполнитьЗначенияСвойств(Отбор, Строка);
Если ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
@@ -561,6 +561,13 @@
// Только для внутреннего использования.
Процедура УдалитьУчастниковГруппыДоступаАдминистраторыБезПользователяИБ() Экспорт
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыДоступа");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Администраторы);
Блокировка.Заблокировать();
ГруппаДоступаАдминистраторы = Администраторы.ПолучитьОбъект();
Индекс = ГруппаДоступаАдминистраторы.Пользователи.Количество() - 1;
@@ -587,6 +594,11 @@
Если ГруппаДоступаАдминистраторы.Модифицированность() Тогда
ГруппаДоступаАдминистраторы.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
@@ -97,6 +97,13 @@
// При снятии пометки удаления с группы доступа выполняется
// снятие пометки удаления с профиля этой группы доступа.
Если Не ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Истина Тогда
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Профиль);
Блокировка.Заблокировать();
ПометкаУдаленияПрофиля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Профиль, "ПометкаУдаления");
ПометкаУдаленияПрофиля = ?(ПометкаУдаленияПрофиля = Неопределено, Ложь, ПометкаУдаленияПрофиля);
Если ПометкаУдаленияПрофиля Тогда
@@ -105,6 +112,12 @@
ПрофильОбъект.ПометкаУдаления = Ложь;
ПрофильОбъект.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецЕсли;
@@ -399,6 +399,20 @@
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="11c5930d-f882-46bd-9e7b-63e5344f6604">
<name>ВключаяНижестоящие</name>
<synonym>
<key>ru</key>
<value>Включая нижестоящие</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<forms uuid="ade21e2e-349f-414b-8f35-6ae3b6a4064d">
<name>ФормаЭлемента</name>
@@ -231,11 +231,13 @@
ЗаполнитьКоманды();
УстановитьВидимостьДоступность();
Если Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма
Если Объект.Публикация <> Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена
И Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
МодульУправлениеПечатью.ОтключитьКомандыПечати(ВыбранныеОбъектыНазначения().ВыгрузитьЗначения(), ОтключаемыеКоманды().ВыгрузитьЗначения());
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -74,6 +74,9 @@
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОповеститьОбИзменении(Объект.Ссылка);
Если ЗначениеЗаполнено(Объект.Предмет) Тогда
ОповеститьОбИзменении(Объект.Предмет);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -115,6 +115,8 @@
<lang>ru</lang>
</pages>
</help>
<dataLockFields>Catalog.Заметки.Attribute.Автор</dataLockFields>
<dataLockFields>Catalog.Заметки.Attribute.Предмет</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -160,14 +162,7 @@
<value>Предмет</value>
</synonym>
<type>
<types>ExchangePlanRef</types>
<types>BusinessProcessRef</types>
<types>DocumentRef</types>
<types>ChartOfCalculationTypesRef</types>
<types>TaskRef</types>
<types>ChartOfCharacteristicTypesRef</types>
<types>ChartOfAccountsRef</types>
<types>CatalogRef</types>
<types>DefinedType.ПредметЗаметок</types>
</type>
<toolTip>
<key>ru</key>
@@ -95,6 +95,7 @@
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<dataLockFields>Catalog.ЗапланированноеВзаимодействиеПрисоединенныеФайлы.Attribute.ВладелецФайла</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -40,10 +40,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Opening</event>
<name>НаименованиеОткрытие</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -23,15 +23,13 @@
УстановитьЗаголовок();
ЛокализуемыеЭлементы = Новый Массив;
ЛокализуемыеЭлементы.Добавить(Элементы.Наименование);
ЛокализацияСервер.ПриСозданииНаСервере(ЛокализуемыеЭлементы);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ЛокализацияСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецПроцедуры
&НаСервере
@@ -45,7 +43,7 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
@@ -57,7 +55,7 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
#КонецОбласти
@@ -65,8 +63,8 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НаименованиеОткрытие(Элемент, СтандартнаяОбработка)
ЛокализацияКлиент.ПриОткрытии(Объект, Элемент, "Наименование", СтандартнаяОбработка);
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
@@ -32,10 +32,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Opening</event>
<name>НаименованиеОткрытие</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
@@ -38,9 +38,7 @@
УстановитьЗаголовок();
ЛокализуемыеЭлементы = Новый Массив;
ЛокализуемыеЭлементы.Добавить(Элементы.Наименование);
ЛокализацияСервер.ПриСозданииНаСервере(ЛокализуемыеЭлементы);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры
@@ -62,7 +60,7 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ЛокализацияСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецПроцедуры
&НаСервере
@@ -76,7 +74,7 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
@@ -97,7 +95,7 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
#КонецОбласти
@@ -105,8 +103,8 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НаименованиеОткрытие(Элемент, СтандартнаяОбработка)
ЛокализацияКлиент.ПриОткрытии(Объект, Элемент, "Наименование", СтандартнаяОбработка);
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
@@ -55,7 +55,7 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
ЛокализацияКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
@@ -42,7 +42,7 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
ЛокализацияСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
@@ -32,10 +32,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Opening</event>
<name>НаименованиеОткрытие</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
@@ -38,9 +38,7 @@
УстановитьЗаголовок();
ЛокализуемыеЭлементы = Новый Массив;
ЛокализуемыеЭлементы.Добавить(Элементы.Наименование);
ЛокализацияСервер.ПриСозданииНаСервере(ЛокализуемыеЭлементы);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры
@@ -62,7 +60,7 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ЛокализацияСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецПроцедуры
&НаСервере
@@ -76,7 +74,7 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
@@ -97,7 +95,7 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЛокализацияСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
#КонецОбласти
@@ -105,8 +103,8 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НаименованиеОткрытие(Элемент, СтандартнаяОбработка)
ЛокализацияКлиент.ПриОткрытии(Объект, Элемент, "Наименование", СтандартнаяОбработка);
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
@@ -55,7 +55,7 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
ЛокализацияКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
@@ -42,7 +42,7 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
ЛокализацияСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
@@ -498,6 +498,42 @@
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>СписокСсылка</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>
<contextMenu>
<name>СписокСсылкаКонтекстноеМеню</name>
<id>19</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>4</id>
@@ -507,9 +543,7 @@
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Синоним</segments>
</dataPath>
@@ -573,40 +607,6 @@
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СписокСсылка</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>
<contextMenu>
<name>СписокСсылкаКонтекстноеМеню</name>
<id>19</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>
@@ -1,5 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>59</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Ref</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Вычисляемое представление идентификатора объекта метаданных</value>
</toolTip>
<extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name>
<id>61</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СсылкаКонтекстноеМеню</name>
<id>60</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>60</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<dropListButton>false</dropListButton>
<openButton>false</openButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>1</id>
@@ -34,7 +34,7 @@
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
// Возвращаемое значение:
// Массив(Строка) - массив имен реквизитов, образующих естественный ключ.
// Массив Из Строка - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -51,6 +51,37 @@
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
Поля.Добавить("Ссылка");
Поля.Добавить("Наименование");
Поля.Добавить("ПолноеИмя");
Поля.Добавить("ПолныйСиноним");
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Представление = СтандартныеПодсистемыПовтИсп.ПредставлениеИдентификатораОбъектаМетаданных(Данные.Ссылка);
#Иначе
Представление = СтандартныеПодсистемыКлиентПовтИсп.ПредставлениеИдентификатораОбъектаМетаданных(Данные.Ссылка);
#КонецЕсли
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
// Только для внутреннего использования.
@@ -456,10 +487,10 @@
// Процедура обновляет данные справочника по метаданным конфигурации.
//
// Параметры:
// ЕстьИзменения - Булево (возвращаемое значение) - в этот параметр возвращается
// ЕстьИзменения - Булево - (возвращаемое значение) - в этот параметр возвращается
// значение Истина, если производилась запись, иначе не изменяется.
//
// ЕстьУдаленные - Булево (возвращаемое значение) - в этот параметр возвращается
// ЕстьУдаленные - Булево - (возвращаемое значение) - в этот параметр возвращается
// значение Истина, если хотя бы один элемент справочника был помечен
// на удаление, иначе не изменяется.
//
@@ -1468,9 +1499,8 @@
Если ОбъектыРасширений
И СвойстваРасширений.ИменаНеподключенныхРасширений[Свойства.ИмяРасширения] <> Неопределено Тогда
// Элементы неподключенных расширений остаются неизменными для возможности
// использования после исправления ошибок в расширениях так, чтобы обработка
// удаления помеченных не удалила связанные данные.
// Для случаев, когда расширение было временно отключено, а затем подключено обратно,
// предотвращаем удаление помеченных элементов и связанных с ними данных.
Продолжить;
КонецЕсли;
@@ -1628,6 +1658,7 @@
Процедура ОбновитьИдентификаторыОбъектовМетаданных(Выгрузка, СвойстваОбъектовМетаданных, ОбъектыРасширений,
СвойстваРасширений, ВерсияРасширений, ЕстьИзменения, ТолькоПроверка)
// АПК:1327-выкл - №783.1.4.1 Управляемая блокировка устанавливается в вызывающем коде.
Если ОбъектыРасширений Тогда
НаборЗаписей = РегистрыСведений.ИдентификаторыОбъектовВерсийРасширений.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ВерсияРасширений.Установить(ВерсияРасширений);
@@ -1730,6 +1761,7 @@
НаборЗаписей.Записать();
КонецЕсли;
КонецЕсли;
// АПК:1327-вкл.
КонецПроцедуры
@@ -2500,7 +2532,7 @@
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("ПометкаУдаления");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
@@ -2516,6 +2548,12 @@
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("ПометкаБудущегоУдаления");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Синоним");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
@@ -2523,25 +2561,27 @@
ЭлементПорядка.Использование = Истина;
// Оформление.
ЭлементУсловногоОформления = Форма.УсловноеОформление.Элементы.Добавить();
ЭлементОформления = Форма.Список.КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
ЭлементОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементЦвета = ЭлементОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦвета.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
ЭлементЦвета.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ПометкаБудущегоУдаления");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементГруппыОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЭлементГруппыОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("Синоним");
ЭлементОформляемогоПоля.Использование = Истина;
ЭлементОтбора = ЭлементГруппыОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаУдаления");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Истина;
ЭлементОтбора.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("ПолноеИмя");
ЭлементОформляемогоПоля.Использование = Истина;
ЭлементОтбора = ЭлементГруппыОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаБудущегоУдаления");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Истина;
ЭлементОтбора.Использование = Истина;
КонецПроцедуры
@@ -2787,11 +2827,11 @@
НомерОшибки = НомерОшибки + 1;
ТекстВсехОшибок = ТекстВсехОшибок + ?(НомерОшибки = 1, "", Разделитель) + ОписаниеОшибки;
Если НомерОшибки = 3 И КоличествоОшибок > 5 Тогда
ПредставлениеКоличества = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(
НСтр("ru = ';%1 ошибка;; %1 ошибки; %1 ошибок; %1 ошибки'"), (КоличествоОшибок - НомерОшибки));
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '... И еще %1'"),
ПредставлениеКоличества);
ОписаниеОшибки = "... " + СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(
НСтр("ru = ';И еще %1 ошибка;;И еще %1 ошибки;И еще %1 ошибок;И еще %1 ошибки'"),
(КоличествоОшибок - НомерОшибки));
ТекстВсехОшибок = ТекстВсехОшибок + Разделитель + ОписаниеОшибки;
Прервать;
КонецЕсли;
@@ -3124,6 +3164,68 @@
КонецФункции
// Для процедуры ОбработкаПолученияПредставления.
Функция ПредставлениеИдентификатора(Ссылка) Экспорт
ОбъектыРасширений = ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных");
СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений);
СвойстваКоллекции = СвойстваКоллекций.Найти(Ссылка.УникальныйИдентификатор(), "Идентификатор");
Если СвойстваКоллекции <> Неопределено Тогда
Возврат СвойстваКоллекции.Синоним;
КонецЕсли;
Если ОбъектыРасширений Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(ИдентификаторыОбъектовВерсийРасширений.ПолноеИмяОбъекта, ИдентификаторыОбъектовРасширений.ПолноеИмя) КАК ПолноеИмя
|ИЗ
| Справочник.ИдентификаторыОбъектовРасширений КАК ИдентификаторыОбъектовРасширений
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ИдентификаторыОбъектовВерсийРасширений
| ПО (ИдентификаторыОбъектовВерсийРасширений.Идентификатор = ИдентификаторыОбъектовРасширений.Ссылка)
| И (ИдентификаторыОбъектовВерсийРасширений.ВерсияРасширений = &ВерсияРасширений)
|ГДЕ
| ИдентификаторыОбъектовРасширений.Ссылка = &Ссылка";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ПолноеИмя = Выборка.ПолноеИмя;
Иначе
ПолноеИмя = Неопределено;
КонецЕсли;
Иначе
ПолноеИмя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПолноеИмя");
КонецЕсли;
Если ПолноеИмя = Неопределено Тогда
Возврат НСтр("ru = 'Объект не найден.'")
КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
Если ОбъектМетаданных = Неопределено Тогда
Если СтрНачинаетсяС(ПолноеИмя, "?") Тогда
Возврат "? " + СтрРазделить(ПолноеИмя, " ")[1];
Иначе
Возврат ПолноеИмя;
КонецЕсли;
КонецЕсли;
ПозицияТочки = СтрНайти(ПолноеИмя, ".");
ИмяБазовогоТипа = Лев(ПолноеИмя, ПозицияТочки -1);
Отбор = Новый Структура("ИмяВЕдЧисле", ИмяБазовогоТипа);
Строки = СвойстваКоллекций.НайтиСтроки(Отбор);
Если Строки.Количество() <> 1 Тогда
Возврат ПолноеИмя;
КонецЕсли;
Возврат ПредставлениеОбъектаМетаданных(ОбъектМетаданных, Строки[0]);
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции замены идентификатора в базе данных.
@@ -3227,6 +3329,9 @@
//
Функция ВыполнитьЗаменуЭлементов(Знач Заменяемые, Знач ТаблицаСсылок, Знач ОтключатьКонтрольЗаписи = Ложь, Знач ОбъектыРасширений = Ложь)
// АПК:1327-выкл - №783.1.4.1 Во-первых, нетранзакционная операция, так как может быть длительной.
// Во-вторых, выполняется после загрузки данных из главного узла в режиме обновление информационной базы.
// В третьих, выполняется только тогда, когда найдены дубли идентификаторов объектов метаданных (редкий случай).
Параметры = Новый Структура;
Для Каждого РегистрБухгалтерии Из Метаданные.РегистрыБухгалтерии Цикл
@@ -3634,8 +3739,11 @@
СообщитьОбОшибке(ТекстОшибки, ОбъектыРасширений);
КонецПопытки;
Иначе
СообщитьОбОшибке(НСтр("ru = 'Значения не заменяются в данных типа'")
+ ": " + Строка(СтрокаТаблицы.Метаданные), ОбъектыРасширений);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Значения не заменяются в данных типа: %1'"),
Строка(СтрокаТаблицы.Метаданные));
СообщитьОбОшибке(ТекстОшибки, ОбъектыРасширений);
КонецЕсли;
КонецЦикла;
@@ -3668,6 +3776,7 @@
КонецПопытки;
Возврат Не БылиИсключения;
// АПК:1327-вкл.
КонецФункции
@@ -12,6 +12,7 @@
<key>ru</key>
<value>Идентификаторы объектов метаданных</value>
</synonym>
<comment>АПК:304 - №697.1.2 Обновление предопределенных данных вместо Авто требуется установить Не обновлять автоматически, так как предопределенные элементы сопоставляются с данными программно</comment>
<inputByString>Catalog.ИдентификаторыОбъектовМетаданных.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
@@ -35,7 +36,7 @@
<name>Ref</name>
<toolTip>
<key>ru</key>
<value>Ссылка на объект метаданных в базе данных</value>
<value>Ссылка на объект метаданных в информационной базе</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
@@ -96,7 +97,7 @@
</synonym>
<toolTip>
<key>ru</key>
<value>Представление идентификатора объекта метаданных</value>
<value>Сохраняемое представление идентификатора объекта метаданных</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
@@ -125,7 +126,7 @@
</objectPresentation>
<explanation>
<key>ru</key>
<value>Идентификаторы объектов метаданных для использования в базе данных.</value>
<value>Идентификаторы объектов метаданных для использования в информационной базе.</value>
</explanation>
<hierarchical>true</hierarchical>
<hierarchyType>HierarchyOfItems</hierarchyType>
@@ -1096,12 +1097,6 @@
<value></value>
</code>
</items>
<items id="65ee6d7a-6352-4696-9fd2-35c7a02c4144">
<name>РегистрСведенийИнцидентыОграничениеСкоростиОтсылки</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
<items id="0345cafd-9567-4c6b-b69c-6224324c3c65">
<name>РегистрСведенийИнцидентыОткрытые</name>
<code xsi:type="core:StringValue">
@@ -1168,6 +1163,12 @@
<value></value>
</code>
</items>
<items id="65ee6d7a-6352-4696-9fd2-35c7a02c4144">
<name>РегистрСведенийОграничениеСкоростиОтсылкиИнцидентов</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
</predefined>
<predefinedDataUpdate>DontAutoUpdate</predefinedDataUpdate>
<editType>InDialog</editType>
@@ -1318,6 +1319,7 @@
<key>ru</key>
<value>Значение пустой ссылки</value>
</synonym>
<comment>АПК:1330 - №728.2.1 Допустимо использование универсального ссылочного типа, так как это универсальный механизм и мало данных</comment>
<type>
<types>ExchangePlanRef</types>
<types>BusinessProcessRef</types>
@@ -1384,6 +1386,7 @@
<key>ru</key>
<value>Форма списка</value>
</synonym>
<comment>АПК:149 - #std702,1 Поле Ссылка используется вместо поля Наименование для динамического представления на разных языках</comment>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
@@ -498,6 +498,42 @@
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>СписокСсылка</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>
<contextMenu>
<name>СписокСсылкаКонтекстноеМеню</name>
<id>19</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>4</id>
@@ -507,9 +543,7 @@
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Синоним</segments>
</dataPath>
@@ -573,40 +607,6 @@
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СписокСсылка</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>
<contextMenu>
<name>СписокСсылкаКонтекстноеМеню</name>
<id>19</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>
@@ -1,5 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>62</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Ref</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Вычисляемое представление идентификатора объекта расширения</value>
</toolTip>
<extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name>
<id>64</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СсылкаКонтекстноеМеню</name>
<id>63</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>60</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<dropListButton>false</dropListButton>
<openButton>false</openButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>1</id>
@@ -32,7 +32,7 @@
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
// Возвращаемое значение:
// Массив(Строка) - массив имен реквизитов, образующих естественный ключ.
// Массив Из Строка - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -46,6 +46,28 @@
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
Справочники.ИдентификаторыОбъектовМетаданных.ОбработкаПолученияПолейПредставления(Поля,
СтандартнаяОбработка);
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Справочники.ИдентификаторыОбъектовМетаданных.ОбработкаПолученияПредставления(Данные,
Представление, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Функция ПолныеИменаТаблицСДанными() Экспорт
@@ -12,6 +12,7 @@
<key>ru</key>
<value>Идентификаторы объектов расширений</value>
</synonym>
<comment>АПК:304 - №697.1.2 Обновление предопределенных данных вместо Авто требуется установить Не обновлять автоматически, так как предопределенные элементы сопоставляются с данными программно</comment>
<inputByString>Catalog.ИдентификаторыОбъектовРасширений.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
@@ -35,7 +36,7 @@
<name>Ref</name>
<toolTip>
<key>ru</key>
<value>Ссылка на объект метаданных в базе данных</value>
<value>Ссылка на объект метаданных в информационной базе</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
@@ -96,7 +97,7 @@
</synonym>
<toolTip>
<key>ru</key>
<value>Представление идентификатора объекта метаданных</value>
<value>Сохраняемое представление идентификатора объекта расширений</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
@@ -125,7 +126,7 @@
</objectPresentation>
<explanation>
<key>ru</key>
<value>Идентификаторы объектов метаданных расширений для использования в базе данных.</value>
<value>Идентификаторы объектов метаданных расширений для использования в информационной базе.</value>
</explanation>
<hierarchical>true</hierarchical>
<hierarchyType>HierarchyOfItems</hierarchyType>
@@ -284,6 +285,7 @@
<key>ru</key>
<value>Значение пустой ссылки</value>
</synonym>
<comment>АПК:1330 - №728.2.1 Допустимо использование универсального ссылочного типа, так как это универсальный механизм и мало данных</comment>
<type>
<types>ExchangePlanRef</types>
<types>BusinessProcessRef</types>
@@ -390,6 +392,7 @@
<key>ru</key>
<value>Форма списка</value>
</synonym>
<comment>АПК:149 - #std702,1 Поле Ссылка используется вместо поля Наименование для динамического представления на разных языках</comment>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
@@ -56,14 +56,6 @@
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<format>
<key>ru</key>
<value>ДФ=ЧЧ:мм; ДП=</value>
</format>
<editFormat>
<key>ru</key>
<value>ДФ=ЧЧ:мм</value>
</editFormat>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
@@ -109,14 +101,6 @@
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<format>
<key>ru</key>
<value>ДФ=ЧЧ:мм; ДП=</value>
</format>
<editFormat>
<key>ru</key>
<value>ДФ=ЧЧ:мм</value>
</editFormat>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
@@ -12,6 +12,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РасписаниеДня = Параметры.РасписаниеРаботы;
УточнитьФорматПолейВремени();
Для Каждого ОписаниеИнтервала Из РасписаниеДня Цикл
ЗаполнитьЗначенияСвойств(РасписаниеРаботы.Добавить(), ОписаниеИнтервала);
@@ -129,4 +130,17 @@
КонецПроцедуры
&НаСервере
Процедура УточнитьФорматПолейВремени()
ФорматВремени = НСтр("ru = 'ДФ=ЧЧ:мм; ДП='");
Элементы.РасписаниеРаботыВремяНачала.Формат = ФорматВремени;
Элементы.РасписаниеРаботыВремяНачала.ФорматРедактирования = ФорматВремени;
Элементы.РасписаниеРаботыВремяОкончания.Формат = ФорматВремени;
Элементы.РасписаниеРаботыВремяОкончания.ФорматРедактирования = ФорматВремени;
КонецПроцедуры
#КонецОбласти
@@ -678,7 +678,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>8</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -1814,13 +1813,6 @@
<groupHorizontalAlign>Right</groupHorizontalAlign>
<groupVerticalAlign>Bottom</groupVerticalAlign>
<placementArea>UserCmds</placementArea>
<font xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</font>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
@@ -2284,13 +2276,6 @@
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<font xsi:type="core:FontRef">
<font>System.DefaultGUIFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</font>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
@@ -139,7 +139,8 @@
// то записываем их как есть, остальные периоды обновляем по шаблону.
Если МодифицированностьРезультата Тогда
РегистрыСведений.КалендарныеГрафики.ЗаписатьДанныеГрафикаВРегистр(ТекущийОбъект.Ссылка, ДниГрафика, Дата(НомерГода, 1, 1), Дата(НомерГода, 12, 31), Истина);
РегистрыСведений.КалендарныеГрафики.ЗаписатьДанныеГрафикаВРегистр(ТекущийОбъект.Ссылка, ДниГрафика,
Дата(НомерГода, 1, 1), Дата(НомерГода, 12, 31), Истина);
КонецЕсли;
ЗаписатьПризнакРучногоРедактирования(ТекущийОбъект, НомерГода);
@@ -586,7 +587,10 @@
Если СтрокаРасписания.НомерДня <> НомерДня Тогда
Продолжить;
КонецЕсли;
ПредставлениеИнтервала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1-%2, ", Формат(СтрокаРасписания.ВремяНачала, "ДФ=ЧЧ:мм; ДП="), Формат(СтрокаРасписания.ВремяОкончания, "ДФ=ЧЧ:мм; ДП="));
ПредставлениеИнтервала = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1-%2, ",
ПредставлениеВремениСуток(СтрокаРасписания.ВремяНачала),
ПредставлениеВремениСуток(СтрокаРасписания.ВремяОкончания));
ПредставлениеИнтервалов = ПредставлениеИнтервалов + ПредставлениеИнтервала;
Если Не ЗначениеЗаполнено(СтрокаРасписания.ВремяОкончания) Тогда
СекундИнтервала = КонецДня(СтрокаРасписания.ВремяОкончания) - СтрокаРасписания.ВремяНачала + 1;
@@ -607,6 +611,17 @@
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеВремениСуток(Знач ВремяСуток)
Если Не ЗначениеЗаполнено(ВремяСуток) Тогда
ВремяСуток = Дата(1980, 1, 1);
КонецЕсли;
Возврат Формат(ВремяСуток, НСтр("ru = 'ДФ=ЧЧ:мм'"));
КонецФункции
&НаКлиенте
Функция РасписаниеРаботы(НомерДня)
@@ -747,7 +762,10 @@
ДниГрафика = Новый ФиксированноеСоответствие(ДниГрафикаСоответствие);
Если Не РезультатЗаполненПоШаблону Тогда
УстановитьСнятьМодифицированностьРезультата(ЭтотОбъект, Истина);
УстановитьСнятьПризнакСоответствияРезультатовШаблону(ЭтотОбъект, Истина);
КонецЕсли;
КонецПроцедуры
@@ -839,7 +857,8 @@
&НаСервере
Процедура ЗаписатьДанныеГрафикаРаботыНаГод(НомерГода)
РегистрыСведений.КалендарныеГрафики.ЗаписатьДанныеГрафикаВРегистр(Объект.Ссылка, ДниГрафика, Дата(НомерГода, 1, 1), Дата(НомерГода, 12, 31), Истина);
РегистрыСведений.КалендарныеГрафики.ЗаписатьДанныеГрафикаВРегистр(Объект.Ссылка, ДниГрафика, Дата(НомерГода, 1, 1),
Дата(НомерГода, 12, 31), Истина);
ЗаписатьПризнакРучногоРедактирования(Объект, НомерГода);
КонецПроцедуры
@@ -313,7 +313,7 @@
<value>Владелец графика</value>
</synonym>
<type>
<types>CatalogRef</types>
<types>DefinedType.ВладелецГрафикаРаботы</types>
</type>
<toolTip>
<key>ru</key>
@@ -266,10 +266,6 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<parameters>
<name>Отбор</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -11,12 +11,6 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОценкаПроизводительностиКлиентСервер.УстановитьЭлементОтбора(
Список.Отбор,
"Ссылка",
Параметры.Отбор,
ВидСравненияКомпоновкиДанных.НеВСписке);
ОценкаПроизводительностиКлиентСервер.УстановитьЭлементОтбора(
Список.Отбор,
"ПометкаУдаления",
@@ -55,7 +55,7 @@
ТекстСообщения = НСтр("ru = 'Ключевая операция с приоритетом ""%1"" уже существует (%2).'");
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", Строка(Приоритет));
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%2", Выборка.Наименование);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Справочник.КлючевыеОперации.МодульОбъекта.ПередЗаписью'", Метаданные.ОсновнойЯзык.КодЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Справочник.КлючевыеОперации.МодульОбъекта.ПередЗаписью'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
,
НСтр("ru = 'Оценка производительности'"),
@@ -421,7 +421,7 @@
<key>ru</key>
<value>Форма списка</value>
</synonym>
<comment>АПК:494 - допустимо, так как объем данных небольшой (от единиц до нескольких тысяч).</comment>
<comment>АПК:494 - №656 Соединение с вложенным запросом допустимо, так как объем данных небольшой (от единиц до нескольких тысяч).</comment>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
@@ -101,6 +101,12 @@
<items xsi:type="form:FormGroup">
<name>ГруппаСвойства</name>
<id>70</id>
<items xsi:type="form:FormGroup">
<name>СтраницыНаборы</name>
<id>188</id>
<items xsi:type="form:FormGroup">
<name>Основная</name>
<id>190</id>
<items xsi:type="form:Table">
<name>НаборыСвойств</name>
<id>1</id>
@@ -116,7 +122,6 @@
<dataPath xsi:type="form:DataPath">
<segments>НаборыСвойств</segments>
</dataPath>
<defaultItem>true</defaultItem>
<skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation>
<excludedCommands>Change</excludedCommands>
@@ -341,6 +346,10 @@
<currentRowUse>SelectionPresentation</currentRowUse>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<handlers>
<event>OnGetDataAtServer</event>
<name>НаборыСвойствПриПолученииДанныхНаСервере</name>
</handlers>
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
@@ -351,6 +360,273 @@
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Основная</value>
</title>
<extendedTooltip>
<name>ОсновнаяРасширеннаяПодсказка</name>
<id>191</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>192</id>
<items xsi:type="form:Table">
<name>НеиспользуемыеНаборы</name>
<id>194</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>
<skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation>
<excludedCommands>ListSettings</excludedCommands>
<items xsi:type="form:FormField">
<name>НеиспользуемыеНаборыПредставление</name>
<id>210</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>212</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НеиспользуемыеНаборыПредставлениеКонтекстноеМеню</name>
<id>211</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>196</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<searchStringAddition>
<name>НеиспользуемыеНаборыСтрокаПоиска</name>
<id>198</id>
<extendedTooltip>
<name>НеиспользуемыеНаборыСтрокаПоискаРасширеннаяПодсказка</name>
<id>200</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НеиспользуемыеНаборыСтрокаПоискаКонтекстноеМеню</name>
<id>199</id>
<autoFill>true</autoFill>
</contextMenu>
<source>НеиспользуемыеНаборы</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>НеиспользуемыеНаборыСостояниеПросмотра</name>
<id>201</id>
<extendedTooltip>
<name>НеиспользуемыеНаборыСостояниеПросмотраРасширеннаяПодсказка</name>
<id>203</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НеиспользуемыеНаборыСостояниеПросмотраКонтекстноеМеню</name>
<id>202</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>НеиспользуемыеНаборы</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>НеиспользуемыеНаборыУправлениеПоиском</name>
<id>204</id>
<extendedTooltip>
<name>НеиспользуемыеНаборыУправлениеПоискомРасширеннаяПодсказка</name>
<id>206</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НеиспользуемыеНаборыУправлениеПоискомКонтекстноеМеню</name>
<id>205</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>НеиспользуемыеНаборы</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>НеиспользуемыеНаборыРасширеннаяПодсказка</name>
<id>197</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НеиспользуемыеНаборыКонтекстноеМеню</name>
<id>195</id>
<autoFill>true</autoFill>
</contextMenu>
<representation>Tree</representation>
<readOnly>true</readOnly>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<horizontalLinesBWA>false</horizontalLinesBWA>
<verticalLinesBWA>false</verticalLinesBWA>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>НеиспользуемыеНаборы.DefaultPicture</segments>
</rowPictureDataPath>
<rowsPicture xsi:type="core:PictureRef">
<picture>CommonPicture.ПиктограммыЭлементов</picture>
</rowsPicture>
<currentRowUse>SelectionPresentation</currentRowUse>
<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"/>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Неиспользуемые</value>
</title>
<extendedTooltip>
<name>НеиспользуемыеРасширеннаяПодсказка</name>
<id>193</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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы наборы</value>
</title>
<extendedTooltip>
<name>СтраницыНаборыРасширеннаяПодсказка</name>
<id>189</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>
<items xsi:type="form:Table">
<name>Свойства</name>
<id>38</id>
@@ -726,39 +1002,6 @@
<contextMenu>
<name>СвойстваКонтекстноеМеню</name>
<id>39</id>
<items xsi:type="form:Button">
<name>СвойстваКонтекстноеМенюТолькоСоздать</name>
<id>102</id>
<title>
<key>ru</key>
<value>Создать</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СвойстваКонтекстноеМенюТолькоСоздатьExtendedTooltip</name>
<id>124</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>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.CreateListItem</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>СвойстваКонтекстноеМенюПодменюДобавить</name>
<id>84</id>
@@ -1057,26 +1300,25 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Top</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>СвойстваТолькоСоздать</name>
<id>101</id>
<title>
<key>ru</key>
<value>Создать</value>
</title>
<items xsi:type="form:FormField">
<name>ПоказатьНеиспользуемыеРеквизиты</name>
<id>185</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПоказатьНеиспользуемыеРеквизиты</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<handlers>
<event>OnChange</event>
<name>ПоказатьНеиспользуемыеРеквизитыПриИзменении</name>
</handlers>
<extendedTooltip>
<name>СвойстваТолькоСоздатьExtendedTooltip</name>
<id>105</id>
<name>ПоказатьНеиспользуемыеРеквизитыРасширеннаяПодсказка</name>
<id>187</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -1084,17 +1326,23 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Создать</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.CreateListItem</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
<contextMenu>
<name>ПоказатьНеиспользуемыеРеквизитыКонтекстноеМеню</name>
<id>186</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>
<commandBarLocation>Top</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:FormGroup">
<name>СвойстваПодменюДобавить</name>
<id>80</id>
@@ -1604,6 +1852,15 @@
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.КоличествоРеквизитов</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.КоличествоСведений</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.НаименованиеНаДругихЯзыках</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.Родитель</segments>
</notDefaultUseAlwaysAttributes>
@@ -1613,6 +1870,9 @@
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.ЭтоГруппа</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.ЭтоСведения</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
@@ -1624,27 +1884,9 @@
Наборы.ЭтоГруппа КАК ЭтоГруппа,
Наборы.Наименование КАК Наименование,
Наборы.Используется КАК Используется,
ВЫБОР
КОГДА Наборы.ЭтоГруппа
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка)
КОГДА &amp;ЭтоНаборыДополнительныхСведений
ТОГДА ВЫБОР
КОГДА Наборы.КоличествоСведений = &quot;&quot;
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка)
КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot;
И &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоСведений + &quot;)&quot;
ИНАЧЕ (ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))) + &quot; (&quot; + Наборы.КоличествоСведений + &quot;)&quot;
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА Наборы.КоличествоРеквизитов = &quot;&quot;
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка)
КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot;
И &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоРеквизитов + &quot;)&quot;
ИНАЧЕ (ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))) + &quot; (&quot; + Наборы.КоличествоРеквизитов + &quot;)&quot;
КОНЕЦ
КОНЕЦ КАК Представление,
ВЫРАЗИТЬ(&quot;&quot; КАК СТРОКА(150)) КАК Представление,
&amp;ЭтоНаборыДополнительныхСведений КАК ЭтоСведения,
НаборыПредставления.Наименование КАК НаименованиеНаДругихЯзыках,
ВЫБОР
КОГДА Наборы.ПометкаУдаления
ТОГДА 1
@@ -1653,7 +1895,9 @@
КОГДА Наборы.Предопределенный
ТОГДА 2
ИНАЧЕ 0
КОНЕЦ КАК НомерКартинки
КОНЕЦ КАК НомерКартинки,
Наборы.КоличествоРеквизитов КАК КоличествоРеквизитов,
Наборы.КоличествоСведений КАК КоличествоСведений
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления
@@ -1725,7 +1969,6 @@
<edit>
<common>true</common>
</edit>
<functionalOptions>FunctionalOption.ИспользоватьОбщиеДополнительныеРеквизитыИСведения</functionalOptions>
</columns>
<columns>
<name>ПометкаУдаления</name>
@@ -1855,7 +2098,6 @@
<edit>
<common>true</common>
</edit>
<functionalOptions>FunctionalOption.ИспользоватьОбщиеДополнительныеЗначения</functionalOptions>
</columns>
</attributes>
<attributes>
@@ -1979,6 +2221,53 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПоказатьНеиспользуемыеРеквизиты</name>
<title>
<key>ru</key>
<value>Показать неиспользуемые реквизиты</value>
</title>
<id>12</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>14</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
ВЫБОР
КОГДА &amp;ЭтоДополнительноеСведение
ТОГДА &amp;ОбщиеДополнительныеСведения
ИНАЧЕ &amp;ОбщиеДополнительныеРеквизиты
КОНЕЦ КАК Представление,
0 КАК НомерКартинки</queryText>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<formCommands>
<name>ПереместитьВверх</name>
<title>
@@ -2117,8 +2406,7 @@
<id>8</id>
<toolTip>
<key>ru</key>
<value>Создать уникальный реквизит
(только для этого набора)</value>
<value>Создать уникальный реквизит</value>
</toolTip>
<use>
<common>true</common>
@@ -24,11 +24,9 @@
КонецЕсли;
ЦветФормы = Элементы.Свойства.ЦветФона;
ОформитьНаборыИСвойства();
НастроитьИспользованиеКоманд();
НастроитьОтображениеНаборов();
ОформитьНаборыИСвойства();
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПоискИУдалениеДублей") Тогда
Элементы.ПоискИУдалениеДублей.Видимость = Ложь;
@@ -61,12 +59,6 @@
ВыбратьУказанныеСтроки(Параметр);
КонецЕсли;
ИначеЕсли ИмяСобытия = "Запись_НаборКонстант" Тогда
Если Источник = "ИспользоватьОбщиеДополнительныеЗначения"
ИЛИ Источник = "ИспользоватьОбщиеДополнительныеРеквизитыИСведения" Тогда
НастроитьИспользованиеКоманд();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -79,9 +71,16 @@
Процедура ЭтоНаборыДополнительныхСведенийПриИзменении(Элемент)
НастроитьОтображениеНаборов();
ОформитьНаборыИСвойства();
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьНеиспользуемыеРеквизитыПриИзменении(Элемент)
ПереключитьСписокНаборов();
ПриИзмененииТекущегоНабора();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыНаборыСвойств
@@ -104,6 +103,10 @@
Процедура НаборыСвойствПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
Если Строка = Неопределено Тогда
Возврат;
КонецЕсли;
Если Элементы.НаборыСвойств.ДанныеСтроки(Строка).ЭтоГруппа Тогда
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
КонецЕсли;
@@ -128,6 +131,43 @@
ДобавитьРеквизитВНабор(ПеретаскиваемыйЭлемент, Строка);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура НаборыСвойствПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
ЭтоОсновнойЯзык = (ТекущийЯзык() = Метаданные.ОсновнойЯзык);
Для Каждого СтрокаДинамическогоСписка Из Строки Цикл
Данные = СтрокаДинамическогоСписка.Значение.Данные;
Если Данные.ЭтоГруппа Тогда
Данные.Представление = Строка(Данные.Ссылка);
Продолжить;
КонецЕсли;
Если Данные.ЭтоСведения Тогда
Если Не ЗначениеЗаполнено(Данные.КоличествоСведений) Тогда
Данные.Представление = Строка(Данные.Ссылка);
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Данные.НаименованиеНаДругихЯзыках) Тогда
Данные.Представление = Данные.НаименованиеНаДругихЯзыках + " (" + Данные.КоличествоСведений + ")";
Продолжить;
КонецЕсли;
Данные.Представление = Строка(Данные.Ссылка) + " (" + Данные.КоличествоСведений + ")";
Иначе
Если Не ЗначениеЗаполнено(Данные.КоличествоРеквизитов) Тогда
Данные.Представление = Строка(Данные.Ссылка);
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Данные.НаименованиеНаДругихЯзыках) Тогда
Данные.Представление = Данные.НаименованиеНаДругихЯзыках + " (" + Данные.КоличествоРеквизитов + ")";
Продолжить;
КонецЕсли;
Данные.Представление = Строка(Данные.Ссылка) + " (" + Данные.КоличествоРеквизитов + ")";
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСвойства
@@ -343,7 +383,7 @@
КопируемыйРеквизит.Вставить("ОбщиеЗначения", Элементы.Свойства.ТекущиеДанные.ОбщиеЗначения);
КопируемыйРеквизит.Вставить("ВладелецДополнительныхЗначений", Элементы.Свойства.ТекущиеДанные.ВладелецДополнительныхЗначений);
Элементы.ВставитьРеквизит.Доступность = Истина;
Элементы.ВставитьРеквизит.Доступность = Не ПоказатьНеиспользуемыеРеквизиты;
КонецПроцедуры
&НаКлиенте
@@ -416,7 +456,7 @@
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("Font");
ЭлементЦветаОформления.Значение = Новый Шрифт(, , Истина);
ЭлементЦветаОформления.Значение = ШрифтыСтиля.ОсновнойЭлементСписка;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
@@ -458,6 +498,27 @@
КонецПроцедуры
&НаКлиенте
Процедура ПереключитьСписокНаборов()
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
Элементы.СтраницыНаборы.ТекущаяСтраница = Элементы.Основная;
Возврат;
КонецЕсли;
Элементы.СтраницыНаборы.ТекущаяСтраница = Элементы.Неиспользуемые;
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
НеиспользуемыеНаборы, "ЭтоДополнительноеСведение", (ЭтоНаборыДополнительныхСведений = 1), Истина);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
НеиспользуемыеНаборы, "ОбщиеДополнительныеСведения", НСтр("ru = 'Неиспользуемые дополнительные сведения'"), Истина);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
НеиспользуемыеНаборы, "ОбщиеДополнительныеРеквизиты", НСтр("ru = 'Неиспользуемые дополнительные реквизиты'"), Истина);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПреобразоватьСтрокиВСсылки(Описание)
@@ -469,27 +530,6 @@
КонецПроцедуры
&НаСервере
Процедура НастроитьИспользованиеКоманд()
Если ПолучитьФункциональнуюОпцию("ИспользоватьОбщиеДополнительныеЗначения")
ИЛИ ПолучитьФункциональнуюОпцию("ИспользоватьОбщиеДополнительныеРеквизитыИСведения") Тогда
Элементы.СвойстваТолькоСоздать.Видимость = Ложь;
Элементы.СвойстваПодменюДобавить.Видимость = Истина;
Элементы.СвойстваКонтекстноеМенюТолькоСоздать.Видимость = Ложь;
Элементы.СвойстваКонтекстноеМенюПодменюДобавить.Видимость = Истина
Иначе
Элементы.СвойстваТолькоСоздать.Видимость = Истина;
Элементы.СвойстваПодменюДобавить.Видимость = Ложь;
Элементы.СвойстваКонтекстноеМенюТолькоСоздать.Видимость = Истина;
Элементы.СвойстваКонтекстноеМенюПодменюДобавить.Видимость = Ложь
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НастроитьОтображениеНаборов()
@@ -526,6 +566,8 @@
Элементы.СвойстваОбщиеЗначения.Подсказка =
НСтр("ru = 'Сведение использует список значений сведения-образца.'");
Элементы.ПоказатьНеиспользуемыеРеквизиты.Заголовок = НСтр("ru = 'Показать неиспользуемые сведения'");
Элементы.СвойстваОбщее.Заголовок = НСтр("ru = 'Общее'");
Элементы.СвойстваОбщее.Подсказка = НСтр("ru = 'Общее дополнительное сведение, которое используется в
|нескольких наборах дополнительных сведений.'");
@@ -555,6 +597,8 @@
Элементы.СвойстваОбщиеЗначения.Подсказка =
НСтр("ru = 'Реквизит использует список значений реквизита-образца.'");
Элементы.ПоказатьНеиспользуемыеРеквизиты.Заголовок = НСтр("ru = 'Показать неиспользуемые реквизиты'");
Элементы.СвойстваОбщее.Заголовок = НСтр("ru = 'Общий'");
Элементы.СвойстваОбщее.Подсказка = НСтр("ru = 'Общий дополнительный реквизит, который используется в
|нескольких наборах дополнительных реквизитов.'");
@@ -605,7 +649,10 @@
&НаКлиенте
Процедура ПриИзмененииТекущегоНабора()
Если Элементы.НаборыСвойств.ТекущиеДанные = Неопределено Тогда
Если ПоказатьНеиспользуемыеРеквизиты Тогда
ТекущийНабор = Неопределено;
ПриИзмененииТекущегоНабораНаСервере();
ИначеЕсли Элементы.НаборыСвойств.ТекущиеДанные = Неопределено Тогда
Если ЗначениеЗаполнено(ТекущийНабор) Тогда
ТекущийНабор = Неопределено;
ПриИзмененииТекущегоНабораНаСервере();
@@ -634,22 +681,22 @@
Если Элементы.Свойства.ТекущиеДанные <> Неопределено Тогда
Если ЭтоНаборыДополнительныхСведений Тогда
Если Элементы.Свойства.ТекущиеДанные.Общее Тогда
ТекстВопроса = НСтр("ru ='Исключить текущее общее сведения из набора?'");
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
ТекстВопроса = НСтр("ru = 'Исключить сведение из набора?'");
ИначеЕсли Элементы.Свойства.ТекущиеДанные.ПометкаУдаления Тогда
ТекстВопроса = НСтр("ru ='Снять с текущего сведения пометку на удаление?'");
ТекстВопроса = НСтр("ru = 'Снять с текущего сведения пометку на удаление?'");
Иначе
ТекстВопроса = НСтр("ru ='Пометить текущее сведение на удаление?'");
ТекстВопроса = НСтр("ru = 'Пометить текущее сведение на удаление?'");
КонецЕсли;
Иначе
Если Элементы.Свойства.ТекущиеДанные.Общее Тогда
ТекстВопроса = НСтр("ru ='Исключить текущий общий реквизит из набора?'");
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
ТекстВопроса = НСтр("ru = 'Исключить реквизит из набора?'");
ИначеЕсли Элементы.Свойства.ТекущиеДанные.ПометкаУдаления Тогда
ТекстВопроса = НСтр("ru ='Снять с текущего реквизита пометку на удаление?'");
ТекстВопроса = НСтр("ru = 'Снять с текущего реквизита пометку на удаление?'");
Иначе
ТекстВопроса = НСтр("ru ='Пометить текущий реквизит на удаление?'");
ТекстВопроса = НСтр("ru = 'Пометить текущий реквизит на удаление?'");
КонецЕсли;
КонецЕсли;
@@ -678,7 +725,8 @@
Процедура ПриИзмененииТекущегоНабораНаСервере()
Если ЗначениеЗаполнено(ТекущийНабор)
И НЕ ТекущийНаборЭтоГруппа Тогда
И НЕ ТекущийНаборЭтоГруппа
Или ПоказатьНеиспользуемыеРеквизиты Тогда
ТекущаяДоступность = Истина;
Если Элементы.Свойства.ЦветФона <> Элементы.НаборыСвойств.ЦветФона Тогда
@@ -707,6 +755,7 @@
Процедура СвойстваУстановитьДоступностьКоманд(Контекст)
Элементы = Контекст.Элементы;
ПоказатьНеиспользуемыеРеквизиты = Контекст.ПоказатьНеиспользуемыеРеквизиты;
ОбщаяДоступность = НЕ Элементы.Свойства.ТолькоПросмотр;
ДоступностьВставки = ОбщаяДоступность И (Контекст.КопируемыйРеквизит <> Неопределено);
@@ -714,12 +763,13 @@
ДоступностьДляСтроки = ОбщаяДоступность
И Контекст.Элементы.Свойства.ТекущаяСтрока <> Неопределено;
ОбщаяДоступность = ОбщаяДоступность И Не ПоказатьНеиспользуемыеРеквизиты;
// Настройка команд командной панели.
Элементы.ДобавитьИзНабора.Доступность = ОбщаяДоступность;
Элементы.СвойстваСоздать.Доступность = ОбщаяДоступность;
Элементы.СвойстваТолькоСоздать.Доступность = ОбщаяДоступность;
Элементы.СвойстваСкопировать.Доступность = ДоступностьДляСтроки;
Элементы.СвойстваСкопировать.Доступность = ДоступностьДляСтроки И Не ПоказатьНеиспользуемыеРеквизиты;
Элементы.СвойстваИзменить.Доступность = ДоступностьДляСтроки;
Элементы.СвойстваПометитьНаУдаление.Доступность = ДоступностьДляСтроки;
@@ -727,19 +777,18 @@
Элементы.СвойстваПереместитьВниз.Доступность = ДоступностьДляСтроки;
Элементы.КопироватьРеквизит.Доступность = ДоступностьДляСтроки;
Элементы.ВставитьРеквизит.Доступность = ДоступностьВставки;
Элементы.ВставитьРеквизит.Доступность = ДоступностьВставки И Не ПоказатьНеиспользуемыеРеквизиты;
// Настройка команд контекстного меню.
Элементы.СвойстваКонтекстноеМенюСоздать.Доступность = ОбщаяДоступность;
Элементы.СвойстваКонтекстноеМенюТолькоСоздать.Доступность = ОбщаяДоступность;
Элементы.СвойстваКонтекстноеМенюДобавитьИзНабора.Доступность = ОбщаяДоступность;
Элементы.СвойстваКонтекстноеМенюСкопировать.Доступность = ДоступностьДляСтроки;
Элементы.СвойстваКонтекстноеМенюСкопировать.Доступность = ДоступностьДляСтроки И Не ПоказатьНеиспользуемыеРеквизиты;
Элементы.СвойстваКонтекстноеМенюИзменить.Доступность = ДоступностьДляСтроки;
Элементы.СвойстваКонтекстноеМенюПометитьНаУдаление.Доступность = ДоступностьДляСтроки;
Элементы.СвойстваКонтекстноеМенюКопироватьРеквизит.Доступность = ДоступностьДляСтроки;
Элементы.СвойстваКонтекстноеМенюВставитьРеквизит.Доступность = ДоступностьВставки;
Элементы.СвойстваКонтекстноеМенюВставитьРеквизит.Доступность = ДоступностьВставки И Не ПоказатьНеиспользуемыеРеквизиты;
КонецПроцедуры
@@ -751,6 +800,7 @@
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СвойстваНаборов.НомерСтроки,
@@ -764,13 +814,7 @@
| Свойства.ВладелецДополнительныхЗначений,
| Свойства.ЗаполнятьОбязательно,
| Свойства.ТипЗначения КАК ТипЗначения,
| ВЫБОР
| КОГДА Свойства.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| КОГДА Свойства.НаборСвойств = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Общее,
| ИСТИНА КАК Общее,
| ВЫБОР
| КОГДА СвойстваНаборов.ПометкаУдаления = ИСТИНА
| ТОГДА 4
@@ -797,6 +841,61 @@
| Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы
|ГДЕ
| Наборы.Ссылка = &Набор";
Иначе
Запрос.Текст =
"ВЫБРАТЬ
| Свойства.Ссылка КАК Свойство,
| Свойства.ПометкаУдаления КАК ПометкаУдаления,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА Свойства.Заголовок
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Заголовок, Свойства.Заголовок) КАК СТРОКА(150))
| КОНЕЦ КАК Заголовок,
| Свойства.ВладелецДополнительныхЗначений,
| Свойства.ТипЗначения КАК ТипЗначения,
| ИСТИНА КАК Общее,
| ВЫБОР
| КОГДА Свойства.ПометкаУдаления = ИСТИНА
| ТОГДА 4
| ИНАЧЕ 3
| КОНЕЦ КАК НомерКартинки,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА Свойства.Подсказка
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.Подсказка, Свойства.Подсказка) КАК СТРОКА(150))
| КОНЕЦ КАК Подсказка,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА Свойства.ЗаголовокФормыЗначения
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыЗначения, Свойства.ЗаголовокФормыЗначения) КАК СТРОКА(150))
| КОНЕЦ КАК ЗаголовокФормыЗначения,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА Свойства.ЗаголовокФормыВыбораЗначения
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(СвойстваПредставления.ЗаголовокФормыВыбораЗначения, Свойства.ЗаголовокФормыВыбораЗначения) КАК СТРОКА(150))
| КОНЕЦ КАК ЗаголовокФормыВыбораЗначения
|ИЗ
| ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления
| ПО Свойства.Ссылка = СвойстваПредставления.Ссылка
| И СвойстваПредставления.КодЯзыка = &КодЯзыка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.[ИмяТаблицы] КАК СоставНабора
| ПО Свойства.Ссылка = СоставНабора.Свойство
|
|ГДЕ
| Свойства.ЭтоДополнительноеСведение = &ЭтоДополнительноеСведение
| И СоставНабора.Свойство ЕСТЬ NULL
|
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ""ВерсияДанных"" КАК ВерсияДанных";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ИмяТаблицы]",
?(ЭтоНаборыДополнительныхСведений, "ДополнительныеСведения", "ДополнительныеРеквизиты"));
Запрос.УстановитьПараметр("ЭтоДополнительноеСведение", (ЭтоНаборыДополнительныхСведений = 1));
КонецЕсли;
Если ЭтоНаборыДополнительныхСведений Тогда
Запрос.Текст = СтрЗаменить(
@@ -990,6 +1089,24 @@
ЭлементБлокировки.УстановитьЗначение("Ссылка", ТекущийНабор);
КонецЕсли;
Если ПоказатьНеиспользуемыеРеквизиты Тогда
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
Строка = Свойства.НайтиПоИдентификатору(Элементы.Свойства.ТекущаяСтрока);
ИзменитьПометкуУдаленияИВладельцаЗначений(Строка.Свойство, Неопределено);
ПриИзмененииТекущегоНабораНаСервере();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Возврат;
КонецЕсли;
Попытка
ЗаблокироватьДанныеДляРедактирования(ТекущийНабор);
НачатьТранзакцию();
@@ -1071,7 +1188,6 @@
ТекущийНаборОбъект.Записать();
ИзменитьПометкуУдаленияИВладельцаЗначений(
ТекущийНаборОбъект.Ссылка,
ТабличнаяЧасть[Индекс].Свойство,
ТабличнаяЧасть[Индекс].ПометкаУдаления);
КонецЕсли;
@@ -1094,7 +1210,7 @@
КонецПроцедуры
&НаСервере
Процедура ИзменитьПометкуУдаленияИВладельцаЗначений(ТекущийНабор, ТекущееСвойство, ПометкаУдаленияСвойства)
Процедура ИзменитьПометкуУдаленияИВладельцаЗначений(ТекущееСвойство, ПометкаУдаленияСвойства)
СтарыйВладелецЗначений = ТекущееСвойство;
@@ -1103,7 +1219,9 @@
СвойствоОбъект = ТекущееСвойство.ПолучитьОбъект();
Если ЗначениеЗаполнено(СвойствоОбъект.НаборСвойств) Тогда
Если ПометкаУдаленияСвойства = Неопределено Тогда
ПометкаУдаленияСвойства = Не СвойствоОбъект.ПометкаУдаления;
КонецЕсли;
Если ПометкаУдаленияСвойства Тогда
// При пометке уникального свойства:
@@ -1188,7 +1306,6 @@
НоваяПометкаЗначений = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если НоваяПометкаЗначений = Неопределено
И НовыйВладелецЗначений = Неопределено Тогда
@@ -138,39 +138,6 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДополнительныеРеквизитыПометкаУдаления</name>
<id>81</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ДополнительныеРеквизиты.ПометкаУдаления</segments>
</dataPath>
<extendedTooltip>
<name>ДополнительныеРеквизитыПометкаУдаленияExtendedTooltip</name>
<id>100</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДополнительныеРеквизитыПометкаУдаленияКонтекстноеМеню</name>
<id>82</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ДополнительныеРеквизитыКоманднаяПанель</name>
@@ -346,39 +313,6 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДополнительныеСведенияПометкаУдаления</name>
<id>92</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ДополнительныеСведения.ПометкаУдаления</segments>
</dataPath>
<extendedTooltip>
<name>ДополнительныеСведенияПометкаУдаленияExtendedTooltip</name>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДополнительныеСведенияПометкаУдаленияКонтекстноеМеню</name>
<id>93</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ДополнительныеСведенияКоманднаяПанель</name>
@@ -3,83 +3,125 @@
<p>Можно настроить наборы дополнительных свойств для определенных объектов программы. </p>
<p>Способ хранения дополнительного свойства в программе и место размещения в окне объекта программы зависит от типа свойства: </p>
<ul><li><strong>Дополнительные реквизиты</strong> - хранятся в самом элементе справочника или документе (могут размещаться в специальном разделе или на специальной вкладке). Создаются для реализации таких свойств, которые являются неотъемлемой частью объекта, вводятся при его редактировании и доступны для редактирования тем же пользователям, которым доступен и сам объект со свойствами.
</li><li><strong>Дополнительные сведения</strong> - предназначены для хранения сведений об элементе справочника или документе, которые не являются его неотъемлемой частью. Доступны, как правило, для просмотра и/или редактирования пользователям, которые не имеют доступа к самому объекту. Редактируются в отдельном окне, которое можно открыть из окна объекта.</li></ul><p>Для разных объектов программы может быть предусмотрено использование дополнительных реквизитов и сведений в разных сочетаниях: или дополнительных реквизитов и сведений, или дополнительных реквизитов, или дополнительных сведений.</p>
</li>
<li><strong>Дополнительные сведения</strong> - предназначены для хранения сведений об элементе справочника или документе, которые не являются его неотъемлемой частью. Доступны, как правило, для просмотра и/или редактирования пользователям, которые не имеют доступа к самому объекту. Редактируются в отдельном окне, которое можно открыть из окна объекта.</li></ul><p>Для разных объектов программы может быть предусмотрено использование дополнительных реквизитов и сведений в разных сочетаниях: или дополнительных реквизитов и сведений, или дополнительных реквизитов, или дополнительных сведений.</p>
<p>Для того чтобы использовать дополнительные свойства, необходимо включить флажок <strong>Дополнительные реквизиты и сведения</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды.</p>
<p>Работа с дополнительными реквизитами (сведениями) осуществляется в списках, которые открываются по команде <strong>Дополнительные реквизиты</strong> или <strong>Дополнительные сведения</strong> в разделе <strong>Администрирование - Общие настройки</strong>. </p>
<p>Список наборов дополнительных реквизитов можно также открыть из объектов программы, для которых они настроены, по команде <strong>Еще</strong> <strong>- Изменить состав дополнительных реквизитов</strong>. </p>
<p>Список наборов дополнительных сведений можно также открыть по команде <strong>Еще</strong> - <strong>Изменить состав дополнительных </strong><strong>сведений</strong> из окна <a href="CommonForm.РедактированиеДополнительныхСведений/Help">Дополнительные сведения</a> объекта программы.</p>
<p>Список <strong>Дополнительные реквизиты</strong> (<strong>сведения</strong>) представляет собой таблицу из двух частей: </p>
<ul><li>В левой части располагаются наборы дополнительных реквизитов и сведений, назначенных справочникам или документам, которые показаны в виде групп. Группы в наборах дополнительных реквизитов и сведений соответствуют некоему состоянию объекта (его виду), например, для номенклатуры наборы по имени соответствуют видам номенклатуры.
</li><li>В правой части в виде таблицы располагается список дополнительных реквизитов (сведений), входящих в выделенный набор. Жирным шрифтом в списке дополнительных реквизитов отражаются реквизиты, обязательные для заполнения. Для дополнительных сведений такая возможность не предусмотрена.
</li><li>В таблице выводится:
</li>
<li>В правой части в виде таблицы располагается список дополнительных реквизитов (сведений), входящих в выделенный набор. Жирным шрифтом в списке дополнительных реквизитов отражаются реквизиты, обязательные для заполнения. Для дополнительных сведений такая возможность не предусмотрена.
</li>
<li>В таблице выводится:
<ul><li><strong>Дополнительный реквизит</strong> (<strong>сведение</strong>) - включает перечень наименований дополнительных реквизитов (сведений);
</li><li><strong>Тип значения</strong> - указывается тип дополнительных реквизитов (сведений) и количество значений.</li></ul></li></ul><p>Предопределенные наборы дополнительных реквизитов и сведений соответствуют объектам программы (спискам или документам), в которых можно использовать дополнительные реквизиты и сведения. Добавление новых наборов в этом списке невозможно. Наборы автоматически создаются при создании групп в списках. </p>
</li>
<li><strong>Тип значения</strong> - указывается тип дополнительных реквизитов (сведений) и количество значений.</li></ul></li></ul><p>Предопределенные наборы дополнительных реквизитов и сведений соответствуют объектам программы (спискам или документам), в которых можно использовать дополнительные реквизиты и сведения. Добавление новых наборов в этом списке невозможно. Наборы автоматически создаются при создании групп в списках. </p>
<p>Программа позволяет создать набор дополнительных реквизитов и сведений, как для всех элементов справочника, так и для части. В этом случае справочник является группой, а элементами группы являются реквизиты справочника или значения реквизитов справочника (в этом случае количество элементов группы будет равно количеству значений реквизита).</p>
<h3>Назначение нового дополнительного реквизита (сведения) справочнику или документу</h3>
<ul><li>В зависимости от настройки может быть доступна одна из команд ввода новых реквизитов (сведений):
<ul><li>Выберите соответствующий этому справочнику или документу набор, нажмите <strong>Создать</strong>. По умолчанию дополнительный реквизит (сведение) может быть добавлен только в один набор. Заполните необходимые <a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Form.ФормаЭлемента/Help">поля</a>.
</li><li>Выберите соответствующий этому справочнику или документу набор, нажмите <strong>Добавить - Новый </strong>(<strong>Новое</strong>) - аналогична команде <strong>Создать</strong>. С помощью этой команды дополнительный реквизит (сведение) может быть добавлен только в один набор. Заполните необходимые поля.</li></ul></li></ul><h3>Общие наборы дополнительных реквизитов и сведений</h3>
</li>
<li>Выберите соответствующий этому справочнику или документу набор, нажмите <strong>Добавить - Новый </strong>(<strong>Новое</strong>) - аналогична команде <strong>Создать</strong>. С помощью этой команды дополнительный реквизит (сведение) может быть добавлен только в один набор. Заполните необходимые поля.</li></ul></li></ul><h3>Общие наборы дополнительных реквизитов и сведений</h3>
<ul><li>Для некоторых справочников предусмотрены предопределенные наборы <strong>Общие</strong>. Введенные в такой набор дополнительные реквизиты и сведения по умолчанию становятся общими для всех элементов этих справочников.
</li><li>
</li>
<li>
<div>Выберите набор <strong>Общий</strong>. </div>
</li><li>
</li>
<li>
<div>Нажмите <strong>Создать</strong> или <strong>Добавить - Новый</strong> (<strong>Новое</strong>). Заполните необходимые поля.</div></li></ul><h3>Добавление из другого набора</h3>
<ul><li>В программе предусмотрена возможность использовать ранее введенные дополнительные реквизиты и сведения для других наборов.
</li><li>Наиболее актуален этот способ для дополнительных реквизитов и сведений типа <strong>Дополнительное значение</strong> и <strong>Дополнительное значение (иерархия)</strong>. Если проведены соответствующие настройки (включен хотя бы один из флажков в разделе <strong>Администрирование - Общие настройки</strong>), становится доступной кнопка <strong>Добавить</strong>.
</li><li>Выберите набор дополнительных реквизитов (сведений), нажмите кнопку <strong>Добавить</strong>, в выпадающем меню выполните команду <strong>Из другого набора</strong>.
</li><li>Открывается помощник по добавлению дополнительного реквизита (сведения).
<ul><li>В левой части первой страницы помощника отображается список ранее введенных реквизитов (сведений). В правой части отражаются значения и другие параметры выбранного реквизита.</li></ul></li><li>На первой странице помощника выберите дополнительный реквизит (сведение). Обратите внимание, что создать дополнительный реквизит или сведение в данном списке невозможно.
</li>
<li>Наиболее актуален этот способ для дополнительных реквизитов и сведений типа <strong>Дополнительное значение</strong> и <strong>Дополнительное значение (иерархия)</strong>. Если проведены соответствующие настройки (включен хотя бы один из флажков в разделе <strong>Администрирование - Общие настройки</strong>), становится доступной кнопка <strong>Добавить</strong>.
</li>
<li>Выберите набор дополнительных реквизитов (сведений), нажмите кнопку <strong>Добавить</strong>, в выпадающем меню выполните команду <strong>Из другого набора</strong>.
</li>
<li>Открывается помощник по добавлению дополнительного реквизита (сведения).
<ul><li>В левой части первой страницы помощника отображается список ранее введенных реквизитов (сведений). В правой части отражаются значения и другие параметры выбранного реквизита.</li></ul></li>
<li>На первой странице помощника выберите дополнительный реквизит (сведение). Обратите внимание, что создать дополнительный реквизит или сведение в данном списке невозможно.
<ul><li>Для выбора варианта добавления дополнительного реквизита (сведения) нажмите кнопку <strong>Далее</strong>.
</li><li>Также можно добавить реквизит из одного набора в другой с помощью перетаскивания мышью. Если были произведены соответствующие настройки, открывается вторая страница помощника <strong>Добавление дополнительного реквизита (сведения)</strong>.</li></ul></li><li>На второй странице помощника с помощью переключателя выберите вариант добавления дополнительного реквизита (сведения):
</li>
<li>Также можно добавить реквизит из одного набора в другой с помощью перетаскивания мышью. Если были произведены соответствующие настройки, открывается вторая страница помощника <strong>Добавление дополнительного реквизита (сведения)</strong>.</li></ul></li>
<li>На второй странице помощника с помощью переключателя выберите вариант добавления дополнительного реквизита (сведения):
<ul><li><a href="#1">Сделать копию реквизита</a> - в новом наборе будет создан такой же дополнительный реквизит (сведение).
</li><li><a href="#2">Сделать копию реквизита по образцу</a> - создается дополнительный реквизит (сведение) с общим списком значений. Должен быть включен флажок <strong>Реквизиты и сведения с общим списком значений</strong> в разделе <strong>Администрирование - Общие настройки</strong>.
</li><li><a href="#3">Добавить общий реквизит в набор</a> - сделать дополнительный реквизит (сведение) общим. В этом случае общим становится не список значений, а сам реквизит. Должен быть включен флажок <strong>Общие реквизиты и сведения</strong> в разделе <strong>Администрирование - Общие настройки</strong>.</li></ul></li></ul><h3><a name="1">Копирование дополнительных реквизитов (сведений)</a></h3>
</li>
<li><a href="#2">Сделать копию реквизита по образцу</a> - создается дополнительный реквизит (сведение) с общим списком значений. Должен быть включен флажок <strong>Реквизиты и сведения с общим списком значений</strong> в разделе <strong>Администрирование - Общие настройки</strong>.
</li>
<li><a href="#3">Добавить общий реквизит в набор</a> - сделать дополнительный реквизит (сведение) общим. В этом случае общим становится не список значений, а сам реквизит. Должен быть включен флажок <strong>Общие реквизиты и сведения</strong> в разделе <strong>Администрирование - Общие настройки</strong>.</li></ul></li></ul><h3><a name="1">Копирование дополнительных реквизитов (сведений)</a></h3>
<ul><li>В программе предусмотрена возможность копирования дополнительных реквизитов (сведений).
</li><li>В этом случае для набора дополнительных реквизитов (сведений) будет создана копия - самостоятельный дополнительный реквизит (сведение) со своим списком значений, никак не связанный с оригиналом, по которому был создан.
</li><li>В зависимости от настроек производится несколькими способами:
</li>
<li>В этом случае для набора дополнительных реквизитов (сведений) будет создана копия - самостоятельный дополнительный реквизит (сведение) со своим списком значений, никак не связанный с оригиналом, по которому был создан.
</li>
<li>В зависимости от настроек производится несколькими способами:
<ul><li>В помощнике добавления дополнительных реквизитов и сведений;
<ul><li>Выделите набор дополнительных реквизитов в списке, нажмите <strong>Добавить - Из другого набора</strong>.
</li><li>На первой странице помощника в списке выбора реквизитов для копирования выберите нужный реквизит, нажмите <strong>Далее</strong>.
</li><li>На второй странице помощника с помощью переключателя выберите <strong>Сделать копию реквизита</strong>, нажмите <strong>Далее</strong>.
</li><li>Заполните недостающие поля. После копирования реквизита список значений доступен для редактирования.</li></ul></li><li>перетаскиванием мышью;
</li>
<li>На первой странице помощника в списке выбора реквизитов для копирования выберите нужный реквизит, нажмите <strong>Далее</strong>.
</li>
<li>На второй странице помощника с помощью переключателя выберите <strong>Сделать копию реквизита</strong>, нажмите <strong>Далее</strong>.
</li>
<li>Заполните недостающие поля. После копирования реквизита список значений доступен для редактирования.</li></ul></li>
<li>перетаскиванием мышью;
<ul><li>Можно перетащить нужный дополнительный реквизит (сведение) из одного набора в другой с помощью мыши.
</li><li>Если в списке имеется кнопка <strong>Добавить</strong>, то открывается вторая страница помощника добавления дополнительного реквизита (сведения).
</li><li>Если в списке только кнопка <strong>Создать</strong>, то открывается карточка дополнительного реквизита (сведения), который будет скопирован. Заполните недостающие поля.</li></ul></li><li>с помощью кнопок <strong>Копировать</strong> и <strong>Вставить</strong>.
</li>
<li>Если в списке имеется кнопка <strong>Добавить</strong>, то открывается вторая страница помощника добавления дополнительного реквизита (сведения).
</li>
<li>Если в списке только кнопка <strong>Создать</strong>, то открывается карточка дополнительного реквизита (сведения), который будет скопирован. Заполните недостающие поля.</li></ul></li>
<li>с помощью кнопок <strong>Копировать</strong> и <strong>Вставить</strong>.
<ul><li>Выделите дополнительный реквизит (сведение), нажмите кнопку <strong>Копировать</strong>. Выделите набор, в который нужно добавить дополнительный реквизит (сведение). Нажмите кнопку <strong>Вставить</strong>. Если были произведены соответствующие настройки, то открывается вторая страница помощника добавления дополнительных реквизитов (сведений). Если выбранный дополнительный реквизит (сведение) уже входит в какой-либо набор, то предлагается сделать его общим.
</li><li>Команды <strong>Копировать</strong> и <strong>Вставить</strong> также доступны в контекстном меню по правой кнопке мыши или в меню <strong>Еще</strong>.</li></ul></li></ul></li></ul><h3><a name="2">Добавление по образцу</a></h3>
</li>
<li>Команды <strong>Копировать</strong> и <strong>Вставить</strong> также доступны в контекстном меню по правой кнопке мыши или в меню <strong>Еще</strong>.</li></ul></li></ul></li></ul><h3><a name="2">Добавление по образцу</a></h3>
<ul><li>Для того чтобы использовать эту возможность, необходимо включить флажок <strong>Реквизиты и сведения с общим списком значений</strong> в разделе <strong>Администрирование - Общие настройки</strong>.
</li><li>Можно использовать ранее введенные дополнительные реквизиты и сведения из других наборов, добавлять реквизиты с общим списком значений сразу для нескольких однотипных реквизитов (например, <strong>Цвет двери</strong> по образцу реквизита <strong>Цвет</strong>). Список значений в этом случае используется из реквизита-образца. Удобно выполнять централизованную настройку списка значений сразу для нескольких однотипных реквизитов.
</li><li>
</li>
<li>Можно использовать ранее введенные дополнительные реквизиты и сведения из других наборов, добавлять реквизиты с общим списком значений сразу для нескольких однотипных реквизитов (например, <strong>Цвет двери</strong> по образцу реквизита <strong>Цвет</strong>). Список значений в этом случае используется из реквизита-образца. Удобно выполнять централизованную настройку списка значений сразу для нескольких однотипных реквизитов.
</li>
<li>
<div>Выберите набор из списка.</div>
</li><li>
</li>
<li>
<div>Нажмите <strong>Добавить - Из другого набора</strong>.</div>
</li><li>
<div>Будет открыт список всех дополнительных реквизитов (сведений), уже существующих в программе. Выберите дополнительный реквизит (сведение) из <a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Form.ФормаВыбора/Help">списка</a> уже существующих в программе, нажмите <strong>Далее</strong>.</div>
</li><li>
</li>
<li>
<div>Будет открыт список всех дополнительных реквизитов (сведений), уже существующих в программе. Выберите дополнительный реквизит (сведение) из списка уже существующих в программе, нажмите <strong>Далее</strong>.</div>
</li>
<li>
<div>
<div>С помощью переключателя выберите способ создания элемента <strong>Сделать копию реквизита по образцу</strong>, нажмите <strong>Далее</strong>.</div></div>
</li><li>
</li>
<li>
<div>Тип и все значения выбранного в качестве образца дополнительного реквизита (сведения) будут скопированы в новый элемент. </div>
</li><li>
</li>
<li>
<div>Заполните все необходимые поля. По умолчанию реквизит становится общим с набором, из которого был использован образец. Ввод новых значений в этом случае невозможен. Программа выводит напоминание, что список значений является общим с другим реквизитом.</div>
</li><li>
</li>
<li>
<div>После сохранения дополнительного реквизита (сведения) с помощью ссылки можно просмотреть реквизит-образец и добавить значения, если необходимо.</div></li></ul><h3><a name="3">Добавление общих дополнительных реквизитов (сведений)</a></h3>
<ul><li>Общий реквизит входит в несколько наборов. Этот вариант подходит для тех случаев, когда общим должен быть не только список значений, но и сам реквизит. В списках и отчетах по элементам различных справочников и документов общие реквизиты группируются и выводятся как один реквизит в одной колонке или поле. Например, с помощью общего реквизита <strong>Цвет</strong> можно отобрать всю желтую одежду и обувь.
</li><li>Для того чтобы использовать эту возможность, необходимо включить флажок <strong>Общие реквизиты и сведения</strong> в разделе <strong>Администрирование - Общие настройки</strong>.
</li><li>
</li>
<li>Для того чтобы использовать эту возможность, необходимо включить флажок <strong>Общие реквизиты и сведения</strong> в разделе <strong>Администрирование - Общие настройки</strong>.
</li>
<li>
<div>Для того чтобы добавить в набор общий дополнительный реквизит (сведение), выделите нужный набор, нажмите <strong>Добавить - Из другого набора</strong>.</div>
</li><li>
<div>Выберите из предлагаемого <a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.Form.ФормаВыбора/Help">списка</a> уже существующий общий дополнительный реквизит (сведение).Нажмите кнопку <strong>Далее</strong>. </div>
</li><li>Открывается вторая страница помощника. Выберите с помощью переключателя вариант добавления <strong>Сделать реквизит общим и добавить в набор</strong>, нажмите <strong>Далее</strong>. Открывается общий дополнительный реквизит.
</li><li>
</li>
<li>
<div>Выберите из предлагаемого <a>списка</a> уже существующий общий дополнительный реквизит (сведение).Нажмите кнопку <strong>Далее</strong>. </div>
</li>
<li>Открывается вторая страница помощника. Выберите с помощью переключателя вариант добавления <strong>Сделать реквизит общим и добавить в набор</strong>, нажмите <strong>Далее</strong>. Открывается общий дополнительный реквизит.
</li>
<li>
<div>Также можно добавить общий дополнительный реквизит (сведение) с помощью перетаскивания мышью или кнопок <strong>Копировать</strong> и <strong>Вставить</strong>.</div>
</li><li>
</li>
<li>
<div>Для того чтобы добавить общий реквизит в несколько наборов, повторите эти действия для каждого набора.</div></li></ul><h3>Особенности удаления дополнительных реквизитов (сведений)</h3>
<ul dir="ltr"><li>
<div>Для того чтобы удалить общий дополнительный реквизит (сведение), необходимо удалить его из всех наборов, в который входил данный реквизит. Возможно, для окончательного удаления придется очистить дополнительные реквизиты от значений.</div>
</li><li>
</li>
<li>
<div>При пометке на удаление свойства в наборе значения свойства сохраняется в объектах до тех пор, пока не будут очищены. Свойство, помеченное на удаление в наборе, будет отображаться в окне объекта или окне дополнительных сведений особым образом.</div>
</li><li>
</li>
<li>
<div>При необходимости можно снять пометку удаления.</div></li></ul><h3>См. также:</h3>
<ul><li><a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения/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></body></html>
@@ -52,7 +52,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(Данные.Родитель) Тогда
ЛокализацияКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
Возврат;
КонецЕсли;
@@ -80,7 +80,7 @@
// параметрах дополнительных реквизитов и сведений.
//
// Параметры:
// ЕстьИзменения - Булево (возвращаемое значение) - если производилась запись,
// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись,
// устанавливается Истина, иначе не изменяется.
//
Процедура ОбновитьСоставНаименованийПредопределенныхНаборов(ЕстьИзменения = Неопределено) Экспорт
@@ -187,27 +187,6 @@
НоваяСтрокаСведения.ИмяПредопределенногоНабора = НовыйНаборОбъект.ИмяПредопределенногоНабора;
КонецЦикла;
// Обновление реквизитов и сведений.
Если Не ОбновляемыйНабор.ЭтоГруппа Тогда
Для Каждого СтрокаТаблицы Из ОбновляемыйНабор.ДополнительныеРеквизиты Цикл
РеквизитОбъект = СтрокаТаблицы.Свойство.ПолучитьОбъект();
Если Не ЗначениеЗаполнено(РеквизитОбъект.НаборСвойств) Тогда
Продолжить;
КонецЕсли;
РеквизитОбъект.НаборСвойств = НовыйНабор;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(РеквизитОбъект);
КонецЦикла;
Для Каждого СтрокаТаблицы Из ОбновляемыйНабор.ДополнительныеСведения Цикл
СвойствоОбъект = СтрокаТаблицы.Свойство.ПолучитьОбъект();
Если Не ЗначениеЗаполнено(СвойствоОбъект.НаборСвойств) Тогда
Продолжить;
КонецЕсли;
СвойствоОбъект.НаборСвойств = НовыйНабор;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СвойствоОбъект);
КонецЦикла;
КонецЕсли;
Если Не ОбновляемыйНабор.ЭтоГруппа Тогда
КоличествоРеквизитов = Формат(НовыйНаборОбъект.ДополнительныеРеквизиты.НайтиСтроки(
Новый Структура("ПометкаУдаления", Ложь)).Количество(), "ЧГ=");
@@ -233,7 +233,7 @@
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Каталог = РабочийКаталог;
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = НСтр("ru = 'Все файлы(*.*)|*.*'");
Фильтр = НСтр("ru = 'Все файлы (*.*)|*.*'");
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите каталог'");
@@ -426,11 +426,9 @@
ВидимостьПояснения = Истина;
ЧастиСтроки = Новый Массив;
ЧастиСтроки.Добавить(НСтр("ru = 'Работа с файлами ведется в облачном сервисе'"));
ЧастиСтроки.Добавить(" ");
ЧастиСтроки.Добавить(Новый ФорматированнаяСтрока(ВыборкаДетальныеЗаписи.УчетнаяЗаписьНаименование, , , , АдресПапкиВОблачномСервисе));
Элементы.ДекорацияПояснение.Заголовок = Новый ФорматированнаяСтрока(ЧастиСтроки);
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru = 'Работа с файлами ведется в облачном сервисе <a href=""%1"">%2</a>'"),
Строка(АдресПапкиВОблачномСервисе), Строка(ВыборкаДетальныеЗаписи.УчетнаяЗаписьНаименование));
КонецЦикла;
@@ -72,4 +72,32 @@
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
// Начальное заполнение
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// Вызывается при начальном заполнении справочника ПапкиФайлов.
//
// Параметры:
// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
// справочника ПапкиФайлов.
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "Шаблоны";
Элемент.Наименование = НСтр("ru = 'Шаблоны файлов'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -151,6 +151,7 @@
<lang>ru</lang>
</pages>
</help>
<dataLockFields>Catalog.ПапкиФайлов.StandardAttribute.Parent</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
@@ -9,10 +9,6 @@
<items xsi:type="form:Table">
<name>ТаблицаДоменов</name>
<id>5</id>
<title>
<key>ru</key>
<value>Домены</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -370,10 +366,6 @@
<items xsi:type="form:Table">
<name>ТаблицаПользователейДомена</name>
<id>8</id>
<title>
<key>ru</key>
<value>Пользователи</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -756,10 +748,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Домены и пользователи</value>
</title>
<extendedTooltip>
<name>ДоменыИПользователиExtendedTooltip</name>
<id>29</id>
@@ -0,0 +1,12 @@
<!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.10570.1001"></meta></head><body>
<p>Предназначена для установки ограничение на вход в программу только для этого <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a>.</p>
<p>С помощью переключателя можно установить ограничение:</p>
<ul><li><strong>Согласно общим настройкам входа</strong> - как <a href="CommonForm.НастройкиВходаПользователей/Help">указано</a> для всех пользователей в настройке <b>Запрещать вход в программу пользователям, которые не работали в программе более: [k] дней</b>;
</li>
<li><strong>Без ограничения срока</strong> - бессрочный доступ, только для этого пользователя;
</li>
<li><strong>Вход разрешен до</strong> (установите срок - введите дату вручную или выберите из календаря с помощью кнопки <img src="StdPicture.InputFieldCalendar"></img>, удобно, если работник временно пользуется данной программой. Для защиты от несанкционированного доступа к программе у любого пользователя может быть настроен срок действия, который позволяет автоматически отключить пользователя после достижения указанной даты;
</li>
<li>
<div><strong>Запретить вход, если не работает более</strong> (укажите количество дней) - если пользователь не войдет в программу больше указанного количества дней, то вход в программу будет невозможен. </div>
<ul><li>В этом случае пользователь должен будет обратиться к администратору для возобновления работы в программе, также удобно для временных работников.</li></ul></li></ul>Ограничение отражается в карточке пользователя, после настройки ссылка принимает значение <b>Изменить ограничение</b>.</body></html>
@@ -502,13 +502,28 @@
&НаСервере
Процедура ОтменитьСопоставлениеНаСервере()
ТекущаяСтрока = ПользователиИБ.НайтиПоИдентификатору(
Элементы.ПользователиИБ.ТекущаяСтрока);
ТекущаяСтрока = ПользователиИБ.НайтиПоИдентификатору(Элементы.ПользователиИБ.ТекущаяСтрока);
Если ТипЗнч(ТекущаяСтрока.Ссылка) = Тип("СправочникСсылка.Пользователи") Тогда
ИмяТаблицы = "Справочник.Пользователи";
Иначе
ИмяТаблицы = "Справочник.ВнешниеПользователи";
КонецЕсли;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ИмяТаблицы);
ЭлементБлокировки.УстановитьЗначение("Ссылка", ТекущаяСтрока.Ссылка);
Блокировка.Заблокировать();
Объект = ТекущаяСтрока.Ссылка.ПолучитьОбъект();
Объект.ИдентификаторПользователяИБ = Неопределено;
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ЗаполнитьПользователейИБ();
@@ -320,19 +320,8 @@
ГруппаПомеченаНаУдаление = Элементы.ГруппыПользователей.ДанныеСтроки(Строка).ПометкаУдаления;
КоличествоПользователей = ПараметрыПеретаскивания.Значение.Количество();
ДействиеИсключитьПользователя = (ХранимыеПараметры.ГруппаВсеПользователи = Строка);
ДействиеСПользователем = ?((ХранимыеПараметры.ГруппаВсеПользователи = Элементы.ГруппыПользователей.ТекущаяСтрока),
НСтр("ru = 'Включить'"),
?(Перемещение, НСтр("ru = 'Переместить'"), НСтр("ru = 'Скопировать'")));
Если ГруппаПомеченаНаУдаление Тогда
ШаблонДействия = ?(Перемещение,
НСтр("ru = 'Группа ""%1"" помечена на удаление. %2'"),
НСтр("ru = 'Группа ""%1"" помечена на удаление. %2'"));
ДействиеСПользователем = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДействия, Строка(Строка), ДействиеСПользователем);
КонецЕсли;
ВключитьВГруппу = (ХранимыеПараметры.ГруппаВсеПользователи = Элементы.ГруппыПользователей.ТекущаяСтрока);
Если КоличествоПользователей = 1 Тогда
Если ДействиеИсключитьПользователя Тогда
@@ -342,16 +331,32 @@
Строка(Элементы.ГруппыПользователей.ТекущаяСтрока));
ИначеЕсли Не ГруппаПомеченаНаУдаление Тогда
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Включить пользователя ""%1"" в группу ""%2""?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Переместить пользователя ""%1"" в группу ""%2""?'");
Иначе
Шаблон = НСтр("ru = 'Скопировать пользователя ""%1"" в группу ""%2""?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователя ""%2"" в группу ""%3""?'"),
ДействиеСПользователем,
Шаблон,
Строка(ПараметрыПеретаскивания.Значение[0]),
Строка(Строка));
Иначе
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Включить пользователя ""%2"" в эту группу?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Переместить пользователя ""%2"" в эту группу?'");
Иначе
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Скопировать пользователя ""%2"" в эту группу?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователя ""%2"" в эту группу?'"),
ДействиеСПользователем,
Шаблон,
Строка(Строка),
Строка(ПараметрыПеретаскивания.Значение[0]));
КонецЕсли;
Иначе
Если ДействиеИсключитьПользователя Тогда
@@ -361,15 +366,30 @@
Строка(Элементы.ГруппыПользователей.ТекущаяСтрока));
ИначеЕсли Не ГруппаПомеченаНаУдаление Тогда
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Включить пользователей (%1) в группу ""%2""?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Переместить пользователей (%1) в группу ""%2""?'");
Иначе
Шаблон = НСтр("ru = 'Скопировать пользователей (%1) в группу ""%2""?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователей (%2) в группу ""%3""?'"),
ДействиеСПользователем,
Шаблон,
КоличествоПользователей,
Строка(Строка));
Иначе
Если ВключитьВГруппу Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Включить пользователей (%2) в эту группу?'");
ИначеЕсли Перемещение Тогда
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Переместить пользователей (%2) в эту группу?'");
Иначе
Шаблон = НСтр("ru = 'Группа ""%1"" помечена на удаление. Скопировать пользователей (%2) в эту группу?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 пользователей (%2) в эту группу?'"),
ДействиеСПользователем,
Шаблон,
Строка(Строка),
КоличествоПользователей);
КонецЕсли;
КонецЕсли;
@@ -752,6 +772,11 @@
КонецЕсли;
Пользователи.ЗаполнитьНомераКартинокПользователей(ВыбранныеПользователиИГруппы, "Пользователь", "НомерКартинки");
ХранимыеПараметры.Вставить("ЗаголовокФормыПодбора", ПараметрыРасширеннойФормыПодбора.ЗаголовокФормыПодбора);
Если ПараметрыРасширеннойФормыПодбора.Свойство("ЗаголовокКнопкиЗавершенияПодбора") Тогда
ХранимыеПараметры.Вставить("ЗаголовокКнопкиЗавершенияПодбора", ПараметрыРасширеннойФормыПодбора.ЗаголовокКнопкиЗавершенияПодбора);
КонецЕсли;
// Установка параметров расширенной формы подбора.
Элементы.ЗавершитьИЗакрыть.Видимость = Истина;
Элементы.ГруппаВыбратьПользователя.Видимость = Истина;
@@ -931,11 +956,17 @@
Если ХранимыеПараметры.РасширенныйПодбор Тогда
Заголовок = ХранимыеПараметры.ЗаголовокФормыПодбора;
Если ХранимыеПараметры.Свойство("ЗаголовокКнопкиЗавершенияПодбора") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ЗавершитьИЗакрыть", "Заголовок", ХранимыеПараметры.ЗаголовокКнопкиЗавершенияПодбора);
КонецЕсли;
Иначе
Заголовок = НСтр("ru = 'Подбор пользователей'");
КонецЕсли;
КонецЕсли;
Иначе
// Режим выбора.
Если ВыборГруппПользователей Тогда
@@ -3302,6 +3302,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПользовательИБАутентификацияСтандартнаяЗначениеПрямогоИзменения</name>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПоказатьТолькоВыбранныеРоли</name>
<title>
Loaded 100 of 1113 files, more files were not shown because too many files have changed in this diff. Show more