3_1_8_302
This commit is contained in:
1 parent
bf143472d7
commit
3efc44c50b
270 files changed
+17367
-6155
No files matched your search
@@ -62,7 +62,8 @@
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
|
||||
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
|
||||
ПредставлениеФормулы = МодульКонструкторФормул.ПредставлениеФормулы(ПараметрыФормулы());
|
||||
ПредставлениеФормулы = МодульКонструкторФормул.ПредставлениеФормулы(ПараметрыФормулы(
|
||||
Объект.ФормулаРасчетаКурса, УникальныйИдентификатор));
|
||||
Иначе
|
||||
Элементы.ФормулаРасчетаКурса.КнопкаВыбора = Ложь;
|
||||
КонецЕсли;
|
||||
@@ -307,19 +308,19 @@
|
||||
МодульКонструкторФормулКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонструкторФормулКлиент");
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииРедактированияФормулы", ЭтотОбъект);
|
||||
МодульКонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(), ОписаниеОповещения);
|
||||
МодульКонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(Объект.ФормулаРасчетаКурса, УникальныйИдентификатор), ОписаниеОповещения);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПараметрыФормулы()
|
||||
&НаСервереБезКонтекста
|
||||
Функция ПараметрыФормулы(ФормулаРасчетаКурса, УникальныйИдентификатор)
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
|
||||
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
|
||||
|
||||
ПараметрыФормулы = МодульКонструкторФормул.ПараметрыРедактированияФормулы();
|
||||
ПараметрыФормулы.Формула = Объект.ФормулаРасчетаКурса;
|
||||
ПараметрыФормулы.Формула = ФормулаРасчетаКурса;
|
||||
ПараметрыФормулы.СкобкиОперандов = Ложь;
|
||||
ПараметрыФормулы.Операнды = ОперандыФормулыРасчетаКурса(УникальныйИдентификатор);
|
||||
ПараметрыФормулы.Операторы = ОператорыФормулыРасчетаКурса(УникальныйИдентификатор);
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
Если Наименование <> "" И ВариантыОтчетов.НаименованиеЗанято(Отчет, Ссылка, Наименование) Тогда
|
||||
Отказ = Истина;
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '""%1"" занято, укажите другое наименование.'"), Наименование),
|
||||
,
|
||||
"Наименование");
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '""%1"" занято, укажите другое наименование.'"), Наименование),
|
||||
,"Наименование");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -341,21 +341,19 @@
|
||||
|
||||
Если ПометкаУдаления Или Не Предопределенный Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Не ЗначениеЗаполнено(Отчет) Тогда
|
||||
ТекстОшибки = НеЗаполненоПоле("Отчет");
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ТипОтчета) Тогда
|
||||
ТекстОшибки = НеЗаполненоПоле("ТипОтчета");
|
||||
ИначеЕсли ТипОтчета <> ВариантыОтчетов.ТипОтчета(Отчет) Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Противоречивые значения полей ""%1"" и ""%2""'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "ТипОтчета", "Отчет");
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ПредопределенныйВариант)
|
||||
И (ТипОтчета = Перечисления.ТипыОтчетов.Внутренний Или ТипОтчета = Перечисления.ТипыОтчетов.Расширение) Тогда
|
||||
ТекстОшибки = НеЗаполненоПоле("ПредопределенныйВариант");
|
||||
Иначе
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
Если Не ЗначениеЗаполнено(Отчет) Тогда
|
||||
ВызватьИсключение НеЗаполненоПоле("Отчет");
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ТипОтчета) Тогда
|
||||
ВызватьИсключение НеЗаполненоПоле("ТипОтчета");
|
||||
ИначеЕсли ТипОтчета <> ВариантыОтчетов.ТипОтчета(Отчет) Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Противоречивые значения полей ""%1"" и ""%2""'");
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "ТипОтчета", "Отчет");
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ПредопределенныйВариант)
|
||||
И (ТипОтчета = Перечисления.ТипыОтчетов.Внутренний Или ТипОтчета = Перечисления.ТипыОтчетов.Расширение) Тогда
|
||||
ВызватьИсключение НеЗаполненоПоле("ПредопределенныйВариант");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -752,7 +752,7 @@
|
||||
<titleLocation>Right</titleLocation>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>ТелефонCДобавочнымНомеромПриИзменении</name>
|
||||
<name>ТелефонСДобавочнымНомеромПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>ТелефонCДобавочнымНомеромРасширеннаяПодсказка</name>
|
||||
|
||||
@@ -319,7 +319,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТелефонCДобавочнымНомеромПриИзменении(Элемент)
|
||||
Процедура ТелефонСДобавочнымНомеромПриИзменении(Элемент)
|
||||
|
||||
ОбновитьДоступностьЭлементовТелефонаФакса(ЭтотОбъект);
|
||||
|
||||
|
||||
@@ -600,14 +600,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ВидКонтактнойИнформации.ЭтоГруппа И ПустаяСтрока(ВидКонтактнойИнформации.ВидРедактирования) Тогда
|
||||
Если ВидКонтактнойИнформации.УдалитьРедактированиеТолькоВДиалоге Тогда
|
||||
Если ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница
|
||||
Или ВидКонтактнойИнформации.УдалитьРедактированиеТолькоВДиалоге Тогда
|
||||
ВидКонтактнойИнформации.ВидРедактирования = "Диалог";
|
||||
ИначеЕсли ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты
|
||||
Или ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Skype
|
||||
Или ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Другое Тогда
|
||||
ВидКонтактнойИнформации.ВидРедактирования = "ПолеВвода";
|
||||
ИначеЕсли ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
|
||||
ВидКонтактнойИнформации.ВидРедактирования = "Диалог";
|
||||
Иначе
|
||||
ВидКонтактнойИнформации.ВидРедактирования = "ПолеВводаИДиалог";
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2227,7 +2227,7 @@
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Не включен вход в программу, нет прав или
|
||||
<value>Не включен вход в программу, нет прав для входа или
|
||||
нет ни одного права запуска (тонкий клиент, веб-клиент)</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
|
||||
@@ -594,8 +594,8 @@
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>У пользователя нет ни одного права запуска (тонкий клиент, веб-клиент,
|
||||
толстый клиент, automation, внешнее соединение)</value>
|
||||
<value>У пользователя нет ни одного права запуска
|
||||
(например, тонкий клиент, веб-клиент)</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>НетПравНаЗапускНадписьРасширеннаяПодсказка</name>
|
||||
@@ -646,6 +646,110 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаНетПравНаВход</name>
|
||||
<id>397</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>НетПравНаВходКартинка</name>
|
||||
<id>399</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет прав на вход картинка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>НетПравНаВходКартинкаРасширеннаяПодсказка</name>
|
||||
<id>401</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>НетПравНаВходКартинкаКонтекстноеМеню</name>
|
||||
<id>400</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Предупреждение</picture>
|
||||
</picture>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>НетПравНаВходНадпись</name>
|
||||
<id>402</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет прав для входа</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Пользователю не назначены минимальные права для работы в программе</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>НетПравНаВходНадписьРасширеннаяПодсказка</name>
|
||||
<id>404</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>НетПравНаВходНадписьКонтекстноеМеню</name>
|
||||
<id>403</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет прав на вход</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаНетПравНаВходРасширеннаяПодсказка</name>
|
||||
<id>398</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаИзменитьОграничение</name>
|
||||
<id>346</id>
|
||||
|
||||
@@ -1821,10 +1821,14 @@
|
||||
Если Форма.ВходВПрограммуРазрешен Тогда
|
||||
Элементы.ГруппаНетПрав.Видимость = Форма.НаличиеПрав.НетПрав;
|
||||
Элементы.ГруппаНетПравНаЗапуск.Видимость = Не Форма.НаличиеПрав.НетПрав
|
||||
И Форма.НаличиеПрав.НедостаточноПравДляЗапуска;
|
||||
Элементы.ГруппаНетПравНаВход.Видимость = Не Форма.НаличиеПрав.НетПрав
|
||||
И Не Форма.НаличиеПрав.НедостаточноПравДляЗапуска
|
||||
И Форма.НаличиеПрав.НедостаточноПравДляВхода;
|
||||
Иначе
|
||||
Элементы.ГруппаНетПрав.Видимость = Ложь;
|
||||
Элементы.ГруппаНетПравНаЗапуск.Видимость = Ложь;
|
||||
Элементы.ГруппаНетПравНаВход.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// Настройка возможности изменения.
|
||||
|
||||
@@ -1704,6 +1704,10 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnLoadDataFromSettingsAtServer</event>
|
||||
<name>ПриЗагрузкеДанныхИзНастроекНаСервере</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
|
||||
@@ -494,8 +494,9 @@
|
||||
// Проверка имен действий в форме.
|
||||
Если СтрНайти(", Просмотр, Редактирование,", ", " + ДействияВФорме.Роли + ",") = 0 Тогда
|
||||
ДействияВФорме.Роли = "";
|
||||
ИначеЕсли ПользователиСлужебный.ЗапретРедактированияРолей() Тогда
|
||||
ДействияВФорме.Роли = "";
|
||||
ИначеЕсли ДействияВФорме.Роли = "Редактирование"
|
||||
И ПользователиСлужебный.ЗапретРедактированияРолей() Тогда
|
||||
ДействияВФорме.Роли = "Просмотр";
|
||||
КонецЕсли;
|
||||
Если СтрНайти(", Просмотр, Редактирование,", ", " + ДействияВФорме.СоставГруппы + ",") = 0 Тогда
|
||||
ДействияВФорме.СвойстваПользователяИБ = "";
|
||||
|
||||
@@ -883,7 +883,7 @@
|
||||
<userVisible/>
|
||||
</cmiFragmentRecord>
|
||||
<cmiFragmentRecord>
|
||||
<command>CommonCommand.СкрытьПерсональныеДанныеСубъектов</command>
|
||||
<command>0</command>
|
||||
<userVisible/>
|
||||
</cmiFragmentRecord>
|
||||
</commandBar>
|
||||
|
||||
@@ -2159,66 +2159,42 @@
|
||||
// ПолноеИмя - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Тип
|
||||
// Строка
|
||||
// - Тип
|
||||
// - Строка
|
||||
//
|
||||
Функция КлючОбъектаМетаданных(ПолноеИмя)
|
||||
|
||||
ПозицияТочки = СтрНайти(ПолноеИмя, ".");
|
||||
|
||||
КлассОМ = Лев( ПолноеИмя, ПозицияТочки-1);
|
||||
ИмяОМ = Сред(ПолноеИмя, ПозицияТочки+1);
|
||||
КлассОбъектаМетаданных = ВРег(Лев( ПолноеИмя, ПозицияТочки - 1));
|
||||
ИмяОбъектаМетаданных = Сред(ПолноеИмя, ПозицияТочки + 1);
|
||||
|
||||
Если ВРег(КлассОМ) = ВРег("ПланОбмена") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
Если КлассОбъектаМетаданных = ВРег("ПланОбмена")
|
||||
Или КлассОбъектаМетаданных = ВРег("Справочник")
|
||||
Или КлассОбъектаМетаданных = ВРег("Документ")
|
||||
Или КлассОбъектаМетаданных = ВРег("ПланВидовХарактеристик")
|
||||
Или КлассОбъектаМетаданных = ВРег("ПланСчетов")
|
||||
Или КлассОбъектаМетаданных = ВРег("ПланВидовРасчета")
|
||||
Или КлассОбъектаМетаданных = ВРег("БизнесПроцесс")
|
||||
Или КлассОбъектаМетаданных = ВРег("Задача") Тогда
|
||||
Возврат Тип(КлассОбъектаМетаданных + "Ссылка." + ИмяОбъектаМетаданных);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Роль") Тогда
|
||||
Возврат КлючРоли(Метаданные.Роли[ИмяОМ]);
|
||||
ИначеЕсли КлассОбъектаМетаданных = ВРег("Роль") Тогда
|
||||
Возврат КлючРоли(Метаданные.Роли[ИмяОбъектаМетаданных]);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Константа") Тогда
|
||||
ИначеЕсли КлассОбъектаМетаданных = ВРег("Константа")
|
||||
Или КлассОбъектаМетаданных = ВРег("ЖурналДокументов") Тогда
|
||||
Возврат ТипЗнч(ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя));
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Справочник") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
ИначеЕсли КлассОбъектаМетаданных = ВРег("Отчет")
|
||||
Или КлассОбъектаМетаданных = ВРег("Обработка") Тогда
|
||||
Возврат Тип(КлассОбъектаМетаданных + "Объект." + ИмяОбъектаМетаданных);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Документ") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("ЖурналДокументов") Тогда
|
||||
Возврат ТипЗнч(ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя));
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Отчет") Тогда
|
||||
Возврат Тип(КлассОМ + "Объект." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Обработка") Тогда
|
||||
Возврат Тип(КлассОМ + "Объект." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("ПланВидовХарактеристик") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("ПланСчетов") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("ПланВидовРасчета") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("РегистрСведений") Тогда
|
||||
Возврат Тип(КлассОМ + "КлючЗаписи." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("РегистрНакопления") Тогда
|
||||
Возврат Тип(КлассОМ + "КлючЗаписи." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("РегистрБухгалтерии") Тогда
|
||||
Возврат Тип(КлассОМ + "КлючЗаписи." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("РегистрРасчета") Тогда
|
||||
Возврат Тип(КлассОМ + "КлючЗаписи." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("БизнесПроцесс") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
|
||||
ИначеЕсли ВРег(КлассОМ) = ВРег("Задача") Тогда
|
||||
Возврат Тип(КлассОМ + "Ссылка." + ИмяОМ);
|
||||
ИначеЕсли КлассОбъектаМетаданных = ВРег("РегистрСведений")
|
||||
Или КлассОбъектаМетаданных = ВРег("РегистрНакопления")
|
||||
Или КлассОбъектаМетаданных = ВРег("РегистрБухгалтерии")
|
||||
Или КлассОбъектаМетаданных = ВРег("РегистрРасчета") Тогда
|
||||
Возврат Тип(КлассОбъектаМетаданных + "КлючЗаписи." + ИмяОбъектаМетаданных);
|
||||
Иначе
|
||||
// Без ключа объекта метаданных.
|
||||
Возврат Тип("Неопределено");
|
||||
@@ -3637,11 +3613,9 @@
|
||||
УстановленныеРасширения = РасширенияКонфигурации.Получить(Отбор, ИсточникРасширенийКонфигурации.БазаДанных);
|
||||
ОтключенныеРасширения = РасширенияКонфигурации.Получить(Отбор, ИсточникРасширенийКонфигурации.СеансОтключенные);
|
||||
АктивныеРасширения = РасширенияКонфигурации.Получить(Отбор, ИсточникРасширенийКонфигурации.СеансАктивные);
|
||||
Если АктивныеРасширения.Количество() > 0 Тогда
|
||||
ИмяРасширения = УстановленныеРасширения[0].Имя;
|
||||
ИначеЕсли ОтключенныеРасширения.Количество() > 0 Тогда
|
||||
ИмяРасширения = УстановленныеРасширения[0].Имя;
|
||||
ИначеЕсли УстановленныеРасширения.Количество() > 0 Тогда
|
||||
Если АктивныеРасширения.Количество() > 0
|
||||
Или ОтключенныеРасширения.Количество() > 0
|
||||
Или УстановленныеРасширения.Количество() > 0 Тогда
|
||||
ИмяРасширения = УстановленныеРасширения[0].Имя;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -3326,7 +3326,7 @@
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Не включен вход в программу, нет прав или
|
||||
<value>Не включен вход в программу, нет прав для входа или
|
||||
нет ни одного права запуска (тонкий клиент, веб-клиент,
|
||||
толстый клиент, automation, внешнее соединение)</value>
|
||||
</toolTip>
|
||||
|
||||
@@ -987,7 +987,8 @@
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>У пользователя нет ни одного права запуска (тонкий клиент, веб-клиент)</value>
|
||||
<value>У пользователя нет ни одного права запуска
|
||||
(например, тонкий клиент, веб-клиент)</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>НетПравНаЗапускНадписьРасширеннаяПодсказка</name>
|
||||
@@ -1038,6 +1039,110 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаНетПравНаВход</name>
|
||||
<id>440</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>НетПравНаВходКартинка</name>
|
||||
<id>442</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет прав на вход картинка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>НетПравНаВходКартинкаРасширеннаяПодсказка</name>
|
||||
<id>444</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>НетПравНаВходКартинкаКонтекстноеМеню</name>
|
||||
<id>443</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Предупреждение</picture>
|
||||
</picture>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>НетПравНаВходНадпись</name>
|
||||
<id>445</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет прав для входа</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Пользователю не назначены минимальные права для работы в программе</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>НетПравНаВходНадписьРасширеннаяПодсказка</name>
|
||||
<id>447</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>НетПравНаВходНадписьКонтекстноеМеню</name>
|
||||
<id>446</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет прав на вход</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаНетПравНаВходРасширеннаяПодсказка</name>
|
||||
<id>441</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаИзменитьОграничение</name>
|
||||
<id>331</id>
|
||||
@@ -3217,6 +3322,7 @@
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаОчиститьФотографию</name>
|
||||
|
||||
@@ -965,6 +965,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
#Если Не ВебКлиент Тогда
|
||||
Картинка = Новый Картинка(ПолучитьИзВременногоХранилища(Результат.Хранение));
|
||||
Если Картинка.Формат() = ФорматКартинки.НеизвестныйФормат Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо выбрать файл с изображением.'"));
|
||||
@@ -975,6 +976,7 @@
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо выбрать файл с изображением меньше 2 Мб.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
Если ЭтоАдресВременногоХранилища(АдресФотографии) Тогда
|
||||
УдалитьИзВременногоХранилища(АдресФотографии);
|
||||
@@ -2535,10 +2537,14 @@
|
||||
Если Форма.ВходВПрограммуРазрешен Тогда
|
||||
Элементы.ГруппаНетПрав.Видимость = Форма.НаличиеПрав.НетПрав;
|
||||
Элементы.ГруппаНетПравНаЗапуск.Видимость = Не Форма.НаличиеПрав.НетПрав
|
||||
И Форма.НаличиеПрав.НедостаточноПравДляЗапуска;
|
||||
Элементы.ГруппаНетПравНаВход.Видимость = Не Форма.НаличиеПрав.НетПрав
|
||||
И Не Форма.НаличиеПрав.НедостаточноПравДляЗапуска
|
||||
И Форма.НаличиеПрав.НедостаточноПравДляВхода;
|
||||
Иначе
|
||||
Элементы.ГруппаНетПрав.Видимость = Ложь;
|
||||
Элементы.ГруппаНетПравНаЗапуск.Видимость = Ложь;
|
||||
Элементы.ГруппаНетПравНаВход.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// Настройка возможности изменения.
|
||||
|
||||
@@ -671,6 +671,10 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа расписание</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаРасписаниеРасширеннаяПодсказка</name>
|
||||
<id>157</id>
|
||||
|
||||
@@ -14,7 +14,9 @@
|
||||
УстановитьУсловноеОформление();
|
||||
|
||||
РазрешеноНастраиватьПравилаПроверкиУчета = ПравоДоступа("Изменение", Метаданные.Справочники.ПравилаПроверкиУчета);
|
||||
Элементы.ФормаВыполнитьПроверку.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета;
|
||||
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(, Ложь);
|
||||
Элементы.ФормаВыполнитьПроверку.Видимость = ЭтоПолноправныйПользователь;
|
||||
Элементы.ФормаВыполнитьВсеПроверки.Видимость = ЭтоПолноправныйПользователь;
|
||||
Элементы.СписокКонтекстноеМенюВыполнитьПроверку.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета;
|
||||
Элементы.ФормаВосстановитьПоНачальномуЗаполнению.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
УстановитьПутьДоПроцедурыОбработчика(ЭтотОбъект, МетаданныеТекущейПроверки);
|
||||
|
||||
РазрешеноНастраиватьПравилаПроверкиУчета = ПравоДоступа("Изменение", Метаданные.Справочники.ПравилаПроверкиУчета);
|
||||
Элементы.ФормаВыполнитьПроверку.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета;
|
||||
Элементы.ФормаВыполнитьПроверку.Видимость = Пользователи.ЭтоПолноправныйПользователь(, Ложь);
|
||||
Элементы.ФормаУстановитьСтандартныеНастройки.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета;
|
||||
|
||||
УстановитьНачальныеНастройкиРасписания();
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение НСтр("ru = 'Не заполнено поле ""Отчет""'");
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнено поле ""%1"".'"), "Отчет");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -26,10 +26,9 @@
|
||||
Процедура ПроверитьЗаполнениеПредопределенного(Отказ)
|
||||
Если ПометкаУдаления Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Не ЗначениеЗаполнено(Отчет) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнено поле ""%1""'"), "Отчет");
|
||||
Иначе
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(Отчет) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнено поле ""%1"".'"), "Отчет");
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -127,28 +127,6 @@
|
||||
Настройка.НетВLinux = Истина;
|
||||
Настройка.НетВMacOS = Истина;
|
||||
|
||||
// Microsoft Strong Cryptographic Provider
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'Microsoft Strong CSP'");
|
||||
Настройка.ИмяПрограммы = "Microsoft Strong Cryptographic Provider";
|
||||
Настройка.ТипПрограммы = 1;
|
||||
Настройка.АлгоритмПодписи = "RSA_SIGN"; // Один вариант.
|
||||
Настройка.АлгоритмХеширования = "MD5"; // Варианты: SHA-1, MD2, MD4, MD5.
|
||||
Настройка.АлгоритмШифрования = "RC2"; // Варианты: RC2, RC4, DES, 3DES.
|
||||
Настройка.Идентификатор = "MicrosoftStrong";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("RSA_SIGN");
|
||||
Настройка.АлгоритмыХеширования.Добавить("SHA-1");
|
||||
Настройка.АлгоритмыХеширования.Добавить("MD2");
|
||||
Настройка.АлгоритмыХеширования.Добавить("MD4");
|
||||
Настройка.АлгоритмыХеширования.Добавить("MD5");
|
||||
Настройка.АлгоритмыШифрования.Добавить("RC2");
|
||||
Настройка.АлгоритмыШифрования.Добавить("RC4");
|
||||
Настройка.АлгоритмыШифрования.Добавить("DES");
|
||||
Настройка.АлгоритмыШифрования.Добавить("3DES");
|
||||
Настройка.НетВLinux = Истина;
|
||||
Настройка.НетВMacOS = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПоставляемыеПутиКМодулямПрограмм() Экспорт
|
||||
|
||||
@@ -2816,6 +2816,10 @@
|
||||
КонецЕсли;
|
||||
Элементы.ПаролиШифрование.Видимость = Истина;
|
||||
Элементы.ГруппаПарольАрхива.Видимость = Ложь;
|
||||
Элементы.ПаролиШифрование.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
|
||||
Элементы.ПаролиШифрование.РасширеннаяПодсказка.Заголовок = НСтр("ru = 'Установка и настройка паролей и шифрования.
|
||||
|При рассылке отчетов по электронной почте необходимо учитывать,
|
||||
|что некоторые почтовые сервера могут не принимать зашифрованные файлы.'");
|
||||
Иначе
|
||||
Элементы["ГруппаСертификатДляШифрования"].Видимость = ?(Форма.Объект.Личная, Истина, Ложь);
|
||||
Элементы.ГруппаПарольАрхива.Видимость = Истина;
|
||||
@@ -2827,6 +2831,8 @@
|
||||
Элементы.ПаролиШифрование.Видимость = Истина;
|
||||
Элементы.ГруппаПарольАрхива.Видимость = Ложь;
|
||||
Элементы.ПаролиШифрование.Доступность = Объект.Архивировать;
|
||||
Элементы.ПаролиШифрование.ОтображениеПодсказки = ОтображениеПодсказки.Авто;
|
||||
Элементы.ПаролиШифрование.РасширеннаяПодсказка.Заголовок = НСтр("ru = 'Установка и настройка паролей.'");
|
||||
Иначе
|
||||
Элементы.ГруппаПарольАрхива.Видимость = Истина;
|
||||
Элементы.ПаролиШифрование.Видимость = Ложь;
|
||||
@@ -3162,15 +3168,11 @@
|
||||
КонецЦикла;
|
||||
Расписание.Месяцы = ВсеМесяцы;
|
||||
|
||||
Если Вариант = 1 Тогда // "Каждый день"
|
||||
Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно;
|
||||
|
||||
ИначеЕсли Вариант = 2 Тогда // "Каждый второй день"
|
||||
Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно;
|
||||
Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно; // "Каждый день"
|
||||
Если Вариант = 2 Тогда // "Каждый второй день"
|
||||
Расписание.ПериодПовтораДней = 2;
|
||||
|
||||
ИначеЕсли Вариант = 3 Тогда // "Каждый четвертый день"
|
||||
Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно;
|
||||
Расписание.ПериодПовтораДней = 4;
|
||||
|
||||
ИначеЕсли Вариант = 4 Тогда // "По будням"
|
||||
@@ -3220,10 +3222,6 @@
|
||||
|
||||
ИначеЕсли Вариант = 12 Тогда // "Другое..."
|
||||
Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Произвольное;
|
||||
|
||||
Иначе
|
||||
Объект.ПериодичностьРасписания = Перечисления.ПериодичностиРасписанийРассылокОтчетов.Ежедневно;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// по дням недели
|
||||
@@ -3802,6 +3800,9 @@
|
||||
Элемент.Ширина = 70;
|
||||
Элемент.Вид = ВидПоляФормы.ПолеВвода;
|
||||
Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_СертификатДляШифрованияПриИзменении");
|
||||
Элемент.ОтображениеПодсказки = ОтображениеПодсказки.Кнопка;
|
||||
Элемент.РасширеннаяПодсказка.Заголовок = НСтр("ru = 'При рассылке отчетов по электронной почте необходимо учитывать,
|
||||
|что некоторые почтовые сервера могут не принимать зашифрованные файлы.'");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
|
||||
ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ИдентификаторОбъектаМетаданных, Ложь);
|
||||
|
||||
Если ПолучателиМетаданные = Неопределено Тогда
|
||||
Если ПолучателиМетаданные = Неопределено Или ПолучателиМетаданные = Null Тогда
|
||||
Возврат КоличествоПолучателей;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -250,7 +250,7 @@
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Используется с объектами адресации</value>
|
||||
<value>Используется без объектов адресации</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>ИспользуетсяБезОбъектовАдресацииExtendedTooltip</name>
|
||||
|
||||
+2
-5
@@ -159,11 +159,8 @@
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодготовитьГруппуПодтверждения(ЭтотОбъект, "Проверка", "", "");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, Сертификат);
|
||||
|
||||
ИначеЕсли ЭтоВстроенныйКриптопровайдер Тогда
|
||||
Элементы.ГруппаВводаПароля.Видимость = Ложь;
|
||||
|
||||
ИначеЕсли Не СтандартныеПроверки
|
||||
И Не ВводитьПароль Тогда
|
||||
ИначеЕсли ЭтоВстроенныйКриптопровайдер
|
||||
Или (Не СтандартныеПроверки И Не ВводитьПароль) Тогда
|
||||
Элементы.ГруппаВводаПароля.Видимость = Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
BIN
Binary file not shown.
+1
-1
@@ -837,7 +837,7 @@
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
|
||||
<name>КомпонентаExtraCryptoAPI_3_0_2_23</name>
|
||||
<name>КомпонентаExtraCryptoAPI_3_0_2_24</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Компонента ExtraCryptoAPI</value>
|
||||
|
||||
@@ -38,16 +38,9 @@
|
||||
|
||||
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
|
||||
|
||||
Если Не СтандартнаяОбработка Тогда
|
||||
// Обрабатывается в другом месте.
|
||||
Возврат;
|
||||
|
||||
ИначеЕсли Не Параметры.Свойство("РазрешитьДанныеКлассификатора") Тогда
|
||||
// Поведение по умолчанию, подбор только справочника.
|
||||
Возврат;
|
||||
|
||||
ИначеЕсли Истина <> Параметры.РазрешитьДанныеКлассификатора Тогда
|
||||
// Подбор классификатора отключен, поведение по умолчанию.
|
||||
Если Не СтандартнаяОбработка
|
||||
Или Не Параметры.Свойство("РазрешитьДанныеКлассификатора")
|
||||
Или Не Параметры.РазрешитьДанныеКлассификатора Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -84,11 +84,7 @@
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаОбъекта" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Если Параметры.Свойство("Ключ") Тогда
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ФормаУчетнойЗаписи;
|
||||
Иначе
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ФормаУчетнойЗаписи;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаВыбора" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
@@ -384,27 +384,16 @@
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.СтраницаТипТабличногоВопроса Тогда
|
||||
|
||||
Элементы.КнопкаВперед.Доступность = ТипТабличногоВопроса <> ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПустаяСсылка");
|
||||
|
||||
Если ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.Составной") Тогда
|
||||
|
||||
Элементы.СтраницыТипТабличногоВопросаКартинки.ТекущаяСтраница = Элементы.СтраницаКартинкаСоставной;
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках") Тогда
|
||||
|
||||
Элементы.СтраницыТипТабличногоВопросаКартинки.ТекущаяСтраница = Элементы.СтраницаКартинкаОтветыВСтроках;
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках") Тогда
|
||||
|
||||
Элементы.СтраницыТипТабличногоВопросаКартинки.ТекущаяСтраница = Элементы.СтраницаКартинкаОтветыВКолонках;
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках") Тогда
|
||||
|
||||
Элементы.СтраницыТипТабличногоВопросаКартинки.ТекущаяСтраница = Элементы.СтраницаКартинкаОтветыВСтрокахИКолонках;
|
||||
|
||||
Иначе
|
||||
|
||||
Элементы.СтраницыТипТабличногоВопросаКартинки.ТекущаяСтраница = Элементы.СтраницаКартинкаПустая;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.СтраницаВопросы Тогда
|
||||
@@ -415,27 +404,16 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.Составной") Тогда
|
||||
|
||||
Элементы.КнопкаВперед.Доступность = (Вопросы.Количество() > 0);
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках") Тогда
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтроках")
|
||||
Или ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках") Тогда
|
||||
Элементы.КнопкаВперед.Доступность = (Вопросы.Количество() > 1);
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВКолонках") Тогда
|
||||
|
||||
Элементы.КнопкаВперед.Доступность = (Вопросы.Количество() > 1);
|
||||
|
||||
ИначеЕсли ТипТабличногоВопроса = ПредопределенноеЗначение("Перечисление.ТипыТабличныхВопросов.ПредопределенныеОтветыВСтрокахИКолонках") Тогда
|
||||
|
||||
Элементы.КнопкаВперед.Доступность = (Вопросы.Количество() = 3);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.СтраницаРезультирующаяТаблица Тогда
|
||||
|
||||
Элементы.КнопкаВперед.Доступность = ЗначениеЗаполнено(Формулировка);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -168,9 +168,8 @@
|
||||
СтрокаНазначение = ДеревоАнкеты.НайтиПоИдентификатору(Строка);
|
||||
СтрокаПеретаскивание = ДеревоАнкеты.НайтиПоИдентификатору(ПараметрыПеретаскивания.Значение);
|
||||
|
||||
Если (СтрокаПеретаскивание.ТипСтроки = "Раздел") И (СтрокаНазначение.ТипСтроки = "Вопрос") Тогда
|
||||
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
|
||||
ИначеЕсли (СтрокаПеретаскивание.ТипСтроки = "Вопрос") И (СтрокаНазначение.ТипСтроки = "Корень") Тогда
|
||||
Если (СтрокаПеретаскивание.ТипСтроки = "Раздел") И (СтрокаНазначение.ТипСтроки = "Вопрос")
|
||||
Или (СтрокаПеретаскивание.ТипСтроки = "Вопрос") И (СтрокаНазначение.ТипСтроки = "Корень") Тогда
|
||||
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
|
||||
ИначеЕсли (СтрокаПеретаскивание.ТипСтроки = "Раздел") И (СтрокаНазначение.ТипСтроки = "Раздел") Тогда
|
||||
Если СтрокаПеретаскивание.ВопросШаблона = СтрокаНазначение.ВопросШаблона Тогда
|
||||
@@ -182,9 +181,8 @@
|
||||
Если Родитель = СтрокаПеретаскивание Тогда
|
||||
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Отмена;
|
||||
Возврат;
|
||||
Иначе
|
||||
Родитель = Родитель.ПолучитьРодителя();
|
||||
КонецЕсли;
|
||||
Родитель = Родитель.ПолучитьРодителя();
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
-18
@@ -276,7 +276,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Управляет видимостью страниц и элементов формы.
|
||||
&НаКлиенте
|
||||
Процедура УправлениеВидимостью()
|
||||
|
||||
@@ -291,42 +290,25 @@
|
||||
ДоступностьНеобходимостьПояснениеКомментария();
|
||||
|
||||
Если Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Строка") Тогда
|
||||
|
||||
Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.СтраницаСтрока;
|
||||
|
||||
ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Число") Тогда
|
||||
|
||||
Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.СтраницаЧисло;
|
||||
|
||||
ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы") Тогда
|
||||
|
||||
Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.Пустая;
|
||||
|
||||
ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз")
|
||||
ИЛИ Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") Тогда
|
||||
|
||||
Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.ВариантыОтветов;
|
||||
|
||||
ДоступностьТаблицыВариантыОтветов(ЭтотОбъект);
|
||||
|
||||
Иначе
|
||||
|
||||
Элементы.ЗависимыеПараметры.ТекущаяСтраница = Элементы.Пустая;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") Тогда
|
||||
|
||||
Элементы.ГруппаВидПереключателя.ТекущаяСтраница = Элементы.ГруппаВидПереключателяОтображать;
|
||||
|
||||
ИначеЕсли Объект.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.Булево") Тогда
|
||||
|
||||
Элементы.ГруппаВидПереключателя.ТекущаяСтраница = Элементы.ГруппаВидОтображенияБулевоОтображать;
|
||||
|
||||
Иначе
|
||||
|
||||
Элементы.ГруппаВидПереключателя.ТекущаяСтраница = Элементы.ГруппаВидПереключателяНеОтображать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -83,45 +83,17 @@
|
||||
// Устанавливает тип значения ПВХ в зависимости от типа ответа.
|
||||
Процедура УстановкаТипаПВХ()
|
||||
|
||||
ТипыОтветовНаВопрос = Перечисления.ТипыОтветовНаВопрос;
|
||||
|
||||
// Квалификаторы
|
||||
КЧ = Новый КвалификаторыЧисла(?(Длина = 0,15,Длина),Точность);
|
||||
КС = Новый КвалификаторыСтроки(Длина);
|
||||
КД = Новый КвалификаторыДаты(ЧастиДаты.Дата);
|
||||
|
||||
// Описание типов
|
||||
ОписаниеТиповЧисло = Новый ОписаниеТипов("Число",,КЧ);
|
||||
ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка", , КС);
|
||||
ОписаниеТиповДата = Новый ОписаниеТипов("Дата",КД , , );
|
||||
ОписаниеТиповБулево = Новый ОписаниеТипов("Булево");
|
||||
ОписаниеТиповВО = Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовАнкет");
|
||||
|
||||
Если ТипОтвета = ТипыОтветовНаВопрос.Строка Тогда
|
||||
|
||||
ТипЗначения = ОписаниеТиповСтрока;
|
||||
|
||||
ИначеЕсли ТипОтвета = ТипыОтветовНаВопрос.Текст Тогда
|
||||
|
||||
ТипЗначения = ОписаниеТиповСтрока;
|
||||
|
||||
ИначеЕсли ТипОтвета = ТипыОтветовНаВопрос.Число Тогда
|
||||
|
||||
ТипЗначения = ОписаниеТиповЧисло;
|
||||
|
||||
ИначеЕсли ТипОтвета = ТипыОтветовНаВопрос.Дата Тогда
|
||||
|
||||
ТипЗначения = ОписаниеТиповДата;
|
||||
|
||||
ИначеЕсли ТипОтвета = ТипыОтветовНаВопрос.Булево Тогда
|
||||
|
||||
ТипЗначения = ОписаниеТиповБулево;
|
||||
|
||||
ИначеЕсли ТипОтвета =ТипыОтветовНаВопрос.ОдинВариантИз
|
||||
ИЛИ ТипОтвета = ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда
|
||||
|
||||
ТипЗначения = ОписаниеТиповВО;
|
||||
|
||||
Если ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Или ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(Длина));
|
||||
ИначеЕсли ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов("Число",, Новый КвалификаторыЧисла(?(Длина = 0, 15, Длина), Точность));
|
||||
ИначеЕсли ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Дата Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата));
|
||||
ИначеЕсли ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов("Булево");
|
||||
ИначеЕсли ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз
|
||||
ИЛИ ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовАнкет");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+15
-19
@@ -1977,16 +1977,7 @@
|
||||
Элементы.УточнениеНаборовКомментарий.Гиперссылка = Истина;
|
||||
|
||||
Элементы.УточнениеНаборовИзменить.Доступность = ЗначениеЗаполнено(Объект.Ссылка);
|
||||
|
||||
Если СписокНаборов.Количество() < 2 Тогда
|
||||
|
||||
Элементы.УточнениеНаборовИзменить.Видимость = Ложь;
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(ТекущийНаборСвойств) Тогда
|
||||
Элементы.УточнениеНаборовИзменить.Видимость = Истина;
|
||||
Иначе
|
||||
Элементы.УточнениеНаборовИзменить.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
Элементы.УточнениеНаборовИзменить.Видимость = СписокНаборов.Количество() >= 2 И ЗначениеЗаполнено(ТекущийНаборСвойств);
|
||||
|
||||
Если СписокНаборов.Количество() = 0 Тогда
|
||||
Элементы.УточнениеНаборовКомментарий.Гиперссылка = Ложь;
|
||||
@@ -2177,9 +2168,15 @@
|
||||
|Список значений этого сведения будет общим с исходным сведением.
|
||||
|С помощью этого варианта удобно выполнять централизованную настройку списка значений сразу для нескольких однотипных сведений.
|
||||
|При этом можно отредактировать наименование и ряд других свойств сведения.'");
|
||||
Если РеквизитСоСпискомДополнительныхЗначений Тогда
|
||||
СоздатьКопированием = НСтр("ru = 'Сделать копию сведения
|
||||
|
|
||||
|Будет создана копия сведения%1'");
|
||||
|Будет создана копия сведения и всех его значений.'")
|
||||
Иначе
|
||||
СоздатьКопированием = НСтр("ru = 'Сделать копию сведения
|
||||
|
|
||||
|Будет создана копия сведения.'");
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ДобавитьОбщий = НСтр("ru = 'Добавить реквизит как есть (рекомендуется)
|
||||
|
|
||||
@@ -2189,21 +2186,20 @@
|
||||
|Список значений этого реквизита будет общим с исходным реквизитом.
|
||||
|С помощью этого варианта удобно выполнять централизованную настройку списка значений сразу для нескольких однотипных реквизитов.
|
||||
|При этом можно отредактировать наименование и ряд других свойств реквизита.'");
|
||||
Если РеквизитСоСпискомДополнительныхЗначений Тогда
|
||||
СоздатьКопированием = НСтр("ru = 'Сделать копию реквизита
|
||||
|
|
||||
|Будет создана копия реквизита%1'");
|
||||
|Будет создана копия реквизита и всех его значений.'");
|
||||
Иначе
|
||||
СоздатьКопированием = НСтр("ru = 'Сделать копию реквизита
|
||||
|
|
||||
|Будет создана копия реквизита.'");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
СписокВыбора = Элементы.РежимДобавленияРеквизита.СписокВыбора;
|
||||
СписокВыбора.Очистить();
|
||||
|
||||
Если РеквизитСоСпискомДополнительныхЗначений Тогда
|
||||
ШаблонВставки = " " + НСтр("ru = 'и всех его значений.'");
|
||||
Иначе
|
||||
ШаблонВставки = ".";
|
||||
КонецЕсли;
|
||||
СоздатьКопированием = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СоздатьКопированием, ШаблонВставки);
|
||||
|
||||
СписокВыбора.Добавить("ДобавитьОбщийРеквизитВНабор", ДобавитьОбщий);
|
||||
Если РеквизитСоСпискомДополнительныхЗначений Тогда
|
||||
СписокВыбора.Добавить("СоздатьПоОбразцу", СделатьПоОбразцу);
|
||||
|
||||
+4
-8
@@ -82,10 +82,6 @@
|
||||
<metadata>InformationRegister.ЗамерыВремени</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.ПолучениеСубъектовДляСкрытияПерсональныхДанных</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Constant.НастройкаПроксиСервера</metadata>
|
||||
<use>DontUse</use>
|
||||
@@ -178,10 +174,6 @@
|
||||
<metadata>Constant.АдресДляВосстановленияПароляУчетнойЗаписи</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.СкрытиеПерсональныхДанныхСубъектов</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Catalog.ИдентификаторыОбъектовМетаданных</metadata>
|
||||
<use>DontUse</use>
|
||||
@@ -614,6 +606,10 @@
|
||||
<metadata>ScheduledJob.ЗагрузкаКурсовВалют</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.РасчетСроковХраненияПерсональныхДанных</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>InformationRegister.БуферОперацийСтатистики</metadata>
|
||||
<use>DontUse</use>
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2023, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
|
||||
|
||||
ПараметрыВопроса = ЗащитаПерсональныхДанныхВызовСервера.ПараметрыВопросаПодтвержденияСкрытия(ПараметрКоманды);
|
||||
|
||||
Субъекты = ПараметрыВопроса.Субъекты;
|
||||
Если Субъекты.Количество() > 0 Тогда
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ОбработкаКомандыЗавершение", ЭтотОбъект, Субъекты);
|
||||
ПоказатьВопрос(Оповещение, ПараметрыВопроса.ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаКомандыЗавершение(Результат, Субъекты) Экспорт
|
||||
|
||||
Если Результат = КодВозвратаДиалога.Да Тогда
|
||||
|
||||
ЗащитаПерсональныхДанныхВызовСервера.СкрытьПерсональныеДанныеСубъектов(Субъекты, Истина);
|
||||
Оповестить("СкрытыПерсональныеДанные");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonCommand xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6c66ff27-19af-4728-95a8-463fd1c4dcd3">
|
||||
<name>СкрытьПерсональныеДанныеСубъектов</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Скрыть ПДн</value>
|
||||
</synonym>
|
||||
<group>FormCommandBarImportant</group>
|
||||
<commandParameterType>
|
||||
<types>DefinedType.СубъектПерсональныхДанных</types>
|
||||
</commandParameterType>
|
||||
<parameterUseMode>Multiple</parameterUseMode>
|
||||
<representation>Auto</representation>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Скрыть персональные данные субъектов</value>
|
||||
</toolTip>
|
||||
</mdclass:CommonCommand>
|
||||
@@ -150,7 +150,7 @@
|
||||
|
||||
Если ЛокализуемыеРеквизитыВШапке[Параметры.ИмяРеквизита] <> Неопределено Тогда
|
||||
ОписаниеЯзыка = ОписаниеЯзыка(ОсновнойЯзык);
|
||||
Если ЗначениеЗаполнено(СуффиксОсновногоЯзыка) Тогда
|
||||
Если ЗначениеЗаполнено(СуффиксОсновногоЯзыка) И Параметры.Объект <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.Объект[Параметры.ИмяРеквизита + СуффиксОсновногоЯзыка];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -167,7 +167,7 @@
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
||||
ИначеЕсли Параметры.ЗначенияРеквизитов <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксОсновногоЯзыка];
|
||||
Иначе
|
||||
ИначеЕсли Параметры.Объект <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.Объект[Параметры.ИмяРеквизита + СуффиксОсновногоЯзыка];
|
||||
КонецЕсли;
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
||||
ИначеЕсли Параметры.ЗначенияРеквизитов <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка1];
|
||||
Иначе
|
||||
ИначеЕсли Параметры.Объект <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.Объект[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка1];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -188,7 +188,7 @@
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
||||
ИначеЕсли Параметры.ЗначенияРеквизитов <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ЗначенияРеквизитов[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка2];
|
||||
Иначе
|
||||
ИначеЕсли Параметры.Объект <> Неопределено Тогда
|
||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.Объект[Параметры.ИмяРеквизита + СуффиксДополнительногоЯзыка2];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -234,9 +234,9 @@
|
||||
|
||||
Для каждого Язык Из Языки Цикл
|
||||
|
||||
Если СтрСравнить(Язык.КодЯзыка, ТекущийКодЯзыка) = 0 Тогда
|
||||
Результат.Вставить("СтрокаНаТекущемЯзыке", ЭтотОбъект[Язык.Имя]);
|
||||
ИначеЕсли СтрСравнить(Язык.КодЯзыка, ОсновнойЯзык) = 0 И Не Результат.Свойство("СтрокаНаТекущемЯзыке") Тогда
|
||||
Если СтрСравнить(Язык.КодЯзыка, ТекущийКодЯзыка) = 0
|
||||
Или (СтрСравнить(Язык.КодЯзыка, ОсновнойЯзык) = 0
|
||||
И Не Результат.Свойство("СтрокаНаТекущемЯзыке")) Тогда
|
||||
Результат.Вставить("СтрокаНаТекущемЯзыке", ЭтотОбъект[Язык.Имя]);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
+20
-20
@@ -5,11 +5,11 @@
|
||||
<value>Регистрация событий доступа к персональным данным</value>
|
||||
</title>
|
||||
<items xsi:type="form:Table">
|
||||
<name>ОбластиПерсональныхДанных</name>
|
||||
<name>КатегорииПерсональныхДанных</name>
|
||||
<id>7</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Области персональных данных</value>
|
||||
<value>Категории персональных данных</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
@@ -17,20 +17,20 @@
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ОбластиПерсональныхДанных</segments>
|
||||
<segments>КатегорииПерсональныхДанных</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<autoCommandBar>
|
||||
<name>ОбластиПерсональныхДанныхКоманднаяПанель</name>
|
||||
<name>КатегорииПерсональныхДанныхКоманднаяПанель</name>
|
||||
<id>9</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<searchStringAddition>
|
||||
<name>ОбластиПерсональныхДанныхSearchString</name>
|
||||
<name>КатегорииПерсональныхДанныхСтрокаПоиска</name>
|
||||
<id>13</id>
|
||||
<extendedTooltip>
|
||||
<name>ОбластиПерсональныхДанныхSearchStringExtendedTooltip</name>
|
||||
<name>КатегорииПерсональныхДанныхСтрокаПоискаРасширеннаяПодсказка</name>
|
||||
<id>15</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
@@ -40,20 +40,20 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОбластиПерсональныхДанныхSearchStringContextMenu</name>
|
||||
<name>КатегорииПерсональныхДанныхСтрокаПоискаКонтекстноеМеню</name>
|
||||
<id>14</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>ОбластиПерсональныхДанных</source>
|
||||
<source>КатегорииПерсональныхДанных</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchStringAddition>
|
||||
<viewStatusAddition>
|
||||
<name>ОбластиПерсональныхДанныхViewStatus</name>
|
||||
<name>КатегорииПерсональныхДанныхСостояниеПросмотра</name>
|
||||
<id>16</id>
|
||||
<extendedTooltip>
|
||||
<name>ОбластиПерсональныхДанныхViewStatusExtendedTooltip</name>
|
||||
<name>КатегорииПерсональныхДанныхСостояниеПросмотраРасширеннаяПодсказка</name>
|
||||
<id>18</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
@@ -63,21 +63,21 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОбластиПерсональныхДанныхViewStatusContextMenu</name>
|
||||
<name>КатегорииПерсональныхДанныхСостояниеПросмотраКонтекстноеМеню</name>
|
||||
<id>17</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>ViewStatusAddition</type>
|
||||
<source>ОбластиПерсональныхДанных</source>
|
||||
<source>КатегорииПерсональныхДанных</source>
|
||||
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</viewStatusAddition>
|
||||
<searchControlAddition>
|
||||
<name>ОбластиПерсональныхДанныхSearchControl</name>
|
||||
<name>КатегорииПерсональныхДанныхУправлениеПоиском</name>
|
||||
<id>19</id>
|
||||
<extendedTooltip>
|
||||
<name>ОбластиПерсональныхДанныхSearchControlExtendedTooltip</name>
|
||||
<name>КатегорииПерсональныхДанныхУправлениеПоискомРасширеннаяПодсказка</name>
|
||||
<id>21</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
@@ -87,18 +87,18 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОбластиПерсональныхДанныхSearchControlContextMenu</name>
|
||||
<name>КатегорииПерсональныхДанныхУправлениеПоискомКонтекстноеМеню</name>
|
||||
<id>20</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>ОбластиПерсональныхДанных</source>
|
||||
<source>КатегорииПерсональныхДанных</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchControlAddition>
|
||||
<extendedTooltip>
|
||||
<name>ОбластиПерсональныхДанныхExtendedTooltip</name>
|
||||
<name>КатегорииПерсональныхДанныхРасширеннаяПодсказка</name>
|
||||
<id>11</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
@@ -108,7 +108,7 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОбластиПерсональныхДанныхКонтекстноеМеню</name>
|
||||
<name>КатегорииПерсональныхДанныхКонтекстноеМеню</name>
|
||||
<id>8</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
@@ -223,10 +223,10 @@
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>ОбластиПерсональныхДанных</name>
|
||||
<name>КатегорииПерсональныхДанных</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Области персональных данных</value>
|
||||
<value>Категории персональных данных</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
|
||||
@@ -29,6 +29,25 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовТаблицыФормыКатегорииПерсональныхДанных
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПриИзмененииКатегорииПерсональныхДанныхИспользование(Элемент)
|
||||
|
||||
ДанныеТекущейСтроки = ЭтотОбъект.КатегорииПерсональныхДанных.НайтиПоИдентификатору(
|
||||
Элементы.КатегорииПерсональныхДанных.ТекущаяСтрока);
|
||||
|
||||
ПодчиненныеСтроки = ДанныеТекущейСтроки.ПолучитьЭлементы();
|
||||
Если ПодчиненныеСтроки.Количество() > 0 Тогда
|
||||
Для Каждого СтрокаДерева Из ПодчиненныеСтроки Цикл
|
||||
СтрокаДерева.Использование = ДанныеТекущейСтроки.Использование;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
@@ -1112,12 +1112,9 @@
|
||||
ОбновитьЗначение(ОписаниеПрограммы.УстановленаНаСервере, "");
|
||||
ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст);
|
||||
Возврат;
|
||||
ИначеЕсли ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Доступен.'"));
|
||||
ОбновитьЗначение(ОписаниеПрограммы.Установлена, Истина);
|
||||
ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст);
|
||||
Возврат;
|
||||
ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ОписаниеПрограммы.ТипРазмещения) = "ОблачнаяПодпись" Тогда
|
||||
ИначеЕсли ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер
|
||||
Или ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ОписаниеПрограммы.ТипРазмещения) = "ОблачнаяПодпись" Тогда
|
||||
|
||||
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Доступен.'"));
|
||||
ОбновитьЗначение(ОписаниеПрограммы.Установлена, Истина);
|
||||
ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст);
|
||||
@@ -1491,10 +1488,7 @@
|
||||
ОбновитьЗначение(Строка.РезультатПроверки, НСтр("ru = 'Доступен.'"));
|
||||
ОбновитьЗначение(Строка.Установлена, Истина);
|
||||
ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(СтрокаВыборки.ТипРазмещения) = "ОблачнаяПодпись"
|
||||
И Не Строка.ПометкаУдаления Тогда
|
||||
ОбновитьЗначение(Строка.РезультатПроверки, НСтр("ru = 'Доступен.'"));
|
||||
ОбновитьЗначение(Строка.Установлена, Истина);
|
||||
ИначеЕсли СтрокаВыборки.ТипРазмещения = 5 Тогда
|
||||
И Не Строка.ПометкаУдаления Или СтрокаВыборки.ТипРазмещения = 5 Тогда
|
||||
ОбновитьЗначение(Строка.РезультатПроверки, НСтр("ru = 'Доступен.'"));
|
||||
ОбновитьЗначение(Строка.Установлена, Истина);
|
||||
ИначеЕсли Строка.ТипРазмещения = 1 И (Настройки.ПроверятьЭлектронныеПодписиНаСервере Или Настройки.СоздаватьЭлектронныеПодписиНаСервере) Тогда
|
||||
|
||||
@@ -94,13 +94,9 @@
|
||||
НСтр("ru = 'Не выполнены дополнительные процедуры обработки данных'");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ВремяНачалаОбновления) И Не ЗначениеЗаполнено(ВремяОкончанияОбновления) Тогда
|
||||
Элементы.ТехническаяИнформацияОРезультатахОбновления.Видимость = Ложь;
|
||||
ИначеЕсли Пользователи.ЭтоПолноправныйПользователь() И Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Элементы.ТехническаяИнформацияОРезультатахОбновления.Видимость = Истина;
|
||||
Иначе
|
||||
Элементы.ТехническаяИнформацияОРезультатахОбновления.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
Элементы.ТехническаяИнформацияОРезультатахОбновления.Видимость =
|
||||
(Пользователи.ЭтоПолноправныйПользователь() И Не ОбщегоНазначения.РазделениеВключено())
|
||||
И (ЗначениеЗаполнено(ВремяНачалаОбновления) Или ЗначениеЗаполнено(ВремяОкончанияОбновления));
|
||||
|
||||
КлиентСервернаяБаза = Не ОбщегоНазначения.ИнформационнаяБазаФайловая();
|
||||
|
||||
|
||||
@@ -852,10 +852,6 @@
|
||||
<key>ru</key>
|
||||
<value>Страница сообщение не отправлено</value>
|
||||
</title>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Страница сообщение отправлено</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>СтраницаСообщениеНеОтправленоРасширеннаяПодсказка</name>
|
||||
<id>102</id>
|
||||
|
||||
@@ -347,9 +347,9 @@
|
||||
|
||||
НаименованиеВложения = Элемент.ТекущиеДанные[Элемент.ТекущийЭлемент.Имя];
|
||||
|
||||
Для Каждого Вложение Из Вложения Цикл
|
||||
Если Вложение.Представление = НаименованиеВложения Тогда
|
||||
Вложения.Удалить(Вложение);
|
||||
Для Позиция = -Вложения.Количество() + 1 По 0 Цикл
|
||||
Если Вложения.Получить(-Позиция).Представление = НаименованиеВложения Тогда
|
||||
Вложения.Удалить(-Позиция);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -428,10 +428,11 @@
|
||||
СтандартнаяОбработка = Ложь;
|
||||
СохранитьАдресОтвета(АдресОтвета, Ложь);
|
||||
|
||||
Для Каждого ЭлементаАдресОтвета Из Элементы.АдресОтвета.СписокВыбора Цикл
|
||||
Для Позиция = -Элементы.АдресОтвета.СписокВыбора.Количество() + 1 По 0 Цикл
|
||||
ЭлементаАдресОтвета = Элементы.АдресОтвета.СписокВыбора.Получить(-Позиция);
|
||||
Если ЭлементаАдресОтвета.Значение = АдресОтвета
|
||||
И ЭлементаАдресОтвета.Представление = АдресОтвета Тогда
|
||||
Элементы.АдресОтвета.СписокВыбора.Удалить(ЭлементаАдресОтвета);
|
||||
Элементы.АдресОтвета.СписокВыбора.Удалить(-Позиция);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -866,10 +867,11 @@
|
||||
СписокАдресовОтвета = Новый СписокЗначений();
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ЭлементАдресОтвета Из СписокАдресовОтвета Цикл
|
||||
Для Позиция = -СписокАдресовОтвета.Количество() + 1 По 0 Цикл
|
||||
ЭлементАдресОтвета = СписокАдресовОтвета.Получить(-Позиция);
|
||||
Если ЭлементАдресОтвета.Значение = АдресОтвета
|
||||
И ЭлементАдресОтвета.Представление = АдресОтвета Тогда
|
||||
СписокАдресовОтвета.Удалить(ЭлементАдресОтвета);
|
||||
СписокАдресовОтвета.Удалить(-Позиция);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -395,21 +395,19 @@
|
||||
|
||||
НастройкаПечатнойФормы = НастройкаТекущейПечатнойФормы();
|
||||
|
||||
Если ИмяСобытия = "Запись_ПользовательскиеМакетыПечати"
|
||||
Если (ИмяСобытия = "Запись_ПользовательскиеМакетыПечати"
|
||||
И Источник.ВладелецФормы = ЭтотОбъект
|
||||
И Параметр.ИмяОбъектаМетаданныхМакета = НастройкаПечатнойФормы.ПутьКМакету Тогда
|
||||
ПодключитьОбработчикОжидания("ОбновитьТекущуюПечатнуюФорму",0.1, Истина);
|
||||
ИначеЕсли (ИмяСобытия = "ОтказОтИзмененияМакета"
|
||||
Или ИмяСобытия = "ОтменаРедактированияТабличногоДокумента"
|
||||
И Параметр.ИмяОбъектаМетаданныхМакета = НастройкаПечатнойФормы.ПутьКМакету)
|
||||
Или (ИмяСобытия = "Запись_ТабличныйДокумент"
|
||||
И Источник.ВладелецФормы = ЭтотОбъект
|
||||
И ЗначениеЗаполнено(Параметр.ИмяОбъектаМетаданныхМакета)
|
||||
И СтрЗаканчиваетсяНа(НастройкаПечатнойФормы.ПутьКМакету, Параметр.ИмяОбъектаМетаданныхМакета)) Тогда
|
||||
ПодключитьОбработчикОжидания("ОбновитьТекущуюПечатнуюФорму", 0.1, Истина);
|
||||
ИначеЕсли (ИмяСобытия = "ОтказОтИзмененияМакета" Или ИмяСобытия = "ОтменаРедактированияТабличногоДокумента"
|
||||
И Источник.ВладелецФормы = ЭтотОбъект
|
||||
И ЗначениеЗаполнено(Параметр.ИмяОбъектаМетаданныхМакета)
|
||||
И СтрЗаканчиваетсяНа(НастройкаПечатнойФормы.ПутьКМакету, Параметр.ИмяОбъектаМетаданныхМакета)) Тогда
|
||||
ОтобразитьСостояниеТекущейПечатнойФормы();
|
||||
ИначеЕсли ИмяСобытия = "Запись_ТабличныйДокумент"
|
||||
И Источник.ВладелецФормы = ЭтотОбъект
|
||||
И ЗначениеЗаполнено(Параметр.ИмяОбъектаМетаданныхМакета)
|
||||
И СтрЗаканчиваетсяНа(НастройкаПечатнойФормы.ПутьКМакету, Параметр.ИмяОбъектаМетаданныхМакета) Тогда
|
||||
ПодключитьОбработчикОжидания("ОбновитьТекущуюПечатнуюФорму",0.1, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
|
||||
@@ -737,6 +735,9 @@
|
||||
Для каждого Параметр Из СтруктураПараметров Цикл
|
||||
СтруктураПараметров.Вставить(Параметр.Ключ, ОбщегоНазначения.СкопироватьРекурсивно(Параметры[Параметр.Ключ]));
|
||||
КонецЦикла;
|
||||
СтруктураПараметров.ПараметрыПечати.ДополнительныеПараметры.Вставить("ПодписьИПечать",
|
||||
ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ПечатьДокументовOfficeOpen", "ПодписьИПечать", Ложь));
|
||||
|
||||
|
||||
СтруктураПараметров.Вставить("ИменаМакетов", ИменаМакетов);
|
||||
|
||||
|
||||
@@ -180,13 +180,12 @@
|
||||
ОповещениеПродолжениеВыбора = Новый ОписаниеОповещения("ОбработкаВыбораПродолжение", ЭтотОбъект, ПараметрыВыбора);
|
||||
Оповещение = Новый ОписаниеОповещения("ПриЗавершенииФормированияПечатныхФорм", ЭтотОбъект, ОповещениеПродолжениеВыбора);
|
||||
|
||||
Если ВыбранноеЗначение.Свойство("Присоединить") И ВыбранноеЗначение.ВариантСохранения = "Присоединить" И ВыбранноеЗначение.Подписать Тогда
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПродолжениеВыбора);
|
||||
ИначеЕсли ТребуетсяПереформирование Тогда
|
||||
НачатьПолучениеПечатныхФорм(СтруктураЕдиногоДокумента, Оповещение)
|
||||
Если ТребуетсяПереформирование Тогда
|
||||
НачатьПолучениеПечатныхФорм(СтруктураЕдиногоДокумента, Оповещение);
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПродолжениеВыбора);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -750,20 +749,18 @@
|
||||
ВыбранноеЗначение.Свойство("ВариантСохранения", ВариантСохранения);
|
||||
СписокВложений = Неопределено;
|
||||
Если ОбъединитьДокументы И ВариантСохранения <> "Присоединить" Тогда
|
||||
Вложение = Новый Структура("АдресВоВременномХранилище, Название, Печать, Представление, ОбъектПечати");
|
||||
Вложение = ОписаниеФайла(СтруктураЕдиногоДокумента.ИмяФайлаПечатнойФормы);
|
||||
Вложение.АдресВоВременномХранилище = СтруктураЕдиногоДокумента.АдресПечатнойФормы;
|
||||
Вложение.Название = СтруктураЕдиногоДокумента.ИмяФайлаПечатнойФормы;
|
||||
Вложение.Печать = Истина;
|
||||
Вложение.Представление = СтруктураЕдиногоДокумента.ИмяФайлаПечатнойФормы;
|
||||
Вложение.ОбъектПечати = ВыбранноеЗначение.ОбъектПечати;
|
||||
СписокВложений = Новый Массив;
|
||||
СписокВложений.Добавить(Вложение);
|
||||
КонецЕсли;
|
||||
ВыбранноеЗначение.Вставить("СписокВложений", СписокВложений);
|
||||
|
||||
Если ВыбранноеЗначение.Подписать Тогда
|
||||
ФайлыВоВременномХранилище = ПоместитьОфисныеДокументыВоВременноеХранилище(ВыбранноеЗначение,,Истина);
|
||||
|
||||
Если ВыбранноеЗначение.Подписать Тогда
|
||||
|
||||
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.СохранениеПечатнойФормы") Тогда
|
||||
Если ВыбранноеЗначение.ВариантСохранения = "Присоединить" Тогда
|
||||
ФайлыВоВременномХранилище = ПоместитьФайлыВАрхив(ФайлыВоВременномХранилище, ВыбранноеЗначение);
|
||||
@@ -777,6 +774,8 @@
|
||||
|
||||
ПодписатьФайлы(ФайлыВоВременномХранилище, ПараметрыВыбора);
|
||||
Иначе
|
||||
ПараметрыВыбора.ВыбранноеЗначение.Вставить("СписокВложений",
|
||||
ПоместитьФайлыВАрхив(ФайлыВоВременномХранилище, ВыбранноеЗначение));
|
||||
ЗавершениеОбработкиВыбора(Истина, ПараметрыВыбора);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -830,9 +829,8 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗавершениеОбработкиВыбора(Результат, ПараметрыВыбора) Экспорт
|
||||
Если Результат = Ложь Тогда
|
||||
Возврат;
|
||||
ИначеЕсли ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Успех") И Не Результат.Успех Тогда
|
||||
Если Результат = Ложь
|
||||
Или (ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Успех") И Не Результат.Успех) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -848,8 +846,7 @@
|
||||
ФайлыВоВременномХранилище = ПоместитьФайлыВАрхив(ФайлыВоВременномХранилище, ВыбранноеЗначение);
|
||||
СохранитьПечатныеФормыВКаталог(ФайлыВоВременномХранилище, ВыбранноеЗначение.ПапкаДляСохранения);
|
||||
Иначе
|
||||
ФайлыВоВременномХранилище = ПоместитьОфисныеДокументыВоВременноеХранилище(ВыбранноеЗначение);
|
||||
СохранитьПечатныеФормыВКаталог(ФайлыВоВременномХранилище, ВыбранноеЗначение.ПапкаДляСохранения);
|
||||
СохранитьПечатныеФормыВКаталог(ВыбранноеЗначение.СписокВложений, ВыбранноеЗначение.ПапкаДляСохранения);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
@@ -1288,9 +1285,7 @@
|
||||
ЗаписьZipФайла.Записать();
|
||||
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяАрхива);
|
||||
ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификаторХранилища);
|
||||
ОписаниеФайла = Новый Структура;
|
||||
ОписаниеФайла.Вставить("Представление", АрхивОбъекта.Значение.Представление);
|
||||
|
||||
ОписаниеФайла = ОписаниеФайла(АрхивОбъекта.Значение.Представление);
|
||||
ОписаниеФайла.Вставить("ОбъектПечати", АрхивОбъекта.Ключ);
|
||||
ОписаниеФайла.Вставить("АдресВоВременномХранилище", ПутьВоВременномХранилище);
|
||||
Результат.Добавить(ОписаниеФайла);
|
||||
@@ -1358,10 +1353,8 @@
|
||||
ДвоичныеДанные.Записать(ПолноеИмяФайла);
|
||||
ЗаписьZipФайла.Добавить(ПолноеИмяФайла);
|
||||
Иначе
|
||||
ОписаниеФайла = Новый Структура;
|
||||
ОписаниеФайла.Вставить("Представление", ИмяФайла);
|
||||
ОписаниеФайла = ОписаниеФайла(ИмяФайла);
|
||||
ОписаниеФайла.Вставить("АдресВоВременномХранилище", ФайлОфисногоДокумента.Ключ);
|
||||
ОписаниеФайла.Вставить("ЭтоОфисныйДокумент", Истина);
|
||||
ОписаниеФайла.Вставить("ОбъектПечати", ОбъектПечати);
|
||||
Результат.Добавить(ОписаниеФайла);
|
||||
КонецЕсли;
|
||||
@@ -1387,10 +1380,8 @@
|
||||
ДвоичныеДанные.Записать(ПолноеИмяФайла);
|
||||
ЗаписьZipФайла.Добавить(ПолноеИмяФайла);
|
||||
Иначе
|
||||
ОписаниеФайла = Новый Структура;
|
||||
ОписаниеФайла.Вставить("Представление", ИмяФайла);
|
||||
ОписаниеФайла = ОписаниеФайла(ИмяФайла);
|
||||
ОписаниеФайла.Вставить("АдресВоВременномХранилище", НастройкаПечатнойФормы.АдресВоВременномХранилище);
|
||||
ОписаниеФайла.Вставить("ЭтоОфисныйДокумент", Истина);
|
||||
ОписаниеФайла.Вставить("ОбъектПечати", НастройкаПечатнойФормы.ОбъектПечати);
|
||||
Результат.Добавить(ОписаниеФайла);
|
||||
КонецЕсли;
|
||||
@@ -1403,8 +1394,7 @@
|
||||
ЗаписьZipФайла.Записать();
|
||||
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяАрхива);
|
||||
ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификаторХранилища);
|
||||
ОписаниеФайла = Новый Структура;
|
||||
ОписаниеФайла.Вставить("Представление", ПолучитьИмяФайлаДляАрхива(ПереводитьИменаФайловВТранслит, НастройкиПечатныхФормВр));
|
||||
ОписаниеФайла = ОписаниеФайла(ПолучитьИмяФайлаДляАрхива(ПереводитьИменаФайловВТранслит, НастройкиПечатныхФормВр));
|
||||
ОписаниеФайла.Вставить("АдресВоВременномХранилище", ПутьВоВременномХранилище);
|
||||
Если ПереданныеНастройки.Свойство("ОбъектПечати") Тогда
|
||||
ОписаниеФайла.Вставить("ОбъектПечати", ПереданныеНастройки.ОбъектПечати);
|
||||
@@ -1565,6 +1555,17 @@
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания());
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ОписаниеФайла(НаименованиеФайла = "")
|
||||
ОписаниеФайла = Новый Структура;
|
||||
ОписаниеФайла.Вставить("АдресВоВременномХранилище", "");
|
||||
ОписаниеФайла.Вставить("Название", НаименованиеФайла);
|
||||
ОписаниеФайла.Вставить("Печать", Истина);
|
||||
ОписаниеФайла.Вставить("Представление", НаименованиеФайла);
|
||||
ОписаниеФайла.Вставить("ОбъектПечати", Неопределено);
|
||||
ОписаниеФайла.Вставить("ЭтоОфисныйДокумент", Истина);
|
||||
Возврат ОписаниеФайла;
|
||||
КонецФункции
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
|
||||
@@ -30,9 +30,6 @@
|
||||
Элементы.ДекорацияДобавлениеМетокВремени.Видимость = Истина;
|
||||
Элементы.ДекорацияДобавлениеМетокВремени.Заголовок = НСтр("ru='В подписи будут добавлены архивные метки времени'");
|
||||
Элементы.ТипПодписи.Видимость = Ложь;
|
||||
ИначеЕсли Параметры.РежимПродления = "НеобработанныеПодписи" Тогда
|
||||
Элементы.ДобавитьАрхивнуюМеткуВремени.Видимость = Истина;
|
||||
Элементы.ТипПодписи.Видимость = Истина;
|
||||
Иначе
|
||||
Элементы.ДобавитьАрхивнуюМеткуВремени.Видимость = Истина;
|
||||
Элементы.ТипПодписи.Видимость = Истина;
|
||||
|
||||
@@ -4493,12 +4493,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если СледующийУровень Тогда
|
||||
Если Строка.Тип = "НастройкиКомпоновкиДанных" И Не Строка.ФлажокДоступен Тогда
|
||||
ПараметрыВыполнения.Оборачивать = Ложь;
|
||||
ИначеЕсли Строка.ПолучитьЭлементы().Количество() > 1 Тогда
|
||||
ПараметрыВыполнения.Оборачивать = Ложь;
|
||||
ИначеЕсли Строка.Тип = "КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных"
|
||||
И Строка.Подтип = "ТаблицаКолонки" Тогда
|
||||
Если (Строка.Тип = "НастройкиКомпоновкиДанных" И Не Строка.ФлажокДоступен)
|
||||
Или Строка.ПолучитьЭлементы().Количество() > 1
|
||||
Или (Строка.Тип = "КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных"
|
||||
И Строка.Подтип = "ТаблицаКолонки") Тогда
|
||||
ПараметрыВыполнения.Оборачивать = Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -3351,7 +3351,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция НаименованиеЗемельногоУчастка() Экспорт
|
||||
// АПК: 1036-выкл Данные адресного классификатора, не локализуются
|
||||
Возврат "Зем. участок";
|
||||
// АПК: 1036-вкл
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеУровняАдреса(Адрес, ИмяУровня) Экспорт
|
||||
|
||||
@@ -574,63 +574,43 @@
|
||||
ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки);
|
||||
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка");
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Формулировка",ОписаниеТипаСтроки));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Формулировка", ОписаниеТипаСтроки));
|
||||
|
||||
Если СтрокаДерева.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Табличный Тогда
|
||||
|
||||
ДобавитьРеквизитыТабличныйВопрос(СтрокаДерева,ДобавляемыеРеквизиты,Форма);
|
||||
|
||||
ИначеЕсли СтрокаДерева.ТипВопроса = Перечисления.ТипыВопросовШаблонаАнкеты.Комплексный Тогда
|
||||
|
||||
ДобавитьРеквизитыКомплексныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма);
|
||||
|
||||
Иначе
|
||||
|
||||
Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Тогда
|
||||
Если СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка
|
||||
Или СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда
|
||||
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(СтрокаДерева.Длина));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаСтроки,,СтрокаДерева.Формулировка));
|
||||
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда
|
||||
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(СтрокаДерева.Длина));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаСтроки,,СтрокаДерева.Формулировка));
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(СтрокаДерева.Длина));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса, ОписаниеТипаСтроки,, СтрокаДерева.Формулировка));
|
||||
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Булево Тогда
|
||||
|
||||
ОписаниеТипаБулево = Новый ОписаниеТипов("Булево");
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаБулево,,СтрокаДерева.Формулировка));
|
||||
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаБулево,, СтрокаДерева.Формулировка));
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Дата Тогда
|
||||
|
||||
ОписаниеТипаДата = Новый ОписаниеТипов("Дата",Новый КвалификаторыДаты(ЧастиДаты.Дата));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаДата,,СтрокаДерева.Формулировка));
|
||||
|
||||
ОписаниеТипаДата = Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаДата,, СтрокаДерева.Формулировка));
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Число Тогда
|
||||
|
||||
ОписаниеТипаЧисло = Новый ОписаниеТипов("Число",,,Новый КвалификаторыЧисла(СтрокаДерева.Длина,СтрокаДерева.Точность));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаЧисло,,СтрокаДерева.Формулировка));
|
||||
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы Тогда
|
||||
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,СтрокаДерева.ТипЗначения,,СтрокаДерева.Формулировка));
|
||||
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда
|
||||
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,СтрокаДерева.ТипЗначения,,СтрокаДерева.Формулировка));
|
||||
|
||||
ОписаниеТипаЧисло = Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(СтрокаДерева.Длина, СтрокаДерева.Точность));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,ОписаниеТипаЧисло,, СтрокаДерева.Формулировка));
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ЗначениеИнформационнойБазы
|
||||
Или СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.ОдинВариантИз Тогда
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса,СтрокаДерева.ТипЗначения,, СтрокаДерева.Формулировка));
|
||||
ИначеЕсли СтрокаДерева.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз Тогда
|
||||
|
||||
ВариантыОтветовНаВопрос = ВариантыОтветовНаВопрос(СтрокаДерева.ЭлементарныйВопрос,Форма);
|
||||
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150));
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150));
|
||||
ОписаниеТипаБулево = Новый ОписаниеТипов("Булево");
|
||||
|
||||
Счетчик = 0;
|
||||
|
||||
Для каждого ВариантОтвета Из ВариантыОтветовНаВопрос Цикл
|
||||
Счетчик = Счетчик + 1;
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Реквизит_" + Счетчик,ОписаниеТипаБулево,,ВариантОтвета.Представление));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(
|
||||
ИмяВопроса + "_Реквизит_" + Счетчик, ОписаниеТипаБулево,, ВариантОтвета.Представление));
|
||||
Если ВариантОтвета.ТребуетОткрытогоОтвета Тогда
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий_" + Счетчик,ОписаниеТипаСтроки));
|
||||
КонецЕсли;
|
||||
@@ -639,10 +619,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если (СтрокаДерева.ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз) И (СтрокаДерева.ТребуетсяКомментарий) Тогда
|
||||
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяВопроса + "_Комментарий",ОписаниеТипаСтроки,,СтрокаДерева.ПояснениеКомментария));
|
||||
|
||||
ОписаниеТипаСтроки = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150));
|
||||
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(
|
||||
ИмяВопроса + "_Комментарий", ОписаниеТипаСтроки,, СтрокаДерева.ПояснениеКомментария));
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -947,7 +926,7 @@
|
||||
|
||||
Если СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Тогда
|
||||
|
||||
Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий);
|
||||
Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий);
|
||||
Элемент.Вид = ВидПоляФормы.ПолеВвода;
|
||||
Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
|
||||
Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный;
|
||||
@@ -957,7 +936,7 @@
|
||||
|
||||
ИначеЕсли СтрокаТаблицы.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Текст Тогда
|
||||
|
||||
Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"),ЭлементГруппаВопросКомментарий);
|
||||
Элемент = Форма.Элементы.Добавить(ИмяВопроса,Тип("ПолеФормы"), ЭлементГруппаВопросКомментарий);
|
||||
Элемент.Вид = ВидПоляФормы.ПолеВвода;
|
||||
Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
|
||||
Элемент.АвтоОтметкаНезаполненного = СтрокаТаблицы.Обязательный;
|
||||
|
||||
@@ -459,10 +459,11 @@
|
||||
|
||||
ПараметрыБлокировки = СохраненныеПараметрыБлокировки();
|
||||
|
||||
Если ПараметрыБлокировки.РаботаСВнешнимиРесурсамиЗаблокирована = Неопределено Тогда
|
||||
Возврат Истина; // Установлен признак необходимости принятия решения о блокировке.
|
||||
ИначеЕсли ПараметрыБлокировки.РаботаСВнешнимиРесурсамиЗаблокирована = Истина Тогда
|
||||
Возврат Истина; // Блокировка работы с внешними ресурсами подтверждена администратором.
|
||||
// Установлен признак необходимости принятия решения о блокировке
|
||||
// или блокировка работы с внешними ресурсами подтверждена администратором.
|
||||
Если ПараметрыБлокировки.РаботаСВнешнимиРесурсамиЗаблокирована = Неопределено
|
||||
Или ПараметрыБлокировки.РаботаСВнешнимиРесурсамиЗаблокирована = Истина Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
|
||||
@@ -3744,6 +3744,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
ВыражениеДетальныхЗаписей = Формула.ПолучитьВыражениеДетальныхЗаписей();
|
||||
|
||||
Если ПустаяСтрока(ВыражениеДетальныхЗаписей) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВыражениеСодержитАгрегатнуюФункцию(ВыражениеДетальныхЗаписей) Тогда
|
||||
ВыражениеИтоговыхЗаписей = ВыражениеДетальныхЗаписей;
|
||||
Иначе
|
||||
|
||||
@@ -99,18 +99,14 @@
|
||||
|
||||
Контакты = Неопределено;
|
||||
|
||||
Если ЯвляетсяКонтактом(ДанныеЗаполнения) И Не ДанныеЗаполнения.ЭтоГруппа Тогда
|
||||
// На основании контакта
|
||||
Если ЯвляетсяКонтактом(ДанныеЗаполнения) И Не ДанныеЗаполнения.ЭтоГруппа Тогда
|
||||
Контакты = Новый Массив;
|
||||
Контакты.Добавить(ДанныеЗаполнения);
|
||||
|
||||
ИначеЕсли ВзаимодействияКлиентСервер.ЯвляетсяПредметом(ДанныеЗаполнения) Тогда
|
||||
// На основании предмета
|
||||
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоСсылке(ДанныеЗаполнения);
|
||||
Контакты = МенеджерОбъекта.ПолучитьКонтакты(ДанныеЗаполнения);
|
||||
|
||||
ИначеЕсли ВзаимодействияКлиентСервер.ЯвляетсяВзаимодействием(ДанныеЗаполнения) Тогда
|
||||
// На основании взаимодействия.
|
||||
// На основании предмета или взаимодействия
|
||||
ИначеЕсли ВзаимодействияКлиентСервер.ЯвляетсяПредметом(ДанныеЗаполнения)
|
||||
Или ВзаимодействияКлиентСервер.ЯвляетсяВзаимодействием(ДанныеЗаполнения) Тогда
|
||||
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоСсылке(ДанныеЗаполнения);
|
||||
Контакты = МенеджерОбъекта.ПолучитьКонтакты(ДанныеЗаполнения);
|
||||
|
||||
@@ -611,6 +607,20 @@
|
||||
НоваяСтрока.Контакт = ПолучательПисьма.ИсточникКонтактнойИнформации;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ПолучательОтвета Из Сообщение.ПолучателиОтвета Цикл
|
||||
НоваяСтрока = Письмо["ПолучателиОтвета"].Добавить();
|
||||
НоваяСтрока.Адрес = ПолучательОтвета.Адрес;
|
||||
НоваяСтрока.Представление = ПолучательОтвета.Представление;
|
||||
НоваяСтрока.Контакт = ПолучательОтвета.ИсточникКонтактнойИнформации;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ПолучательСкрытыхКопий Из Сообщение.ПолучателиСкрытыхКопий Цикл
|
||||
НоваяСтрока = Письмо["ПолучателиСкрытыхКопий"].Добавить();
|
||||
НоваяСтрока.Адрес = ПолучательСкрытыхКопий.Адрес;
|
||||
НоваяСтрока.Представление = ПолучательСкрытыхКопий.Представление;
|
||||
НоваяСтрока.Контакт = ПолучательСкрытыхКопий.ИсточникКонтактнойИнформации;
|
||||
КонецЦикла;
|
||||
|
||||
Письмо.СписокПолучателейПисьма = ВзаимодействияКлиентСервер.ПолучитьПредставлениеСпискаАдресатов(Письмо.ПолучателиПисьма, Ложь);
|
||||
Письмо.СтатусПисьма = ?(ОбщегоНазначения.ИнформационнаяБазаФайловая(),
|
||||
Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Черновик,
|
||||
@@ -774,7 +784,15 @@
|
||||
// * СообщенияПользователю - ФиксированныйМассив
|
||||
// * Получатели - ТаблицаЗначений:
|
||||
// ** Представление - Строка
|
||||
// ** АдресВоВременномХранилище - Строка
|
||||
// ** Адрес - Строка - адрес во временном хранилище
|
||||
// ** ИсточникКонтактнойИнформации - ОпределяемыеТип.ВладелецКонтактнойИнформации
|
||||
// * ПолучателиОтвета
|
||||
// ** Представление - Строка
|
||||
// ** Адрес - Строка - адрес во временном хранилище
|
||||
// ** ИсточникКонтактнойИнформации - ОпределяемыеТип.ВладелецКонтактнойИнформации
|
||||
// * ПолучателиСкрытыхКопий
|
||||
// ** Представление - Строка
|
||||
// ** Адрес - Строка - адрес во временном хранилище
|
||||
// ** ИсточникКонтактнойИнформации - ОпределяемыеТип.ВладелецКонтактнойИнформации
|
||||
// * Вложения - ТаблицаЗначений:
|
||||
// ** Представление - Строка
|
||||
@@ -804,6 +822,20 @@
|
||||
|
||||
Сообщение.Вставить("Получатели", Получатели);
|
||||
|
||||
ПолучателиОтвета = Новый ТаблицаЗначений;
|
||||
ПолучателиОтвета.Колонки.Добавить("Адрес", ТипСтрока);
|
||||
ПолучателиОтвета.Колонки.Добавить("Представление", ТипСтрока);
|
||||
ПолучателиОтвета.Колонки.Добавить("ИсточникКонтактнойИнформации", Метаданные.ОпределяемыеТипы.ВладелецКонтактнойИнформации.Тип);
|
||||
|
||||
Сообщение.Вставить("ПолучателиОтвета", ПолучателиОтвета);
|
||||
|
||||
ПолучателиСкрытыхКопий = Новый ТаблицаЗначений;
|
||||
ПолучателиСкрытыхКопий.Колонки.Добавить("Адрес", ТипСтрока);
|
||||
ПолучателиСкрытыхКопий.Колонки.Добавить("Представление", ТипСтрока);
|
||||
ПолучателиСкрытыхКопий.Колонки.Добавить("ИсточникКонтактнойИнформации", Метаданные.ОпределяемыеТипы.ВладелецКонтактнойИнформации.Тип);
|
||||
|
||||
Сообщение.Вставить("ПолучателиСкрытыхКопий", ПолучателиСкрытыхКопий);
|
||||
|
||||
Вложения = Новый ТаблицаЗначений;
|
||||
Вложения.Колонки.Добавить("Представление", ТипСтрока);
|
||||
Вложения.Колонки.Добавить("АдресВоВременномХранилище", ТипСтрока);
|
||||
@@ -1307,7 +1339,7 @@
|
||||
// ПарыЗамен - Соответствие - содержит пары значений оригинал и дубль.
|
||||
// НеобработанныеЗначенияОригиналов - Массив из Структура:
|
||||
// * ЗаменяемоеЗначение - ЛюбаяСсылка - оригинальное значение заменяемого объекта.
|
||||
// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам.
|
||||
// * ИспользуемыеСвязи - см. ОбщегоНазначения.СвязиПодчиненныхОбъектовПоТипам.
|
||||
// * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита.
|
||||
//
|
||||
Процедура ПриПоискеЗаменыСсылок(ПарыЗамен, НеобработанныеЗначенияОригиналов) Экспорт
|
||||
@@ -1329,15 +1361,11 @@
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
Если ТранзакцияАктивна() Тогда
|
||||
ОтменитьТранзакцию();
|
||||
КонецЕсли;
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru='Поиск и замена ссылок'", ОбщегоНазначения.КодОсновногоЯзыка())
|
||||
,УровеньЖурналаРегистрации.Ошибка
|
||||
,НеобработанныйДубль.ЗаменяемоеЗначение.Метаданные
|
||||
,,ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru='Поиск и замена ссылок'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,
|
||||
НеобработанныйДубль.ЗаменяемоеЗначение.Метаданные,,
|
||||
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -1413,7 +1441,7 @@
|
||||
Иначе
|
||||
Адрес = Параметры.Адрес;
|
||||
ДоменныйАдрес = ПолучитьДоменныйАдресДляПоиска(Параметры.Адрес);
|
||||
ВариантыПоискаПоСтроке = ПолучитьВариантыПоискаПоСтроке(Параметры.Представление, Параметры.Адрес);
|
||||
ВариантыПоискаПоСтроке = ВариантыПоискаПоСтроке(Параметры.Представление, Параметры.Адрес);
|
||||
Представление = Параметры.Представление;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1536,7 +1564,7 @@
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений
|
||||
//
|
||||
Функция ПолучитьВариантыПоискаПоСтроке(Представление, Адрес)
|
||||
Функция ВариантыПоискаПоСтроке(Представление, Адрес)
|
||||
|
||||
Если ПустаяСтрока(Представление) Тогда
|
||||
Возврат Адрес;
|
||||
@@ -2748,9 +2776,8 @@
|
||||
//
|
||||
Процедура ДозаполнитьПоляКонтактов(Контакт, Представление, Адрес, ТипКонтактнойИнформации = Неопределено) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(Контакт) Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Не ПустаяСтрока(Представление) И Не ПустаяСтрока(Адрес) Тогда
|
||||
Если Не ЗначениеЗаполнено(Контакт)
|
||||
Или (Не ПустаяСтрока(Представление) И Не ПустаяСтрока(Адрес)) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -1914,16 +1914,10 @@
|
||||
ДополнительныеПараметрыОтправки.Заменить = Истина;
|
||||
ДополнительныеПараметрыОтправки.ОтсрочкаДоставки = 3;
|
||||
ДополнительныеПараметрыОтправки.СобытиеЖурналаПриОтсрочкеДоставки =
|
||||
НСтр("ru = 'Длительные операция.Отложенная доставка прогресса'",
|
||||
НСтр("ru = 'Длительные операции.Отложенная доставка прогресса'",
|
||||
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Попытка
|
||||
ВызватьИсключение НСтр("ru = 'Стек вызовов:'");
|
||||
Исключение
|
||||
СтекВызовов = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
ДополнительныеПараметрыОтправки.КомментарийЖурналаПриОтсрочкеДоставки =
|
||||
НСтр("ru = 'Отправка прогресса чаще одного раза в 3 сек.'")
|
||||
+ Символы.ПС + СтекВызовов;
|
||||
НСтр("ru = 'Отправка прогресса чаще одного раза в 3 сек.'");
|
||||
КонецЕсли;
|
||||
|
||||
СерверныеОповещения.ОтправитьСерверноеОповещениеСИдентификаторомГруппы(ИмяОповещения(),
|
||||
@@ -1964,7 +1958,10 @@
|
||||
|
||||
ПоследнийИдентификатор = ПоследнийИдентификатор(ИдентификаторЗадания);
|
||||
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ПоследнийИдентификатор);
|
||||
Если ФоновоеЗадание <> Неопределено Тогда
|
||||
|
||||
Если ФоновоеЗадание <> Неопределено
|
||||
И Не МонопольныйРежимВФоновомЗадании(ФоновоеЗадание) Тогда
|
||||
|
||||
Сообщения = ФоновоеЗадание.ПолучитьСообщенияПользователю(Истина);
|
||||
Для Каждого Сообщение Из Сообщения Цикл
|
||||
// @skip-check query-in-loop - ветка с запросом вызывается только при первом вызове в сеансе
|
||||
@@ -1974,6 +1971,31 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// ФоновоеЗадание - ФоновоеЗадание - задание, активность которого нужно учесть.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - если Истина, значит в сеансе установлен монопольный режим и
|
||||
// хотя бы одно фоновое задание активно (то есть запись в сеансе недоступна).
|
||||
//
|
||||
Функция МонопольныйРежимВФоновомЗадании(ФоновоеЗадание = Неопределено)
|
||||
|
||||
Если Не МонопольныйРежим() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФоновоеЗадание <> Неопределено
|
||||
И ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Отбор = Новый Структура;
|
||||
Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
|
||||
|
||||
Возврат ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор).Количество() > 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЕстьФоновыеЗаданияВФайловойИБ()
|
||||
|
||||
ЗапущеноЗаданийВФайловойИБ = 0;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -8,23 +8,24 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Запускает изменение настроек скрытия персональных данных субъектов в соответствии с измененными
|
||||
// Запускает изменение настроек уничтожения персональных данных субъектов в соответствии с измененными
|
||||
// настройками системы.
|
||||
//
|
||||
// Параметры:
|
||||
// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы.
|
||||
// ПараметрыМетода - см. НастройкиСкрытияПерсональныхДанныхСистемы
|
||||
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы.
|
||||
// ПараметрыМетода - см. НастройкиУничтоженияПерсональныхДанныхСистемы
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ДлительныеОперации.ВыполнитьВФоне.
|
||||
//
|
||||
Функция ЗапуститьИзменениеНастроекСкрытияПДнВФоновомЗадании(Знач ИдентификаторФормы, Знач ПараметрыМетода) Экспорт
|
||||
Функция ЗапуститьДлительнуюОперациюИзменениеНастроекУничтоженияПДн(Знач ИдентификаторФормы, Знач ПараметрыМетода) Экспорт
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Изменение настроек скрытия персональных данных'");
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Изменение настроек уничтожения персональных данных'");
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
|
||||
Возврат ДлительныеОперации.ВыполнитьВФоне("ЗащитаПерсональныхДанных.ИзменитьНастройкиСкрытияПерсональныхДанных", ПараметрыМетода, ПараметрыВыполнения);
|
||||
Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения,
|
||||
"ЗащитаПерсональныхДанных.ИзменитьНастройкиУничтоженияПерсональныхДанных", ПараметрыМетода);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -32,16 +33,16 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ИспользоватьСкрытиеПерсональныхДанных - Булево - признак использования скрытия персональных данных субъектов.
|
||||
// * ДнейДоСкрытияПерсональныхДанных - Число - дней до скрытия персональных данных субъектов.
|
||||
// * ИспользоватьУничтожениеПерсональныхДанных - Булево - признак использования уничтожения персональных данных
|
||||
// субъектов.
|
||||
//
|
||||
Функция НастройкиСкрытияПерсональныхДанныхСистемы() Экспорт
|
||||
Функция НастройкиУничтоженияПерсональныхДанныхСистемы() Экспорт
|
||||
|
||||
НастройкиСкрытия = Новый Структура;
|
||||
НастройкиСкрытия.Вставить("ИспользоватьСкрытиеПерсональныхДанных", Константы.ИспользоватьСкрытиеПерсональныхДанныхСубъектов.Получить());
|
||||
НастройкиСкрытия.Вставить("ДнейДоСкрытияПерсональныхДанных", Константы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Получить());
|
||||
НастройкиУничтожения = Новый Структура;
|
||||
НастройкиУничтожения.Вставить("ИспользоватьУничтожениеПерсональныхДанных",
|
||||
Константы.ИспользоватьСкрытиеПерсональныхДанныхСубъектов.Получить());
|
||||
|
||||
Возврат НастройкиСкрытия;
|
||||
Возврат НастройкиУничтожения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -49,110 +50,17 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПараметрыВопросаПодтвержденияСкрытия(Субъекты) Экспорт
|
||||
|
||||
ТекстВопроса = "";
|
||||
ПараметрыВопроса = Новый Структура;
|
||||
|
||||
СкрываемыеСубъекты = Новый Массив;
|
||||
СкрываемыеСубъектыБезСогласия = Новый Массив;
|
||||
СкрываемыеСубъектыССогласием = Новый Массив;
|
||||
|
||||
ДатаСеанса = НачалоДня(ТекущаяДатаСеанса());
|
||||
ПустаяДата = Дата(1, 1, 1);
|
||||
|
||||
ДнейДоСкрытия = ЗащитаПерсональныхДанных.ДнейДоСкрытияПерсональныхДанныхСубъектов();
|
||||
НастройкиСубъектов = ЗащитаПерсональныхДанных.ПрочитатьНастройкиСкрытияСубъектов(Субъекты);
|
||||
|
||||
Для Каждого НастройкиСкрытия Из НастройкиСубъектов Цикл
|
||||
|
||||
Субъект = НастройкиСкрытия.Ключ;
|
||||
Настройки = НастройкиСкрытия.Значение;
|
||||
|
||||
Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено
|
||||
Или Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
|
||||
|
||||
Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено Тогда
|
||||
ТекстПричины = НСтр("ru = 'Скрытие ранее отменено по причине: %1.'");
|
||||
ТекстПричины = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПричины, Настройки.ПричинаОтменыСкрытия);
|
||||
Иначе
|
||||
ТекстПричины = НСтр("ru = 'Скрытие уже выполнено.'");
|
||||
КонецЕсли;
|
||||
|
||||
ТекстСообщения = НСтр("ru = 'Персональные данные субъекта ""%1"" не могут быть скрыты.
|
||||
|%2'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Субъект, ТекстПричины);
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
|
||||
|
||||
Продолжить;
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Настройки.Основание)
|
||||
И (Настройки.ДатаСкрытия = ПустаяДата Или Настройки.ДатаСкрытия - ДнейДоСкрытия * 86400 > ДатаСеанса) Тогда
|
||||
СкрываемыеСубъектыССогласием.Добавить(Субъект);
|
||||
Иначе
|
||||
СкрываемыеСубъектыБезСогласия.Добавить(Субъект);
|
||||
КонецЕсли;
|
||||
|
||||
СкрываемыеСубъекты.Добавить(Субъект);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(СкрываемыеСубъектыБезСогласия) Тогда
|
||||
|
||||
Заголовок = НСтр("ru = 'Будут скрыты персональные данные субъектов:'");
|
||||
ТекстВопроса = ПредставлениеСпискаСубъектов(Заголовок, СкрываемыеСубъектыБезСогласия);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СкрываемыеСубъектыССогласием) Тогда
|
||||
|
||||
Заголовок = НСтр("ru = 'Несмотря на полученное согласие на обработку ПДн, будут скрыты персональные данные субъектов:'");
|
||||
ТекстВопроса = ?(ЗначениеЗаполнено(ТекстВопроса), ТекстВопроса + Символы.ПС, "") + ПредставлениеСпискаСубъектов(Заголовок, СкрываемыеСубъектыССогласием);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстВопроса) Тогда
|
||||
ТекстВопроса = ТекстВопроса + Символы.ПС + НСтр("ru = 'Восстановление данных будет невозможно. Продолжить?'");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыВопроса.Вставить("Субъекты", СкрываемыеСубъекты);
|
||||
ПараметрыВопроса.Вставить("ТекстВопроса", ТекстВопроса);
|
||||
|
||||
Возврат ПараметрыВопроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеСпискаСубъектов(Заголовок, Субъекты)
|
||||
|
||||
ПредставлениеСписка = "";
|
||||
ПредставлениеСписка = Заголовок + Символы.ПС;
|
||||
|
||||
Если Субъекты.Количество() = 1 Тогда
|
||||
ПредставлениеСписка = СтрЗаменить(ПредставлениеСписка, НСтр("ru = 'субъектов'"), НСтр("ru = 'субъекта'"));
|
||||
КонецЕсли;
|
||||
|
||||
Номер = 1;
|
||||
Для Каждого Субъект Из Субъекты Цикл
|
||||
|
||||
ПредставлениеСписка = ПредставлениеСписка + ?(Номер <> 1, ", ", "");
|
||||
ПредставлениеСписка = ПредставлениеСписка + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1'"), Субъект);
|
||||
|
||||
Номер = Номер + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПредставлениеСписка + "." + Символы.ПС;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СкрытьПерсональныеДанныеСубъектов(Субъекты, СообщатьОбИсключениях = Ложь) Экспорт
|
||||
|
||||
ЗащитаПерсональныхДанных.СкрытьПерсональныеДанныеСубъектов(Субъекты, СообщатьОбИсключениях);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СохранитьПоложениеОтбораПоказыватьСоСкрытымиПДн(ИмяФормы, ПоложениеОтбора) Экспорт
|
||||
|
||||
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(ИмяФормы, "ПоказыватьСоСкрытымиПДн", ПоложениеОтбора);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ЗащитаПерсональныхДанныхПовтИсп.ТипыСубъектов
|
||||
Функция ТипыСубъектов() Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанных.ТипыСубъектов();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -26,7 +26,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Субъект = ПараметрыПечати.ОбъектыПечати[0];
|
||||
ОткрытьФорму("Документ.СогласиеНаОбработкуПерсональныхДанных.ФормаОбъекта", Новый Структура("Субъект", Субъект), ПараметрыПечати.Форма);
|
||||
ОткрытьФорму("Документ.СогласиеНаОбработкуПерсональныхДанных.ФормаОбъекта", Новый Структура("Субъект", Субъект),
|
||||
ПараметрыПечати.Форма);
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
@@ -34,7 +35,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции для встраивания подсистемы в формы объектов конфигурации.
|
||||
|
||||
// Определяет, что указанное событие - это событие о скрытии персональных данных субъектов
|
||||
// Определяет, что указанное событие - это событие об уничтожении персональных данных субъектов
|
||||
// и обновляет объект управляемой формы.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -43,13 +44,13 @@
|
||||
//
|
||||
Процедура ОбработкаОповещенияФормы(Форма, ИмяСобытия) Экспорт
|
||||
|
||||
Если ИмяСобытия = "ИзмененаДатаСкрытияПерсональныхДанных" Или ИмяСобытия = "СкрытыПерсональныеДанные" Тогда
|
||||
Если ИмяСобытия = "ИзмененаДатаУничтоженияПерсональныхДанных" Или ИмяСобытия = "УничтоженыПерсональныеДанные" Тогда
|
||||
Форма.Прочитать();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Определяет, что указанное событие - это событие о скрытии персональных данных субъектов
|
||||
// Определяет, что указанное событие - это событие об уничтожении персональных данных субъектов
|
||||
// и обновляет данные в таблице субъектов.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -58,7 +59,7 @@
|
||||
//
|
||||
Процедура ОбработкаОповещенияФормыСписка(СписокФормы, ИмяСобытия) Экспорт
|
||||
|
||||
Если ИмяСобытия = "ИзмененаДатаСкрытияПерсональныхДанных" Или ИмяСобытия = "СкрытыПерсональныеДанные" Тогда
|
||||
Если ИмяСобытия = "ИзмененаДатаУничтоженияПерсональныхДанных" Или ИмяСобытия = "УничтоженыПерсональныеДанные" Тогда
|
||||
СписокФормы.Обновить();
|
||||
КонецЕсли;
|
||||
|
||||
@@ -82,8 +83,8 @@
|
||||
Кнопка.Пометка = ПоказыватьСоСкрытымиПДн;
|
||||
Список.Параметры.УстановитьЗначениеПараметра("ПоказыватьСоСкрытымиПДн", ПоказыватьСоСкрытымиПДн);
|
||||
|
||||
ЗащитаПерсональныхДанныхВызовСервера.СохранитьПоложениеОтбораПоказыватьСоСкрытымиПДн(
|
||||
Форма.ИмяФормы, ПоказыватьСоСкрытымиПДн);
|
||||
ЗащитаПерсональныхДанныхВызовСервера.СохранитьПоложениеОтбораПоказыватьСоСкрытымиПДн(Форма.ИмяФормы,
|
||||
ПоказыватьСоСкрытымиПДн);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -92,43 +93,41 @@
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Настраивает элементы формы НастройкиПользователейИПрав обработки ПанельАдминистрированияБСП.
|
||||
// Запускает фоновое изменение настроек скрытия персональных данных.
|
||||
// Запускает фоновое изменение настроек уничтожения персональных данных.
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения - настраиваемая форма.
|
||||
//
|
||||
Процедура НастройкиСкрытияПерсональныхДанныхПриИзменении(Форма) Экспорт
|
||||
Процедура НастройкиУничтоженияПерсональныхДанныхПриИзменении(Форма) Экспорт
|
||||
|
||||
Элементы = Форма.Элементы;
|
||||
НаборКонстант = Форма.НаборКонстант;
|
||||
|
||||
ПараметрыВыполнения = Новый Структура;
|
||||
ПараметрыВыполнения.Вставить("ДнейДоСкрытияПерсональныхДанных", НаборКонстант.ДнейДоСкрытияПерсональныхДанныхСубъектов);
|
||||
ПараметрыВыполнения.Вставить("ИспользоватьСкрытиеПерсональныхДанных", НаборКонстант.ИспользоватьСкрытиеПерсональныхДанныхСубъектов);
|
||||
ПараметрыВыполнения = ЗащитаПерсональныхДанныхВызовСервера.НастройкиУничтоженияПерсональныхДанныхСистемы();
|
||||
ПараметрыВыполнения.ИспользоватьУничтожениеПерсональныхДанных =
|
||||
НаборКонстант.ИспользоватьСкрытиеПерсональныхДанныхСубъектов;
|
||||
|
||||
ФоновоеЗадание = ЗащитаПерсональныхДанныхВызовСервера.ЗапуститьИзменениеНастроекСкрытияПДнВФоновомЗадании(Форма.УникальныйИдентификатор, ПараметрыВыполнения);
|
||||
ДлительнаяОперация = ЗащитаПерсональныхДанныхВызовСервера.ЗапуститьДлительнуюОперациюИзменениеНастроекУничтоженияПДн(
|
||||
Форма.УникальныйИдентификатор, ПараметрыВыполнения);
|
||||
|
||||
ДоступностьЭлементов = Новый Соответствие;
|
||||
ДоступностьЭлементов.Вставить(Элементы.ИспользоватьСкрытиеПерсональныхДанных.Имя, Элементы.ИспользоватьСкрытиеПерсональныхДанных.Доступность);
|
||||
ДоступностьЭлементов.Вставить(Элементы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Имя, Элементы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Доступность);
|
||||
|
||||
Если ФоновоеЗадание <> Неопределено
|
||||
И ФоновоеЗадание.Статус = "Выполняется" Тогда
|
||||
|
||||
Элементы.ИспользоватьСкрытиеПерсональныхДанных.Доступность = Ложь;
|
||||
Элементы.ДнейДоСкрытияПерсональныхДанныхСубъектов.Доступность = Ложь;
|
||||
|
||||
Элементы.ДекорацияОжиданиеИзмененияИспользованияСкрытияПДн.Видимость = Истина;
|
||||
ДоступностьЭлементов.Вставить(Элементы.ИспользоватьУничтожениеПерсональныхДанных.Имя,
|
||||
Элементы.ИспользоватьУничтожениеПерсональныхДанных.Доступность);
|
||||
|
||||
Если ДлительнаяОперация <> Неопределено И ДлительнаяОперация.Статус = "Выполняется" Тогда
|
||||
Элементы.ИспользоватьУничтожениеПерсональныхДанных.Доступность = Ложь;
|
||||
Элементы.ДекорацияОжиданиеИзмененияИспользованияУничтоженияПДн.Видимость = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыИзмененияНастроекСкрытияПерсональныхДанных(Форма, ДоступностьЭлементов);
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыИзмененияНастроекУничтоженияПерсональныхДанных(Форма,
|
||||
ДоступностьЭлементов);
|
||||
|
||||
НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
|
||||
НастройкиОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ПослеИзмененияНастроекСкрытияПерсональныхДанных", ЭтотОбъект, ДополнительныеПараметры);
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ФоновоеЗадание, Обработчик, НастройкиОжидания);
|
||||
Обработчик = Новый ОписаниеОповещения("ПослеИзмененияНастроекУничтоженияПерсональныхДанных", ЭтотОбъект,
|
||||
ДополнительныеПараметры);
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Обработчик, НастройкиОжидания);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -137,10 +136,10 @@
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Параметры:
|
||||
// ФоновоеЗадание
|
||||
// ДополнительныеПараметры - см. ДополнительныеПараметрыИзмененияНастроекСкрытияПерсональныхДанных
|
||||
// ФоновоеЗадание - ФоновоеЗадание
|
||||
// ДополнительныеПараметры - см. ДополнительныеПараметрыИзмененияНастроекУничтоженияПерсональныхДанных
|
||||
//
|
||||
Процедура ПослеИзмененияНастроекСкрытияПерсональныхДанных(ФоновоеЗадание, ДополнительныеПараметры) Экспорт
|
||||
Процедура ПослеИзмененияНастроекУничтоженияПерсональныхДанных(ФоновоеЗадание, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Форма = ДополнительныеПараметры.Форма;
|
||||
ДоступностьЭлементов = ДополнительныеПараметры.ДоступностьЭлементов;
|
||||
@@ -160,25 +159,25 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если Элементы.ДекорацияОжиданиеИзмененияИспользованияСкрытияПДн.Видимость Тогда
|
||||
Элементы.ДекорацияОжиданиеИзмененияИспользованияСкрытияПДн.Видимость = Ложь;
|
||||
Если Элементы.ДекорацияОжиданиеИзмененияИспользованияУничтоженияПДн.Видимость Тогда
|
||||
Элементы.ДекорацияОжиданиеИзмененияИспользованияУничтоженияПДн.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФоновоеЗадание <> Неопределено
|
||||
И ФоновоеЗадание.Статус = "Выполнено" Тогда
|
||||
|
||||
Оповестить("Запись_НаборКонстант", Новый Структура, "ИспользоватьСкрытиеПерсональныхДанныхСубъектов");
|
||||
ПоказатьОповещениеПользователя(НСтр("ru = 'Настройки скрытия персональных данных изменены.'"));
|
||||
ПоказатьОповещениеПользователя(НСтр("ru = 'Настройки уничтожения персональных данных изменены.'"));
|
||||
|
||||
Иначе
|
||||
|
||||
СтарыеНастройкиСистемы = ЗащитаПерсональныхДанныхВызовСервера.НастройкиСкрытияПерсональныхДанныхСистемы();
|
||||
СтарыеНастройкиСистемы = ЗащитаПерсональныхДанныхВызовСервера.НастройкиУничтоженияПерсональныхДанныхСистемы();
|
||||
|
||||
НаборКонстант.ИспользоватьСкрытиеПерсональныхДанныхСубъектов = СтарыеНастройкиСистемы.ИспользоватьСкрытиеПерсональныхДанных;
|
||||
НаборКонстант.ДнейДоСкрытияПерсональныхДанныхСубъектов = СтарыеНастройкиСистемы.ДнейДоСкрытияПерсональныхДанных;
|
||||
НаборКонстант.ИспользоватьСкрытиеПерсональныхДанныхСубъектов =
|
||||
СтарыеНастройкиСистемы.ИспользоватьУничтожениеПерсональныхДанных;
|
||||
|
||||
Если ФоновоеЗадание <> Неопределено Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось изменить настройки скрытия персональных данных.
|
||||
ТекстОшибки = НСтр("ru = 'Не удалось изменить настройки уничтожения персональных данных.
|
||||
|См. подробности в журнале регистрации.'");
|
||||
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки);
|
||||
КонецЕсли;
|
||||
@@ -187,16 +186,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ДоступностьЭлементов - Соответствие
|
||||
// * Форма - ФормаКлиентскогоПриложения
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения
|
||||
// ДоступностьЭлементов - Соответствие из КлючИЗначение:
|
||||
// * Ключ - Строка
|
||||
// * Значение - Булево
|
||||
//
|
||||
Функция ДополнительныеПараметрыИзмененияНастроекСкрытияПерсональныхДанных(Форма, ДоступностьЭлементов)
|
||||
// Возвращаемое значение:
|
||||
// Структура -дополнительные параметры изменения настроек уничтожения персональных данных:
|
||||
// * Форма - ФормаКлиентскогоПриложения
|
||||
// * ДоступностьЭлементов - Соответствие из КлючИЗначение:
|
||||
// * Ключ - Строка
|
||||
// * Значение - Булево
|
||||
//
|
||||
Функция ДополнительныеПараметрыИзмененияНастроекУничтоженияПерсональныхДанных(Форма, ДоступностьЭлементов)
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("Форма", Форма);
|
||||
ДополнительныеПараметры.Вставить("ДоступностьЭлементов", ДоступностьЭлементов);
|
||||
Возврат ДополнительныеПараметры
|
||||
|
||||
Возврат ДополнительныеПараметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -24,14 +24,14 @@
|
||||
// альтернативные - символом "|";
|
||||
// * ПоляДоступа - Строка - имена полей доступа через запятую. Обращение (попытка доступа) к этим полям
|
||||
// приводит к записи журнала;
|
||||
// * ОбластьДанных - Строка - идентификатор области данных, если их несколько. Необязательно для заполнения.
|
||||
// * ОбластьДанных - Строка - идентификатор категории данных.
|
||||
//
|
||||
// Пример:
|
||||
// Сведения = ТаблицаСведений.Добавить();
|
||||
// Сведения.Объект = "Справочник.ФизическиеЛица";
|
||||
// Сведения.ПоляРегистрации = "Ссылка";
|
||||
// Сведения.ПоляДоступа = "Наименование,ДатаРождения";
|
||||
// Сведения.ОбластьДанных = "ЛичныеДанные";
|
||||
// Сведения.ПоляДоступа = "Наименование";
|
||||
// Сведения.ОбластьДанных = "ФИО";
|
||||
//
|
||||
// Сведения = ТаблицаСведений.Добавить();
|
||||
// Сведения.Объект = "Справочник.ФизическиеЛица";
|
||||
@@ -48,12 +48,12 @@
|
||||
// Обеспечивает составление коллекции областей персональных данных.
|
||||
//
|
||||
// Параметры:
|
||||
// ОбластиПерсональныхДанных - ТаблицаЗначений:
|
||||
// * Имя - Строка - идентификатор области данных.
|
||||
// * Представление - Строка - пользовательское представление области данных.
|
||||
// * Родитель - Строка - идентификатор родительской области данных.
|
||||
// КатегорииПерсональныхДанных - ТаблицаЗначений:
|
||||
// * Имя - Строка - идентификатор категории данных.
|
||||
// * Представление - Строка - пользовательское представление категории данных.
|
||||
// * Родитель - Строка - идентификатор родительской категории данных.
|
||||
//
|
||||
Процедура ЗаполнитьОбластиПерсональныхДанных(ОбластиПерсональныхДанных) Экспорт
|
||||
Процедура ЗаполнитьОбластиПерсональныхДанных(КатегорииПерсональныхДанных) Экспорт
|
||||
|
||||
|
||||
|
||||
@@ -63,7 +63,11 @@
|
||||
// переданных в качестве параметров, субъектов.
|
||||
//
|
||||
// Параметры:
|
||||
// СубъектыПерсональныхДанных - ДанныеФормыКоллекция - содержит сведения о субъектах.
|
||||
// СубъектыПерсональныхДанных - Массив из Структура - содержит сведения о субъектах:
|
||||
// * Субъект - ОпределяемыйТип.СубъектПерсональныхДанных
|
||||
// * ФИО - Строка
|
||||
// * Адрес - Строка
|
||||
// * ПаспортныеДанные - Строка
|
||||
// ДатаАктуальности - Дата - дата, на которую нужно заполнить сведения.
|
||||
//
|
||||
Процедура ДополнитьДанныеСубъектовПерсональныхДанных(СубъектыПерсональныхДанных, ДатаАктуальности) Экспорт
|
||||
@@ -98,17 +102,139 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Позволяет проверить возможность скрытия персональных данных и задать состав исключений для записи в данных.
|
||||
// Возвращает организацию по умолчанию.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОпределяемыйТип.Организация
|
||||
//
|
||||
Функция ОрганизацияПоУмолчанию() Экспорт
|
||||
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область УничтожениеПерсональныхДанных
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Уничтожение персональных данных (ПДн) выполняется при проведении документа "Акт об уничтожении персональных данных".
|
||||
// При этом выполняется поиск объектов информационной базы, в которых содержатся ПДн субъектов.
|
||||
// Состав таких объектов и их полей описывается в методе ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных.
|
||||
// В найденных объектах значения реквизитов, содержащих ПДн, очищаются или заменяются случайными значениями.
|
||||
// Запись объекта с уничтоженными ПДн выполняется в режиме загрузки. В случае необходимости выполнения дополнительных
|
||||
// действий, при уничтожении ПДн перед записью и после записи объекта можно использовать обработчики
|
||||
// ПередУничтожениемПерсональныхДанных и ПослеУничтоженияПерсональныхДанных соответственно.
|
||||
|
||||
// Заполняет таблицу значений с описанием объектов метаданных и их полей, в которых содержатся персональные данные
|
||||
// субъектов, подлежащие уничтожению.
|
||||
//
|
||||
// Например, персональные данные физического лицо могут храниться в самом справочнике ФизическиеЛица,
|
||||
// в регистре сведений ФИОФизическихЛиц, в документе ВедомостьНаВыплатуЗарплатыВБанк и т.д.
|
||||
//
|
||||
// Параметры:
|
||||
// Субъекты - Массив - ссылки на объекты данных, чьи персональные данные будут скрыты.
|
||||
// ТаблицаИсключений - ТаблицаЗначений - таблица, в которую добавляются субъекты и причины отказа их скрытия.
|
||||
// Состав полей см. в функции ЗащитаПерсональныхДанных.НоваяТаблицаИсключений.
|
||||
// ТаблицаСведений - ТаблицаЗначений:
|
||||
// * Объект - Строка - полное имя объекта метаданных, в котором содержатся персональные данные субъекта.
|
||||
// Например, "Справочник.ФизическиеЛица".
|
||||
// * ПолеСубъект - Строка - имя поля объекта, в котором содержится ссылка на субъекта.
|
||||
// Для стандартных реквизитов используется имя реквизита, например "Ссылка".
|
||||
// Для остальных полей используется полное имя объекта метаданных реквизита, например
|
||||
// "Документ.ВедомостьНаВыплатуЗарплатыВБанк.ТабличнаяЧасть.Состав.Реквизит.ФизическоеЛицо"
|
||||
// * Поля - Массив из Строка, Строка - имена полей объекта, в которых содержатся персональные данные субъекта
|
||||
// Для стандартных реквизитов используется имя реквизита, например "Наименование".
|
||||
// Для остальных полей используется полное имя объекта метаданных реквизита, например
|
||||
// "Справочник.ФизическиеЛица.Реквизит.ФИО"
|
||||
// * КатегорияДанных - Строка - категория, к которой относятся персональные данные.
|
||||
//
|
||||
// Пример:
|
||||
//
|
||||
// НовыеСведения = ТаблицаСведений.Добавить();
|
||||
// НовыеСведения.Объект = "Справочник.ФизическиеЛица";
|
||||
// НовыеСведения.ПолеСубъект = "Ссылка";
|
||||
// НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Наименование");
|
||||
// НовыеСведения.КатегорияДанных = "ФИО";
|
||||
//
|
||||
// НовыеСведения = ТаблицаСведений.Добавить();
|
||||
// НовыеСведения.Объект = "Документ.ВедомостьНаВыплатуЗарплатыВБанк";
|
||||
// НовыеСведения.ПолеСубъект = "Документ.ВедомостьНаВыплатуЗарплатыВБанк.ТабличнаяЧасть.Состав.Реквизит.ФизическоеЛицо";
|
||||
// НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(
|
||||
// "Документ.ВедомостьНаВыплатуЗарплатыВБанк.ТабличнаяЧасть.Состав.Реквизит.СНИЛС");
|
||||
// НовыеСведения.КатегорияДанных = "СНИЛС";
|
||||
//
|
||||
Процедура ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений) Экспорт
|
||||
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Позволяет выполнить дополнительные действия перед уничтожением персональных данных субъектов. В том числе, отказаться
|
||||
// от уничтожения персональных данных, добавив субъекта в таблицу исключений с указанием причины отказа от уничтожения.
|
||||
// Или же добавить в массив субъектов других субъектов, данные которых тоже должны быть уничтожены. Например, если при
|
||||
// уничтожении данных физического лица должны быть уничтожены данные связанных с ним кандидатов.
|
||||
//
|
||||
// Параметры:
|
||||
// Субъекты - Массив из ОпределяемыйТип.СубъектПерсональныхДанных - ссылки на объекты данных, чьи персональные данные
|
||||
// будут уничтожены.
|
||||
// ТаблицаИсключений - ТаблицаЗначений:
|
||||
// * Субъект - ОпределяемыйТип.СубъектПерсональныхДанных
|
||||
// * ПричинаОтменыУничтожения - Строка
|
||||
// - ТаблицаЗначений - в которую добавляются субъекты и причины отказа уничтожения их данных
|
||||
// ОтказОтСкрытия - Булево - (по умолчанию Истина) признак отказа от скрытия. Если определены причины отказа
|
||||
// от скрытия, то параметру необходимо установить значение Ложь.
|
||||
//
|
||||
Процедура ПередСкрытиемПерсональныхДанныхСубъектов(Субъекты, ТаблицаИсключений, ОтказОтСкрытия) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Позволяет выполнить дополнительные действия при уничтожении персональных данных перед записью объекта,
|
||||
// а также отказаться от записи объекта.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект,ДокументОбъект
|
||||
// Субъекты - Массив из ОпределяемыйТип.СубъектПерсональныхДанных
|
||||
// ВыполнитьЗаписьОбъекта - Булево - если Ложь, то запись объекта не выполняется.
|
||||
//
|
||||
Процедура ПередУничтожениемПерсональныхДанных(Объект, Субъекты, ВыполнитьЗаписьОбъекта) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Позволяет выполнить дополнительные действия при уничтожении персональных данных после записи объекта.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект,ДокументОбъект
|
||||
// Субъекты - Массив из ОпределяемыйТип.СубъектПерсональныхДанных
|
||||
//
|
||||
Процедура ПослеУничтоженияПерсональныхДанных(Объект, Субъекты) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Срок хранения ПДн - это дата после которой необходимо уничтожить ПДн субъекта. Ранее этой даты уничтожить ПДн нельзя.
|
||||
// Сроки хранения ПДн рассчитываются автоматически регламентным заданием РасчетСроковХраненияПерсональныхДанных.
|
||||
// При наступлении события, которое влияет на срок хранения ПДн, необходимо с помощью метода
|
||||
// ЗащитаПерсональныхДанных.ДобавитьСубъектыДляРасчетаСроковХранения зарегистрировать субъекта для расчета срока хранения.
|
||||
// Такими событиями могут быть, например, создание нового физического лица, ввод согласия на обработку ПДн или
|
||||
// прием сотрудника на работу.
|
||||
// При расчете сроков хранения ПДн, в процедуре ПриРасчетеСроковХраненияПерсональныхДанных заполняется таблица значений,
|
||||
// в которую различные подсистемы добавляют рассчитанные сроки хранения. Датой, при наступлении которой данные подлежат
|
||||
// уничтожению, будет определена самая поздняя из всех заполненных для этого субъекта.
|
||||
|
||||
// Позволяет добавить в таблицу значений информацию о сроках хранения персональных данных.
|
||||
//
|
||||
// Параметры:
|
||||
// ДанныеСубъектов - ТаблицаЗначений:
|
||||
// * Субъект - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка на субъекта.
|
||||
// * ДатаСобытия - Дата - дата события, которое потребовало обновления срока хранения персональных данных.
|
||||
// СрокиХранения - ТаблицаЗначений:
|
||||
// * Субъект - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка на субъекта
|
||||
// * СрокХранения - Дата - дата, до которой должны храниться персональные данные субъекта и при наступлении которой,
|
||||
// они должны быть уничтожены.
|
||||
// * Организация - ОпределяемыйТип.Организация - ссылка на организацию субъекта (если организацию определить
|
||||
// невозможно, не заполняется)
|
||||
// * Комментарий - Строка - произвольная строка с пояснением к рассчитанному сроку хранения.
|
||||
//
|
||||
Процедура ПриРасчетеСроковХраненияПерсональныхДанных(ДанныеСубъектов, СрокиХранения) Экспорт
|
||||
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -8,247 +8,80 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Функция формирует структуру, необходимую для установки индекса картинки
|
||||
// в таблице событий журнала регистрации.
|
||||
//
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.НомераКартинокСобытий152ФЗ
|
||||
Функция НомераКартинокСобытий152ФЗ() Экспорт
|
||||
|
||||
НомераКартинок = Новый Соответствие;
|
||||
НомераКартинок.Вставить("_$Session$_.Authentication", 1);
|
||||
НомераКартинок.Вставить("_$Session$_.AuthenticationError", 2);
|
||||
НомераКартинок.Вставить("_$Session$_.Start", 3);
|
||||
НомераКартинок.Вставить("_$Session$_.Finish", 4);
|
||||
НомераКартинок.Вставить("_$Access$_.Access", 5);
|
||||
НомераКартинок.Вставить("_$Access$_.AccessDenied", 6);
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(НомераКартинок);
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.НомераКартинокСобытий152ФЗ();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полные имена объектов метаданных содержащих персональные данные.
|
||||
//
|
||||
// Параметры:
|
||||
// Нет
|
||||
//
|
||||
// Возвращаемое значение
|
||||
// Массив - массив строк. Например: "РегистрСведений.ДокументыФизическихЛиц".
|
||||
//
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.ИменаИсточниковПерсональныхДанных
|
||||
Функция ИменаИсточниковПерсональныхДанных() Экспорт
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанныхПовтИсп.СведенияОПерсональныхДанных();
|
||||
ТаблицаСведений.Сортировать("Объект");
|
||||
|
||||
ИменаИсточников = ТаблицаСведений.ВыгрузитьКолонку("Объект");
|
||||
ИменаИсточников = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ИменаИсточников);
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаИсточников);
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.ИменаИсточниковПерсональныхДанных();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полные имена реквизитов объекта метаданных содержащего персональные данные по его полному имени.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяИсточника - Строка - полное имя источника метаданных. Например: "Справочник.ФизическиеЛица".
|
||||
//
|
||||
// Возвращаемое значение
|
||||
// Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо".
|
||||
//
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.ИменаРеквизитовИсточникаСодержащихСубъект
|
||||
Функция ИменаРеквизитовИсточникаСодержащихСубъект(ИмяИсточника) Экспорт
|
||||
|
||||
ИменаРеквизитовСодержащихСубъект = Новый Массив;
|
||||
МетаданныеПоТипамСубъекта = ЗащитаПерсональныхДанныхПовтИсп.МетаданныеПоТипамСубъекта();
|
||||
|
||||
МетаданныеИсточника = ОбщегоНазначения.ОбъектМетаданныхПоПолномуИмени(ИмяИсточника); // ОбъектМетаданныхСправочник
|
||||
ИсточникЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(МетаданныеИсточника);
|
||||
ТипыСсылкиИсточника = ?(ИсточникЭтоРегистр, Новый Массив, МетаданныеИсточника.СтандартныеРеквизиты.Ссылка.Тип.Типы());
|
||||
ИсточникИмеетВладельца = ОбщегоНазначения.ЭтоСправочник(МетаданныеИсточника) И МетаданныеИсточника.Владельцы.Количество() > 0;
|
||||
|
||||
ПоляСведений = ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяИсточника);
|
||||
ПоляДоступа = ПоляСведений.ПоляДоступа;
|
||||
ПоляРегистрации = ПоляСведений.ПоляРегистрации;
|
||||
|
||||
ИменаТЧСодержащихСведения = Новый Массив;
|
||||
|
||||
Если Не ИсточникЭтоРегистр Тогда
|
||||
|
||||
ИменаТабличныхЧастей = Новый Массив;
|
||||
ТабличныеЧасти = МетаданныеИсточника.ТабличныеЧасти;
|
||||
|
||||
Для Каждого ТабличнаяЧасть Из ТабличныеЧасти Цикл
|
||||
ИменаТабличныхЧастей.Добавить(ТабличнаяЧасть.Имя);
|
||||
КонецЦикла;
|
||||
|
||||
ИменаТЧСодержащихСведения = ИменаТЧОбъектаСодержащихСведенияОПерсональныхДанных(ИменаТабличныхЧастей, ПоляДоступа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ТипСубъектаИМетаданные Из МетаданныеПоТипамСубъекта Цикл
|
||||
|
||||
ТипСубъекта = ТипСубъектаИМетаданные.Ключ;
|
||||
МетаданныеСубъекта = ТипСубъектаИМетаданные.Значение;
|
||||
|
||||
ИменаРеквизитовИсточника = Новый Массив;
|
||||
ИменаРеквизитовТЧИсточника = Новый Соответствие;
|
||||
|
||||
Если ИсточникЭтоРегистр Тогда
|
||||
|
||||
ИменаИзмеренийТипа = ЗащитаПерсональныхДанных.ИменаИзмеренийРегистраПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитовИсточника, ИменаИзмеренийТипа);
|
||||
|
||||
Иначе
|
||||
|
||||
Если ТипыСсылкиИсточника.Найти(ТипСубъекта) <> Неопределено Тогда
|
||||
ИменаРеквизитовИсточника.Добавить("Ссылка");
|
||||
Иначе
|
||||
|
||||
Если ИсточникИмеетВладельца Тогда
|
||||
|
||||
Если МетаданныеИсточника.Владельцы.Содержит(МетаданныеСубъекта) Тогда
|
||||
ИменаРеквизитовИсточника.Добавить("Владелец");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ИменаРеквизитовИсточника.Количество() = 0 Тогда
|
||||
|
||||
ИменаРеквизитовТипа = ЗащитаПерсональныхДанных.ИменаРеквизитовПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитовИсточника, ИменаРеквизитовТипа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяТабличнойЧасти Из ИменаТЧСодержащихСведения Цикл
|
||||
|
||||
ИменаРеквизитовТЧТипа = ЗащитаПерсональныхДанных.ИменаРеквизитовТЧОбъектаПоТипу(МетаданныеИсточника, ИмяТабличнойЧасти, ТипСубъекта, Истина);
|
||||
Если ИменаРеквизитовТЧТипа.Количество() > 0 Тогда
|
||||
ИменаРеквизитовТЧИсточника.Вставить(ИмяТабличнойЧасти, ИменаРеквизитовТЧТипа);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовИсточника Цикл
|
||||
|
||||
Если ПоляРегистрации.Найти(ИмяРеквизита) <> Неопределено Тогда
|
||||
ИменаРеквизитовСодержащихСубъект.Добавить(ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ТЧИРеквизиты Из ИменаРеквизитовТЧИсточника Цикл
|
||||
|
||||
ИменаРеквизитовТЧ = ТЧИРеквизиты.Значение;
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовТЧ Цикл
|
||||
|
||||
Если ПоляРегистрации.Найти(ИмяРеквизита) <> Неопределено Тогда
|
||||
ИменаРеквизитовСодержащихСубъект.Добавить(ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ИменаРеквизитовСодержащихСубъект.Количество() > 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаРеквизитовСодержащихСубъект);
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.ИменаРеквизитовИсточникаСодержащихСубъект(ИмяИсточника);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает имена полей регистрации и полей доступа сведений о персональных данных объекта по его полному имени.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяОбъекта - Строка - полное имя объекта метаданных. Например: "Справочник.ФизическиеЛица".
|
||||
//
|
||||
// Возвращаемое значение
|
||||
// Структура:
|
||||
/// ПоляРегистрации - Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо".
|
||||
/// ПоляДоступа - Массив - массив строк. Например: "ИНН" или "ФизическиеЛица.ИНН".
|
||||
//
|
||||
Функция ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяОбъекта)
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.КраткоеИмяПоля
|
||||
Функция КраткоеИмяПоля(ПолноеИмяПоля, ПолноеИмяОбъекта) Экспорт
|
||||
|
||||
ИменаПолейРегистрации = Новый Массив;
|
||||
ИменаПолейДоступа = Новый Массив;
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанныхПовтИсп.СведенияОПерсональныхДанных();
|
||||
СтрокиСведений = ТаблицаСведений.НайтиСтроки(Новый Структура("Объект", ИмяОбъекта));
|
||||
|
||||
Для Каждого СтрокаСведений Из СтрокиСведений Цикл
|
||||
|
||||
ПоляДоступа = СтрРазделить(СтрокаСведений.ПоляДоступа, ",");
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаПолейДоступа, ПоляДоступа, Истина);
|
||||
|
||||
ПоляРегистрации = СтрРазделить(СтрокаСведений.ПоляРегистрации, ",|");
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаПолейРегистрации, ПоляРегистрации, Истина);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура("ПоляДоступа,ПоляРегистрации", ИменаПолейДоступа, ИменаПолейРегистрации);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИменаТЧОбъектаСодержащихСведенияОПерсональныхДанных(ИменаТЧОбъекта, ИменаРеквизитов)
|
||||
|
||||
ИменаТЧСодержащихСведения = Новый Массив;
|
||||
|
||||
Для Каждого ИмяТЧОбъекта Из ИменаТЧОбъекта Цикл
|
||||
|
||||
ПодстрокаПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.", ИмяТЧОбъекта);
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитов Цикл
|
||||
|
||||
Если СтрНайти(ИмяРеквизита, ПодстрокаПоиска) <> 0 Тогда
|
||||
|
||||
ИменаТЧСодержащихСведения.Добавить(ИмяТЧОбъекта);
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИменаТЧСодержащихСведения;
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.КраткоеИмяПоля(ПолноеИмяПоля, ПолноеИмяОбъекта);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.СведенияОПерсональныхДанных
|
||||
Функция СведенияОПерсональныхДанных() Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанных.СведенияОПерсональныхДанных();
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.СведенияОПерсональныхДанных();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ФиксированноеСоответствие из КлючИЗначение:
|
||||
// * Ключ - Тип
|
||||
// * Значение - ОбъектМетаданных
|
||||
//
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.УничтожаемыеПерсональныеДанные
|
||||
Функция УничтожаемыеПерсональныеДанные() Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.УничтожаемыеПерсональныеДанные();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.КатегорииПерсональныхДанных
|
||||
Функция КатегорииПерсональныхДанных() Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.КатегорииПерсональныхДанных();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// см. ЗащитаПерсональныхДанныхСлужебный.КатегорииПерсональныхДанных
|
||||
Функция МетаданныеПоТипамСубъекта() Экспорт
|
||||
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанныхПовтИсп.ТипыСубъектов();
|
||||
|
||||
МетаданныеПоТипуСубъектов = Новый Соответствие;
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
МетаданныеПоТипуСубъектов.Вставить(ТипСубъекта, Метаданные.НайтиПоТипу(ТипСубъекта));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(МетаданныеПоТипуСубъектов);
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.МетаданныеПоТипамСубъекта();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ФиксированныйМассив - типы субъектов персональных данных.
|
||||
//
|
||||
// см. ЗащитаПерсональныхДанныхСлужебный.ТипыСубъектов
|
||||
Функция ТипыСубъектов() Экспорт
|
||||
|
||||
ТипыСубъектов = Метаданные.ОпределяемыеТипы.СубъектПерсональныхДанных.Тип.Типы();
|
||||
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ТипыСубъектов, Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"));
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.ТипыСубъектов();
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ТипыСубъектов);
|
||||
КонецФункции
|
||||
|
||||
// см. ЗащитаПерсональныхДанныхСлужебный.ИменаМетаданныхПоТипамСубъекта
|
||||
Функция ИменаМетаданныхПоТипамСубъекта() Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.ИменаМетаданныхПоТипамСубъекта();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. ЗащитаПерсональныхДанныхСлужебный.ПредставлениеКатегорииПерсональныхДанных
|
||||
Функция ПредставлениеКатегорииПерсональныхДанных(ИмяКатегории) Экспорт
|
||||
|
||||
Возврат ЗащитаПерсональныхДанныхСлужебный.ПредставлениеКатегорииПерсональныхДанных(ИмяКатегории);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -0,0 +1,522 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2023, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Функция формирует структуру, необходимую для установки индекса картинки в таблице событий журнала регистрации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированноеСоответствие из КлючИЗначение:
|
||||
// * Ключ - Строка
|
||||
// * Значение - Число
|
||||
//
|
||||
Функция НомераКартинокСобытий152ФЗ() Экспорт
|
||||
|
||||
НомераКартинок = Новый Соответствие;
|
||||
НомераКартинок.Вставить("_$Session$_.Authentication", 1);
|
||||
НомераКартинок.Вставить("_$Session$_.AuthenticationError", 2);
|
||||
НомераКартинок.Вставить("_$Session$_.Start", 3);
|
||||
НомераКартинок.Вставить("_$Session$_.Finish", 4);
|
||||
НомераКартинок.Вставить("_$Access$_.Access", 5);
|
||||
НомераКартинок.Вставить("_$Access$_.AccessDenied", 6);
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(НомераКартинок);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * Объект - Строка
|
||||
// * ПоляРегистрации - Строка
|
||||
// * ПоляДоступа - Строка
|
||||
// * ОбластьДанных - Строка
|
||||
//
|
||||
Функция СведенияОПерсональныхДанных() Экспорт
|
||||
|
||||
// Таблица сведений о персональных данных.
|
||||
ТаблицаСведений = Новый ТаблицаЗначений;
|
||||
ТаблицаСведений.Колонки.Добавить("Объект", Новый ОписаниеТипов("Строка"));
|
||||
ТаблицаСведений.Колонки.Добавить("ПоляРегистрации", Новый ОписаниеТипов("Строка"));
|
||||
ТаблицаСведений.Колонки.Добавить("ПоляДоступа", Новый ОписаниеТипов("Строка"));
|
||||
ТаблицаСведений.Колонки.Добавить("ОбластьДанных", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
// Сведения о персональных данных в самой подсистеме.
|
||||
НовыеСведения = ТаблицаСведений.Добавить();
|
||||
НовыеСведения.Объект = "Документ.СогласиеНаОбработкуПерсональныхДанных";
|
||||
НовыеСведения.ПоляРегистрации = "Субъект,ФИОСубъекта";
|
||||
НовыеСведения.ПоляДоступа = "ФИОСубъекта,АдресСубъекта,ПаспортныеДанные,СрокДействия";
|
||||
НовыеСведения.ОбластьДанных = "ОбработкаПерсональныхДанных";
|
||||
|
||||
НовыеСведения = ТаблицаСведений.Добавить();
|
||||
НовыеСведения.Объект = "РегистрСведений.СогласияНаОбработкуПерсональныхДанных";
|
||||
НовыеСведения.ПоляРегистрации = "Субъект";
|
||||
НовыеСведения.ПоляДоступа = "СрокДействия";
|
||||
НовыеСведения.ОбластьДанных = "ОбработкаПерсональныхДанных";
|
||||
|
||||
// Заполнение таблицы сведений потребителями.
|
||||
ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений);
|
||||
|
||||
Возврат ТаблицаСведений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * Имя - Строка
|
||||
// * Представление - Строка
|
||||
// * Родитель - Строка
|
||||
//
|
||||
Функция КатегорииПерсональныхДанных() Экспорт
|
||||
|
||||
// Соответствие идентификаторов категорий и их пользовательских представлений.
|
||||
КатегорииДанных = Новый ТаблицаЗначений;
|
||||
КатегорииДанных.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
|
||||
КатегорииДанных.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
|
||||
КатегорииДанных.Колонки.Добавить("Родитель", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
НоваяКатегория = КатегорииДанных.Добавить();
|
||||
НоваяКатегория.Имя = "ОбработкаПерсональныхДанных";
|
||||
НоваяКатегория.Представление = НСтр("ru = 'Обработка ПДн'");
|
||||
|
||||
// Заполнение категорий потребителями.
|
||||
ЗащитаПерсональныхДанныхПереопределяемый.ЗаполнитьОбластиПерсональныхДанных(КатегорииДанных);
|
||||
|
||||
Возврат КатегорииДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полные имена объектов метаданных, содержащих персональные данные.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка - например: "РегистрСведений.ДокументыФизическихЛиц".
|
||||
//
|
||||
Функция ИменаИсточниковПерсональныхДанных() Экспорт
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанных.СведенияОПерсональныхДанных();
|
||||
ТаблицаСведений.Сортировать("Объект");
|
||||
|
||||
ИменаИсточников = ТаблицаСведений.ВыгрузитьКолонку("Объект");
|
||||
ИменаИсточников = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ИменаИсточников);
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаИсточников);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает таблицу значений с описанием полей объектов для уничтожения персональных данных.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * Объект - Строка - полное имя объекта метаданных
|
||||
// * ПолеСубъект - Строка - полное имя поля Объекта со ссылкой на Субъект
|
||||
// * Поля - Массив из Строка, Строка - имена полей Объекта, в которых находятся персональные данные Субъекта
|
||||
// * КатегорияДанных - Строка - категория персональных данных
|
||||
//
|
||||
Функция УничтожаемыеПерсональныеДанные() Экспорт
|
||||
|
||||
// Таблица сведений о персональных данных.
|
||||
ТаблицаСведений = Новый ТаблицаЗначений;
|
||||
ТаблицаСведений.Колонки.Добавить("Объект", Новый ОписаниеТипов("Строка"));
|
||||
ТаблицаСведений.Колонки.Добавить("ПолеСубъект", Новый ОписаниеТипов("Строка"));
|
||||
ТаблицаСведений.Колонки.Добавить("Поля", Новый ОписаниеТипов("Массив,Строка"));
|
||||
ТаблицаСведений.Колонки.Добавить("КатегорияДанных", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
ТаблицаСведений.Индексы.Добавить("Объект");
|
||||
|
||||
// Сведения о персональных данных в самой подсистеме.
|
||||
ЗаполнитьСведенияОбУничтожаемыхПерсональныхДанных(ТаблицаСведений);
|
||||
|
||||
// Заполнение таблицы сведений потребителями.
|
||||
ЗащитаПерсональныхДанныхПереопределяемый.ПриЗаполненииСведенийОбУничтожаемыхПерсональныхДанных(ТаблицаСведений);
|
||||
|
||||
Возврат ТаблицаСведений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаполнитьСведенияОбУничтожаемыхПерсональныхДанных(ТаблицаСведений)
|
||||
|
||||
МетаданныеДокумента = Метаданные.Документы.СогласиеНаОбработкуПерсональныхДанных;
|
||||
ИмяОбъекта = МетаданныеДокумента.ПолноеИмя();
|
||||
ИмяПоляСубъект = МетаданныеДокумента.Реквизиты.Субъект.ПолноеИмя();
|
||||
|
||||
НовыеСведения = ТаблицаСведений.Добавить();
|
||||
НовыеСведения.Объект = ИмяОбъекта;
|
||||
НовыеСведения.ПолеСубъект = ИмяПоляСубъект;
|
||||
НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(
|
||||
МетаданныеДокумента.Реквизиты.ФИОСубъекта.ПолноеИмя());
|
||||
НовыеСведения.КатегорияДанных = "ФИО";
|
||||
|
||||
НовыеСведения = ТаблицаСведений.Добавить();
|
||||
НовыеСведения.Объект = ИмяОбъекта;
|
||||
НовыеСведения.ПолеСубъект = ИмяПоляСубъект;
|
||||
НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(
|
||||
МетаданныеДокумента.Реквизиты.АдресСубъекта.ПолноеИмя());
|
||||
НовыеСведения.КатегорияДанных = "МестоРегистрацииПроживания";
|
||||
|
||||
НовыеСведения = ТаблицаСведений.Добавить();
|
||||
НовыеСведения.Объект = ИмяОбъекта;
|
||||
НовыеСведения.ПолеСубъект = ИмяПоляСубъект;
|
||||
НовыеСведения.Поля = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(
|
||||
МетаданныеДокумента.Реквизиты.ПаспортныеДанные.ПолноеИмя());
|
||||
НовыеСведения.КатегорияДанных = "ПаспортныеДанные";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает представление категории персональных данных по имени.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяКатегории - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - представление категории персональных данных
|
||||
//
|
||||
Функция ПредставлениеКатегорииПерсональныхДанных(ИмяКатегории) Экспорт
|
||||
|
||||
ПредставлениеКатегории = "";
|
||||
|
||||
КатегорииПерсональныхДанных = ЗащитаПерсональныхДанных.КатегорииПерсональныхДанных();
|
||||
НайденнаяСтрока = КатегорииПерсональныхДанных.Найти(ИмяКатегории, "Имя");
|
||||
Если НайденнаяСтрока <> Неопределено Тогда
|
||||
ПредставлениеКатегории = НайденнаяСтрока.Представление;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПредставлениеКатегории;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает полные имена реквизитов объекта метаданных содержащего персональные данные по его полному имени.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяИсточника - Строка - полное имя источника метаданных. Например: "Справочник.ФизическиеЛица".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка - пример: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо".
|
||||
//
|
||||
Функция ИменаРеквизитовИсточникаСодержащихСубъект(ИмяИсточника) Экспорт
|
||||
|
||||
ПоляСведений = ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяИсточника);
|
||||
ПоляСодержащиеСубъект = ПоляСведений.ПоляСодержащиеСубъект;
|
||||
ПоляПерсональныхДанных = ПоляСведений.ПоляПерсональныхДанных;
|
||||
|
||||
ИменаРеквизитовСодержащихСубъект = Новый Массив; // Массив из Строка
|
||||
МетаданныеПоТипамСубъекта = ЗащитаПерсональныхДанных.МетаданныеПоТипамСубъекта();
|
||||
|
||||
МетаданныеИсточника = Метаданные.НайтиПоПолномуИмени(ИмяИсточника); // ОбъектМетаданныхДокумент, ОбъектМетаданныхСправочник, ОбъектМетаданныхРегистрСведений
|
||||
ИсточникЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(МетаданныеИсточника);
|
||||
ТипыСсылкиИсточника = ?(ИсточникЭтоРегистр, Новый Массив, МетаданныеИсточника.СтандартныеРеквизиты.Ссылка.Тип.Типы());
|
||||
ИсточникИмеетВладельца = ОбщегоНазначения.ЭтоСправочник(МетаданныеИсточника)
|
||||
И МетаданныеИсточника.Владельцы.Количество() > 0;
|
||||
|
||||
ИменаТЧСодержащихСведения = Новый Массив; // Массив из Строка
|
||||
|
||||
Если Не ИсточникЭтоРегистр Тогда
|
||||
|
||||
ИменаТабличныхЧастей = Новый Массив; // Массив из Строка
|
||||
ТабличныеЧасти = МетаданныеИсточника.ТабличныеЧасти;
|
||||
|
||||
Для Каждого ТабличнаяЧасть Из ТабличныеЧасти Цикл
|
||||
ИменаТабличныхЧастей.Добавить(ТабличнаяЧасть.Имя);
|
||||
КонецЦикла;
|
||||
|
||||
ИменаТЧСодержащихСведения = ИменаТЧОбъектаСодержащихСведенияОПерсональныхДанных(ИменаТабличныхЧастей,
|
||||
ПоляПерсональныхДанных, ПоляСодержащиеСубъект);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ТипСубъектаИМетаданные Из МетаданныеПоТипамСубъекта Цикл
|
||||
|
||||
ТипСубъекта = ТипСубъектаИМетаданные.Ключ; // Тип
|
||||
МетаданныеСубъекта = ТипСубъектаИМетаданные.Значение;
|
||||
|
||||
ИменаРеквизитовИсточника = Новый Массив; // Массив из Строка
|
||||
ИменаРеквизитовТЧИсточника = Новый Соответствие;
|
||||
|
||||
Если ИсточникЭтоРегистр Тогда
|
||||
|
||||
ИменаИзмеренийТипа = ИменаИзмеренийРегистраПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитовИсточника, ИменаИзмеренийТипа);
|
||||
|
||||
Иначе
|
||||
|
||||
Если ТипыСсылкиИсточника.Найти(ТипСубъекта) <> Неопределено Тогда
|
||||
ИменаРеквизитовИсточника.Добавить("Ссылка");
|
||||
Иначе
|
||||
|
||||
Если ИсточникИмеетВладельца Тогда
|
||||
|
||||
Если МетаданныеИсточника.Владельцы.Содержит(МетаданныеСубъекта) Тогда
|
||||
ИменаРеквизитовИсточника.Добавить("Владелец");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ИменаРеквизитовИсточника.Количество() = 0 Тогда
|
||||
|
||||
ИменаРеквизитовТипа = ИменаРеквизитовПоТипу(МетаданныеИсточника, ТипСубъекта);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитовИсточника, ИменаРеквизитовТипа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяТабличнойЧасти Из ИменаТЧСодержащихСведения Цикл
|
||||
|
||||
ИменаРеквизитовТЧТипа = ИменаРеквизитовТЧОбъектаПоТипу(МетаданныеИсточника, ИмяТабличнойЧасти,
|
||||
ТипСубъекта);
|
||||
Если ИменаРеквизитовТЧТипа.Количество() > 0 Тогда
|
||||
ИменаРеквизитовТЧИсточника.Вставить(ИмяТабличнойЧасти, ИменаРеквизитовТЧТипа);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовИсточника Цикл
|
||||
|
||||
Если ПоляСодержащиеСубъект.Найти(ИмяРеквизита) <> Неопределено Тогда
|
||||
ИменаРеквизитовСодержащихСубъект.Добавить(ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ТЧИРеквизиты Из ИменаРеквизитовТЧИсточника Цикл
|
||||
|
||||
ИменаРеквизитовТЧ = ТЧИРеквизиты.Значение; // Массив из Строка
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитовТЧ Цикл
|
||||
|
||||
Если ПоляСодержащиеСубъект.Найти(ИмяРеквизита) <> Неопределено Тогда
|
||||
ИменаРеквизитовСодержащихСубъект.Добавить(ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ИменаРеквизитовСодержащихСубъект.Количество() > 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаРеквизитовСодержащихСубъект);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает по полному имени объекта имена полей, содержащих уничтожаемые персональные данные субъекта,
|
||||
// и имена полей, содержащих ссылку на субъекта.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяОбъекта - Строка - полное имя объекта метаданных. Пример: "Справочник.ФизическиеЛица".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - имена полей скрываемых персональных данных объекта:
|
||||
// * ПоляПерсональныхДанных - Массив из Строка - например: "ИНН" или "ФизическиеЛица.ИНН".
|
||||
// * ПоляСодержащиеСубъект - Массив из Строка - например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо".
|
||||
//
|
||||
Функция ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяОбъекта)
|
||||
|
||||
ИменаПолейСодержащихСубъект = Новый Массив; // Массив из Строка
|
||||
ИменаСкрываемыхПолей = Новый Массив; // Массив из Строка
|
||||
|
||||
ТаблицаСведений = ЗащитаПерсональныхДанных.УничтожаемыеПерсональныеДанные();
|
||||
СтрокиСведений = ТаблицаСведений.НайтиСтроки(Новый Структура("Объект", ИмяОбъекта));
|
||||
|
||||
Для Каждого СтрокаСведений Из СтрокиСведений Цикл
|
||||
|
||||
Если ТипЗнч(СтрокаСведений.Поля) = Тип("Строка") Тогда
|
||||
СкрываемыеПоля = СтрРазделить(СтрокаСведений.Поля, ",");
|
||||
Иначе
|
||||
СкрываемыеПоля = СтрокаСведений.Поля;
|
||||
КонецЕсли;
|
||||
Для Каждого ИмяПоля Из СкрываемыеПоля Цикл
|
||||
ИменаСкрываемыхПолей.Добавить(КраткоеИмяПоля(ИмяПоля, ИмяОбъекта));
|
||||
КонецЦикла;
|
||||
|
||||
ПоляСодержащиеСубъект = СтрРазделить(СтрокаСведений.ПолеСубъект, ",|");
|
||||
Для Каждого ИмяПоля Из ПоляСодержащиеСубъект Цикл
|
||||
ИменаПолейСодержащихСубъект.Добавить(КраткоеИмяПоля(ИмяПоля, ИмяОбъекта));
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый Структура("ПоляПерсональныхДанных,ПоляСодержащиеСубъект",
|
||||
ОбщегоНазначенияКлиентСервер.СвернутьМассив(ИменаСкрываемыхПолей),
|
||||
ОбщегоНазначенияКлиентСервер.СвернутьМассив(ИменаПолейСодержащихСубъект));
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИменаТЧОбъектаСодержащихСведенияОПерсональныхДанных(ИменаТЧОбъекта, Знач ИменаРеквизитов,
|
||||
Знач ПоляСодержащиеСубъект)
|
||||
|
||||
ИменаТЧСодержащихСведения = Новый Массив; // Массив из Строка
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИменаРеквизитов, ПоляСодержащиеСубъект);
|
||||
|
||||
Для Каждого ИмяТЧОбъекта Из ИменаТЧОбъекта Цикл
|
||||
|
||||
ПодстрокаПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.", ИмяТЧОбъекта);
|
||||
Для Каждого ИмяРеквизита Из ИменаРеквизитов Цикл
|
||||
|
||||
Если СтрНайти(ИмяРеквизита, ПодстрокаПоиска) <> 0 Тогда
|
||||
|
||||
ИменаТЧСодержащихСведения.Добавить(ИмяТЧОбъекта);
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИменаТЧСодержащихСведения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Преобразует полное имя поля в краткую форму.
|
||||
// Например, "Документ.АктОбУничтоженииПерсональныхДанных.ТабличнаяЧасть.КатегорииДанных.Реквизит.ИмяОбъекта"
|
||||
// преобразуется в "КатегорииДанных.ИмяОбъекта".
|
||||
//
|
||||
// Параметры:
|
||||
// ПолноеИмяПоля - Строка, Произвольный - полное имя поля
|
||||
// ПолноеИмяОбъекта - Строка - полное имя объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - краткое имя поля
|
||||
//
|
||||
Функция КраткоеИмяПоля(ПолноеИмяПоля, ПолноеИмяОбъекта) Экспорт
|
||||
|
||||
ИмяПоля = СтрЗаменить(СокрЛП(ПолноеИмяПоля), ПолноеИмяОбъекта, "");
|
||||
|
||||
Если СтрНайти(ИмяПоля, ".ТабличнаяЧасть.") > 0 Тогда
|
||||
ИмяПоля = СтрЗаменить(СтрЗаменить(ИмяПоля, ".Реквизит.", "."), ".ТабличнаяЧасть.", "");
|
||||
Иначе
|
||||
ИмяПоля = СтрЗаменить(ИмяПоля, ".Реквизит.", "");
|
||||
ИмяПоля = СтрЗаменить(ИмяПоля, ".Измерение.", "");
|
||||
ИмяПоля = СтрЗаменить(ИмяПоля, ".Ресурс.", "");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИмяПоля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ФиксированноеСоответствие из КлючИЗначение:
|
||||
// * Ключ - Тип
|
||||
// * Значение - ОбъектМетаданных
|
||||
//
|
||||
Функция МетаданныеПоТипамСубъекта() Экспорт
|
||||
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанных.ТипыСубъектов();
|
||||
|
||||
МетаданныеПоТипуСубъектов = Новый Соответствие;
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
МетаданныеПоТипуСубъектов.Вставить(ТипСубъекта, Метаданные.НайтиПоТипу(ТипСубъекта));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(МетаданныеПоТипуСубъектов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ФиксированныйМассив из Тип - типы субъектов персональных данных.
|
||||
//
|
||||
Функция ТипыСубъектов() Экспорт
|
||||
|
||||
ТипыСубъектов = Метаданные.ОпределяемыеТипы.СубъектПерсональныхДанных.Тип.Типы();
|
||||
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ТипыСубъектов,
|
||||
Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"));
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ТипыСубъектов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ФиксированныйМассив из Строка - полные имена объектов метаданных
|
||||
//
|
||||
Функция ИменаМетаданныхПоТипамСубъекта() Экспорт
|
||||
|
||||
ТипыСубъектов = ЗащитаПерсональныхДанных.ТипыСубъектов();
|
||||
|
||||
ИменаМетаданных = Новый Массив; // Массив из Строка
|
||||
Для Каждого ТипСубъекта Из ТипыСубъектов Цикл
|
||||
ИменаМетаданных.Добавить(Метаданные.НайтиПоТипу(ТипСубъекта).ПолноеИмя());
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированныйМассив(ИменаМетаданных);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// МетаданныеОбъекта - ОбъектМетаданныхДокумент, ОбъектМетаданныхСправочник
|
||||
// Тип - Тип
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка
|
||||
//
|
||||
Функция ИменаРеквизитовПоТипу(МетаданныеОбъекта, Тип)
|
||||
|
||||
ИменаРеквизитов = Новый Массив; // Массив из Строка
|
||||
|
||||
Для Каждого Реквизит Из МетаданныеОбъекта.Реквизиты Цикл
|
||||
Если Реквизит.Тип.СодержитТип(Тип) Тогда
|
||||
ИменаРеквизитов.Добавить(Реквизит.Имя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИменаРеквизитов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// МетаданныеОбъекта - ОбъектМетаданныхДокумент, ОбъектМетаданныхСправочник
|
||||
// ИмяТабличнойЧасти - Строка
|
||||
// Тип - Тип
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка
|
||||
//
|
||||
Функция ИменаРеквизитовТЧОбъектаПоТипу(МетаданныеОбъекта, ИмяТабличнойЧасти, Тип)
|
||||
|
||||
ИменаРеквизитов = Новый Массив; // Массив из Строка
|
||||
МетаданныеТЧ = МетаданныеОбъекта.ТабличныеЧасти.Найти(ИмяТабличнойЧасти);
|
||||
|
||||
Если МетаданныеТЧ <> Неопределено Тогда
|
||||
Для Каждого Реквизит Из МетаданныеТЧ.Реквизиты Цикл
|
||||
Если Реквизит.Тип.СодержитТип(Тип) Тогда
|
||||
ИменаРеквизитов.Добавить(ИмяТабличнойЧасти + "." + Реквизит.Имя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИменаРеквизитов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// МетаданныеРегистра - ОбъектМетаданныхРегистрСведений
|
||||
// Тип - Тип
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка
|
||||
//
|
||||
Функция ИменаИзмеренийРегистраПоТипу(МетаданныеРегистра, Тип)
|
||||
|
||||
ИменаИзмерений = Новый Массив; // Массив из Строка
|
||||
|
||||
Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл
|
||||
|
||||
Если Измерение.Тип.СодержитТип(Тип) Тогда
|
||||
ИменаИзмерений.Добавить(Измерение.Имя);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИменаИзмерений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3e453cca-aac3-4ff3-bb15-32c09f43e7b2">
|
||||
<name>ЗащитаПерсональныхДанныхСлужебный</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Защита персональных данных служебный</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
@@ -0,0 +1,35 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2023, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// @strict-types
|
||||
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// См. Обработки.СкрытиеКонфиденциальнойИнформации.ДеревоОбрабатываемыхОбъектов
|
||||
Функция ДеревоОбрабатываемыхОбъектов() Экспорт
|
||||
|
||||
Возврат Обработки.СкрытиеКонфиденциальнойИнформации.ДеревоОбрабатываемыхОбъектов();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. Обработки.СкрытиеКонфиденциальнойИнформации.ДеревоОбрабатываемыхОбъектовБезНастроек
|
||||
Функция ДеревоОбрабатываемыхОбъектовБезНастроек() Экспорт
|
||||
|
||||
Возврат Обработки.СкрытиеКонфиденциальнойИнформации.ДеревоОбрабатываемыхОбъектовБезНастроек();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. Обработки.СкрытиеКонфиденциальнойИнформации.ЭлементИмениПоТипуМетаданных
|
||||
Функция ЭлементИмениПоТипуМетаданных(ТипМетаданных) Экспорт
|
||||
|
||||
Возврат Обработки.СкрытиеКонфиденциальнойИнформации.ЭлементИмениПоТипуМетаданных(ТипМетаданных);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="49bcd9e6-f312-4bb6-959a-242b73907591">
|
||||
<name>ЗащитаПерсональныхДанныхУничтожениеПовтИсп</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Защита персональных данных уничтожение повт исп</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
<returnValuesReuse>DuringSession</returnValuesReuse>
|
||||
</mdclass:CommonModule>
|
||||
@@ -3460,6 +3460,11 @@
|
||||
МодульИнтеграцияПодсистемБИП.ПриОпределенииИсточниковДанныхПечати(Объект, ИсточникиДанныхПечати);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
|
||||
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
|
||||
МодульЗащитаПерсональныхДанных.ПриОпределенииИсточниковДанныхПечати(Объект, ИсточникиДанныхПечати);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. УправлениеПечатьюПереопределяемый.ПриПодготовкеДанныхПечати
|
||||
|
||||
@@ -149,15 +149,12 @@
|
||||
Настройки = Новый Структура;
|
||||
Настройки.Вставить("Показывать", Истина);
|
||||
|
||||
Если Метаданные.Обработки.ИнформацияПриЗапуске.Макеты.Количество() = 0 Тогда
|
||||
Настройки.Показывать = Ложь;
|
||||
ИначеЕсли Не СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() И Не ПоказыватьПриНачалеРаботы() Тогда
|
||||
// Отключение информации в ПРОФ версии если пользователь отключил флажок.
|
||||
Настройки.Показывать = Ложь;
|
||||
КонецЕсли;
|
||||
// Отключение информации в версии ПРОФ, если пользователь отключил флажок.
|
||||
Настройки.Показывать = (Метаданные.Обработки.ИнформацияПриЗапуске.Макеты.Количество() > 0)
|
||||
И (СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Или ПоказыватьПриНачалеРаботы());
|
||||
|
||||
Если Настройки.Показывать Тогда
|
||||
// Отключение информации если будет выведено описание изменений.
|
||||
// Отключение информации, если будет выведено описание изменений.
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеВерсииИБ") Тогда
|
||||
МодульОбновлениеИнформационнойБазыСлужебный = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебный");
|
||||
Если МодульОбновлениеИнформационнойБазыСлужебный.ПоказатьОписаниеИзмененийСистемы() Тогда
|
||||
@@ -167,7 +164,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Настройки.Показывать Тогда
|
||||
// Отключение информации если будет показан помощник завершения настройки подчиненного узла РИБ.
|
||||
// Отключение информации, если будет показан помощник завершения настройки подчиненного узла РИБ.
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
|
||||
МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер");
|
||||
Если МодульОбменДаннымиСервер.ОткрытьПомощникСозданияОбменаДаннымиДляНастройкиПодчиненногоУзла() Тогда
|
||||
@@ -192,7 +189,6 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Переопределение.
|
||||
ИнформацияПриЗапускеПереопределяемый.ОпределитьНастройки(Настройки);
|
||||
|
||||
Возврат Настройки;
|
||||
|
||||
@@ -196,6 +196,10 @@
|
||||
//
|
||||
Функция ПредставлениеФормулы(ПараметрыФормулы) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыФормулы.Формула) Тогда
|
||||
Возврат ПараметрыФормулы.Формула;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеСписковПолей = КонструкторФормулСлужебный.ОписаниеСписковПолей();
|
||||
|
||||
ИсточникиДоступныхПолей = КонструкторФормулСлужебный.КоллекцияИсточниковДоступныхПолей();
|
||||
|
||||
@@ -6599,7 +6599,7 @@
|
||||
Если КомпонентыОбмена.РежимЗагрузкиДанныхВИнформационнуюБазу Тогда
|
||||
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена
|
||||
И ОбменДаннымиСобытия.ЗагрузкаЗапрещена(Объект, КомпонентыОбмена.УзелКорреспондентаОбъект) Тогда
|
||||
Возврат;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
МетаданныеОбъекта = Объект.Метаданные();
|
||||
Если Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда
|
||||
|
||||
@@ -461,13 +461,10 @@
|
||||
Набор.Отбор[ЭлементОтбора.Имя].Использование = ЭлементОтбора.Использование;
|
||||
КонецЦикла;
|
||||
УстановитьНедостающиеОтборыВНаборе(Набор, МетаданныеОбъекта, Данные.Отбор);
|
||||
ИначеЕсли ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта)
|
||||
ИначеЕсли (ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта)
|
||||
И Не ОбщегоНазначения.ЭтоСсылка(ТипЗначенияОбъекта)
|
||||
И Данные.ЭтоНовый() Тогда
|
||||
|
||||
Возврат;
|
||||
ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(МетаданныеОбъекта) Тогда
|
||||
|
||||
И Данные.ЭтоНовый())
|
||||
Или ОбщегоНазначения.ЭтоКонстанта(МетаданныеОбъекта) Тогда
|
||||
Возврат;
|
||||
Иначе
|
||||
Набор = Данные;
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.8.276";
|
||||
Описание.Версия = "3.1.8.302";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -1425,7 +1425,7 @@
|
||||
ЭтоСлужебныеДанные = СлужебныеСвязиДанных[МестоИспользования] <> Неопределено;
|
||||
ЭтоВспомогательныеДанные = ЭтоСлужебныеДанные;
|
||||
|
||||
Если МетаданныеДокументов.Содержит(МестоИспользования.Метаданные) Тогда
|
||||
Если ТипДанных = Неопределено Или МетаданныеДокументов.Содержит(МестоИспользования.Метаданные) Тогда
|
||||
Представление = Строка(МестоИспользования.Данные);
|
||||
|
||||
ИначеЕсли МетаданныеКонстант.Содержит(МестоИспользования.Метаданные) Тогда
|
||||
@@ -1434,9 +1434,6 @@
|
||||
ИначеЕсли МетаданныеПоследовательностей.Содержит(МестоИспользования.Метаданные) Тогда
|
||||
Представление = МестоИспользования.Метаданные.Представление() + " (" + НСтр("ru = 'последовательность'") + ")";
|
||||
|
||||
ИначеЕсли ТипДанных = Неопределено Тогда
|
||||
Представление = Строка(МестоИспользования.Данные);
|
||||
|
||||
ИначеЕсли ТипВсеСсылки.СодержитТип(ТипДанных) Тогда
|
||||
МетаПредставлениеОбъекта = Новый Структура("ПредставлениеОбъекта");
|
||||
ЗаполнитьЗначенияСвойств(МетаПредставлениеОбъекта, МестоИспользования.Метаданные);
|
||||
@@ -1593,8 +1590,8 @@
|
||||
// ПриПоискеЗаменыСсылок с параметрами:
|
||||
// ПарыЗамен - Соответствие - содержит пары значение оригинал/дубль.
|
||||
// НеобработанныеЗначенияОригиналов - Массив из Структура - дополнительная информация об обрабатываемых объектах:
|
||||
// * ЗаменяемоеЗначение - ПроизвольнаяСсылка - оригинальное значение заменяемого объекта
|
||||
// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам
|
||||
// * ЗаменяемоеЗначение - ПроизвольнаяСсылка - оригинальное значение заменяемого объекта.
|
||||
// * ИспользуемыеСвязи - см. ОбщегоНазначения.СвязиПодчиненныхОбъектовПоТипам
|
||||
// * ЗначениеКлючевыхРеквизитов - Структура - где Ключ - имя реквизита, значение - значение реквизита.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@@ -1644,6 +1641,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает связи подчиненных объектов с указанием типа поля связи.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * Ключ - Строка
|
||||
// * ТипРеквизита - Тип
|
||||
// * ИмяРеквизита - Строка
|
||||
// * Используется - Булево
|
||||
// * Метаданные - ОбъектМетаданных
|
||||
//
|
||||
Функция СвязиПодчиненныхОбъектовПоТипам() Экспорт
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
Результат.Колонки.Добавить("ТипРеквизита", Новый ОписаниеТипов("Тип"));
|
||||
Результат.Колонки.Добавить("ИмяРеквизита", ОписаниеТипаСтрока(0));
|
||||
Результат.Колонки.Добавить("Ключ", ОписаниеТипаСтрока(0));
|
||||
Результат.Колонки.Добавить("Используется", Новый ОписаниеТипов("Булево"));
|
||||
Результат.Колонки.Добавить("Метаданные");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область УсловныеВызовы
|
||||
|
||||
@@ -181,6 +181,19 @@
|
||||
// * Ключ - Строка - имя параметра, передаваемого на сервер.
|
||||
// * Значение - Произвольный - значение параметра, передаваемого на сервер.
|
||||
//
|
||||
// Пример:
|
||||
// МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
// Попытка
|
||||
// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
|
||||
// МодульЦентрМониторингаКлиентСлужебный = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиентСлужебный");
|
||||
// МодульЦентрМониторингаКлиентСлужебный.ПередПериодическойОтправкойДанныхКлиентаНаСервер(Параметры);
|
||||
// КонецЕсли;
|
||||
// Исключение
|
||||
// СерверныеОповещенияКлиент.ОбработатьОшибку(ИнформацияОбОшибке());
|
||||
// КонецПопытки;
|
||||
// СерверныеОповещенияКлиент.ДобавитьПоказатель(МоментНачала,
|
||||
// "ЦентрМониторингаКлиентСлужебный.ПередПериодическойОтправкойДанныхКлиентаНаСервер");
|
||||
//
|
||||
Процедура ПередПериодическойОтправкойДанныхКлиентаНаСервер(Параметры) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -198,6 +211,19 @@
|
||||
// * Ключ - Строка - имя параметра, возвращенного с сервера.
|
||||
// * Значение - Произвольный - значение параметра, возвращенного с сервера.
|
||||
//
|
||||
// Пример:
|
||||
// МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
// Попытка
|
||||
// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
|
||||
// МодульЦентрМониторингаКлиентСлужебный = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиентСлужебный");
|
||||
// МодульЦентрМониторингаКлиентСлужебный.ПослеПериодическогоПолученияДанныхКлиентаНаСервере(Результаты);
|
||||
// КонецЕсли;
|
||||
// Исключение
|
||||
// СерверныеОповещенияКлиент.ОбработатьОшибку(ИнформацияОбОшибке());
|
||||
// КонецПопытки;
|
||||
// СерверныеОповещенияКлиент.ДобавитьПоказатель(МоментНачала,
|
||||
// "ЦентрМониторингаКлиентСлужебный.ПослеПериодическогоПолученияДанныхКлиентаНаСервере");
|
||||
//
|
||||
Процедура ПослеПериодическогоПолученияДанныхКлиентаНаСервере(Результаты) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -194,9 +194,9 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Позволяет задать список подчиненных объектов и их связи с основными объектами
|
||||
// Позволяет задать список подчиненных объектов и их связи с основными объектами.
|
||||
// Подчиненные объекты рекомендуется использовать, если в процессе замены ссылок
|
||||
// нужно создавать часть объектов или подбирать замену из существующих объектов
|
||||
// нужно создавать часть объектов или подбирать замену из существующих объектов.
|
||||
//
|
||||
// Параметры:
|
||||
// ПодчиненныеОбъекты - см. ОбщегоНазначения.ПодчиненныеОбъекты
|
||||
@@ -379,6 +379,19 @@
|
||||
// * Ключ - Строка - имя параметра, возвращаемого на клиент.
|
||||
// * Значение - Произвольный - значение параметра, возвращаемого на клиент.
|
||||
//
|
||||
// Пример:
|
||||
// МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
// Попытка
|
||||
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
|
||||
// МодульЦентрМониторингаСлужебный = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторингаСлужебный");
|
||||
// МодульЦентрМониторингаСлужебный.ПриПериодическомПолученииДанныхКлиентаНаСервере(Параметры, Результаты);
|
||||
// КонецЕсли;
|
||||
// Исключение
|
||||
// СерверныеОповещения.ОбработатьОшибку(ИнформацияОбОшибке());
|
||||
// КонецПопытки;
|
||||
// СерверныеОповещения.ДобавитьПоказатель(Результаты, МоментНачала,
|
||||
// "ЦентрМониторингаСлужебный.ПриПериодическомПолученииДанныхКлиентаНаСервере");
|
||||
//
|
||||
Процедура ПриПериодическомПолученииДанныхКлиентаНаСервере(Параметры, Результаты) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -112,260 +112,128 @@
|
||||
// ** ПриСозданииНаСервере - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения - форма отчета.
|
||||
// // Отказ - Булево - признак отказа от создания формы.
|
||||
// // См. описание одноименного параметра "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике.
|
||||
// // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события.
|
||||
// // См. описание одноименного параметра "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике.
|
||||
// //
|
||||
// // См. также:
|
||||
// // Процедура для вывода добавленных команд в форму: ОтчетыСервер.ВывестиКоманду().
|
||||
// // Глобальный обработчик этого события: ОтчетыПереопределяемый.ПриСозданииНаСервере().
|
||||
// //
|
||||
// // Пример добавления команды:
|
||||
// // Команда = Форма.Команды.Добавить("<ИмяКоманды>");
|
||||
// // Команда.Действие = "Подключаемый_Команда";
|
||||
// // Команда.Заголовок = НСтр("ru = '<Представление команды...>'");
|
||||
// // ОтчетыСервер.ВывестиКоманду(Форма, Команда, "<ВидГруппы>");
|
||||
// // Обработчик команды пишется в процедуре ОтчетыКлиентПереопределяемый.ОбработчикКоманды.
|
||||
// //
|
||||
// // См. ОтчетыПереопределяемый.ПриСозданииНаСервере.
|
||||
// Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПередЗагрузкойНастроекВКомпоновщик - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается перед загрузкой новых настроек. Используется для изменения схемы компоновки.
|
||||
// // Например, если схема отчета зависит от ключа варианта или параметров отчета.
|
||||
// // Чтобы изменения схемы вступили в силу следует вызывать метод ОтчетыСервер.ПодключитьСхему().
|
||||
// // В ДополнительныеСвойства параметра НовыеНастройкиКД и свойство Настройки компоновщика настроек
|
||||
// // объекта включены свойства КлючВарианта, КлючПредопределенногоВарианта, КонтекстВарианта
|
||||
// // и ФормаПараметрыОтбор.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Контекст - Произвольный -
|
||||
// // Параметры контекста, в котором используется отчет.
|
||||
// // Используется для передачи в параметрах метода ОтчетыСервер.ПодключитьСхему().
|
||||
// // КлючСхемы - Строка -
|
||||
// // Идентификатор текущей схемы компоновщика настроек.
|
||||
// // По умолчанию не заполнен (это означает что компоновщик инициализирован на основании основной схемы).
|
||||
// // Используется для оптимизации, чтобы переинициализировать компоновщик как можно реже.
|
||||
// // Может не использоваться если переинициализация выполняется безусловно.
|
||||
// // КлючВарианта - Строка, Неопределено -
|
||||
// // Имя предопределенного или уникальный идентификатор пользовательского варианта отчета.
|
||||
// // Неопределено когда вызов для варианта расшифровки или без контекста.
|
||||
// // НовыеНастройкиКД - НастройкиКомпоновкиДанных, Неопределено -
|
||||
// // Настройки варианта отчета, которые будут загружены в компоновщик настроек после его инициализации.
|
||||
// // Неопределено когда настройки варианта не надо загружать (уже загружены ранее).
|
||||
// // НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных, Неопределено -
|
||||
// // Пользовательские настройки, которые будут загружены в компоновщик настроек после его инициализации.
|
||||
// // Неопределено когда пользовательские настройки не надо загружать (уже загружены ранее).
|
||||
// //
|
||||
// // Примеры:
|
||||
// // 1. Компоновщик отчета инициализируется на основании схемы из общих макетов:
|
||||
// // Если КлючСхемы <> "1" Тогда
|
||||
// // КлючСхемы = "1";
|
||||
// // СхемаКД = ПолучитьОбщийМакет("МояОбщаяСхемаКомпоновки");
|
||||
// // ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКД, КлючСхемы);
|
||||
// // КонецЕсли;
|
||||
// //
|
||||
// // 2. Схема зависит от значения параметра, выведенного в пользовательские настройки отчета:
|
||||
// // Если ТипЗнч(НовыеПользовательскиеНастройкиКД) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда
|
||||
// // ПолноеИмяОбъектаМетаданных = "";
|
||||
// // Для Каждого ЭлементКД Из НовыеПользовательскиеНастройкиКД.Элементы Цикл
|
||||
// // Если ТипЗнч(ЭлементКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
|
||||
// // ИмяПараметра = Строка(ЭлементКД.Параметр);
|
||||
// // Если ИмяПараметра = "ОбъектМетаданных" Тогда
|
||||
// // ПолноеИмяОбъектаМетаданных = ЭлементКД.Значение;
|
||||
// // КонецЕсли;
|
||||
// // КонецЕсли;
|
||||
// // КонецЦикла;
|
||||
// // Если КлючСхемы <> ПолноеИмяОбъектаМетаданных Тогда
|
||||
// // КлючСхемы = ПолноеИмяОбъектаМетаданных;
|
||||
// // СхемаКД = Новый СхемаКомпоновкиДанных;
|
||||
// // // Наполнение схемы...
|
||||
// // ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКД, КлючСхемы);
|
||||
// // КонецЕсли;
|
||||
// // КонецЕсли;
|
||||
// // Контекст - Произвольный
|
||||
// // КлючСхемы - Строка
|
||||
// // КлючВарианта - Строка, Неопределено
|
||||
// // НовыеНастройкиКД - НастройкиКомпоновкиДанных, Неопределено
|
||||
// // НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных, Неопределено
|
||||
// //
|
||||
// Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПослеЗагрузкиНастроекВКомпоновщик - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается после загрузки всех настроек в компоновщик.
|
||||
// // Используется для уточнения, например параметров выбора,
|
||||
// // зависимых от значений загруженных фиксированных отборов.
|
||||
// // Структура ДополнительныеСвойства объекта Настройки компоновщика настроек объекта отчета
|
||||
// // содержит свойства КлючВарианта, КлючПредопределенногоВарианта, КонтекстВарианта,
|
||||
// // ФормаПараметрыОтбор, заполненные ПередЗагрузкойНастроекВКомпоновщик, а также свойство
|
||||
// // ВариантНаименование, которое можно изменить для предопределенного варианта отчета.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // ДополнительныеПараметры - Структура - резерв
|
||||
// // ДополнительныеПараметры - Структура
|
||||
// //
|
||||
// Процедура ПослеЗагрузкиНастроекВКомпоновщик(ДополнительныеПараметры) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПередЗагрузкойВариантаНаСервере - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения - Форма отчета.
|
||||
// // НовыеНастройкиКД - НастройкиКомпоновкиДанных - Настройки для загрузки в компоновщик настроек.
|
||||
// //
|
||||
// // См. ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере().
|
||||
// //
|
||||
// // См. ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере.
|
||||
// Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПриЗагрузкеВариантаНаСервере - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения - форма отчета.
|
||||
// // НовыеНастройкиКД - НастройкиКомпоновкиДанных - настройки для загрузки в компоновщик настроек.
|
||||
// //
|
||||
// // См. синтакс-помощник "Расширение управляемой формы для отчета.ПриЗагрузкеВариантаНаСервере" в синтакс-помощнике.
|
||||
// // Форма - ФормаКлиентскогоПриложения
|
||||
// // - РасширениеУправляемойФормыДляОтчета:
|
||||
// // * Отчет - ДанныеФормыСтруктура
|
||||
// // - ОтчетОбъект
|
||||
// // НовыеНастройкиКД - НастройкиКомпоновкиДанных
|
||||
// //
|
||||
// Процедура ПриЗагрузкеВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПриЗагрузкеПользовательскихНастроекНаСервере - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения - форма отчета.
|
||||
// // НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных -
|
||||
// // Пользовательские настройки для загрузки в компоновщик настроек.
|
||||
// //
|
||||
// // См. синтакс-помощник "Расширение управляемой формы для отчета.ПриЗагрузкеПользовательскихНастроекНаСервере"
|
||||
// // в синтакс-помощнике.
|
||||
// // Форма - ФормаКлиентскогоПриложения
|
||||
// // НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных
|
||||
// //
|
||||
// Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Форма, НовыеПользовательскиеНастройкиКД) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПередЗаполнениемПанелиБыстрыхНастроек - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается до перезаполнения панели настроек формы отчета.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения - форма отчета.
|
||||
// // ПараметрыЗаполнения - Структура - параметры, которые будут загружены в отчет.
|
||||
// // Форма - ФормаКлиентскогоПриложения
|
||||
// // ПараметрыЗаполнения - Структура
|
||||
// //
|
||||
// Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПослеЗаполненияПанелиБыстрыхНастроек - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Вызывается после перезаполнения панели настроек формы отчета.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения - Форма отчета.
|
||||
// // ПараметрыЗаполнения - Структура - параметры, которые будут загружены в отчет.
|
||||
// // Форма - ФормаКлиентскогоПриложения
|
||||
// // ПараметрыЗаполнения - Структура
|
||||
// //
|
||||
// Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПриОпределенииПараметровВыбора - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// Это устаревшее событие, вместо него рекомендуется применять
|
||||
// новое событие ПослеЗагрузкиНастроекВКомпоновщик.
|
||||
//
|
||||
// // Вызывается в форме отчета перед выводом настройки.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // Форма - ФормаКлиентскогоПриложения, Неопределено - форма отчета.
|
||||
// // СвойстваНастройки - Структура - описание настройки отчета, которая будет выведена в форме отчета.
|
||||
// // * ОписаниеТипов - ОписаниеТипов - тип настройки.
|
||||
// // * ЗначенияДляВыбора - СписокЗначений - объекты, которые будут предложены пользователю в списке
|
||||
// // выбора. Дополняет список объектов, уже выбранных пользователем ранее.
|
||||
// // * ЗапросЗначенийВыбора - Запрос - возвращает объекты, которыми необходимо дополнить ЗначенияДляВыбора.
|
||||
// // Первой колонкой (с 0м индексом) должен выбираться объект,
|
||||
// // который следует добавить в ЗначенияДляВыбора.Значение.
|
||||
// // Для отключения автозаполнения
|
||||
// // в свойство ЗапросЗначенийВыбора.Текст следует записать пустую строку.
|
||||
// // * ОграничиватьВыборУказаннымиЗначениями - Булево - когда Истина, то выбор пользователя будет
|
||||
// // ограничен значениями, указанными в ЗначенияДляВыбора (его конечным состоянием).
|
||||
// //
|
||||
// // См. также:
|
||||
// // ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора().
|
||||
// //
|
||||
// // См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора.
|
||||
// Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПриОпределенииИспользуемыхТаблиц - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Список регистров и других объектов метаданных, по которым формируется отчет.
|
||||
// // Используется для проверки что отчет может содержать не обновленные данные.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // КлючВарианта - Строка, Неопределено -
|
||||
// // Имя предопределенного или уникальный идентификатор пользовательского варианта отчета.
|
||||
// // Неопределено когда вызов для варианта расшифровки или без контекста.
|
||||
// // ИспользуемыеТаблицы - Массив из Строка -
|
||||
// // Полные имена объектов метаданных (регистров, документов и других таблиц),
|
||||
// // данные которых выводятся в отчете.
|
||||
// //
|
||||
// // Пример:
|
||||
// // ИспользуемыеТаблицы.Добавить(Метаданные.Документы.<ИмяДокумента>.ПолноеИмя());
|
||||
// // КлючВарианта - Строка, Неопределено
|
||||
// // ИспользуемыеТаблицы - Массив из Строка
|
||||
// //
|
||||
// Процедура ПриОпределенииИспользуемыхТаблиц(КлючВарианта, ИспользуемыеТаблицы) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПриОпределенииОсновныхПолей - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // См. ОтчетыПереопределяемый.ПриОпределенииОсновныхПолей.
|
||||
// //
|
||||
// Процедура ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
// ** ПередФормированиемОтчета - Булево - если Истина, то в модуле объекта отчета
|
||||
// следует определить обработчик события по шаблону:
|
||||
//
|
||||
// // Позволяет предупредить пользователя перед формированием отчета,
|
||||
// // на основе сделанных настроек, например, что отчет будет очень
|
||||
// // долго формироваться и потребует много памяти.
|
||||
// // Также позволяет рекомендовать настройку отборов.
|
||||
// //
|
||||
// // Параметры:
|
||||
// // ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета.
|
||||
// // ФормаОтчета - ФормаКлиентскогоПриложения
|
||||
// // ДополнительныеПараметры - Структура:
|
||||
// // * ТекстПредупреждения - Строка - возвращаемое значение, если указать непустую
|
||||
// // строку пользователю будет задан вопрос с указанным текстом и
|
||||
// // кнопками Продолжить / Отмена.
|
||||
// // * ИмяПараметраХраненияОтказаОтПредупреждения - Строка - по умолчанию пусто,
|
||||
// // если указать, пользователь сможет отказаться от предупреждения.
|
||||
// // Для возобновления предупреждений нужно установить указанный параметр Ложь.
|
||||
// // * ТекстПредупреждения - Строка
|
||||
// // * ИмяПараметраХраненияОтказаОтПредупреждения - Строка
|
||||
// //
|
||||
// Процедура Процедура ПередФормированиемОтчета(ФормаОтчета, ДополнительныеПараметры) Экспорт
|
||||
// // Обработка события.
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
Функция НастройкиОтчетаПоУмолчанию() Экспорт
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
|
||||
// Вызывается в форме отчета и в форме настройки отчета перед выводом настройки
|
||||
// для указания дополнительных параметров выбора.
|
||||
// Это устаревшее событие, вместо него рекомендуется применять событие ПослеЗагрузкиНастроекВКомпоновщик модуля отчета.
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения
|
||||
|
||||
@@ -558,26 +558,10 @@
|
||||
|
||||
#Область ЗаменаДублейВКлючахАналитики
|
||||
|
||||
// Возвращает связи подчиненных объектов с указанием типа поля связи.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * Ключ - Строка
|
||||
// * ТипРеквизита - Тип
|
||||
// * ИмяРеквизита - Строка
|
||||
// * Используется - Булево
|
||||
// * Метаданные - ОбъектМетаданных
|
||||
//
|
||||
// См. ОбщегоНазначения.СвязиПодчиненныхОбъектовПоТипам.
|
||||
Функция СвязиПодчиненныхОбъектовПоТипам() Экспорт
|
||||
|
||||
СвязиПодчиненныхОбъектовПоТипам = Новый ТаблицаЗначений;
|
||||
СвязиПодчиненныхОбъектовПоТипам.Колонки.Добавить("ТипРеквизита", Новый ОписаниеТипов("Тип"));
|
||||
СвязиПодчиненныхОбъектовПоТипам.Колонки.Добавить("ИмяРеквизита", ОбщегоНазначения.ОписаниеТипаСтрока(0));
|
||||
СвязиПодчиненныхОбъектовПоТипам.Колонки.Добавить("Ключ", ОбщегоНазначения.ОписаниеТипаСтрока(0));
|
||||
СвязиПодчиненныхОбъектовПоТипам.Колонки.Добавить("Используется", Новый ОписаниеТипов("Булево"));
|
||||
СвязиПодчиненныхОбъектовПоТипам.Колонки.Добавить("Метаданные");
|
||||
|
||||
Возврат СвязиПодчиненныхОбъектовПоТипам;
|
||||
Возврат ОбщегоНазначения.СвязиПодчиненныхОбъектовПоТипам();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -288,12 +288,15 @@
|
||||
//
|
||||
// Параметры:
|
||||
// ПользовательИБ - ПользовательИнформационнойБазы
|
||||
// Интерактивно - Булево - когда Истина, тогда не учитываются права, например, ВнешнееСоединение, Automation.
|
||||
// Интерактивно - Булево - когда Истина, тогда не учитываются права,
|
||||
// например, ВнешнееСоединение, Automation.
|
||||
// ТолькоПраваНаЗапуск - Булево - если Истина, тогда проверяется только наличие прав на запуск,
|
||||
// если Ложь, тогда проверяться еще и наличие минимальных прав для входа.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево
|
||||
//
|
||||
Функция ЕстьПраваДляВходаВПрограмму(ПользовательИБ, Интерактивно = Истина) Экспорт
|
||||
Функция ЕстьПраваДляВходаВПрограмму(ПользовательИБ, Интерактивно = Истина, ТолькоПраваНаЗапуск = Истина) Экспорт
|
||||
|
||||
Результат =
|
||||
ПравоДоступа("ТонкийКлиент", Метаданные, ПользовательИБ)
|
||||
@@ -307,6 +310,13 @@
|
||||
Или ПравоДоступа("ВнешнееСоединение", Метаданные, ПользовательИБ);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ТолькоПраваНаЗапуск Тогда
|
||||
// АПК:515-выкл - №737.4 проверка роли, так как это признак минимальных прав для входа.
|
||||
Результат = Результат И РолиДоступны("БазовыеПраваБСП,
|
||||
|БазовыеПраваВнешнихПользователейБСП", ПользовательИБ, Ложь);
|
||||
// АПК:515-вкл
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1473,7 +1473,7 @@
|
||||
Обработчик.Процедура = "Константы.ИспользоватьГруппыВнешнихПользователей.Обновить";
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "3.1.8.31";
|
||||
Обработчик.Версия = "3.1.8.289";
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
Обработчик.Процедура = "РегистрыСведений.СведенияОПользователях.ОбновитьСведенияОПользователяхИОтключитьАутентификацию";
|
||||
Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
|
||||
@@ -163,7 +163,12 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыРаботыКлиента.Свойство("ЗадатьВопросПроОтключениеOpenIDConnect") Тогда
|
||||
ПодключитьОбработчикОжидания("ЗадатьВопросПроОтключениеOpenIDConnectОбработчикОжидания", 1, Истина);
|
||||
ОповещениеНажатия = Новый ОписаниеОповещения("ЗадатьВопросПроОтключениеOpenIDConnect", ЭтотОбъект);
|
||||
ЗаголовокСообщения = НСтр("ru = 'Предупреждение безопасности'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Отключите аутентификацию %1, если не используется.'"), "OpenID-Connect");
|
||||
ПоказатьОповещениеПользователя(ЗаголовокСообщения, ОповещениеНажатия,
|
||||
ТекстСообщения, БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -233,7 +238,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Предлагает отключить аутентификацию OpenID-Connect после запуска.
|
||||
Процедура ЗадатьВопросПроОтключениеOpenIDConnect() Экспорт
|
||||
Процедура ЗадатьВопросПроОтключениеOpenIDConnect(Контекст) Экспорт
|
||||
|
||||
ОбработкаЗавершения = Новый ОписаниеОповещения(
|
||||
"ЗадатьВопросПроОтключениеOpenIDConnectЗавершение", ЭтотОбъект);
|
||||
@@ -249,8 +254,7 @@
|
||||
Кнопки.Добавить("НапомнитьПозже", НСтр("ru = 'Напомнить позже'"));
|
||||
|
||||
ДополнительныеПараметры = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ДополнительныеПараметры.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Аутентификация по протоколу %1'"), "OpenID-Connect");
|
||||
ДополнительныеПараметры.Заголовок = НСтр("ru = 'Предупреждение безопасности'");
|
||||
ДополнительныеПараметры.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОбработкаЗавершения,
|
||||
|
||||
@@ -231,9 +231,7 @@
|
||||
|
||||
Процедура ПроверитьНомерОбъектаПоДате(Объект)
|
||||
|
||||
Если Объект.ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Объект.ЭтоНовый() Тогда
|
||||
Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -264,9 +262,7 @@
|
||||
|
||||
Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)
|
||||
|
||||
Если Объект.ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Объект.ЭтоНовый() Тогда
|
||||
Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -281,11 +277,7 @@
|
||||
|
||||
Процедура ПроверитьКодОбъектаПоОрганизации(Объект)
|
||||
|
||||
Если Объект.ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Объект.ЭтоНовый() Тогда
|
||||
Возврат;
|
||||
ИначеЕсли Не РеквизитОрганизацияДоступен(Объект) Тогда
|
||||
Если Объект.ОбменДанными.Загрузка Или Объект.ЭтоНовый() Или Не РеквизитОрганизацияДоступен(Объект) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -539,7 +539,7 @@
|
||||
Уровни.Вставить("TERRITORY", 7);
|
||||
Уровни.Вставить("STREET", 8);
|
||||
|
||||
Возврат Уровни[ИмяУровня];
|
||||
Возврат Уровни[ВРег(ИмяУровня)];
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -589,10 +589,10 @@
|
||||
//
|
||||
Функция ОповещатьОНеобходимостиОбновленияКурсовВалют()
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Или ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
|
||||
Возврат Ложь; // В модели сервиса обновляются автоматически.
|
||||
ИначеЕсли Не ПравоДоступа("Изменение", Метаданные.РегистрыСведений.КурсыВалют) Тогда
|
||||
Возврат Ложь; // Пользователь не может обновлять курсы валют.
|
||||
// В модели сервиса обновляются автоматически.
|
||||
Если ОбщегоНазначения.РазделениеВключено() Или ОбщегоНазначения.ЭтоАвтономноеРабочееМесто()
|
||||
Или Не ПравоДоступа("Изменение", Метаданные.РегистрыСведений.КурсыВалют) Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ВключитьОповещение = Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ТекущиеДела");
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
РаботаСФайламиСлужебный.ЗанятьФайлДляРедактированияСервер(ФайлОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
СсылкаНаДвоичныеДанныеФайла = Неопределено;
|
||||
@@ -1815,7 +1816,7 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Запрос = Новый Запрос(СтрСоединить(ТекстыЗапроса, "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + Символы.ПС)); // @query-part
|
||||
Запрос = Новый Запрос(СтрСоединить(ТекстыЗапроса, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + Символы.ПС)); // @query-part
|
||||
Запрос.УстановитьПараметр("ВладелецФайла", Источник.Ссылка);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
@@ -100,21 +100,17 @@
|
||||
//
|
||||
// Параметры:
|
||||
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
// - Структура - элемент
|
||||
// справочника присоединенных файлов, данные которого сохраняются
|
||||
// в том, или структура со свойствами, необходимыми для сохранения
|
||||
// данных в том.
|
||||
// Свойства структуры: См. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла.
|
||||
// - см. См. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла - элемент справочника
|
||||
// присоединенных файлов, данные которого сохраняются в том
|
||||
// или структура со свойствами, необходимыми для сохранения данных в том.
|
||||
// ДвоичныеДанныеИлиПуть - ДвоичныеДанные
|
||||
// - Строка - двоичные данные файла или полный путь
|
||||
// к файлу на диске.
|
||||
// - Строка - двоичные данные файла или полный путь к файлу на диске.
|
||||
// ДатаДляРазмещенияВТоме - Дата - если не указано, то используется текущее время сеанса.
|
||||
// ЗаполнятьСлужебныйРеквизитХранилище - Булево - если параметр принимает значение Истина, двоичные данные
|
||||
// файла будут дополнительно помещены в служебный реквизит ФайлХранилище.
|
||||
// ТомДляРазмещения - СправочникСсылка.ТомаХраненияФайлов
|
||||
// - Неопределено - если параметр
|
||||
// заполнен, файлы будут принудительно помещаться в указанный том,
|
||||
// иначе - том будет выбран автоматически.
|
||||
// - Неопределено - если параметр заполнен, файлы будут принудительно помещаться в указанный том,
|
||||
// иначе том будет выбран автоматически.
|
||||
//
|
||||
Процедура ДобавитьФайл(ПрисоединенныйФайл, ДвоичныеДанныеИлиПуть,
|
||||
ДатаДляРазмещенияВТоме = Неопределено, ЗаполнятьСлужебныйРеквизитХранилище = Ложь, ТомДляРазмещения = Неопределено) Экспорт
|
||||
@@ -137,21 +133,17 @@
|
||||
//
|
||||
// Параметры:
|
||||
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
// - Структура - элемент
|
||||
// справочника присоединенных файлов, данные которого сохраняются
|
||||
// в том, или структура со свойствами, необходимыми для сохранения
|
||||
// данных в том.
|
||||
// Свойства структуры: См. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла.
|
||||
// - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла - элемент справочника
|
||||
// присоединенных файлов, данные которого сохраняются
|
||||
// в том, или структура со свойствами, необходимыми для сохранения данных в том.
|
||||
// ДвоичныеДанныеИлиПуть - ДвоичныеДанные
|
||||
// - Строка - двоичные данные файла или полный путь
|
||||
// к файлу на диске.
|
||||
// - Строка - двоичные данные файла или полный путь к файлу на диске.
|
||||
// ДатаДляРазмещенияВТоме - Дата - если не указано, то используется текущее время сеанса.
|
||||
// ЗаполнятьСлужебныйРеквизитХранилище - Булево - если параметр принимает значение Истина, двоичные данные
|
||||
// файла будут дополнительно помещены в служебный реквизит ФайлХранилище.
|
||||
// ТомДляРазмещения - СправочникСсылка.ТомаХраненияФайлов
|
||||
// - Неопределено - если параметр
|
||||
// заполнен, файлы будут принудительно помещаться в указанный том,
|
||||
// иначе - том будет выбран автоматически.
|
||||
// - Неопределено - если параметр заполнен, файлы будут принудительно помещаться в указанный том,
|
||||
// иначе том будет выбран автоматически.
|
||||
//
|
||||
Процедура ЗаполнитьСведенияОФайле(ПрисоединенныйФайл, ДвоичныеДанныеИлиПуть,
|
||||
ДатаДляРазмещенияВТоме = Неопределено, ЗаполнятьСлужебныйРеквизитХранилище = Ложь) Экспорт
|
||||
@@ -196,7 +188,6 @@
|
||||
ПрисоединенныйФайл.Расширение = СтрЗаменить(ПрисоединенныйФайл.Расширение, ".", "");
|
||||
КонецЕсли;
|
||||
|
||||
РазмерФайла = ПрисоединенныйФайл.Размер;
|
||||
ТипХраненияФайла = ПрисоединенныйФайл.ТипХраненияФайла;
|
||||
Если НЕ ЗначениеЗаполнено(ТипХраненияФайла) Тогда
|
||||
ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайла(ПрисоединенныйФайл.Размер, ПрисоединенныйФайл.Расширение);
|
||||
@@ -224,18 +215,7 @@
|
||||
|
||||
Иначе
|
||||
|
||||
ТомХранения = СвободныйТом(РазмерФайла);
|
||||
Если ТомХранения = Неопределено Тогда
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось добавить файл ""%1"" ни в один из томов, т.к. в томах недостаточно места.'"),
|
||||
ПрисоединенныйФайл.Наименование + "." + ПрисоединенныйФайл.Расширение);
|
||||
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПрисоединенныйФайл.Том = ТомХранения;
|
||||
ПрисоединенныйФайл.Том = СвободныйТом(ПрисоединенныйФайл);
|
||||
ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске;
|
||||
|
||||
СвойстваФайла = СвойстваФайлаВТоме();
|
||||
@@ -245,7 +225,7 @@
|
||||
ПрисоединенныйФайл.Владелец, "ВладелецФайла");
|
||||
КонецЕсли;
|
||||
|
||||
ПутьКТому = ПолныйПутьТома(ТомХранения);
|
||||
ПутьКТому = ПолныйПутьТома(ПрисоединенныйФайл.Том);
|
||||
ПутьКФайлу = ПолноеИмяФайлаВТоме(СвойстваФайла, ДатаДляРазмещенияВТоме);
|
||||
|
||||
ПрисоединенныйФайл.ПутьКФайлу = Сред(ПутьКФайлу, СтрДлина(ПутьКТому) + 1);
|
||||
@@ -734,19 +714,21 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращает соответствие томов и суммарных размеров всех файлов в томе в байтах.
|
||||
// Возвращает размеры всех файлов в каждом указанном томе в байтах.
|
||||
//
|
||||
// Параметры:
|
||||
// Тома - Массив из СправочникСсылка.ТомаХраненияФайлов - том, размер которого необходимо посчитать.
|
||||
// Тома - Массив из СправочникСсылка.ТомаХраненияФайлов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие - размер томов .
|
||||
// Соответствие из КлючЗначение:
|
||||
// * Ключ - СправочникСсылка.ТомаХраненияФайлов
|
||||
// * Значение - Число
|
||||
//
|
||||
Функция ОбъемыТомов(Тома)
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Для Каждого Том Из Тома Цикл
|
||||
Результат.Вставить(Том, 0);
|
||||
Результат[Том] = 0;
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
@@ -754,8 +736,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
ТипыПрисоединенныхФайлов = Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип.Типы();
|
||||
ТекстыЗапросов = Новый Массив;
|
||||
|
||||
ТекстЗапросаПрисоединенныхФайлов =
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| Версии.Том КАК Том,
|
||||
| ЕСТЬNULL(Версии.Размер, 0) КАК РазмерФайлов
|
||||
@@ -763,6 +746,15 @@
|
||||
| Справочник.ВерсииФайлов КАК Версии
|
||||
|ГДЕ
|
||||
| Версии.Том В (&Тома)";
|
||||
ТекстыЗапросов.Добавить(ТекстЗапроса);
|
||||
|
||||
ШаблонаТекстаЗапроса = "ВЫБРАТЬ
|
||||
| ПрисоединенныеФайлы.Том,
|
||||
| ЕСТЬNULL(ПрисоединенныеФайлы.Размер, 0)
|
||||
|ИЗ
|
||||
| &ИмяСправочника КАК ПрисоединенныеФайлы
|
||||
|ГДЕ
|
||||
| ПрисоединенныеФайлы.Том В (&Тома)";
|
||||
|
||||
Для Каждого Тип Из ТипыПрисоединенныхФайлов Цикл
|
||||
|
||||
@@ -777,38 +769,26 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстЗапросаПоСправочнику = "ВЫБРАТЬ
|
||||
| ПрисоединенныеФайлы.Том,
|
||||
| ЕСТЬNULL(ПрисоединенныеФайлы.Размер, 0)
|
||||
|ИЗ
|
||||
| &ИмяСправочника КАК ПрисоединенныеФайлы
|
||||
|ГДЕ
|
||||
| ПрисоединенныеФайлы.Том В (&Тома)";
|
||||
|
||||
ТекстЗапросаПрисоединенныхФайлов = ТекстЗапросаПрисоединенныхФайлов + "
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
|" + СтрЗаменить(ТекстЗапросаПоСправочнику, "&ИмяСправочника",
|
||||
Метаданные.НайтиПоТипу(Тип).ПолноеИмя());
|
||||
|
||||
ТекстыЗапросов.Добавить(СтрЗаменить(ШаблонаТекстаЗапроса, "&ИмяСправочника",
|
||||
Метаданные.НайтиПоТипу(Тип).ПолноеИмя()));
|
||||
КонецЦикла;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| ВложенныйЗапрос.Том,
|
||||
| СУММА(ВложенныйЗапрос.РазмерФайлов) КАК РазмерФайлов
|
||||
|ИЗ
|
||||
| &ТекстЗапросаПрисоединенныхФайлов КАК ВложенныйЗапрос
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ВложенныйЗапрос.Том";
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаПрисоединенныхФайлов",
|
||||
"(" + СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС) + ")"); // @query-part
|
||||
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ТекстЗапросаПрисоединенныхФайлов", ТекстЗапросаПрисоединенныхФайлов);
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.Параметры.Вставить("Тома", Тома);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Результат.Вставить(Выборка.Том, Выборка.РазмерФайлов);
|
||||
Результат[Выборка.Том] = Выборка.РазмерФайлов;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
@@ -834,8 +814,7 @@
|
||||
// Параметры:
|
||||
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
// ДвоичныеДанныеИлиПуть - ДвоичныеДанные
|
||||
// - Строка - двоичные данные файла или полный путь
|
||||
// к файлу на диске.
|
||||
// - Строка - двоичные данные файла или полный путь к файлу на диске.
|
||||
//
|
||||
Процедура ЗаписатьДанныеФайлаВТом(ПрисоединенныйФайл, ДвоичныеДанныеИлиПуть)
|
||||
|
||||
@@ -1934,15 +1913,16 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает первый том по порядку заполнения, в который можно поместить файл указанного размера.
|
||||
// Возвращает первый том по порядку заполнения, в который можно поместить указанный файл.
|
||||
//
|
||||
// Параметры:
|
||||
// РазмерФайла - Число - размер помещаемого файла в байтах.
|
||||
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
// - см. РаботаСФайламиВТомахСлужебный.ПараметрыДобавленияФайла
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СправочникСсылка.ТомаХраненияФайлов - том, в который можно поместить файл.
|
||||
// СправочникСсылка.ТомаХраненияФайлов
|
||||
//
|
||||
Функция СвободныйТом(РазмерФайла)
|
||||
Функция СвободныйТом(ПрисоединенныйФайл)
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
@@ -1959,33 +1939,40 @@
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| ТомаХраненияФайлов.ПорядокЗаполнения";
|
||||
Результат = Запрос.Выполнить();
|
||||
|
||||
Если Результат.Пустой() Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Нет ни одного тома для размещения файла.'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось добавить файл ""%1"",
|
||||
|т.к. не настроено ни одного тома для хранения файлов.
|
||||
|Обратитесь к администратору.'"),
|
||||
ПрисоединенныйФайл.Наименование + "." + ПрисоединенныйФайл.Расширение);
|
||||
КонецЕсли;
|
||||
|
||||
МассивТомов = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");
|
||||
ТомаХраненияФайлов = Результат.Выгрузить();
|
||||
ОбъемыТомов = Неопределено;
|
||||
|
||||
ВыборкаТомов = Результат.Выбрать();
|
||||
Пока ВыборкаТомов.Следующий() Цикл
|
||||
Для каждого ТомХраненияФайлов Из ТомаХраненияФайлов Цикл
|
||||
|
||||
Если ТомХраненияФайлов.МаксимальныйРазмер = 0 Тогда
|
||||
Возврат ТомХраненияФайлов.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВыборкаТомов.МаксимальныйРазмер = 0 Тогда
|
||||
Возврат ВыборкаТомов.Ссылка;
|
||||
Иначе
|
||||
Если ОбъемыТомов = Неопределено Тогда
|
||||
// @skip-check query-in-loop - Разовый вызов
|
||||
ОбъемыТомов = ОбъемыТомов(МассивТомов);
|
||||
КонецЕсли;
|
||||
ОбъемТома = ОбъемыТомов[ВыборкаТомов.Ссылка];
|
||||
Если ОбъемТома + РазмерФайла <= ВыборкаТомов.МаксимальныйРазмер * 1024 * 1024 Тогда
|
||||
Возврат ВыборкаТомов.Ссылка;
|
||||
ОбъемыТомов = ОбъемыТомов(ТомаХраненияФайлов.ВыгрузитьКолонку("Ссылка"));
|
||||
КонецЕсли;
|
||||
ОбъемТома = ОбъемыТомов[ТомХраненияФайлов.Ссылка];
|
||||
Если ОбъемТома + ПрисоединенныйФайл.Размер <= ТомХраненияФайлов.МаксимальныйРазмер * 1024 * 1024 Тогда
|
||||
Возврат ТомХраненияФайлов.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Неопределено;
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось добавить файл ""%1"",
|
||||
|т.к. в томах хранения файлов недостаточно места.
|
||||
|Обратитесь к администратору.'"),
|
||||
ПрисоединенныйФайл.Наименование + "." + ПрисоединенныйФайл.Расширение);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -8877,14 +8877,7 @@
|
||||
ТекстСобытия = НСтр("ru = 'Начало освобождения файлов, захваченных облачным сервисом.'");
|
||||
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись);
|
||||
|
||||
ДеревоФайловСервера = Новый ДеревоЗначений;
|
||||
ДеревоФайловСервера.Колонки.Добавить("Href");
|
||||
ДеревоФайловСервера.Колонки.Добавить("UID1C");
|
||||
ДеревоФайловСервера.Колонки.Добавить("Etag");
|
||||
ДеревоФайловСервера.Колонки.Добавить("ИмяФайла");
|
||||
ДеревоФайловСервера.Колонки.Добавить("ЭтоПапка");
|
||||
ДеревоФайловСервера.Колонки.Добавить("ДатаМодификации");
|
||||
ДеревоФайловСервера.Колонки.Добавить("Длина");
|
||||
ДеревоФайловСервера = СформироватьСтруктуруДереваФайловСервера();
|
||||
|
||||
Попытка
|
||||
|
||||
|
||||
@@ -656,8 +656,7 @@
|
||||
// *** АдресВоВременномХранилище - Строка - адрес двоичных данных вложения во временном хранилище.
|
||||
// *** Кодировка - Строка - кодировка вложения (используется, если отличается от кодировки письма).
|
||||
// *** Идентификатор - Строка - (необязательный) используется для отметки картинок, отображаемых в теле письма.
|
||||
// ** АдресОтвета - Соответствие
|
||||
// - Строка - см. описание поля Кому.
|
||||
// ** АдресОтвета - Строка - E-mail адрес, на который будут приходить ответы на рассылку.
|
||||
// ** ИдентификаторыОснований - Строка - идентификаторы оснований данного письма.
|
||||
// ** ОбрабатыватьТексты - Булево - необходимость обрабатывать тексты письма при отправке.
|
||||
// ** УведомитьОДоставке - Булево - необходимость запроса уведомления о доставке.
|
||||
@@ -1561,6 +1560,12 @@
|
||||
ТаблицаПолучателей = Рассылка.Получатели.Выгрузить();
|
||||
КонецЕсли;
|
||||
|
||||
МассивПолучателей = Новый Массив;
|
||||
|
||||
Если ПолучателиМетаданные = Неопределено Или ПолучателиМетаданные = Null Тогда
|
||||
Возврат МассивПолучателей;
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Если ТипПолучателей = Тип("СправочникСсылка.Пользователи") Тогда
|
||||
|
||||
@@ -1646,9 +1651,6 @@
|
||||
ТекстСообщенияОбОшибкеДляЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось сформировать список получателей ""%1"" по причине:'"), Строка(ТипПолучателей));
|
||||
|
||||
МассивПолучателей = Новый Массив;
|
||||
|
||||
|
||||
// Механизм расширения
|
||||
СписокПолучателей = Новый Соответствие;
|
||||
Попытка
|
||||
@@ -1818,9 +1820,8 @@
|
||||
// Определить, что отчет реализован на базе системы компоновки данных.
|
||||
Если ТипЗнч(ПараметрыОтчета.Настройки) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда
|
||||
ПараметрыОтчета.СКД = Истина;
|
||||
ИначеЕсли ТипЗнч(ПараметрыОтчета.Настройки) = Тип("ТаблицаЗначений") Тогда
|
||||
ПараметрыОтчета.СКД = Ложь;
|
||||
ИначеЕсли ТипЗнч(ПараметрыОтчета.Настройки) = Тип("Структура") Тогда
|
||||
ИначеЕсли ТипЗнч(ПараметрыОтчета.Настройки) = Тип("ТаблицаЗначений")
|
||||
Или ТипЗнч(ПараметрыОтчета.Настройки) = Тип("Структура") Тогда
|
||||
ПараметрыОтчета.СКД = Ложь;
|
||||
Иначе
|
||||
ПараметрыОтчета.СКД = (ПараметрыОтчета.Объект.СхемаКомпоновкиДанных <> Неопределено);
|
||||
@@ -3094,8 +3095,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыДоставки.Получатель <> Неопределено Тогда
|
||||
|
||||
АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(ПараметрыПисьма.Кому);
|
||||
Если ПараметрыДоставки.СкрытыеКопии Тогда
|
||||
АдресаПолучателя = ?(ТипЗнч(ПараметрыПисьма.СкрытыеКопии) = Тип("Строка"),
|
||||
ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(ПараметрыПисьма.СкрытыеКопии), ПараметрыПисьма.СкрытыеКопии);
|
||||
Иначе
|
||||
АдресаПолучателя = ?(ТипЗнч(ПараметрыПисьма.Кому) = Тип("Строка"),
|
||||
ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(ПараметрыПисьма.Кому), ПараметрыПисьма.Кому);
|
||||
КонецЕсли;
|
||||
Для Каждого Кому Из АдресаПолучателя Цикл
|
||||
ПредставлениеПолучателя = Строка(ПараметрыДоставки.Получатель) + " (" + Кому.Адрес + ")";
|
||||
|
||||
@@ -3207,19 +3213,35 @@
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыДоставки.Получатель) Тогда
|
||||
ПредставлениеПолучателя = Строка(ПараметрыДоставки.Получатель);
|
||||
АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(ПараметрыПисьма.Кому);
|
||||
Если ПараметрыДоставки.СкрытыеКопии Тогда
|
||||
АдресаПолучателя = ?(ТипЗнч(ПараметрыПисьма.СкрытыеКопии) = Тип("Строка"),
|
||||
ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(ПараметрыПисьма.СкрытыеКопии), ПараметрыПисьма.СкрытыеКопии);
|
||||
ИмяТаблицыПолучателей = "ПолучателиСкрытыхКопий";
|
||||
Иначе
|
||||
АдресаПолучателя = ?(ТипЗнч(ПараметрыПисьма.Кому) = Тип("Строка"),
|
||||
ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(ПараметрыПисьма.Кому), ПараметрыПисьма.Кому);
|
||||
ИмяТаблицыПолучателей = "Получатели";
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Кому Из АдресаПолучателя Цикл
|
||||
НоваяСтрока = Сообщение.Получатели.Добавить();
|
||||
НоваяСтрока = Сообщение[ИмяТаблицыПолучателей].Добавить();
|
||||
НоваяСтрока.Адрес = Кому.Адрес;
|
||||
НоваяСтрока.Представление = ПредставлениеПолучателя + " (" + Кому.Адрес + ")";
|
||||
НоваяСтрока.ИсточникКонтактнойИнформации = ПараметрыДоставки.Получатель;
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
Если ПараметрыДоставки.СкрытыеКопии Тогда
|
||||
ИмяТаблицыПолучателей = "ПолучателиСкрытыхКопий";
|
||||
Иначе
|
||||
ИмяТаблицыПолучателей = "Получатели";
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Получатель Из ПараметрыДоставки.Получатели Цикл
|
||||
ПредставлениеПолучателя = Строка(Получатель.Ключ);
|
||||
АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(Получатель.Значение);
|
||||
Для Каждого Кому Из АдресаПолучателя Цикл
|
||||
НоваяСтрока = Сообщение.Получатели.Добавить();
|
||||
НоваяСтрока = Сообщение[ИмяТаблицыПолучателей].Добавить();
|
||||
НоваяСтрока.Адрес = Кому.Адрес;
|
||||
НоваяСтрока.Представление = ПредставлениеПолучателя + " (" + Кому.Адрес + ")";
|
||||
НоваяСтрока.ИсточникКонтактнойИнформации = Получатель.Ключ;
|
||||
@@ -3227,6 +3249,12 @@
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыПисьма.АдресОтвета) Тогда
|
||||
НоваяСтрока = Сообщение.ПолучателиОтвета.Добавить();
|
||||
НоваяСтрока.Адрес = ПараметрыПисьма.АдресОтвета;
|
||||
НоваяСтрока.Представление = ПараметрыПисьма.АдресОтвета;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Картинка Из ПараметрыДоставки.Картинки Цикл
|
||||
СтрокаВложение = Сообщение.Вложения.Добавить();
|
||||
ФайлКартинка = Картинка.Значение.ПолучитьДвоичныеДанные();
|
||||
|
||||
@@ -381,8 +381,7 @@
|
||||
// ** Кодировка - Строка - кодировка вложения (используется, если отличается от кодировки письма).
|
||||
// ** Идентификатор - Строка - (необязательный) используется для отметки картинок, отображаемых в теле письма.
|
||||
//
|
||||
// * АдресОтвета - Соответствие
|
||||
// - Строка - см. описание поля Кому.
|
||||
// * АдресОтвета - Строка - E-mail адрес, на который будут приходить ответы на рассылку.
|
||||
// * ИдентификаторыОснований - Строка - идентификаторы оснований данного письма.
|
||||
// * ОбрабатыватьТексты - Булево - необходимость обрабатывать тексты письма при отправке.
|
||||
// * УведомитьОДоставке - Булево - необходимость запроса уведомления о доставке.
|
||||
|
||||
@@ -355,11 +355,19 @@
|
||||
НаборЗаписей.Записать();
|
||||
|
||||
Если ЗапуститьДоставкуСОтсрочкой Тогда
|
||||
Если ЗначениеЗаполнено(ДополнительныеПараметры.СобытиеЖурналаПриОтсрочкеДоставки) Тогда
|
||||
Запущено = Ложь;
|
||||
ЗапуститьДоставкуСерверныхОповещенийСОтсрочкой(Запущено);
|
||||
Если Запущено И ЗначениеЗаполнено(ДополнительныеПараметры.СобытиеЖурналаПриОтсрочкеДоставки) Тогда
|
||||
Попытка
|
||||
ВызватьИсключение НСтр("ru = 'Стек вызовов:'");
|
||||
Исключение
|
||||
СтекВызовов = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
Комментарий = ДополнительныеПараметры.КомментарийЖурналаПриОтсрочкеДоставки;
|
||||
Комментарий = Комментарий + ?(ЗначениеЗаполнено(Комментарий), Символы.ПС, "") + СтекВызовов;
|
||||
ЗаписьЖурналаРегистрации(ДополнительныеПараметры.СобытиеЖурналаПриОтсрочкеДоставки,
|
||||
УровеньЖурналаРегистрации.Информация,,, ДополнительныеПараметры.КомментарийЖурналаПриОтсрочкеДоставки);
|
||||
УровеньЖурналаРегистрации.Информация,,, Комментарий);
|
||||
КонецЕсли;
|
||||
ЗапуститьДоставкуСерверныхОповещенийСОтсрочкой();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -1696,10 +1704,12 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Для процедуры ОтправитьСерверноеОповещениеСИдентификаторомГруппы.
|
||||
Процедура ЗапуститьДоставкуСерверныхОповещенийСОтсрочкой()
|
||||
Процедура ЗапуститьДоставкуСерверныхОповещенийСОтсрочкой(Запущено = Ложь)
|
||||
|
||||
Если Не ТекущийПользовательЗарегистрированВСистемеВзаимодействия()
|
||||
Или ОбщегоНазначения.ИнформационнаяБазаФайловая() // Запуск не имеет смысла, так как новое задание будет ждать задание длительной операции.
|
||||
Или МонопольныйРежим() // Запуск недопустим, так изменения в сеансе будут заблокированы.
|
||||
Или ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы()
|
||||
Или ДоставкаСерверныхОповещенийСОтсрочкойУжеВыполняется() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -1715,6 +1725,8 @@
|
||||
|
||||
ФоновыеЗадания.Выполнить(ИмяМетодаЗаданияДоставкиСерверныхОповещенийСОтсрочкой(),,, НаименованиеЗадания);
|
||||
|
||||
Запущено = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обработчик фонового задания.
|
||||
|
||||
@@ -10,19 +10,7 @@
|
||||
|
||||
Процедура ОбработчикПроверкиПолученияСерверныхОповещений() Экспорт
|
||||
|
||||
СостояниеПолучения = СерверныеОповещенияКлиент.СостояниеПолучения();
|
||||
Если СостояниеПолучения.ПроверкаВыполняется Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СостояниеПолучения.ПроверкаВыполняется = Истина;
|
||||
Попытка
|
||||
СерверныеОповещенияКлиент.ПроверитьПолучитьСерверныеОповещения();
|
||||
СостояниеПолучения.ПроверкаВыполняется = Ложь;
|
||||
Исключение
|
||||
СостояниеПолучения.ПроверкаВыполняется = Ложь;
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
Интервал = 60;
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьОбработчикОжидания("ОбработчикПроверкиПолученияСерверныхОповещений", Интервал, Истина);
|
||||
ПодключитьОбработчикОжидания("ОбработчикПроверкиПолученияСерверныхОповещений", Интервал);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
Интервал = СостояниеПолучения.МинимальныйПериод;
|
||||
ОбсужденияАктивны = СостояниеПолучения.СистемаВзаимодействийПодключена
|
||||
И СостояниеПолучения.ОбработчикНовыхЛичныхСообщенийПодключен
|
||||
И СостояниеПолучения.ПериодическаяОтправкаДанныхРазрешена
|
||||
И СостояниеПолучения.ДатаПоследнегоПолученияСообщения + 60 > ТекущаяДатаСеанса;
|
||||
|
||||
МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
@@ -535,7 +536,7 @@
|
||||
КонецФункции
|
||||
|
||||
// См. НовоеСостояниеПолучения
|
||||
Функция СостояниеПолучения() Экспорт
|
||||
Функция СостояниеПолучения()
|
||||
|
||||
ИмяПараметраПриложения = "СтандартныеПодсистемы.БазоваяФункциональность.СерверныеОповещения";
|
||||
СостояниеПолучения = ПараметрыПриложения.Получить(ИмяПараметраПриложения);
|
||||
@@ -572,7 +573,6 @@
|
||||
// * СеансАдминистратораСервиса - Булево
|
||||
// * ПериодическаяОтправкаДанныхРазрешена - Булево - устанавливается Истина в процедуре ПослеНачалаРаботыСистемы.
|
||||
// * МинимальныйИнтервалПериодическойОтправкиДанных - см. СерверныеОповещения.МинимальныйИнтервалПериодическойОтправкиДанных
|
||||
// * ПроверкаВыполняется - Булево
|
||||
// * КлючСеанса - см. СерверныеОповещения.КлючСеанса
|
||||
// * ИдентификаторПользователяИБ - УникальныйИдентификатор
|
||||
// * ДатаОбновленияСостояния - Дата
|
||||
@@ -595,8 +595,6 @@
|
||||
// обсуждения "СерверныеОповещения".
|
||||
// * ОбработчикНовыхЛичныхСообщенийПодключен - Булево
|
||||
// * ОбработчикНовыхОбщихСообщенийПодключен - Булево
|
||||
// * НачатоПодключениеОбработчикаНовыхЛичныхСообщений - Булево
|
||||
// * НачатоПодключениеОбработчикаНовыхОбщихСообщений - Булево
|
||||
// * ДатаПоследнегоСерверногоВызова - Дата
|
||||
// * ТекущаяДатаСеансаДляПроверкиСчетчиковОжидания - Дата
|
||||
// * ЧислоСекундВыравниванияДатыСчетчиковОжидания - Число
|
||||
@@ -612,7 +610,6 @@
|
||||
Состояние.Вставить("СеансАдминистратораСервиса", Ложь);
|
||||
Состояние.Вставить("ПериодическаяОтправкаДанныхРазрешена", Ложь);
|
||||
Состояние.Вставить("МинимальныйИнтервалПериодическойОтправкиДанных", 1);
|
||||
Состояние.Вставить("ПроверкаВыполняется", Ложь);
|
||||
Состояние.Вставить("КлючСеанса", "");
|
||||
Состояние.Вставить("ИдентификаторПользователяИБ",
|
||||
ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор());
|
||||
@@ -627,8 +624,6 @@
|
||||
Состояние.Вставить("ИдентификаторОбщегоОбсуждения", Неопределено);
|
||||
Состояние.Вставить("ОбработчикНовыхЛичныхСообщенийПодключен", Ложь);
|
||||
Состояние.Вставить("ОбработчикНовыхОбщихСообщенийПодключен", Ложь);
|
||||
Состояние.Вставить("НачатоПодключениеОбработчикаНовыхЛичныхСообщений", Ложь);
|
||||
Состояние.Вставить("НачатоПодключениеОбработчикаНовыхОбщихСообщений", Ложь);
|
||||
Состояние.Вставить("ДатаПоследнегоСерверногоВызова", '00010101');
|
||||
Состояние.Вставить("ТекущаяДатаСеансаДляПроверкиСчетчиковОжидания", '00010101');
|
||||
Состояние.Вставить("ЧислоСекундВыравниванияДатыСчетчиковОжидания", 0);
|
||||
@@ -641,8 +636,7 @@
|
||||
Процедура ПодключитьОбработчикНовыхСообщений(СостояниеПолучения)
|
||||
|
||||
Если СостояниеПолучения.ИдентификаторЛичногоОбсуждения <> Неопределено
|
||||
И Не СостояниеПолучения.ОбработчикНовыхЛичныхСообщенийПодключен
|
||||
И Не СостояниеПолучения.НачатоПодключениеОбработчикаНовыхЛичныхСообщений Тогда
|
||||
И Не СостояниеПолучения.ОбработчикНовыхЛичныхСообщенийПодключен Тогда
|
||||
|
||||
Контекст = Новый Структура("СостояниеПолучения", СостояниеПолучения);
|
||||
Попытка
|
||||
@@ -659,8 +653,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если СостояниеПолучения.ИдентификаторОбщегоОбсуждения <> Неопределено
|
||||
И Не СостояниеПолучения.ОбработчикНовыхОбщихСообщенийПодключен
|
||||
И Не СостояниеПолучения.НачатоПодключениеОбработчикаНовыхОбщихСообщений Тогда
|
||||
И Не СостояниеПолучения.ОбработчикНовыхОбщихСообщенийПодключен Тогда
|
||||
|
||||
Контекст = Новый Структура("СостояниеПолучения", СостояниеПолучения);
|
||||
Попытка
|
||||
@@ -680,7 +673,6 @@
|
||||
|
||||
Процедура ПослеПодключенияОбработчикаНовыхЛичныхСообщений(Контекст) Экспорт
|
||||
|
||||
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхЛичныхСообщений = Ложь;
|
||||
Контекст.СостояниеПолучения.ОбработчикНовыхЛичныхСообщенийПодключен = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -689,8 +681,6 @@
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхЛичныхСообщений = Ложь;
|
||||
|
||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||
НСтр("ru = 'Серверные оповещения.Ошибка подключения обработчика новых личных сообщений'",
|
||||
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
||||
@@ -719,7 +709,6 @@
|
||||
|
||||
Процедура ПослеПодключенияОбработчикаНовыхОбщихСообщений(Контекст) Экспорт
|
||||
|
||||
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхОбщихСообщений = Ложь;
|
||||
Контекст.СостояниеПолучения.ОбработчикНовыхОбщихСообщенийПодключен = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -728,8 +717,6 @@
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхОбщихСообщений = Ложь;
|
||||
|
||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||
НСтр("ru = 'Серверные оповещения.Ошибка подключения обработчика новых общих сообщений'",
|
||||
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
||||
|
||||
@@ -42,16 +42,6 @@
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности();
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается после запуска конфигурации, открывает окно предупреждения безопасности.
|
||||
Процедура ЗадатьВопросПроОтключениеOpenIDConnectОбработчикОжидания() Экспорт
|
||||
|
||||
// АПК:277-выкл Используется модуль СтандартныеПодсистемыГлобальный,
|
||||
// чтобы не создавать ПользователиГлобальный из-за одной процедуры.
|
||||
ПользователиСлужебныйКлиент.ЗадатьВопросПроОтключениеOpenIDConnect();
|
||||
// АПК:277-вкл
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Показывает сообщение пользователю о недостаточном объеме оперативной памяти.
|
||||
Процедура ПоказатьРекомендациюПоОбъемуОперативнойПамяти() Экспорт
|
||||
СтандартныеПодсистемыКлиент.ОповеститьОНехваткеПамяти();
|
||||
|
||||
@@ -1921,10 +1921,7 @@
|
||||
// Только для внутреннего использования. Продолжение процедуры ПроверитьНеобходимостьВосстановленияСвязиСГлавнымУзлом.
|
||||
Процедура ПослеЗакрытияФормыВосстановленияСвязиСГлавнымУзлом(Результат, Параметры) Экспорт
|
||||
|
||||
Если ТипЗнч(Результат) <> Тип("Структура") Тогда
|
||||
Параметры.Отказ = Истина;
|
||||
|
||||
ИначеЕсли Результат.Отказ Тогда
|
||||
Если ТипЗнч(Результат) <> Тип("Структура") Или Результат.Отказ Тогда
|
||||
Параметры.Отказ = Истина;
|
||||
Иначе
|
||||
Параметры.ПолученныеПараметрыКлиента.Вставить("ВосстановитьСвязьСГлавнымУзлом");
|
||||
@@ -1937,10 +1934,7 @@
|
||||
// Только для внутреннего использования. Продолжение процедуры ПередНачаломРаботыСистемы4.
|
||||
Процедура ПослеЗакрытияФормыВыбораНачальныхРегиональныхНастроекИБ(Результат, Параметры) Экспорт
|
||||
|
||||
Если ТипЗнч(Результат) <> Тип("Структура") Тогда
|
||||
Параметры.Отказ = Истина;
|
||||
|
||||
ИначеЕсли Результат.Отказ Тогда
|
||||
Если ТипЗнч(Результат) <> Тип("Структура") Или Результат.Отказ Тогда
|
||||
Параметры.Отказ = Истина;
|
||||
Иначе
|
||||
Параметры.ПолученныеПараметрыКлиента.Вставить("ВыбратьНачальныеРегиональныеНастройкиИБ");
|
||||
|
||||
@@ -1634,7 +1634,8 @@
|
||||
ИменаНастроек.Добавить("/НастройкиОкнаМобильногоКлиента");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкнаМобильногоКлиента");
|
||||
Для Каждого КлючИЗначение Из Ключи Цикл
|
||||
ТекущиеКлючи = Новый Соответствие(Новый ФиксированноеСоответствие(Ключи));
|
||||
Для Каждого КлючИЗначение Из ТекущиеКлючи Цикл
|
||||
ТекущийДень = КлючИЗначение.Ключ;
|
||||
Если ТипЗнч(ТекущийДень) <> Тип("Дата") Тогда
|
||||
Ключи = Неопределено;
|
||||
@@ -2153,7 +2154,9 @@
|
||||
// Фоновое обновление поставляемых профилей и параметров работы расширений.
|
||||
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ВключитьЗаполнениеПараметровРаботыРасширений(Ложь, Истина);
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗапуститьЗаполнениеПараметровРаботыРасширений(Истина);
|
||||
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗапуститьЗаполнениеПараметровРаботыРасширений(
|
||||
НСтр("ru = 'Запуск с ожиданием после загрузки данных области'"),
|
||||
Истина);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -14358,8 +14358,9 @@
|
||||
Контекст.ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных = Ложь;
|
||||
ЗадержкаЗапроса = Контекст.МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных;
|
||||
Если ЗадержкаЗапроса > 0 Тогда
|
||||
Для Каждого ОписаниеПотока Из Контекст.ЗанятыеПотоки Цикл
|
||||
Поток = ОписаниеПотока.Значение;
|
||||
ТекущиеЗанятыеПотоки = Новый Соответствие(Новый ФиксированноеСоответствие(Контекст.ЗанятыеПотоки));
|
||||
Для Каждого ОписаниеПотока Из ТекущиеЗанятыеПотоки Цикл
|
||||
Поток = ОписаниеПотока.Значение; // см. НовыйПоток
|
||||
Если Поток.ПорцияИзНабора <> Неопределено
|
||||
Или Поток.Задание.ЭтоОбновлениеПрав
|
||||
Или Поток.Задание.ЭтоОбработкаУстаревшихЭлементов Тогда
|
||||
|
||||
@@ -2795,209 +2795,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает описание команд, разбитое по типам контактной информации.
|
||||
// Полученное соответствие используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - ПеречислениеСсылка.ТипыКонтактнойИнформации
|
||||
// * Значение - см. КомандыТипаКонтактнойИнформации
|
||||
//
|
||||
Функция ОписаниеКоманд() Экспорт
|
||||
|
||||
ОписаниеКоманд = Новый Соответствие;
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Адрес, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Адрес));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Телефон, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Телефон));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты,
|
||||
КомандыТипаКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Skype, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Skype));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.ВебСтраница, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.ВебСтраница));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Факс, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Факс));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Другое, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Другое));
|
||||
|
||||
Возврат ОписаниеКоманд;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает описание команд, предназначенные для типа контактной информации, переданного в качестве параметра.
|
||||
// Полученное соответствие используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Параметры:
|
||||
// Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - состав полей зависит от типа контактной информации. Для типа Адрес: ВвестиКомментарийКАдресу,
|
||||
// ПоказатьНаКартеЯндекс, ПоказатьНаКартеGoogle, ЗапланироватьВстречу, ПоказатьИсториюИзменений.
|
||||
// Для типа Телефон: ПозвонитьПоТелефону, ОтправитьSMS, ПоказатьИсториюИзменений.
|
||||
// Для типа Факс: ОтправитьФакс, ПоказатьИсториюИзменений.
|
||||
// Для типа АдресЭлектронной почты: НаписатьЭлектронноеПисьмо.
|
||||
// Для типа Skype: ПозвонитьSkype, НачатьЧатSkype.
|
||||
// Для типа ВебСтраница: ОткрытьВебСтраницу.
|
||||
// Для типа Другое: ОткрытьОкноДругое.
|
||||
// Состав полей:
|
||||
// * ВвестиКомментарийКАдресу - см. ОписаниеКомандыПоИмени
|
||||
// * ПоказатьНаКартеЯндекс - см. ОписаниеКомандыПоИмени
|
||||
// * ПоказатьНаКартеGoogle - см. ОписаниеКомандыПоИмени
|
||||
// * ЗапланироватьВстречу - см. ОписаниеКомандыПоИмени
|
||||
// * ПоказатьИсториюИзменений - см. ОписаниеКомандыПоИмени
|
||||
// * ПозвонитьПоТелефону - см. ОписаниеКомандыПоИмени
|
||||
// * ОтправитьSMS - см. ОписаниеКомандыПоИмени
|
||||
// * ОтправитьФакс - см. ОписаниеКомандыПоИмени
|
||||
// * НаписатьЭлектронноеПисьмо - см. ОписаниеКомандыПоИмени
|
||||
// * ПозвонитьSkype - см. ОписаниеКомандыПоИмени
|
||||
// * НачатьЧатSkype - см. ОписаниеКомандыПоИмени
|
||||
// * ОткрытьВебСтраницу - см. ОписаниеКомандыПоИмени
|
||||
// * ОткрытьОкноДругое - см. ОписаниеКомандыПоИмени
|
||||
//
|
||||
Функция КомандыТипаКонтактнойИнформации(Тип) Экспорт
|
||||
|
||||
Возврат УправлениеКонтактнойИнформациейСлужебныйПовтИсп.КомандыТипаКонтактнойИнформации(Тип);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру с описанием команды контактной информации.
|
||||
// Полученное соответствие используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяКоманды - Строка - имя команды, описание которой нужно получить.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. СвойстваКоманды
|
||||
//
|
||||
Функция ОписаниеКомандыПоИмени(ИмяКоманды) Экспорт
|
||||
|
||||
// Команда для типа Адрес, Телефон, Факс
|
||||
Если ИмяКоманды = "ПоказатьИсториюИзменений" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'История изменений...'"),
|
||||
НСтр("ru = 'Показывает историю изменения контактной информации'"),
|
||||
БиблиотекаКартинок.ИсторияИзменений,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередОткрытиемФормыИсторииИзменений",
|
||||
Истина);
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Адрес
|
||||
Если ИмяКоманды = "ВвестиКомментарийКАдресу" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Ввести комментарий'"),
|
||||
НСтр("ru = 'Ввести комментарий'"),
|
||||
БиблиотекаКартинок.Комментарий,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередВводомКомментария",
|
||||
Истина);
|
||||
ИначеЕсли ИмяКоманды = "ПоказатьНаКартеЯндекс" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Адрес на Яндекс.Картах'"),
|
||||
НСтр("ru = 'Показывает адрес на картах Яндекс.Карты'"),
|
||||
БиблиотекаКартинок.ЯндексКарты,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередПоказомАдресаНаКартеЯндекс");
|
||||
ИначеЕсли ИмяКоманды = "ПоказатьНаКартеGoogle" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Адрес на Google Maps'"),
|
||||
НСтр("ru = 'Показывает адрес на карте Google Maps'"),
|
||||
БиблиотекаКартинок.GoogleMaps,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередПоказомАдресаНаКартеGoogle");
|
||||
ИначеЕсли ИмяКоманды = "ЗапланироватьВстречу" Тогда
|
||||
Возврат СвойстваКоманды("", "");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Телефон
|
||||
Если ИмяКоманды = "ПозвонитьПоТелефону" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Позвонить'"),
|
||||
НСтр("ru = 'Позвонить по телефону'"),
|
||||
БиблиотекаКартинок.Позвонить,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередТелефоннымЗвонком");
|
||||
ИначеЕсли ИмяКоманды = "ОтправитьSMS" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Отправить SMS'"),
|
||||
НСтр("ru = 'Отправить SMS'"),
|
||||
БиблиотекаКартинок.ОтправитьSMS,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередСозданиемSMS");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Факс
|
||||
Если ИмяКоманды = "ОтправитьФакс" Тогда
|
||||
Возврат СвойстваКоманды("", "");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа АдресЭлектроннойПочты
|
||||
Если ИмяКоманды = "НаписатьЭлектронноеПисьмо" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Написать письмо'"),
|
||||
НСтр("ru = 'Написать письмо на указанный адрес'"),
|
||||
БиблиотекаКартинок.ОтправитьЭлектронноеПисьмо,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередСозданиемЭлектронногоПисьма");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Skype
|
||||
Если ИмяКоманды = "ПозвонитьSkype" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Позвонить'"),
|
||||
НСтр("ru = 'Позвонить на Skype'"),
|
||||
БиблиотекаКартинок.Позвонить,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередЗвонкомНаSkype");
|
||||
ИначеЕсли ИмяКоманды = "НачатьЧатSkype" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Начать чат'"),
|
||||
НСтр("ru = 'Начать чат в Skype'"),
|
||||
БиблиотекаКартинок.ОтправитьSMS,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередНачаломБеседыВSkype");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа ВебСтраница
|
||||
Если ИмяКоманды = "ОткрытьВебСтраницу" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Перейти'"),
|
||||
НСтр("ru = 'Перейти по ссылке'"),
|
||||
БиблиотекаКартинок.КонтактнаяИнформацияПерейтиПоСсылке,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередПереходомПоВебСсылке");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды типа Другое
|
||||
Если ИмяКоманды = "ОткрытьОкноДругое" Тогда
|
||||
Возврат СвойстваКоманды("", "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру для описания команд контактной информации.
|
||||
// Полученная структура используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Параметры:
|
||||
// Заголовок - Строка - заголовок команды.
|
||||
// Подсказка - Строка - подсказка команды.
|
||||
// Картинка - Картинка - картинка команды.
|
||||
// Действие - Строка - полный путь к процедуре, которую необходимо выполнить.
|
||||
// Например, "_ДемоСтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча".
|
||||
// ИзменяетСохраняемыеДанные - Булево
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Заголовок - Строка
|
||||
// * Подсказка - Строка
|
||||
// * Картинка - Картинка
|
||||
// * Действие - Строка
|
||||
// * ИзменяетСохраняемыеДанные - Булево
|
||||
//
|
||||
Функция СвойстваКоманды(Заголовок, Подсказка, Картинка = "", Действие = "", ИзменяетСохраняемыеДанные = Ложь) Экспорт
|
||||
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("Заголовок", Заголовок);
|
||||
Свойства.Вставить("Подсказка", Подсказка);
|
||||
Свойства.Вставить("Картинка", ?(Картинка="", Новый Картинка(), Картинка));
|
||||
Свойства.Вставить("Действие", Действие);
|
||||
Свойства.Вставить("ИзменяетСохраняемыеДанные", ИзменяетСохраняемыеДанные);
|
||||
|
||||
Возврат Свойства;
|
||||
|
||||
КонецФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Проверка и сведения об адресе
|
||||
|
||||
@@ -3716,6 +3513,209 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Возвращает описание команд, разбитое по типам контактной информации.
|
||||
// Полученное соответствие используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - ПеречислениеСсылка.ТипыКонтактнойИнформации
|
||||
// * Значение - см. КомандыТипаКонтактнойИнформации
|
||||
//
|
||||
Функция ОписаниеКоманд() Экспорт
|
||||
|
||||
ОписаниеКоманд = Новый Соответствие;
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Адрес, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Адрес));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Телефон, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Телефон));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты,
|
||||
КомандыТипаКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Skype, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Skype));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.ВебСтраница, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.ВебСтраница));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Факс, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Факс));
|
||||
ОписаниеКоманд.Вставить(Перечисления.ТипыКонтактнойИнформации.Другое, КомандыТипаКонтактнойИнформации(
|
||||
Перечисления.ТипыКонтактнойИнформации.Другое));
|
||||
|
||||
Возврат ОписаниеКоманд;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает описание команд, предназначенные для типа контактной информации, переданного в качестве параметра.
|
||||
// Полученное соответствие используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Параметры:
|
||||
// Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - состав полей зависит от типа контактной информации. Для типа Адрес: ВвестиКомментарийКАдресу,
|
||||
// ПоказатьНаКартеЯндекс, ПоказатьНаКартеGoogle, ЗапланироватьВстречу, ПоказатьИсториюИзменений.
|
||||
// Для типа Телефон: ПозвонитьПоТелефону, ОтправитьSMS, ПоказатьИсториюИзменений.
|
||||
// Для типа Факс: ОтправитьФакс, ПоказатьИсториюИзменений.
|
||||
// Для типа АдресЭлектронной почты: НаписатьЭлектронноеПисьмо.
|
||||
// Для типа Skype: ПозвонитьSkype, НачатьЧатSkype.
|
||||
// Для типа ВебСтраница: ОткрытьВебСтраницу.
|
||||
// Для типа Другое: ОткрытьОкноДругое.
|
||||
// Состав полей:
|
||||
// * ВвестиКомментарийКАдресу - см. ОписаниеКомандыПоИмени
|
||||
// * ПоказатьНаКартеЯндекс - см. ОписаниеКомандыПоИмени
|
||||
// * ПоказатьНаКартеGoogle - см. ОписаниеКомандыПоИмени
|
||||
// * ЗапланироватьВстречу - см. ОписаниеКомандыПоИмени
|
||||
// * ПоказатьИсториюИзменений - см. ОписаниеКомандыПоИмени
|
||||
// * ПозвонитьПоТелефону - см. ОписаниеКомандыПоИмени
|
||||
// * ОтправитьSMS - см. ОписаниеКомандыПоИмени
|
||||
// * ОтправитьФакс - см. ОписаниеКомандыПоИмени
|
||||
// * НаписатьЭлектронноеПисьмо - см. ОписаниеКомандыПоИмени
|
||||
// * ПозвонитьSkype - см. ОписаниеКомандыПоИмени
|
||||
// * НачатьЧатSkype - см. ОписаниеКомандыПоИмени
|
||||
// * ОткрытьВебСтраницу - см. ОписаниеКомандыПоИмени
|
||||
// * ОткрытьОкноДругое - см. ОписаниеКомандыПоИмени
|
||||
//
|
||||
Функция КомандыТипаКонтактнойИнформации(Тип) Экспорт
|
||||
|
||||
Возврат УправлениеКонтактнойИнформациейСлужебныйПовтИсп.КомандыТипаКонтактнойИнформации(Тип);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру с описанием команды контактной информации.
|
||||
// Полученное соответствие используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяКоманды - Строка - имя команды, описание которой нужно получить.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. СвойстваКоманды
|
||||
//
|
||||
Функция ОписаниеКомандыПоИмени(ИмяКоманды) Экспорт
|
||||
|
||||
// Команда для типа Адрес, Телефон, Факс
|
||||
Если ИмяКоманды = "ПоказатьИсториюИзменений" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'История изменений...'"),
|
||||
НСтр("ru = 'Показывает историю изменения контактной информации'"),
|
||||
БиблиотекаКартинок.ИсторияИзменений,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередОткрытиемФормыИсторииИзменений",
|
||||
Истина);
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Адрес
|
||||
Если ИмяКоманды = "ВвестиКомментарийКАдресу" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Ввести комментарий'"),
|
||||
НСтр("ru = 'Ввести комментарий'"),
|
||||
БиблиотекаКартинок.Комментарий,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередВводомКомментария",
|
||||
Истина);
|
||||
ИначеЕсли ИмяКоманды = "ПоказатьНаКартеЯндекс" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Адрес на Яндекс.Картах'"),
|
||||
НСтр("ru = 'Показывает адрес на картах Яндекс.Карты'"),
|
||||
БиблиотекаКартинок.ЯндексКарты,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередПоказомАдресаНаКартеЯндекс");
|
||||
ИначеЕсли ИмяКоманды = "ПоказатьНаКартеGoogle" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Адрес на Google Maps'"),
|
||||
НСтр("ru = 'Показывает адрес на карте Google Maps'"),
|
||||
БиблиотекаКартинок.GoogleMaps,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередПоказомАдресаНаКартеGoogle");
|
||||
ИначеЕсли ИмяКоманды = "ЗапланироватьВстречу" Тогда
|
||||
Возврат СвойстваКоманды("", "");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Телефон
|
||||
Если ИмяКоманды = "ПозвонитьПоТелефону" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Позвонить'"),
|
||||
НСтр("ru = 'Позвонить по телефону'"),
|
||||
БиблиотекаКартинок.Позвонить,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередТелефоннымЗвонком");
|
||||
ИначеЕсли ИмяКоманды = "ОтправитьSMS" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Отправить SMS'"),
|
||||
НСтр("ru = 'Отправить SMS'"),
|
||||
БиблиотекаКартинок.ОтправитьSMS,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередСозданиемSMS");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Факс
|
||||
Если ИмяКоманды = "ОтправитьФакс" Тогда
|
||||
Возврат СвойстваКоманды("", "");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа АдресЭлектроннойПочты
|
||||
Если ИмяКоманды = "НаписатьЭлектронноеПисьмо" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Написать письмо'"),
|
||||
НСтр("ru = 'Написать письмо на указанный адрес'"),
|
||||
БиблиотекаКартинок.ОтправитьЭлектронноеПисьмо,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередСозданиемЭлектронногоПисьма");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа Skype
|
||||
Если ИмяКоманды = "ПозвонитьSkype" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Позвонить'"),
|
||||
НСтр("ru = 'Позвонить на Skype'"),
|
||||
БиблиотекаКартинок.Позвонить,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередЗвонкомНаSkype");
|
||||
ИначеЕсли ИмяКоманды = "НачатьЧатSkype" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Начать чат'"),
|
||||
НСтр("ru = 'Начать чат в Skype'"),
|
||||
БиблиотекаКартинок.ОтправитьSMS,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередНачаломБеседыВSkype");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды для типа ВебСтраница
|
||||
Если ИмяКоманды = "ОткрытьВебСтраницу" Тогда
|
||||
Возврат СвойстваКоманды(
|
||||
НСтр("ru = 'Перейти'"),
|
||||
НСтр("ru = 'Перейти по ссылке'"),
|
||||
БиблиотекаКартинок.КонтактнаяИнформацияПерейтиПоСсылке,
|
||||
"УправлениеКонтактнойИнформациейКлиент.ПередПереходомПоВебСсылке");
|
||||
КонецЕсли;
|
||||
|
||||
// Команды типа Другое
|
||||
Если ИмяКоманды = "ОткрытьОкноДругое" Тогда
|
||||
Возврат СвойстваКоманды("", "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру для описания команд контактной информации.
|
||||
// Полученная структура используется в УправлениеКонтактнойИнформациейПереопределяемый.ПриОпределенииНастроек
|
||||
//
|
||||
// Параметры:
|
||||
// Заголовок - Строка - заголовок команды.
|
||||
// Подсказка - Строка - подсказка команды.
|
||||
// Картинка - Картинка - картинка команды.
|
||||
// Действие - Строка - полный путь к процедуре, которую необходимо выполнить.
|
||||
// Например, "_ДемоСтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча".
|
||||
// ИзменяетСохраняемыеДанные - Булево
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Заголовок - Строка
|
||||
// * Подсказка - Строка
|
||||
// * Картинка - Картинка
|
||||
// * Действие - Строка
|
||||
// * ИзменяетСохраняемыеДанные - Булево
|
||||
//
|
||||
Функция СвойстваКоманды(Заголовок, Подсказка, Картинка = "", Действие = "", ИзменяетСохраняемыеДанные = Ложь) Экспорт
|
||||
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("Заголовок", Заголовок);
|
||||
Свойства.Вставить("Подсказка", Подсказка);
|
||||
Свойства.Вставить("Картинка", ?(Картинка="", Новый Картинка(), Картинка));
|
||||
Свойства.Вставить("Действие", Действие);
|
||||
Свойства.Вставить("ИзменяетСохраняемыеДанные", ИзменяетСохраняемыеДанные);
|
||||
|
||||
Возврат Свойства;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
@@ -3813,6 +3813,11 @@
|
||||
|
||||
Процедура ПриСкрытииЗначенияРеквизита(ПолноеИмя, Значение, СтандартнаяОбработка) Экспорт
|
||||
|
||||
ИмяТабличнойЧасти = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(".%1.", "КонтактнаяИнформация");
|
||||
Если СтрНайти(ПолноеИмя, ИмяТабличнойЧасти) = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрЗаканчиваетсяНа(ПолноеИмя, "КонтактнаяИнформация.ЗначенияПолей") И ЗначениеЗаполнено(Значение) Тогда
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
@@ -3823,11 +3828,18 @@
|
||||
|
||||
ПоляКонтактнойИнформации = УправлениеКонтактнойИнформациейСлужебный.СтрокуJSONВСтруктуру(Значение);
|
||||
|
||||
НеОбрабатываемыеПоля = Новый Массив;
|
||||
НеОбрабатываемыеПоля.Добавить("type");
|
||||
НеОбрабатываемыеПоля.Добавить("apartments");
|
||||
НеОбрабатываемыеПоля.Добавить("buildings");
|
||||
|
||||
Если ПоляКонтактнойИнформации.Количество() > 0 Тогда
|
||||
|
||||
Для Каждого ПолеКонтактнойИнформации Из ПоляКонтактнойИнформации Цикл
|
||||
Если СтрСравнить(ПолеКонтактнойИнформации.Ключ, "type") <> 0 И ЗначениеЗаполнено(ПолеКонтактнойИнформации.Значение) Тогда
|
||||
ПоляКонтактнойИнформации[ПолеКонтактнойИнформации.Ключ] = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "");
|
||||
Если НеОбрабатываемыеПоля.Найти(ПолеКонтактнойИнформации.Ключ) = Неопределено
|
||||
И ЗначениеЗаполнено(ПолеКонтактнойИнформации.Значение) Тогда
|
||||
ПоляКонтактнойИнформации[ПолеКонтактнойИнформации.Ключ] =
|
||||
СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "");
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -4820,83 +4832,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьДействияДляСтатическихЭлементов(Форма, СтрокаКИ, ИмяЭлементаДляРазмещения)
|
||||
|
||||
Элемент = Форма.Элементы[СтрокаКИ.ИмяРеквизита];
|
||||
Тип = СтрокаКи.Тип;
|
||||
|
||||
ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации,
|
||||
ИмяЭлементаДляРазмещения);
|
||||
ОбработкаНавигационнойСсылки = ПараметрыКонтактнойИнформации.ОбработкаНавигационнойСсылки;
|
||||
|
||||
Если СтрокаКИ.ВидРедактирования = "Диалог" И СтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
|
||||
И Элемент.Вид = ВидПоляФормы.ПолеНадписи Тогда
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Элемент.ПолучитьДействие("Нажатие")) Тогда
|
||||
Элемент.УстановитьДействие("Нажатие", "Подключаемый_КонтактнаяИнформацияПриНажатии");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница И ОбработкаНавигационнойСсылки И Элемент.Вид = ВидПоляФормы.ПолеНадписи Тогда
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("ОбработкаНавигационнойСсылки")) Тогда
|
||||
Элемент.УстановитьДействие("ОбработкаНавигационнойСсылки", "Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("Очистка")) Тогда
|
||||
Элемент.УстановитьДействие("Очистка", "Подключаемый_КонтактнаяИнформацияОчистка");
|
||||
КонецЕсли;
|
||||
|
||||
Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("Автоподбор")) Тогда
|
||||
Элемент.УстановитьДействие("Автоподбор", "Подключаемый_КонтактнаяИнформацияАвтоподбор");
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("ОбработкаВыбора")) Тогда
|
||||
Элемент.УстановитьДействие("ОбработкаВыбора", "Подключаемый_КонтактнаяИнформацияОбработкаВыбора");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Редактирование в диалоге
|
||||
Если ДляТипаКонтактнойИнформацииДоступноРедактированиеВДиалоге(Тип) И Элемент.Вид = ВидПоляФормы.ПолеВвода
|
||||
И Не СтрокаКИ.ВидРедактирования = "ПолеВвода" Тогда
|
||||
|
||||
ДоступенВыбор = Не СтрокаКИ.ПометкаУдаления И СтрокаКИ.ВидРедактирования <> "ПолеВвода";
|
||||
|
||||
Если ДоступенВыбор И Не Форма.ТолькоПросмотр Тогда
|
||||
Элемент.КнопкаВыбора = Истина;
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("НачалоВыбора")) Тогда
|
||||
Элемент.УстановитьДействие("НачалоВыбора", "Подключаемый_КонтактнаяИнформацияНачалоВыбора");
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Элемент.КнопкаВыбора = Ложь;
|
||||
Если ЗначениеЗаполнено(Форма[СтрокаКИ.ИмяРеквизита]) Тогда
|
||||
Элемент.КнопкаОткрытия = Истина;
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("Открытие")) Тогда
|
||||
Элемент.УстановитьДействие("Открытие", "Подключаемый_КонтактнаяИнформацияПриНажатии");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("ПриИзменении")) Тогда
|
||||
Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении");
|
||||
КонецЕсли;
|
||||
|
||||
Если ДляТипаКонтактнойИнформацииЕстьПолеКомментарий(Тип, ОбработкаНавигационнойСсылки) Тогда
|
||||
ИмяЭлементаКомментарий = "Комментарий" + СтрокаКИ.ИмяРеквизита;
|
||||
Если Форма.Элементы.Найти(ИмяЭлементаКомментарий) <> Неопределено Тогда
|
||||
Если Не ЗначениеЗаполнено(Форма.Элементы[ИмяЭлементаКомментарий].ПолучитьДействие("ПриИзменении")) Тогда
|
||||
Форма.Элементы[ИмяЭлементаКомментарий].УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПунктКонтекстногоМенюПеремещения(ПредыдущийЭлемент, Форма, Направление, ИмяЭлементаДляРазмещения)
|
||||
|
||||
Если Направление > 0 Тогда
|
||||
@@ -5146,25 +5081,19 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает доступно ли редактирование в диалоге по типу контактной информации.
|
||||
// Возвращает, доступно ли редактирование в диалоге для указанного типа контактной информации.
|
||||
//
|
||||
// Параметры:
|
||||
// Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - доступно или нет редактирование в диалоге.
|
||||
// Булево
|
||||
//
|
||||
Функция ДляТипаКонтактнойИнформацииДоступноРедактированиеВДиалоге(Тип)
|
||||
|
||||
Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
Возврат Истина;
|
||||
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
Возврат Истина;
|
||||
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
Возврат Истина;
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
Возврат Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
|
||||
Или Тип = Перечисления.ТипыКонтактнойИнформации.Телефон
|
||||
Или Тип = Перечисления.ТипыКонтактнойИнформации.Факс;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -5511,15 +5440,13 @@
|
||||
УровеньОшибок = ОшибкиЗаполненияЭлектроннойПочты(Значение, ВидИнформации, ИмяРеквизита, ПутьКРеквизиту);
|
||||
ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
УровеньОшибок = ОшибкиЗаполненияАдреса(Значение, ВидИнформации, ИмяРеквизита, ПутьКРеквизиту);
|
||||
ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
УровеньОшибок = ОшибкиЗаполненияТелефона(Значение, ВидИнформации, ИмяРеквизита);
|
||||
ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Телефон
|
||||
Или ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
УровеньОшибок = ОшибкиЗаполненияТелефона(Значение, ВидИнформации, ИмяРеквизита);
|
||||
ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
|
||||
УровеньОшибок = ОшибкиЗаполненияВебСтраницы(Значение, ВидИнформации, ИмяРеквизита);
|
||||
Иначе
|
||||
// Другое (прочее) не проверяем.
|
||||
УровеньОшибок = 0;
|
||||
УровеньОшибок = 0; // Другое не проверяем.
|
||||
КонецЕсли;
|
||||
|
||||
Возврат УровеньОшибок;
|
||||
@@ -5811,50 +5738,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание дополнительных параметров вывода контактной информации
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеКоманд - см. ОписаниеКоманд
|
||||
// ОтображатьИконки - Булево
|
||||
// РазмещеныНаФорме - Соответствие из КлючИЗначение:
|
||||
// * Ключ - СправочникСсылка.ВидыКонтактнойИнформации
|
||||
// * Значение - Булево
|
||||
// - Неопределено
|
||||
// РазрешитьДобавлениеПолей - Булево
|
||||
// ИсключаемыеВиды - Массив
|
||||
// - Неопределено
|
||||
// СкрываемыеВиды - Массив
|
||||
// - Неопределено
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ОписаниеКоманд - см. ОписаниеКоманд
|
||||
// * ОтображатьИконки - Булево
|
||||
// * РазмещеныНаФорме - Соответствие из КлючИЗначение:
|
||||
// ** Ключ - СправочникСсылка.ВидыКонтактнойИнформации
|
||||
// ** Значение - Булево
|
||||
// - Неопределено
|
||||
// * РазрешитьДобавлениеПолей - Булево
|
||||
// * ИсключаемыеВиды - Массив
|
||||
// - Неопределено
|
||||
// * СкрываемыеВиды - Массив
|
||||
// - Неопределено
|
||||
//
|
||||
Функция ДополнительныеПараметрыВыводаКонтактнойИнформации(ОписаниеКоманд, ОтображатьИконки, РазмещеныНаФорме,
|
||||
РазрешитьДобавлениеПолей, ИсключаемыеВиды, СкрываемыеВиды)
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ОписаниеКоманд", ОписаниеКоманд);
|
||||
ДополнительныеПараметры.Вставить("ОтображатьИконки", ОтображатьИконки);
|
||||
ДополнительныеПараметры.Вставить("РазмещеныНаФорме", РазмещеныНаФорме);
|
||||
ДополнительныеПараметры.Вставить("РазрешитьДобавлениеПолей", РазрешитьДобавлениеПолей);
|
||||
ДополнительныеПараметры.Вставить("ИсключаемыеВиды", ИсключаемыеВиды);
|
||||
ДополнительныеПараметры.Вставить("СкрываемыеВиды", СкрываемыеВиды);
|
||||
|
||||
Возврат ДополнительныеПараметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ГруппаВидовКонтактнойИнформацииОбъекта(Знач ПолноеИмяОбъектаМетаданных)
|
||||
|
||||
Возврат ВидКонтактнойИнформацииПоИмени(СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", ""));
|
||||
@@ -6765,6 +6648,127 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьДействияДляСтатическихЭлементов(Форма, СтрокаКИ, ИмяЭлементаДляРазмещения)
|
||||
|
||||
Элемент = Форма.Элементы[СтрокаКИ.ИмяРеквизита];
|
||||
Тип = СтрокаКи.Тип;
|
||||
|
||||
ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации,
|
||||
ИмяЭлементаДляРазмещения);
|
||||
ОбработкаНавигационнойСсылки = ПараметрыКонтактнойИнформации.ОбработкаНавигационнойСсылки;
|
||||
|
||||
Если СтрокаКИ.ВидРедактирования = "Диалог" И СтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
|
||||
И Элемент.Вид = ВидПоляФормы.ПолеНадписи Тогда
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Элемент.ПолучитьДействие("Нажатие")) Тогда
|
||||
Элемент.УстановитьДействие("Нажатие", "Подключаемый_КонтактнаяИнформацияПриНажатии");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница И ОбработкаНавигационнойСсылки И Элемент.Вид = ВидПоляФормы.ПолеНадписи Тогда
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("ОбработкаНавигационнойСсылки")) Тогда
|
||||
Элемент.УстановитьДействие("ОбработкаНавигационнойСсылки", "Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Элемент.Вид = ВидПоляФормы.ПолеВвода Тогда
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("Очистка")) Тогда
|
||||
Элемент.УстановитьДействие("Очистка", "Подключаемый_КонтактнаяИнформацияОчистка");
|
||||
КонецЕсли;
|
||||
|
||||
Если Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("Автоподбор")) Тогда
|
||||
Элемент.УстановитьДействие("Автоподбор", "Подключаемый_КонтактнаяИнформацияАвтоподбор");
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("ОбработкаВыбора")) Тогда
|
||||
Элемент.УстановитьДействие("ОбработкаВыбора", "Подключаемый_КонтактнаяИнформацияОбработкаВыбора");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Редактирование в диалоге
|
||||
Если ДляТипаКонтактнойИнформацииДоступноРедактированиеВДиалоге(Тип) И Элемент.Вид = ВидПоляФормы.ПолеВвода
|
||||
И Не СтрокаКИ.ВидРедактирования = "ПолеВвода" Тогда
|
||||
|
||||
ДоступенВыбор = Не СтрокаКИ.ПометкаУдаления И СтрокаКИ.ВидРедактирования <> "ПолеВвода";
|
||||
|
||||
Если ДоступенВыбор И Не Форма.ТолькоПросмотр Тогда
|
||||
Элемент.КнопкаВыбора = Истина;
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("НачалоВыбора")) Тогда
|
||||
Элемент.УстановитьДействие("НачалоВыбора", "Подключаемый_КонтактнаяИнформацияНачалоВыбора");
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Элемент.КнопкаВыбора = Ложь;
|
||||
Если ЗначениеЗаполнено(Форма[СтрокаКИ.ИмяРеквизита]) Тогда
|
||||
Элемент.КнопкаОткрытия = Истина;
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("Открытие")) Тогда
|
||||
Элемент.УстановитьДействие("Открытие", "Подключаемый_КонтактнаяИнформацияПриНажатии");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.ПолучитьДействие("ПриИзменении")) Тогда
|
||||
Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении");
|
||||
КонецЕсли;
|
||||
|
||||
Если ДляТипаКонтактнойИнформацииЕстьПолеКомментарий(Тип, ОбработкаНавигационнойСсылки) Тогда
|
||||
ИмяЭлементаКомментарий = "Комментарий" + СтрокаКИ.ИмяРеквизита;
|
||||
Если Форма.Элементы.Найти(ИмяЭлементаКомментарий) <> Неопределено Тогда
|
||||
Если Не ЗначениеЗаполнено(Форма.Элементы[ИмяЭлементаКомментарий].ПолучитьДействие("ПриИзменении")) Тогда
|
||||
Форма.Элементы[ИмяЭлементаКомментарий].УстановитьДействие("ПриИзменении", "Подключаемый_КонтактнаяИнформацияПриИзменении");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Описание дополнительных параметров вывода контактной информации
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеКоманд - см. ОписаниеКоманд
|
||||
// ОтображатьИконки - Булево
|
||||
// РазмещеныНаФорме - Соответствие из КлючИЗначение:
|
||||
// * Ключ - СправочникСсылка.ВидыКонтактнойИнформации
|
||||
// * Значение - Булево
|
||||
// - Неопределено
|
||||
// РазрешитьДобавлениеПолей - Булево
|
||||
// ИсключаемыеВиды - Массив
|
||||
// - Неопределено
|
||||
// СкрываемыеВиды - Массив
|
||||
// - Неопределено
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ОписаниеКоманд - см. ОписаниеКоманд
|
||||
// * ОтображатьИконки - Булево
|
||||
// * РазмещеныНаФорме - Соответствие из КлючИЗначение:
|
||||
// ** Ключ - СправочникСсылка.ВидыКонтактнойИнформации
|
||||
// ** Значение - Булево
|
||||
// - Неопределено
|
||||
// * РазрешитьДобавлениеПолей - Булево
|
||||
// * ИсключаемыеВиды - Массив
|
||||
// - Неопределено
|
||||
// * СкрываемыеВиды - Массив
|
||||
// - Неопределено
|
||||
//
|
||||
Функция ДополнительныеПараметрыВыводаКонтактнойИнформации(ОписаниеКоманд, ОтображатьИконки, РазмещеныНаФорме,
|
||||
РазрешитьДобавлениеПолей, ИсключаемыеВиды, СкрываемыеВиды)
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ОписаниеКоманд", ОписаниеКоманд);
|
||||
ДополнительныеПараметры.Вставить("ОтображатьИконки", ОтображатьИконки);
|
||||
ДополнительныеПараметры.Вставить("РазмещеныНаФорме", РазмещеныНаФорме);
|
||||
ДополнительныеПараметры.Вставить("РазрешитьДобавлениеПолей", РазрешитьДобавлениеПолей);
|
||||
ДополнительныеПараметры.Вставить("ИсключаемыеВиды", ИсключаемыеВиды);
|
||||
ДополнительныеПараметры.Вставить("СкрываемыеВиды", СкрываемыеВиды);
|
||||
|
||||
Возврат ДополнительныеПараметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкиПодсистемы(ВладелецКонтактнойИнформации)
|
||||
|
||||
Настройки = Новый Структура;
|
||||
|
||||
@@ -343,18 +343,12 @@
|
||||
|
||||
ПространствоИмен = ПространствоИмен();
|
||||
|
||||
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
Если ОжидаемыйТип = Неопределено Или ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
Данные = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "НомерТелефона"));
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
Данные = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "НомерФакса"));
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Неопределено Тогда
|
||||
// Считаем телефоном
|
||||
Данные = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "НомерТелефона"));
|
||||
|
||||
Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Ошибка преобразования контактной информации, ожидается телефон или факс'");
|
||||
ВызватьИсключение НСтр("ru = 'Ошибка преобразования контактной информации, ожидается телефон или факс.'");
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));
|
||||
@@ -458,18 +452,12 @@
|
||||
|
||||
ПространствоИмен = ПространствоИмен();
|
||||
|
||||
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
Если ОжидаемыйТип = Неопределено Или ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
Данные = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "НомерТелефона"));
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
Данные = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "НомерФакса"));
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Неопределено Тогда
|
||||
// Считаем телефоном
|
||||
Данные = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "НомерТелефона"));
|
||||
|
||||
Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Ошибка десериализации контактной информации, ожидается телефон или факс'");
|
||||
ВызватьИсключение НСтр("ru = 'Ошибка десериализации контактной информации, ожидается телефон или факс.'");
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));
|
||||
@@ -606,14 +594,13 @@
|
||||
Функция КонтактнаяИнформацияXDTOПоПредставлению(Текст, ОжидаемыйВид) Экспорт
|
||||
|
||||
ОжидаемыйТип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(ОжидаемыйВид);
|
||||
|
||||
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
Возврат АдресXMLВXDTO("", Текст, ОжидаемыйТип);
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
|
||||
Возврат ДесериализацияПрочейКонтактнойИнформации("", Текст, ОжидаемыйТип);
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты
|
||||
Или ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.ВебСтраница
|
||||
Или ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Skype
|
||||
Или ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Другое Тогда
|
||||
Возврат ДесериализацияПрочейКонтактнойИнформации("", Текст, ОжидаемыйТип);
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
@@ -621,16 +608,10 @@
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
Возврат ДесериализацияФакса("", Текст, ОжидаемыйТип);
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Skype Тогда
|
||||
Возврат ДесериализацияПрочейКонтактнойИнформации("", Текст, ОжидаемыйТип);
|
||||
|
||||
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Другое Тогда
|
||||
Возврат ДесериализацияПрочейКонтактнойИнформации("", Текст, ОжидаемыйТип);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьКомментарийКонтактнойИнформации(КонтактнаяИнформация, Знач Комментарий) Экспорт
|
||||
@@ -1009,10 +990,8 @@
|
||||
ИначеЕсли ТипКонтактнойИнформации = ВсеТипы.Факс Тогда
|
||||
Результат.ДанныеXML = XSLT_СтруктураВФакс(СтрокаXMLСтруктуры, Данные.Представление, Комментарий);
|
||||
|
||||
ИначеЕсли ТипКонтактнойИнформации = ВсеТипы.Другое Тогда
|
||||
Результат.ДанныеXML = XSLT_СтруктураВДругое(СтрокаXMLСтруктуры, Данные.Представление, Комментарий);
|
||||
|
||||
ИначеЕсли ТипКонтактнойИнформации = ВсеТипы.Skype Тогда
|
||||
ИначеЕсли ТипКонтактнойИнформации = ВсеТипы.Другое
|
||||
Или ТипКонтактнойИнформации = ВсеТипы.Skype Тогда
|
||||
Результат.ДанныеXML = XSLT_СтруктураВДругое(СтрокаXMLСтруктуры, Данные.Представление, Комментарий);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -2410,10 +2410,8 @@
|
||||
ИначеЕсли ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
|
||||
ЗаполнитьРеквизитыТабличнойЧастиДляАдреса(СтрокаКонтактнойИнформации, Объект);
|
||||
|
||||
ИначеЕсли ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
|
||||
ЗаполнитьРеквизитыТабличнойЧастиДляТелефона(СтрокаКонтактнойИнформации, Объект);
|
||||
|
||||
ИначеЕсли ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
ИначеЕсли ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.Телефон
|
||||
Или ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
|
||||
ЗаполнитьРеквизитыТабличнойЧастиДляТелефона(СтрокаКонтактнойИнформации, Объект);
|
||||
|
||||
ИначеЕсли ТипКонтактнойИнформации = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда
|
||||
|
||||
@@ -1064,9 +1064,10 @@
|
||||
// * ПриОпределенииПолучателей - Булево - при установке значения Истина будет вызвана процедура модуля менеджера
|
||||
// объекта ПриОпределенииПолучателей,
|
||||
// где определяются получатели для отправки печатной формы.
|
||||
// * ПриДобавленииКомандПечати - Булево, Неопределено - при установке значения Истина будет вызвана процедура модуля
|
||||
// менеджера объекта ДобавитьКомандыПечати,
|
||||
// где добавляются команды печати. Неопределено - объект не подключен к подсистеме печати.
|
||||
// По умолчанию, значение Ложь.
|
||||
// * ПриДобавленииКомандПечати - Булево - при установке значения Истина будет вызвана процедура модуля
|
||||
// менеджера объекта ДобавитьКомандыПечати, где добавляются команды печати.
|
||||
// По умолчанию, значение Ложь.
|
||||
//
|
||||
Функция НастройкиПечатиОбъекта(МенеджерОбъекта) Экспорт
|
||||
|
||||
@@ -1253,18 +1254,19 @@
|
||||
|
||||
Область = Неопределено;
|
||||
|
||||
Если ОписаниеОбласти.ТипОбласти = "ВерхнийКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "ВерхнийЧетныйКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "ВерхнийТитульныйКолонтитул" Тогда
|
||||
Если ОписаниеОбласти.ТипОбласти = "ВерхнийКолонтитул" Или ОписаниеОбласти.ТипОбласти = "ВерхнийЧетныйКолонтитул"
|
||||
Или ОписаниеОбласти.ТипОбласти = "ВерхнийТитульныйКолонтитул" Тогда
|
||||
Область = УправлениеПечатьюСлужебный.ПолучитьОбластьВерхнегоКолонтитула(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "НижнийКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "НижнийЧетныйКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "НижнийТитульныйКолонтитул" Тогда
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "НижнийКолонтитул" Или ОписаниеОбласти.ТипОбласти = "НижнийЧетныйКолонтитул"
|
||||
Или ОписаниеОбласти.ТипОбласти = "НижнийТитульныйКолонтитул" Тогда
|
||||
Область = УправлениеПечатьюСлужебный.ПолучитьОбластьНижнегоКолонтитула(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "Общая" Тогда
|
||||
Область = УправлениеПечатьюСлужебный.ПолучитьОбластьМакета(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "СтрокаТаблицы" Тогда
|
||||
Область = УправлениеПечатьюСлужебный.ПолучитьОбластьМакета(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "Список" Тогда
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "Общая"
|
||||
Или ОписаниеОбласти.ТипОбласти = "СтрокаТаблицы"
|
||||
Или ОписаниеОбласти.ТипОбласти = "Список" Тогда
|
||||
Область = УправлениеПечатьюСлужебный.ПолучитьОбластьМакета(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти);
|
||||
Иначе
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Тип области не указан или указан некорректно: %1.'"), ОписаниеОбласти.ТипОбласти);
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Тип области не указан или указан некорректно: %1.'"), ОписаниеОбласти.ТипОбласти);
|
||||
КонецЕсли;
|
||||
|
||||
Если Область <> Неопределено Тогда
|
||||
@@ -1292,16 +1294,16 @@
|
||||
Попытка
|
||||
|
||||
ОписаниеОбласти = ОбластьМакета.ОписаниеОбласти;
|
||||
|
||||
ВыведеннаяОбласть = Неопределено;
|
||||
|
||||
Если ОписаниеОбласти.ТипОбласти = "ВерхнийКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "ВерхнийЧетныйКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "ВерхнийТитульныйКолонтитул" Тогда
|
||||
Если ОписаниеОбласти.ТипОбласти = "ВерхнийКолонтитул" Или ОписаниеОбласти.ТипОбласти = "ВерхнийЧетныйКолонтитул"
|
||||
Или ОписаниеОбласти.ТипОбласти = "ВерхнийТитульныйКолонтитул" Тогда
|
||||
ВыведеннаяОбласть = УправлениеПечатьюСлужебный.ДобавитьВерхнийКолонтитул(ПечатнаяФорма, ОбластьМакета);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "НижнийКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "НижнийЧетныйКолонтитул" ИЛИ ОписаниеОбласти.ТипОбласти = "НижнийТитульныйКолонтитул" Тогда
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "НижнийКолонтитул" Или ОписаниеОбласти.ТипОбласти = "НижнийЧетныйКолонтитул"
|
||||
Или ОписаниеОбласти.ТипОбласти = "НижнийТитульныйКолонтитул" Тогда
|
||||
ВыведеннаяОбласть = УправлениеПечатьюСлужебный.ДобавитьНижнийКолонтитул(ПечатнаяФорма, ОбластьМакета);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "Общая" Тогда
|
||||
ВыведеннаяОбласть = УправлениеПечатьюСлужебный.ПрисоединитьОбласть(ПечатнаяФорма, ОбластьМакета, ПереходНаСледующуюСтроку);
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "Список" ИЛИ ОписаниеОбласти.ТипОбласти = "СтрокаТаблицы" Тогда
|
||||
ИначеЕсли ОписаниеОбласти.ТипОбласти = "Общая" Или ОписаниеОбласти.ТипОбласти = "Список"
|
||||
Или ОписаниеОбласти.ТипОбласти = "СтрокаТаблицы" Тогда
|
||||
ВыведеннаяОбласть = УправлениеПечатьюСлужебный.ПрисоединитьОбласть(ПечатнаяФорма, ОбластьМакета, ПереходНаСледующуюСтроку);
|
||||
Иначе
|
||||
ВызватьИсключение ТекстТипОбластиУказанНекорректно();
|
||||
@@ -1310,7 +1312,7 @@
|
||||
ОписаниеОбласти.Вставить("Область", ВыведеннаяОбласть);
|
||||
ОписаниеОбласти.Вставить("ПереходНаСледующуюСтроку", ПереходНаСледующуюСтроку);
|
||||
|
||||
// Содержит тип области, и границы области (если требуется).
|
||||
// Содержит тип и границы области (если требуется).
|
||||
ПечатнаяФорма.ПоследняяВыведеннаяОбласть = ОписаниеОбласти;
|
||||
|
||||
Исключение
|
||||
@@ -4478,18 +4480,20 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МакетыПечатныхФорм() Экспорт
|
||||
Функция МакетыПечатныхФорм(ТолькоОбработкиИОтчеты = Ложь) Экспорт
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
|
||||
КоллекцииОбъектовМетаданных = Новый Массив; // Массив из КоллекцияОбъектовМетаданных -
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Обработки);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Отчеты);
|
||||
Если Не ТолькоОбработкиИОтчеты Тогда
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Справочники);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Документы);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Обработки);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.БизнесПроцессы);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Задачи);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.ЖурналыДокументов);
|
||||
КоллекцииОбъектовМетаданных.Добавить(Метаданные.Отчеты);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого КоллекцияОбъектовМетаданных Из КоллекцииОбъектовМетаданных Цикл
|
||||
Для Каждого ОбъектМетаданныхКоллекции Из КоллекцияОбъектовМетаданных Цикл
|
||||
|
||||
@@ -291,7 +291,7 @@
|
||||
КнопкаФормы.Заголовок = ПредставлениеЯзыка;
|
||||
КнопкаФормы.ПоложениеВКоманднойПанели = ?(ЭтоМобильныйКлиент,
|
||||
ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю, ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели);
|
||||
КнопкаФормы.Видимость = МакетНаТекущемЯзыке;
|
||||
КнопкаФормы.Видимость = МакетНаТекущемЯзыке Или Не ЭтоФормаРедактирования;
|
||||
|
||||
Если ЭтоФормаРедактирования Тогда
|
||||
Команда = Команды.Добавить("ДобавитьЯзык_" + КодЛокализации);
|
||||
|
||||
@@ -1411,48 +1411,55 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
УсловиеОбласти = УсловиеОбласти(ОбластьНачала);
|
||||
Если ОбластьОкончания = Неопределено Тогда
|
||||
ВызватьИсключение НСтр("ru='Не удалось найти окончание условной области'");
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='В макете документа нет окончания условной области ""%1"".'"), УсловиеОбласти);
|
||||
КонецЕсли;
|
||||
|
||||
УсловиеОбласти = ПолучитьУсловиеОбласти(ОбластьНачала);
|
||||
|
||||
ОбластьКоллекции = Неопределено;
|
||||
ОкончанияУсловныхОбластей = Новый Массив;
|
||||
УдаляемыеОбласти = Новый Массив;
|
||||
Для Каждого Область Из Области Цикл
|
||||
Если Область.Индекс < ИндексНайденнойОбластиОкончание И ИндексНайденнойОбластиНачало < Область.Индекс Тогда
|
||||
Если Область.Индекс >= ИндексНайденнойОбластиОкончание Или ИндексНайденнойОбластиНачало >= Область.Индекс Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(Область.Коллекция) Тогда
|
||||
ОбластьКоллекции = Область;
|
||||
КонецЕсли;
|
||||
ЭтоРодительОкончанияУсловия =
|
||||
Область.УзелДереваДокумента.Строки.Найти(ИндексНайденнойОбластиОкончание, "Индекс", Истина) <> Неопределено;
|
||||
Если ЭтоРодительОкончанияУсловия Тогда
|
||||
Если Не ЭтоРодительОкончанияУсловия Тогда
|
||||
Область.УсловиеОбласти = УсловиеОбласти;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбластьКоллекции <> Неопределено Тогда
|
||||
УзелСледующейОбласти = НайтиГраницуСледующейОбласти(ОбластьКоллекции.УзелДереваДокумента, Области);
|
||||
УзелСледующейОбласти = ГраницаСледующейОбласти(ОбластьКоллекции.УзелДереваДокумента, Области);
|
||||
Если УзелСледующейОбласти <> Неопределено И УзелСледующейОбласти.Индекс < ИндексНайденнойОбластиОкончание Тогда
|
||||
СтруктураОкончания = Новый Структура("УзелДереваДокумента, УсловиеОбласти");
|
||||
СтруктураОкончания.УзелДереваДокумента = УзелСледующейОбласти;
|
||||
СтруктураОкончания.УсловиеОбласти = УсловиеОбласти;
|
||||
ОкончанияУсловныхОбластей.Добавить(СтруктураОкончания);
|
||||
СвойстваОбласти = Новый Структура("УзелДереваДокумента, УсловиеОбласти");
|
||||
СвойстваОбласти.УзелДереваДокумента = УзелСледующейОбласти;
|
||||
СвойстваОбласти.УсловиеОбласти = УсловиеОбласти;
|
||||
ОкончанияУсловныхОбластей.Добавить(СвойстваОбласти);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
УзелСледующейОбласти = НайтиГраницуСледующейОбласти(ОбластьОкончания, Области);
|
||||
УзелСледующейОбласти = ГраницаСледующейОбласти(ОбластьОкончания, Области);
|
||||
Если УзелСледующейОбласти = Неопределено Тогда
|
||||
Области.Удалить(Область);
|
||||
УдаляемыеОбласти.Добавить(Область);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Область.УзелДереваДокумента = УзелСледующейОбласти;
|
||||
Область.Индекс = Область.УзелДереваДокумента.Индекс;
|
||||
Иначе
|
||||
Область.УсловиеОбласти = УсловиеОбласти;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого СтруктураОкончания Из ОкончанияУсловныхОбластей Цикл
|
||||
Для каждого Область Из УдаляемыеОбласти Цикл
|
||||
Области.Удалить(Область);
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого СвойстваОбласти Из ОкончанияУсловныхОбластей Цикл
|
||||
НоваяОбласть = Области.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяОбласть, СтруктураОкончания);
|
||||
ЗаполнитьЗначенияСвойств(НоваяОбласть, СвойстваОбласти);
|
||||
НоваяОбласть.Индекс = НоваяОбласть.УзелДереваДокумента.Индекс;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -1885,7 +1892,7 @@
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
Функция НайтиГраницуСледующейОбласти(Строка, Области)
|
||||
Функция ГраницаСледующейОбласти(Строка, Области)
|
||||
Родитель = Строка.Родитель;
|
||||
Если Родитель = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
@@ -1906,7 +1913,7 @@
|
||||
|
||||
Если ПерейтиКРодителю Тогда
|
||||
|
||||
Возврат НайтиГраницуСледующейОбласти(Родитель, Области);
|
||||
Возврат ГраницаСледующейОбласти(Родитель, Области);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -2088,11 +2095,11 @@
|
||||
Возврат УправлениеПечатьюКлиентСервер.ИмяТегаУсловие();
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУсловиеОбласти(Область)
|
||||
Функция УсловиеОбласти(Область)
|
||||
МассивУсловияНачало = СтрРазделить(Область.ПолныйТекст, "{", Ложь);
|
||||
Для к=0 По МассивУсловияНачало.ВГраница() Цикл
|
||||
Если СтрНайти(МассивУсловияНачало[к], ИмяТегаУсловие()+" ") Тогда
|
||||
МассивУсловияОкончания = СтрРазделить(МассивУсловияНачало[к], "}", Ложь);
|
||||
Для Индекс = 0 По МассивУсловияНачало.ВГраница() Цикл
|
||||
Если СтрНайти(МассивУсловияНачало[Индекс], ИмяТегаУсловие()+" ") Тогда
|
||||
МассивУсловияОкончания = СтрРазделить(МассивУсловияНачало[Индекс], "}", Ложь);
|
||||
Возврат СокрЛП(СтрЗаменить(МассивУсловияОкончания[0], ИмяТегаУсловие()+" ", ""));
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@@ -2100,11 +2107,11 @@
|
||||
КонецФункции
|
||||
|
||||
Функция СтрокаСодержитНачалоОбласти(Знач Текст, ИменаТабличныхЧастей)
|
||||
|
||||
Результат = СтрНайти(Текст, "{"+ИмяТегаУсловие()+" ") ИЛИ СтрНайти(Текст, "{/"+ИмяТегаУсловие());
|
||||
|
||||
СтрокаСодержитНачалоТабличнойЧасти(Текст, ИменаТабличныхЧастей, Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтрокаСодержитНачалоТабличнойЧасти(Текст, ИменаТабличныхЧастей, Результат)
|
||||
@@ -2552,7 +2559,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьОбластьСУсловием(Области, Область)
|
||||
УзелСледующейОбласти = НайтиГраницуСледующейОбласти(Область, Области);
|
||||
УзелСледующейОбласти = ГраницаСледующейОбласти(Область, Области);
|
||||
|
||||
Если УзелСледующейОбласти = Неопределено Тогда
|
||||
Возврат;
|
||||
@@ -2566,7 +2573,7 @@
|
||||
НайденнаяОбласть.Индекс = НайденнаяОбласть.УзелДереваДокумента.Индекс;
|
||||
КонецЕсли;
|
||||
|
||||
НайденнаяОбласть.УсловиеОбласти = ПолучитьУсловиеОбласти(Область);
|
||||
НайденнаяОбласть.УсловиеОбласти = УсловиеОбласти(Область);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2578,7 +2585,7 @@
|
||||
Исключение
|
||||
УдалитьФайлы(ПолноеИмяФайла);
|
||||
ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ВызватьИсключение(НСтр("ru = 'Не удалось открыть файла шаблона по причине:'") + Символы.ПС
|
||||
ВызватьИсключение(НСтр("ru = 'Не удалось открыть файл шаблона по причине:'") + Символы.ПС
|
||||
+ ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
@@ -5353,7 +5360,7 @@
|
||||
Исключение
|
||||
УдалитьФайлы(ИмяВременногоФайла);
|
||||
ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ВызватьИсключение(НСтр("ru = 'Не удалось открыть файла шаблона по причине:'") + Символы.ПС
|
||||
ВызватьИсключение(НСтр("ru = 'Не удалось открыть файл шаблона по причине:'") + Символы.ПС
|
||||
+ ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
@@ -464,7 +464,7 @@
|
||||
// ПарыЗамен - Соответствие - содержит пары значений оригинал и дубль.
|
||||
// НеобработанныеЗначенияОригиналов - Массив из Структура:
|
||||
// * ЗаменяемоеЗначение - ЛюбаяСсылка - оригинальное значение заменяемого объекта.
|
||||
// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам.
|
||||
// * ИспользуемыеСвязи - см. ОбщегоНазначения.СвязиПодчиненныхОбъектовПоТипам.
|
||||
// * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита.
|
||||
//
|
||||
Процедура ПриПоискеЗаменыСсылок(ПарыЗамен, НеобработанныеЗначенияОригиналов) Экспорт
|
||||
|
||||
Loaded 100 of 270 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user