3_1_7_343
This commit is contained in:
1 parent
5b4261719f
commit
d267fd44a9
74 files changed
+6635
-1143
No files matched your search
+7
-5
@@ -182,7 +182,6 @@
|
||||
</row>
|
||||
</rowsItem>
|
||||
<templateMode>true</templateMode>
|
||||
<defaultFormatIndex>18</defaultFormatIndex>
|
||||
<height>11</height>
|
||||
<vgRows>11</vgRows>
|
||||
<merge>
|
||||
@@ -325,10 +324,14 @@
|
||||
<endColumn>2</endColumn>
|
||||
</area>
|
||||
</namedItem>
|
||||
<groupsBackColor>#000000</groupsBackColor>
|
||||
<groupsColor>#000000</groupsColor>
|
||||
<headersBackColor>#000000</headersBackColor>
|
||||
<headersColor>#000000</headersColor>
|
||||
<line width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</line>
|
||||
<line width="3" gap="false">
|
||||
<line width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</line>
|
||||
<font faceName="Arial" height="6" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
@@ -382,6 +385,8 @@
|
||||
<width>72</width>
|
||||
</format>
|
||||
<format>
|
||||
<leftBorder>1</leftBorder>
|
||||
<topBorder>1</topBorder>
|
||||
<width>72</width>
|
||||
<protection>true</protection>
|
||||
</format>
|
||||
@@ -462,9 +467,6 @@
|
||||
<fillType>Parameter</fillType>
|
||||
<protection>true</protection>
|
||||
</format>
|
||||
<format>
|
||||
<width>72</width>
|
||||
</format>
|
||||
<picture>
|
||||
<index>0</index>
|
||||
<picture/>
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
</li>
|
||||
<li>Напишите <strong>Наименование</strong>.
|
||||
</li>
|
||||
<li>В поле <strong>Сервис</strong> выберите из списка, с каким облачным сервисом будут синхронизироваться файлы данной учетной записи.
|
||||
</li>
|
||||
<li>В поле <strong>Сервис</strong> выберите из списка, с каким облачным сервисом будут синхронизироваться файлы данной учетной записи, в поле отобразится URL-адрес облачного сервиса.</li>
|
||||
<li>Укажите <strong>Логин</strong> и <strong>Пароль</strong> - данные для доступа, полученные при регистрации на выбранном облачном сервисе.
|
||||
</li>
|
||||
<li>В поле <strong>Корневая папка</strong> напишите папку, в которой будут храниться все файлы для этой учетной записи. Ее необходимо создать самостоятельно на облачном сервисе.
|
||||
@@ -16,6 +15,6 @@
|
||||
</li>
|
||||
<li>Если файлы в облаке редактирует только один пользователь, рекомендуется указать его в качестве автора новых и измененных файлов.
|
||||
<ul><li>В этом случае с помощью переключателя выберите <strong>Пользователь</strong>, с помощью кнопки <img src="StdPicture.InputFieldSelect"></img> выберите тип пользователей, нажмите <strong>ОК</strong>. Затем выберите нужного пользователя из соответствующего списка.</li></ul></li></ul></li></ul><h3>Проверка учетной записи</h3>
|
||||
<ul><li>С помощью кнопки <strong>Проверить настройки</strong> в окне учетной записи можно проконтролировать правильность заполнения данных учетной записи. В случае успешного завершения проверки выводятся данные о размере свободного места в облачном сервисе и объеме, занятом файлами.</li></ul><h3>См. также:</h3>
|
||||
<ul><li>С помощью кнопки <strong>Проверить настройки</strong> в окне учетной записи можно проконтролировать правильность заполнения данных учетной записи. В случае успешного завершения проверки <img src="CommonPicture.ВнешняяКомпонентаДоступна"></img> выводятся данные о размере свободного места в облачном сервисе и объеме, занятом файлами. В случае неудачной проверки заполнения данных <img src="StdPicture.Delete"></img> выводятся рекомендации по устранению данной ошибки (например, можно выбрать другой сервис для синхронизации файлов или обратиться в поддержку сервиса) и технические подробности, которые можно отправить в поддержку сервиса. </li></ul><h3>См. также:</h3>
|
||||
<ul><li>
|
||||
<div><a href="InformationRegister.НастройкиСинхронизацииФайлов/Help">Настройки синхронизации файлов</a>.</div></li></ul></body></html>
|
||||
@@ -1409,11 +1409,15 @@
|
||||
ОписаниеОповещение = Новый ОписаниеОповещения("ПослеВыбораФайлов", ЭтотОбъект, ДополнительныеПараметры);
|
||||
|
||||
ПараметрыЗагрузкиФайла = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
|
||||
ПараметрыЗагрузкиФайла.ИдентификаторФормы = ЭтотОбъект.УникальныйИдентификатор;
|
||||
ПараметрыЗагрузкиФайла.ИдентификаторФормы = УникальныйИдентификатор;
|
||||
ФайловаяСистемаКлиент.ЗагрузитьФайлы(ОписаниеОповещение, ПараметрыЗагрузкиФайла);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// ВыбранныеФайлы - Массив из ОписаниеПереданногоФайла
|
||||
// ДополнительныеПараметры - Структура
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ПослеВыбораФайлов(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
|
||||
|
||||
|
||||
@@ -234,6 +234,10 @@
|
||||
<metadata>ScheduledJob.ЗаполнениеДанныхДляОграниченияДоступа</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.ОчисткаУстаревшихДанных</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Constant.СписокРасширенийФайловOpenDocument</metadata>
|
||||
<use>DontUse</use>
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ДлительнаяОперация</name>
|
||||
<id>1</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ДлительнаяОперацияКартинка</name>
|
||||
<id>3</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ДлительнаяОперацияКартинкаРасширеннаяПодсказка</name>
|
||||
<id>5</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ДлительнаяОперацияКартинкаКонтекстноеМеню</name>
|
||||
<id>4</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.ДлительнаяОперация48</picture>
|
||||
</picture>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ДлительнаяОперацияТекст</name>
|
||||
<id>9</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузка файла обновления...</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ДлительнаяОперацияТекстРасширеннаяПодсказка</name>
|
||||
<id>11</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ДлительнаяОперацияТекстКонтекстноеМеню</name>
|
||||
<id>10</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Длительная операция</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ДлительнаяОперацияРасширеннаяПодсказка</name>
|
||||
<id>2</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<verticalAlign>Center</verticalAlign>
|
||||
<behavior>Auto</behavior>
|
||||
<representation>NormalSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnOpen</event>
|
||||
<name>ПриОткрытии</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<width>40</width>
|
||||
<windowOpeningMode>DontBlock</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>ИмяПервогоФайлаОбновления</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>МетаданныеВерсия</name>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<parameters>
|
||||
<name>ИмяПервогоФайлаОбновления</name>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,196 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2023, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
ИмяПервогоФайлаОбновления = Параметры.ИмяПервогоФайлаОбновления;
|
||||
МетаданныеВерсия = Метаданные.Версия;
|
||||
|
||||
Если ОбновлениеИнформационнойБазыСлужебный.ОтложенноеОбновлениеЗавершено()
|
||||
Или Не ЗначениеЗаполнено(ИмяПервогоФайлаОбновления)
|
||||
И Не КонфигурацияИзменена() Тогда
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
Если ЗначениеЗаполнено(ИмяПервогоФайлаОбновления) Тогда
|
||||
ЗагрузитьФайл();
|
||||
Иначе
|
||||
Результат = Ложь;
|
||||
#Если Не ВебКлиент И Не МобильныйКлиент Тогда
|
||||
Попытка
|
||||
Результат = ИзменилсяТолькоНомерСборкиОсновнойКонфигурации();
|
||||
Исключение
|
||||
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
ЗаписатьОшибку(ТекстОшибки);
|
||||
КонецПопытки;
|
||||
#КонецЕсли
|
||||
Закрыть(Результат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Если Не ВебКлиент И Не МобильныйКлиент Тогда
|
||||
|
||||
&НаКлиенте
|
||||
Функция ИзменилсяТолькоНомерСборкиОсновнойКонфигурации()
|
||||
|
||||
ПутьКВременнойПапке = ПолучитьИмяВременногоФайла() + "\";
|
||||
ИмяФайлаСписка = ПутьКВременнойПапке + "ConfigFiles.txt";
|
||||
ИмяФайлаСообщений = ПутьКВременнойПапке + "Out.txt";
|
||||
|
||||
СоздатьКаталог(ПутьКВременнойПапке);
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.УстановитьТекст("Configuration");
|
||||
ТекстовыйДокумент.Записать(ИмяФайлаСписка);
|
||||
|
||||
ПараметрыСистемы = Новый Массив;
|
||||
ПараметрыСистемы.Добавить("DESIGNER");
|
||||
ПараметрыСистемы.Добавить("/DisableStartupMessages");
|
||||
ПараметрыСистемы.Добавить("/DisableStartupDialogs");
|
||||
ПараметрыСистемы.Добавить("/DumpConfigToFiles");
|
||||
ПараметрыСистемы.Добавить("""" + ПутьКВременнойПапке + """");
|
||||
ПараметрыСистемы.Добавить("-listfile");
|
||||
ПараметрыСистемы.Добавить("""" + ИмяФайлаСписка + """");
|
||||
ПараметрыСистемы.Добавить("/Out");
|
||||
ПараметрыСистемы.Добавить("""" + ИмяФайлаСообщений + """");
|
||||
|
||||
КодВозврата = 0;
|
||||
ЗапуститьСистему(СтрСоединить(ПараметрыСистемы, " "), Истина, КодВозврата);
|
||||
|
||||
Если КодВозврата <> 0 Тогда
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.Прочитать(ИмяФайлаСообщений);
|
||||
УдалитьФайлы(ПутьКВременнойПапке);
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось выгрузить конфигурацию в файлы по причине:
|
||||
|%1'"),
|
||||
"КодВозврата" + " = " + Строка(КодВозврата) + "
|
||||
|" + ТекстовыйДокумент.ПолучитьТекст());
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
ПостроительDOM = Новый ПостроительDOM;
|
||||
ЧтениеXML.ОткрытьФайл(ПутьКВременнойПапке + "Configuration.xml");
|
||||
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
|
||||
ЧтениеXML.Закрыть();
|
||||
|
||||
УдалитьФайлы(ПутьКВременнойПапке);
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не найдена версия в файле выгрузки %1'"),
|
||||
"Configuration.xml");
|
||||
|
||||
Разыменователь = Новый РазыменовательПространствИменDOM(ДокументDOM);
|
||||
ВыражениеXPath = "/xmlns:MetaDataObject/xmlns:Configuration/xmlns:Properties/xmlns:Version";
|
||||
РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(ВыражениеXPath, ДокументDOM, Разыменователь);
|
||||
Если Не РезультатXPath.НеверноеСостояниеИтератора Тогда
|
||||
СледующийУзел = РезультатXPath.ПолучитьСледующий();
|
||||
Если ТипЗнч(СледующийУзел) = Тип("ЭлементDOM")
|
||||
И ВРег(СледующийУзел.ИмяЭлемента) = ВРег("Version") Тогда
|
||||
Версия = СледующийУзел.ТекстовоеСодержимое;
|
||||
Если СтрРазделить(Версия, ".", Ложь).Количество() < 4 Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Некорректная версия ""%1"" в файле выгрузки %2'"),
|
||||
Версия, "Configuration.xml");
|
||||
Иначе
|
||||
Возврат ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(МетаданныеВерсия)
|
||||
= ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(Версия);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецЕсли
|
||||
&НаКлиенте
|
||||
Процедура ЗагрузитьФайл()
|
||||
|
||||
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
|
||||
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
|
||||
ПараметрыЗагрузки.Интерактивно = Ложь;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеЗагрузкиФайла", ЭтотОбъект);
|
||||
ФайловаяСистемаКлиент.ЗагрузитьФайл(Оповещение, ПараметрыЗагрузки, ИмяПервогоФайлаОбновления);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеЗагрузкиФайла(ЗагруженныйФайл, Контекст) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(ЗагруженныйФайл)
|
||||
И ЗначениеЗаполнено(ЗагруженныйФайл.Имя)
|
||||
И ЗначениеЗаполнено(ЗагруженныйФайл.Хранение)
|
||||
И ИзменилсяТолькоНомерСборки(ЗагруженныйФайл.Хранение, ЗагруженныйФайл.Имя) Тогда
|
||||
|
||||
Результат = Истина;
|
||||
Иначе
|
||||
Результат = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если Открыта() Тогда
|
||||
Закрыть(Результат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ИзменилсяТолькоНомерСборки(АдресВоВременномХранилище, ПолноеИмяФайла)
|
||||
|
||||
Попытка
|
||||
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище);
|
||||
УдалитьИзВременногоХранилища(АдресВоВременномХранилище);
|
||||
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрЗаканчиваетсяНа(ПолноеИмяФайла, ".cfu") Тогда
|
||||
ОписаниеОбновления = Новый ОписаниеОбновленияКонфигурации(ДвоичныеДанные);
|
||||
ОписаниеКонфигурации = ОписаниеОбновления.ПолучаемаяКонфигурация;
|
||||
Иначе
|
||||
ОписаниеКонфигурации = Новый ОписаниеКонфигурации(ДвоичныеДанные);
|
||||
КонецЕсли;
|
||||
ИзменилсяТолькоНомерСборки =
|
||||
ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(Метаданные.Версия)
|
||||
= ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(ОписаниеКонфигурации.Версия);
|
||||
Исключение
|
||||
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
ЗаписатьОшибку(ТекстОшибки);
|
||||
ИзменилсяТолькоНомерСборки = Ложь;
|
||||
КонецПопытки;
|
||||
|
||||
Возврат ИзменилсяТолькоНомерСборки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ЗаписатьОшибку(ТекстОшибки)
|
||||
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось получить версию новой конфигурации по причине:'") + Символы.ПС;
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеКонфигурации.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Ошибка,,, ЗаголовокОшибки + ТекстОшибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="0a1837b6-9a0a-4a86-b929-89d032d41383">
|
||||
<name>ПроверкаФайлаОбновления</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Проверка файла обновления</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</mdclass:CommonForm>
|
||||
@@ -356,69 +356,348 @@
|
||||
| ИЗ &ДанныеИзТаблицыПравая КАК ДанныеИзТаблицыПравая;" + Символы.ПС;
|
||||
|
||||
ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ
|
||||
| ТаблицаЛевая.Номер КАК НомерЭлементаЛевая,
|
||||
| ТаблицаПравая.Номер КАК НомерЭлементаПравая,
|
||||
| ВЫБОР
|
||||
| КОГДА ТаблицаПравая.Номер - ТаблицаЛевая.Номер < 0
|
||||
| ТОГДА ТаблицаЛевая.Номер - ТаблицаПравая.Номер
|
||||
| ИНАЧЕ ТаблицаПравая.Номер - ТаблицаЛевая.Номер
|
||||
| КОНЕЦ КАК РасстояниеОтНачала,
|
||||
| ВЫБОР
|
||||
| КОГДА &КоличествоСтрокПравая - ТаблицаПравая.Номер - (&КоличествоСтрокЛевая - ТаблицаЛевая.Номер) < 0
|
||||
| ТОГДА &КоличествоСтрокЛевая - ТаблицаЛевая.Номер - (&КоличествоСтрокПравая - ТаблицаПравая.Номер)
|
||||
| ИНАЧЕ &КоличествоСтрокПравая - ТаблицаПравая.Номер - (&КоличествоСтрокЛевая - ТаблицаЛевая.Номер)
|
||||
| КОНЕЦ КАК РасстояниеОтКонца,
|
||||
| СУММА(ВЫБОР
|
||||
| КОГДА ТаблицаЛевая.Значение <> """"
|
||||
| ТОГДА ВЫБОР
|
||||
| КОГДА ТаблицаЛевая.Количество < ТаблицаПравая.Количество
|
||||
| ТОГДА ТаблицаЛевая.Количество
|
||||
| ИНАЧЕ ТаблицаПравая.Количество
|
||||
| КОНЕЦ
|
||||
| ИНАЧЕ 0
|
||||
| КОНЕЦ) КАК КоличествоСовпаденийЗначений,
|
||||
| СУММА(ВЫБОР
|
||||
| КОГДА ТаблицаЛевая.Количество < ТаблицаПравая.Количество
|
||||
| ТОГДА ТаблицаЛевая.Количество
|
||||
| ИНАЧЕ ТаблицаПравая.Количество
|
||||
| КОНЕЦ) КАК КоличествоСовпаденийВсего
|
||||
|ПОМЕСТИТЬ ДанныеСвернуто
|
||||
|ИЗ
|
||||
| ТаблицаЛевая КАК ТаблицаЛевая
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаПравая КАК ТаблицаПравая
|
||||
| ПО ТаблицаЛевая.Значение = ТаблицаПравая.Значение
|
||||
|
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ТаблицаЛевая.Номер,
|
||||
| ТаблицаПравая.Номер
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ДанныеСвернуто.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ДанныеСвернуто.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| ДанныеСвернуто.КоличествоСовпаденийЗначений КАК КоличествоСовпаденийЗначений,
|
||||
| ДанныеСвернуто.КоличествоСовпаденийВсего КАК КоличествоСовпаденийВсего,
|
||||
| ВЫБОР
|
||||
| КОГДА ДанныеСвернуто.РасстояниеОтНачала < ДанныеСвернуто.РасстояниеОтКонца
|
||||
| ТОГДА ДанныеСвернуто.РасстояниеОтНачала
|
||||
| ИНАЧЕ ДанныеСвернуто.РасстояниеОтКонца
|
||||
| КОНЕЦ КАК МинимальноеРасстояние
|
||||
|ИЗ
|
||||
| ДанныеСвернуто КАК ДанныеСвернуто
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| КоличествоСовпаденийЗначений УБЫВ,
|
||||
| КоличествоСовпаденийВсего УБЫВ,
|
||||
| МинимальноеРасстояние,
|
||||
| НомерЭлементаЛевая,
|
||||
| НомерЭлементаПравая";
|
||||
| ТаблицаЛевая.Номер КАК НомерЭлементаЛевая,
|
||||
| ТаблицаПравая.Номер КАК НомерЭлементаПравая,
|
||||
| ВЫБОР
|
||||
| КОГДА ТаблицаПравая.Номер - ТаблицаЛевая.Номер < 0
|
||||
| ТОГДА ТаблицаЛевая.Номер - ТаблицаПравая.Номер
|
||||
| ИНАЧЕ ТаблицаПравая.Номер - ТаблицаЛевая.Номер
|
||||
| КОНЕЦ КАК РасстояниеОтНачала,
|
||||
| ВЫБОР
|
||||
| КОГДА &КоличествоСтрокПравая - ТаблицаПравая.Номер - (&КоличествоСтрокЛевая - ТаблицаЛевая.Номер) < 0
|
||||
| ТОГДА &КоличествоСтрокЛевая - ТаблицаЛевая.Номер - (&КоличествоСтрокПравая - ТаблицаПравая.Номер)
|
||||
| ИНАЧЕ &КоличествоСтрокПравая - ТаблицаПравая.Номер - (&КоличествоСтрокЛевая - ТаблицаЛевая.Номер)
|
||||
| КОНЕЦ КАК РасстояниеОтКонца,
|
||||
| СУММА(ВЫБОР
|
||||
| КОГДА ТаблицаЛевая.Значение <> """"
|
||||
| ТОГДА ВЫБОР
|
||||
| КОГДА ТаблицаЛевая.Количество < ТаблицаПравая.Количество
|
||||
| ТОГДА ТаблицаЛевая.Количество
|
||||
| ИНАЧЕ ТаблицаПравая.Количество
|
||||
| КОНЕЦ
|
||||
| ИНАЧЕ 0
|
||||
| КОНЕЦ) КАК КоличествоСовпаденийЗначений,
|
||||
| СУММА(ВЫБОР
|
||||
| КОГДА ТаблицаЛевая.Количество < ТаблицаПравая.Количество
|
||||
| ТОГДА ТаблицаЛевая.Количество
|
||||
| ИНАЧЕ ТаблицаПравая.Количество
|
||||
| КОНЕЦ) КАК КоличествоСовпаденийВсего
|
||||
|ПОМЕСТИТЬ ДанныеСвернуто
|
||||
|ИЗ
|
||||
| ТаблицаЛевая КАК ТаблицаЛевая
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаПравая КАК ТаблицаПравая
|
||||
| ПО ТаблицаЛевая.Значение = ТаблицаПравая.Значение
|
||||
|
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ТаблицаЛевая.Номер,
|
||||
| ТаблицаПравая.Номер
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ДанныеСвернуто.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ДанныеСвернуто.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| ДанныеСвернуто.КоличествоСовпаденийЗначений КАК КоличествоСовпаденийЗначений,
|
||||
| ДанныеСвернуто.КоличествоСовпаденийВсего КАК КоличествоСовпаденийВсего,
|
||||
| ВЫБОР
|
||||
| КОГДА ДанныеСвернуто.РасстояниеОтНачала < ДанныеСвернуто.РасстояниеОтКонца
|
||||
| ТОГДА ДанныеСвернуто.РасстояниеОтНачала
|
||||
| ИНАЧЕ ДанныеСвернуто.РасстояниеОтКонца
|
||||
| КОНЕЦ КАК МинимальноеРасстояние
|
||||
|ПОМЕСТИТЬ ДанныеСРасстояниями
|
||||
|ИЗ
|
||||
| ДанныеСвернуто КАК ДанныеСвернуто
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ДанныеСРасстояниями.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ДанныеСРасстояниями.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| ДанныеСРасстояниями.КоличествоСовпаденийЗначений * МаксимумыПараметров.КоличествоСовпаденийВсего * МаксимумыПараметров.МинимальноеРасстояние + ДанныеСРасстояниями.КоличествоСовпаденийВсего * МаксимумыПараметров.МинимальноеРасстояние + (МаксимумыПараметров.МинимальноеРасстояние - ДанныеСРасстояниями.МинимальноеРасстояние) КАК Вес
|
||||
|ПОМЕСТИТЬ ВзвешенныеСовпадения
|
||||
|ИЗ
|
||||
| ДанныеСРасстояниями КАК ДанныеСРасстояниями,
|
||||
| (ВЫБРАТЬ
|
||||
| МАКСИМУМ(ДанныеСРасстояниями.КоличествоСовпаденийВсего) КАК КоличествоСовпаденийВсего,
|
||||
| МАКСИМУМ(ДанныеСРасстояниями.МинимальноеРасстояние) КАК МинимальноеРасстояние
|
||||
| ИЗ
|
||||
| ДанныеСРасстояниями КАК ДанныеСРасстояниями) КАК МаксимумыПараметров
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ЛучшееСовпадение.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ВзвешенныеСовпадения.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| ВзвешенныеСовпадения.Вес КАК Вес
|
||||
|ПОМЕСТИТЬ Соответствия
|
||||
|ИЗ
|
||||
| (ВЫБРАТЬ
|
||||
| ВзвешенныеСовпадения.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| МАКСИМУМ(ВзвешенныеСовпадения.Вес) КАК Вес
|
||||
| ИЗ
|
||||
| ВзвешенныеСовпадения КАК ВзвешенныеСовпадения
|
||||
|
|
||||
| СГРУППИРОВАТЬ ПО
|
||||
| ВзвешенныеСовпадения.НомерЭлементаЛевая) КАК ЛучшееСовпадение
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ВзвешенныеСовпадения КАК ВзвешенныеСовпадения
|
||||
| ПО ЛучшееСовпадение.НомерЭлементаЛевая = ВзвешенныеСовпадения.НомерЭлементаЛевая
|
||||
| И ЛучшееСовпадение.Вес = ВзвешенныеСовпадения.Вес";
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
|
||||
Запрос.УстановитьПараметр("ДанныеИзТаблицыЛевая", ДанныеИзТаблицыЛевая);
|
||||
Запрос.УстановитьПараметр("ДанныеИзТаблицыПравая", ДанныеИзТаблицыПравая);
|
||||
Запрос.УстановитьПараметр("КоличествоСтрокЛевая", ТаблицаЛевая.Количество());
|
||||
Запрос.УстановитьПараметр("КоличествоСтрокПравая", ТаблицаПравая.Количество());
|
||||
Запрос.Выполнить();
|
||||
|
||||
УровеньКонфликтов = 2;
|
||||
|
||||
Пока УровеньКонфликтов > 0 Цикл
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| ВсеКонфликты.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ВсеКонфликты.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| СУММА(ВсеКонфликты.КоличествоКонфликтов) КАК КоличествоКонфликтов
|
||||
|ПОМЕСТИТЬ НайденныеКонфликты
|
||||
|ИЗ
|
||||
| (ВЫБРАТЬ
|
||||
| Соответствия.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| Соответствия.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| 1 КАК КоличествоКонфликтов
|
||||
| ИЗ
|
||||
| Соответствия КАК Соответствия
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Соответствия КАК Соответствия1
|
||||
| ПО Соответствия.НомерЭлементаПравая < Соответствия1.НомерЭлементаПравая
|
||||
| И Соответствия.НомерЭлементаЛевая > Соответствия1.НомерЭлементаЛевая
|
||||
|
|
||||
| ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
| ВЫБРАТЬ
|
||||
| Соответствия.НомерЭлементаЛевая,
|
||||
| Соответствия.НомерЭлементаПравая,
|
||||
| 1
|
||||
| ИЗ
|
||||
| Соответствия КАК Соответствия
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Соответствия КАК Соответствия1
|
||||
| ПО Соответствия.НомерЭлементаПравая > Соответствия1.НомерЭлементаПравая
|
||||
| И Соответствия.НомерЭлементаЛевая < Соответствия1.НомерЭлементаЛевая
|
||||
|
|
||||
| ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
| ВЫБРАТЬ
|
||||
| Соответствия.НомерЭлементаЛевая,
|
||||
| Соответствия.НомерЭлементаПравая,
|
||||
| 1
|
||||
| ИЗ
|
||||
| (ВЫБРАТЬ
|
||||
| Соответствия.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| МАКСИМУМ(Соответствия.Вес) КАК Вес
|
||||
| ИЗ
|
||||
| Соответствия КАК Соответствия
|
||||
| СГРУППИРОВАТЬ ПО
|
||||
| Соответствия.НомерЭлементаПравая
|
||||
| ИМЕЮЩИЕ
|
||||
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Соответствия.НомерЭлементаЛевая) > 1) КАК Дубли
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ Соответствия КАК Соответствия
|
||||
| ПО Дубли.НомерЭлементаПравая = Соответствия.НомерЭлементаПравая
|
||||
| И Дубли.Вес > Соответствия.Вес) КАК ВсеКонфликты
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ВсеКонфликты.НомерЭлементаЛевая,
|
||||
| ВсеКонфликты.НомерЭлементаПравая
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| Соответствия.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| Соответствия.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| Соответствия.Вес КАК Вес,
|
||||
| ЕСТЬNULL(НайденныеКонфликты.КоличествоКонфликтов, 0) КАК КоличествоКонфликтов
|
||||
|ПОМЕСТИТЬ СоответствияСКонфликтами
|
||||
|ИЗ
|
||||
| Соответствия КАК Соответствия
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ НайденныеКонфликты КАК НайденныеКонфликты
|
||||
| ПО Соответствия.НомерЭлементаЛевая = НайденныеКонфликты.НомерЭлементаЛевая
|
||||
| И Соответствия.НомерЭлементаПравая = НайденныеКонфликты.НомерЭлементаПравая
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|УНИЧТОЖИТЬ Соответствия
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| СоответствияСКонфликтами.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| СоответствияСКонфликтами.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| СоответствияСКонфликтами.Вес КАК Вес,
|
||||
| СоответствияСКонфликтами.КоличествоКонфликтов КАК КоличествоКонфликтов
|
||||
|ПОМЕСТИТЬ ЗаменяемыеСоответствия
|
||||
|ИЗ
|
||||
| (ВЫБРАТЬ
|
||||
| МАКСИМУМ(СоответствияСКонфликтами.КоличествоКонфликтов) КАК КоличествоКонфликтов
|
||||
| ИЗ
|
||||
| СоответствияСКонфликтами КАК СоответствияСКонфликтами) КАК МаксимальноеКоличествоКонфликтов
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ СоответствияСКонфликтами КАК СоответствияСКонфликтами
|
||||
| ПО МаксимальноеКоличествоКонфликтов.КоличествоКонфликтов <> 0
|
||||
| И СоответствияСКонфликтами.КоличествоКонфликтов = МаксимальноеКоличествоКонфликтов.КоличествоКонфликтов
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| СоответствияСКонфликтами.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| СоответствияСКонфликтами.НомерЭлементаПравая КАК КлючНомерЭлементаПравая,
|
||||
| СоответствияСКонфликтами.КоличествоКонфликтов КАК КоличествоКонфликтов,
|
||||
| ВариантыЗамены.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| ВариантыЗамены.Вес КАК Вес
|
||||
|ПОМЕСТИТЬ ВариантыСоответствийДляЗамены
|
||||
|ИЗ
|
||||
| ЗаменяемыеСоответствия КАК СоответствияСКонфликтами
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ВзвешенныеСовпадения КАК ВариантыЗамены
|
||||
| ПО СоответствияСКонфликтами.НомерЭлементаЛевая = ВариантыЗамены.НомерЭлементаЛевая
|
||||
| И СоответствияСКонфликтами.Вес > ВариантыЗамены.Вес
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| 1 КАК КоличествоКонфликтов
|
||||
|ПОМЕСТИТЬ НайденныеКонфликтыВариантов
|
||||
|ИЗ
|
||||
| ВариантыСоответствийДляЗамены КАК ВариантыСоответствийДляЗамены
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоответствияСКонфликтами КАК СоответствияСКонфликтами
|
||||
| ПО ВариантыСоответствийДляЗамены.НомерЭлементаПравая < СоответствияСКонфликтами.НомерЭлементаПравая
|
||||
| И ВариантыСоответствийДляЗамены.НомерЭлементаЛевая > СоответствияСКонфликтами.НомерЭлементаЛевая
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
|ВЫБРАТЬ
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаЛевая,
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаПравая,
|
||||
| 1
|
||||
|ИЗ
|
||||
| ВариантыСоответствийДляЗамены КАК ВариантыСоответствийДляЗамены
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоответствияСКонфликтами КАК СоответствияСКонфликтами
|
||||
| ПО ВариантыСоответствийДляЗамены.НомерЭлементаПравая > СоответствияСКонфликтами.НомерЭлементаПравая
|
||||
| И ВариантыСоответствийДляЗамены.НомерЭлементаЛевая < СоответствияСКонфликтами.НомерЭлементаЛевая
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
|ВЫБРАТЬ
|
||||
| СоответствияСКонфликтами.НомерЭлементаЛевая,
|
||||
| СоответствияСКонфликтами.НомерЭлементаПравая,
|
||||
| 1
|
||||
|ИЗ
|
||||
| (ВЫБРАТЬ
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| МАКСИМУМ(СоответствияСКонфликтами.Вес) КАК Вес
|
||||
| ИЗ
|
||||
| ВариантыСоответствийДляЗамены КАК ВариантыСоответствийДляЗамены
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ СоответствияСКонфликтами КАК СоответствияСКонфликтами
|
||||
| ПО ВариантыСоответствийДляЗамены.НомерЭлементаПравая = СоответствияСКонфликтами.НомерЭлементаПравая
|
||||
| СГРУППИРОВАТЬ ПО
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаПравая) КАК Дубли
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ СоответствияСКонфликтами КАК СоответствияСКонфликтами
|
||||
| ПО Дубли.НомерЭлементаПравая = СоответствияСКонфликтами.НомерЭлементаПравая
|
||||
| И Дубли.Вес > СоответствияСКонфликтами.Вес
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ВариантыСоответствийДляЗамены.КлючНомерЭлементаПравая КАК КлючНомерЭлементаПравая,
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаПравая КАК НомерЭлементаПравая,
|
||||
| ВариантыСоответствийДляЗамены.Вес КАК Вес,
|
||||
| ЕСТЬNULL(СУММА(Конфликты.КоличествоКонфликтов), 0) КАК КоличествоКонфликтов
|
||||
|ПОМЕСТИТЬ ВариантыСоответствийДляЗаменыСКонфликтами
|
||||
|ИЗ
|
||||
| ВариантыСоответствийДляЗамены КАК ВариантыСоответствийДляЗамены
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ НайденныеКонфликтыВариантов КАК Конфликты
|
||||
| ПО ВариантыСоответствийДляЗамены.НомерЭлементаЛевая = Конфликты.НомерЭлементаЛевая
|
||||
| И ВариантыСоответствийДляЗамены.НомерЭлементаПравая = Конфликты.НомерЭлементаПравая
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаЛевая,
|
||||
| ВариантыСоответствийДляЗамены.КлючНомерЭлементаПравая,
|
||||
| ВариантыСоответствийДляЗамены.НомерЭлементаПравая,
|
||||
| ВариантыСоответствийДляЗамены.Вес,
|
||||
| ВариантыСоответствийДляЗамены.КоличествоКонфликтов
|
||||
|ИМЕЮЩИЕ
|
||||
| ВариантыСоответствийДляЗамены.КоличествоКонфликтов > ЕСТЬNULL(СУММА(Конфликты.КоличествоКонфликтов), 0)
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ВариантыСоответствийДляЗаменыСКонфликтами.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| МАКСИМУМ(ВариантыСоответствийДляЗаменыСКонфликтами.Вес) КАК Вес
|
||||
|ПОМЕСТИТЬ МаксимальныйВесЗамены
|
||||
|ИЗ
|
||||
| ВариантыСоответствийДляЗаменыСКонфликтами КАК ВариантыСоответствийДляЗаменыСКонфликтами
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ВариантыСоответствийДляЗаменыСКонфликтами.НомерЭлементаЛевая
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ЗаменяемыеСоответствия.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ЗаменяемыеСоответствия.НомерЭлементаПравая КАК КлючНомерЭлементаПравая,
|
||||
| ЕСТЬNULL(ВариантыСоответствийДляЗаменыСКонфликтами.НомерЭлементаПравая, НЕОПРЕДЕЛЕНО) КАК НомерЭлементаПравая,
|
||||
| ВариантыСоответствийДляЗаменыСКонфликтами.Вес КАК Вес
|
||||
|ПОМЕСТИТЬ СоответствияДляЗамены
|
||||
|ИЗ
|
||||
| ЗаменяемыеСоответствия КАК ЗаменяемыеСоответствия
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ МаксимальныйВесЗамены КАК МаксимальныйВесЗамены
|
||||
| ПО ЗаменяемыеСоответствия.НомерЭлементаЛевая = МаксимальныйВесЗамены.НомерЭлементаЛевая
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ВариантыСоответствийДляЗаменыСКонфликтами КАК ВариантыСоответствийДляЗаменыСКонфликтами
|
||||
| ПО ВариантыСоответствийДляЗаменыСКонфликтами.Вес = МаксимальныйВесЗамены.Вес
|
||||
| И ВариантыСоответствийДляЗаменыСКонфликтами.НомерЭлементаЛевая = МаксимальныйВесЗамены.НомерЭлементаЛевая
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| СоответствияСКонфликтами.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| ЕСТЬNULL(СоответствияДляЗамены.НомерЭлементаПравая, СоответствияСКонфликтами.НомерЭлементаПравая) КАК
|
||||
| НомерЭлементаПравая,
|
||||
| ЕСТЬNULL(СоответствияДляЗамены.Вес, СоответствияСКонфликтами.Вес) КАК Вес,
|
||||
| СоответствияСКонфликтами.КоличествоКонфликтов КАК КоличествоКонфликтов
|
||||
|ПОМЕСТИТЬ Соответствия
|
||||
|ИЗ
|
||||
| СоответствияСКонфликтами КАК СоответствияСКонфликтами
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ СоответствияДляЗамены КАК СоответствияДляЗамены
|
||||
| ПО СоответствияСКонфликтами.НомерЭлементаЛевая = СоответствияДляЗамены.НомерЭлементаЛевая
|
||||
| И СоответствияСКонфликтами.НомерЭлементаПравая = СоответствияДляЗамены.КлючНомерЭлементаПравая
|
||||
|ГДЕ
|
||||
| СоответствияДляЗамены.НомерЭлементаПравая ЕСТЬ NULL
|
||||
| ИЛИ СоответствияДляЗамены.НомерЭлементаПравая <> НЕОПРЕДЕЛЕНО
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ЕстьNULL(МАКСИМУМ(СоответствияСКонфликтами.КоличествоКонфликтов), 0) КАК КоличествоКонфликтов
|
||||
|ИЗ
|
||||
| СоответствияСКонфликтами КАК СоответствияСКонфликтами";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать(); //@skip-check query-in-loop Итерационная обработка таблицы
|
||||
Выборка.Следующий();
|
||||
УровеньКонфликтов = Выборка.КоличествоКонфликтов;
|
||||
|
||||
ВременныеТаблицыКУдалению = Новый Массив;
|
||||
ВременныеТаблицыКУдалению.Добавить("СоответствияДляЗамены");
|
||||
ВременныеТаблицыКУдалению.Добавить("ВариантыСоответствийДляЗаменыСКонфликтами");
|
||||
ВременныеТаблицыКУдалению.Добавить("ВариантыСоответствийДляЗамены");
|
||||
ВременныеТаблицыКУдалению.Добавить("СоответствияСКонфликтами");
|
||||
ВременныеТаблицыКУдалению.Добавить("ЗаменяемыеСоответствия");
|
||||
ВременныеТаблицыКУдалению.Добавить("НайденныеКонфликты");
|
||||
ВременныеТаблицыКУдалению.Добавить("МаксимальныйВесЗамены");
|
||||
ВременныеТаблицыКУдалению.Добавить("НайденныеКонфликтыВариантов");
|
||||
|
||||
УдалитьВременныеТаблицы(Запрос, ВременныеТаблицыКУдалению);
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.УстановитьПараметр("ДанныеИзТаблицыЛевая", ДанныеИзТаблицыЛевая);
|
||||
Запрос.УстановитьПараметр("ДанныеИзТаблицыПравая", ДанныеИзТаблицыПравая);
|
||||
Запрос.УстановитьПараметр("КоличествоСтрокЛевая", ТаблицаЛевая.Количество());
|
||||
Запрос.УстановитьПараметр("КоличествоСтрокПравая", ТаблицаПравая.Количество());
|
||||
КонецЦикла;
|
||||
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| Соответствия.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
|
||||
| Соответствия.НомерЭлементаПравая КАК НомерЭлементаПравая
|
||||
|ИЗ
|
||||
| Соответствия КАК Соответствия";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
@@ -612,4 +891,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура УдалитьВременныеТаблицы(Запрос, Таблицы)
|
||||
Запрос.Текст = "УНИЧТОЖИТЬ " + СтрСоединить(Таблицы, "; УНИЧТОЖИТЬ ");
|
||||
Запрос.Выполнить(); //@skip-check query-in-loop Итерационная обработка таблицы
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -6182,79 +6182,115 @@
|
||||
|
||||
СписокСокращений = АдресныйКлассификаторПовтИсп.СписокСокращений();
|
||||
ТипЧисло = Новый ОписаниеТипов("Число");
|
||||
|
||||
|
||||
Для Каждого ЗаписьОКТМО Из СписокОКТМО Цикл
|
||||
|
||||
|
||||
ТекстGETЗапроса = "selectByCode?code=%OKTMO%&codeType=OKTMO";
|
||||
ТекстGETЗапроса = СтрЗаменить(ТекстGETЗапроса, "%OKTMO%", Формат(ЗаписьОКТМО.ОКТМО, "ЧГ=0"));
|
||||
|
||||
|
||||
РезультатВебСервис = ВыполнитьЗапросЧерезВебСервис(ТекстGETЗапроса);
|
||||
|
||||
|
||||
Если РезультатВебСервис.Отказ Тогда
|
||||
Результат.Вставить(ЗаписьОКТМО.КлючЗаписиОКТМО, Неопределено);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
СведенияПоОКТМО = НовыйСведенияПоОКТМО();
|
||||
|
||||
|
||||
Для Каждого СтрокаДанных Из РезультатВебСервис.Данные Цикл
|
||||
|
||||
СведенияПоОКТМО.OKATO = СокрЛП(СтрокаДанных.okato);
|
||||
СведенияПоОКТМО.ОКТМО = СокрЛП(СтрокаДанных.oktmo);
|
||||
СведенияПоОКТМО.КодИФНСФЛ = СокрЛП(СтрокаДанных.ifnsFlCode);
|
||||
СведенияПоОКТМО.КодИФНСЮЛ = СокрЛП(СтрокаДанных.ifnsUlCode);
|
||||
СведенияПоОКТМО.КодКЛАДР = СокрЛП(СтрокаДанных.codeKLADR);
|
||||
СведенияПоОКТМО.КодУчасткаИФНСФЛ = СокрЛП(СтрокаДанных.ifnsFlAreaCode);
|
||||
СведенияПоОКТМО.КодУчасткаИФНСЮЛ = СокрЛП(СтрокаДанных.ifnsUlAreaCode);
|
||||
СведенияПоОКТМО.ПочтовыйИндекс = ТипЧисло.ПривестиЗначение(СтрокаДанных.ZIPcode);
|
||||
|
||||
СведенияПоОКТМО.Регион = СокрЛП(СтрокаДанных.area);
|
||||
СведенияПоОКТМО.РегионИдентификатор = ?(ПустаяСтрока(СтрокаДанных.areaId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.areaId)));
|
||||
СведенияПоОКТМО.РегионТипКраткий = СокрЛП(СтрокаДанных.areaType);
|
||||
СведенияПоОКТМО.РегионТипПолный = СокрЛП(СписокСокращений.Получить("1" + СведенияПоОКТМО.РегионТипКраткий));
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "OKATO", "okato");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ОКТМО", "oktmo");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодИФНСФЛ", "ifnsFlCode");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодИФНСЮЛ", "ifnsUlCode");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодКЛАДР", "codeKLADR");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодУчасткаИФНСФЛ", "ifnsFlAreaCode");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодУчасткаИФНСЮЛ", "ifnsUlAreaCode");
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ПочтовыйИндекс",
|
||||
ТипЧисло.ПривестиЗначение(СтрокаДанных.ZIPcode), Истина);
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "Регион", "area");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "РегионТипКраткий", "areaType");
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "РегионТипПолный",
|
||||
СписокСокращений.Получить("1" + ВРег(СведенияПоОКТМО.РегионТипКраткий)), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "РегионИдентификатор",
|
||||
?(ПустаяСтрока(СтрокаДанных.areaId), Неопределено, Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.areaId))),
|
||||
Истина);
|
||||
|
||||
НаименованиеРегиона = ПолноеНаименованиеРегиона(СведенияПоОКТМО.Регион, СведенияПоОКТМО.РегионТипКраткий);
|
||||
СведенияПоОКТМО.КодРегиона = АдресныйКлассификатор.КодРегионаПоНаименованию(НаименованиеРегиона);
|
||||
|
||||
СведенияПоОКТМО.МуниципальныйРайон = СокрЛП(СтрокаДанных.munDistrict);
|
||||
СведенияПоОКТМО.МуниципальныйРайонИдентификатор = ?(ПустаяСтрока(СтрокаДанных.munDistrictId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.munDistrictId)));
|
||||
СведенияПоОКТМО.МуниципальныйРайонТипКраткий = СокрЛП(СтрокаДанных.munDistrictType);
|
||||
СведенияПоОКТМО.МуниципальныйРайонТипПолный = СокрЛП(СписокСокращений.Получить("3"
|
||||
+ СведенияПоОКТМО.МуниципальныйРайонТипКраткий));
|
||||
СведенияПоОКТМО.КодМуниципальногоРайона = КодМуниципальногоРайона(
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодРегиона",
|
||||
АдресныйКлассификатор.КодРегионаПоНаименованию(НаименованиеРегиона), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "МуниципальныйРайон", "munDistrict");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "МуниципальныйРайонТипКраткий", "munDistrictType");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "МуниципальныйРайонТипПолный",
|
||||
СписокСокращений.Получить("3" + ВРег(СведенияПоОКТМО.МуниципальныйРайонТипКраткий)), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "МуниципальныйРайонИдентификатор",
|
||||
?(ПустаяСтрока(СтрокаДанных.munDistrictId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.munDistrictId))), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодМуниципальногоРайона",
|
||||
КодМуниципальногоРайона(
|
||||
СведенияПоОКТМО.МуниципальныйРайонТипКраткий, СведенияПоОКТМО.ОКТМО, ЭтоГородФедеральногоЗначения(
|
||||
НаименованиеРегиона));
|
||||
|
||||
СведенияПоОКТМО.НаселенныйПункт = СокрЛП(СтрокаДанных.locality);
|
||||
СведенияПоОКТМО.НаселенныйПунктИдентификатор = ?(ПустаяСтрока(СтрокаДанных.localityId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.localityId)));
|
||||
СведенияПоОКТМО.НаселенныйПунктТипКраткий = СокрЛП(СтрокаДанных.localityType);
|
||||
СведенияПоОКТМО.НаселенныйПунктТипПолный = СокрЛП(СписокСокращений.Получить("6"
|
||||
+ СведенияПоОКТМО.НаселенныйПунктТипКраткий));
|
||||
|
||||
СведенияПоОКТМО.Поселение = СокрЛП(СтрокаДанных.settlement);
|
||||
СведенияПоОКТМО.ПоселениеИдентификатор = ?(ПустаяСтрока(СтрокаДанных.settlementId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.settlementId)));
|
||||
СведенияПоОКТМО.ПоселениеТипКраткий = СокрЛП(СтрокаДанных.settlementType);
|
||||
СведенияПоОКТМО.ПоселениеТипПолный = СокрЛП(СписокСокращений.Получить("4"
|
||||
+ СведенияПоОКТМО.ПоселениеТипКраткий));
|
||||
СведенияПоОКТМО.КодПоселения = КодПоселения(СведенияПоОКТМО.ПоселениеТипКраткий);
|
||||
|
||||
СведенияПоОКТМО.Территория = СокрЛП(СтрокаДанных.territory);
|
||||
СведенияПоОКТМО.ТерриторияИдентификатор = ?(ПустаяСтрока(СтрокаДанных.territoryId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.territoryId)));
|
||||
СведенияПоОКТМО.ТерриторияТипКраткий = СокрЛП(СтрокаДанных.territoryType);
|
||||
СведенияПоОКТМО.ТерриторияТипПолный = СокрЛП(СписокСокращений.Получить("7"
|
||||
+ СведенияПоОКТМО.ТерриторияТипКраткий));
|
||||
|
||||
Результат.Вставить(ЗаписьОКТМО.КлючЗаписиОКТМО, СведенияПоОКТМО);
|
||||
НаименованиеРегиона)), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "НаселенныйПункт", "locality");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "НаселенныйПунктТипКраткий", "localityType");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "НаселенныйПунктТипПолный",
|
||||
СписокСокращений.Получить("6" + ВРег(СведенияПоОКТМО.НаселенныйПунктТипКраткий)), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "НаселенныйПунктИдентификатор",
|
||||
?(ПустаяСтрока(СтрокаДанных.localityId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.localityId))), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "Поселение", "settlement");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ПоселениеТипКраткий", "settlementType");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ПоселениеТипПолный",
|
||||
СписокСокращений.Получить("4" + ВРег(СведенияПоОКТМО.ПоселениеТипКраткий)), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ПоселениеИдентификатор",
|
||||
?(ПустаяСтрока(СтрокаДанных.settlementId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.settlementId))), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "КодПоселения",
|
||||
КодПоселения(СведенияПоОКТМО.ПоселениеТипКраткий), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "Территория", "territory");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ТерриторияТипКраткий", "territoryType");
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ТерриторияТипПолный",
|
||||
СписокСокращений.Получить("7" + ВРег(СведенияПоОКТМО.ТерриторияТипКраткий)), Истина);
|
||||
|
||||
ЗаполнитьЗначениеСвойстваЕслиПустое(СведенияПоОКТМО, СтрокаДанных, "ТерриторияИдентификатор",
|
||||
?(ПустаяСтрока(СтрокаДанных.territoryId), Неопределено,
|
||||
Новый УникальныйИдентификатор(СокрЛП(СтрокаДанных.territoryId))), Истина);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Результат.Вставить(ЗаписьОКТМО.КлючЗаписиОКТМО, СведенияПоОКТМО);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьЗначениеСвойстваЕслиПустое(Приемник, Источник, ИмяСвойстваПриемника, ИмяСвойстваИлиЗначениеИсточника, ЭтоЗначение = Ложь)
|
||||
|
||||
ЗначениеСвойства = ?(ЭтоЗначение, ИмяСвойстваИлиЗначениеИсточника, Источник[ИмяСвойстваИлиЗначениеИсточника]);
|
||||
|
||||
Если ЗначениеЗаполнено(Приемник[ИмяСвойстваПриемника]) Или Не ЗначениеЗаполнено(ЗначениеСвойства) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ЗначениеСвойства) = Тип("Строка") Тогда
|
||||
Приемник[ИмяСвойстваПриемника] = СокрЛП(ЗначениеСвойства);
|
||||
Иначе
|
||||
Приемник[ИмяСвойстваПриемника] = ЗначениеСвойства;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОКТМОИлиОКАТОСтрокой(ОКТМОИлиОКАТО)
|
||||
|
||||
Результат = "";
|
||||
|
||||
@@ -2681,7 +2681,7 @@
|
||||
СинонимТЧ = МетаданныеТЧ.Представление();
|
||||
КонецЕсли;
|
||||
|
||||
Секция = Результат.ПолучитьОбласть("R" + XMLСтрока(НомерСтрокиВывода));
|
||||
Секция = Результат.ПолучитьОбласть("R" + XMLСтрока(Результат.ВысотаТаблицы + 1));
|
||||
ВывестиТекстВОтчет(Результат, Секция, "R1C1:R1C" + Формат(ТабличнаяЧасть.Колонки.Количество(), "ЧГ=0"), " ");
|
||||
ОбластьВывода = ВывестиТекстВОтчет(Результат, Секция, "R1C2", СинонимТЧ, 11, Истина);
|
||||
Результат.Область("R" + Формат(ОбластьВывода.Верх, "ЧГ=0") + "C2").СоздатьФорматСтрок();
|
||||
|
||||
@@ -216,18 +216,19 @@
|
||||
//
|
||||
Функция ВыполнитьФункциюВНесколькоПотоков(ИмяФункции, Знач ПараметрыВыполнения, Знач НаборПараметровФункции = Неопределено) Экспорт
|
||||
|
||||
Если НаборПараметровФункции <> Неопределено И ТипЗнч(НаборПараметровФункции) <> Тип("Соответствие") Тогда
|
||||
Если НаборПараметровФункции <> Неопределено
|
||||
И ТипЗнч(НаборПараметровФункции) <> Тип("Соответствие")
|
||||
И ТипЗнч(НаборПараметровФункции) <> Тип("Структура") Тогда
|
||||
ВызватьИсключение НСтр("ru ='Передан неверный тип набора параметров'");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыВыполненияДочернихПотоков = ПараметрыВыполненияВФоне();
|
||||
ПараметрыВыполненияДочернихПотоков.ОжидатьЗавершение = 0;
|
||||
|
||||
ПараметрыВыполненияДочернихПотоков.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
Если ПараметрыВыполнения.ОжидатьЗавершение = ОбщиеПараметрыВыполненияВФоне().ОжидатьЗавершение Тогда
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
КонецЕсли;
|
||||
|
||||
АдресРезультатов = Новый Соответствие;
|
||||
|
||||
Если НаборПараметровФункции <> Неопределено Тогда
|
||||
Если ТипЗнч(НаборПараметровФункции) = Тип("Соответствие") Тогда
|
||||
Для Каждого ПараметрФункции Из НаборПараметровФункции Цикл
|
||||
АдресРезультатаПотока = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
АдресРезультатов.Вставить(ПараметрФункции.Ключ, АдресРезультатаПотока);
|
||||
@@ -235,15 +236,14 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыМногопоточнойОперации = Новый Структура;
|
||||
ПараметрыМногопоточнойОперации.Вставить("ИмяМетода", ИмяФункции);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ДляФункции", Истина);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыОперации", ПараметрыВыполнения);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыМетода", НаборПараметровФункции);
|
||||
ПараметрыМногопоточнойОперации.Вставить("АдресРезультата", ПараметрыВыполненияДочернихПотоков.АдресРезультата);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПрерватьВыполнениеЕслиОшибка", ПараметрыВыполнения.ПрерватьВыполнениеЕслиОшибка);
|
||||
ПараметрыМногопоточнойОперации.Вставить("АдресРезультатов", АдресРезультатов);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ИдентификаторПроцесса", Новый УникальныйИдентификатор);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ИмяМетода", ИмяФункции);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ДляФункции", Истина);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыМетода", НаборПараметровФункции);
|
||||
ПараметрыМногопоточнойОперации.Вставить("АдресРезультатов", АдресРезультатов);
|
||||
|
||||
Возврат ВыполнитьФункцию(ПараметрыВыполненияДочернихПотоков, ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
Возврат ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -283,18 +283,23 @@
|
||||
//
|
||||
Функция ВыполнитьПроцедуруВНесколькоПотоков(ИмяПроцедуры, Знач ПараметрыВыполнения, Знач НаборПараметровПроцедуры = Неопределено) Экспорт
|
||||
|
||||
Если НаборПараметровПроцедуры <> Неопределено И ТипЗнч(НаборПараметровПроцедуры) <> Тип("Соответствие") Тогда
|
||||
Если НаборПараметровПроцедуры <> Неопределено
|
||||
И ТипЗнч(НаборПараметровПроцедуры) <> Тип("Соответствие")
|
||||
И ТипЗнч(НаборПараметровПроцедуры) <> Тип("Структура") Тогда
|
||||
ВызватьИсключение НСтр("ru ='Передан неверный тип набора параметров'");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыВыполненияДочернихПотоков = ПараметрыВыполненияВФоне();
|
||||
ПараметрыВыполненияДочернихПотоков.ОжидатьЗавершение = 0;
|
||||
НовыеПараметрыВыполнения = ПараметрыВыполненияФункции(Неопределено);
|
||||
ЗаполнитьЗначенияСвойств(НовыеПараметрыВыполнения, ПараметрыВыполнения);
|
||||
ПараметрыВыполнения = НовыеПараметрыВыполнения;
|
||||
|
||||
ПараметрыВыполненияДочернихПотоков.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
Если ПараметрыВыполнения.ОжидатьЗавершение = ОбщиеПараметрыВыполненияВФоне().ОжидатьЗавершение Тогда
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
КонецЕсли;
|
||||
|
||||
АдресРезультатов = Новый Соответствие;
|
||||
|
||||
Если НаборПараметровПроцедуры <> Неопределено Тогда
|
||||
Если ТипЗнч(НаборПараметровПроцедуры) = Тип("Соответствие") Тогда
|
||||
Для Каждого ПараметрФункции Из НаборПараметровПроцедуры Цикл
|
||||
АдресРезультатаПотока = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
АдресРезультатов.Вставить(ПараметрФункции.Ключ, АдресРезультатаПотока);
|
||||
@@ -302,18 +307,16 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыМногопоточнойОперации = Новый Структура;
|
||||
ПараметрыМногопоточнойОперации.Вставить("ИмяМетода", ИмяПроцедуры);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ДляФункции", Ложь);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыОперации", ПараметрыВыполнения);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыМетода", НаборПараметровПроцедуры);
|
||||
ПараметрыМногопоточнойОперации.Вставить("АдресРезультата", ПараметрыВыполненияДочернихПотоков.АдресРезультата);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПрерватьВыполнениеЕслиОшибка", ПараметрыВыполнения.ПрерватьВыполнениеЕслиОшибка);
|
||||
ПараметрыМногопоточнойОперации.Вставить("АдресРезультатов", АдресРезультатов);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ИдентификаторПроцесса", Новый УникальныйИдентификатор);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ИмяМетода", ИмяПроцедуры);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ДляФункции", Ложь);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
|
||||
ПараметрыМногопоточнойОперации.Вставить("ПараметрыМетода", НаборПараметровПроцедуры);
|
||||
ПараметрыМногопоточнойОперации.Вставить("АдресРезультатов", АдресРезультатов);
|
||||
|
||||
Результат = ВыполнитьФункцию(ПараметрыВыполненияДочернихПотоков, ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
Результат = ВыполнитьФункцию(ПараметрыВыполнения, ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1207,8 +1210,8 @@
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Статус", "Выполняется");
|
||||
Результат.Вставить("КраткоеПредставлениеОшибки", Неопределено);
|
||||
Результат.Вставить("ПодробноеПредставлениеОшибки", Неопределено);
|
||||
Результат.Вставить("КраткоеПредставлениеОшибки", "");
|
||||
Результат.Вставить("ПодробноеПредставлениеОшибки", "");
|
||||
Результат.Вставить("Прогресс", Неопределено);
|
||||
Результат.Вставить("Сообщения", Неопределено);
|
||||
|
||||
@@ -1703,7 +1706,7 @@
|
||||
Функция ЕстьФоновыеЗаданияВФайловойИБ()
|
||||
|
||||
ЗапущеноЗаданийВФайловойИБ = 0;
|
||||
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() И Не ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
|
||||
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
|
||||
Отбор = Новый Структура;
|
||||
Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
|
||||
ЗапущеноЗаданийВФайловойИБ = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор).Количество();
|
||||
@@ -1832,70 +1835,107 @@
|
||||
|
||||
УдалитьНесуществующиеПотоки();
|
||||
|
||||
ИдентификаторФормы = ПараметрыОперации.ПараметрыОперации.ИдентификаторФормы;
|
||||
ПотокиПроцесса = ПотокиДлительныхОпераций(ИдентификаторФормы);
|
||||
|
||||
ИдентификаторПроцесса = ПараметрыОперации.ИдентификаторПроцесса;
|
||||
ПотокиПроцесса = НовоеОписаниеПотоков();
|
||||
ПрерватьВыполнениеЕслиОшибка = ПараметрыОперации.ПараметрыВыполнения.ПрерватьВыполнениеЕслиОшибка;
|
||||
РезультатДлительнойОперации = НовыйРезультатДлительнойОперации();
|
||||
|
||||
Порции = ПараметрыОперации.ПараметрыМетода;
|
||||
ИмяМетодаПолученияПорций = Неопределено;
|
||||
КонтекстПолученияИОбработкиПорций = Новый Структура;
|
||||
|
||||
Порции = Новый Массив;
|
||||
Результаты = Новый Соответствие();
|
||||
|
||||
Для каждого КлючЗначение Из Порции Цикл
|
||||
Результаты.Вставить(КлючЗначение.Ключ, Новый Структура(Новый ФиксированнаяСтруктура(РезультатДлительнойОперации)));
|
||||
Результаты[КлючЗначение.Ключ].АдресРезультата = ПараметрыОперации.АдресРезультатов[КлючЗначение.Ключ];
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Если ТипЗнч(ПараметрыОперации.ПараметрыМетода) = Тип("Соответствие") Тогда
|
||||
Для Каждого КлючЗначение Из ПараметрыОперации.ПараметрыМетода Цикл
|
||||
Порции.Добавить(КлючЗначение);
|
||||
Результаты.Вставить(КлючЗначение.Ключ, Новый Структура(Новый ФиксированнаяСтруктура(РезультатДлительнойОперации)));
|
||||
Результаты[КлючЗначение.Ключ].АдресРезультата = ПараметрыОперации.АдресРезультатов[КлючЗначение.Ключ];
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ПараметрыОперации.ПараметрыМетода.Свойство("ИмяМетодаПолученияПорций", ИмяМетодаПолученияПорций);
|
||||
ПараметрыОперации.ПараметрыМетода.Свойство("Контекст", КонтекстПолученияИОбработкиПорций);
|
||||
КонтекстПолученияИОбработкиПорций.Вставить("Процент", 0);
|
||||
КонецЕсли;
|
||||
|
||||
КоличествоОбработанныхПорций = 0;
|
||||
ИндексТекущейПорции = -1;
|
||||
|
||||
ЗавершитьДосрочно = Ложь;
|
||||
|
||||
Попытка
|
||||
|
||||
Для Каждого КлючЗначение Из Порции Цикл
|
||||
Пока Истина Цикл
|
||||
ИндексТекущейПорции = ИндексТекущейПорции + 1;
|
||||
|
||||
Если ИндексТекущейПорции >= Порции.Количество()
|
||||
И ИмяМетодаПолученияПорций <> Неопределено Тогда
|
||||
|
||||
НовыеПорции = Новый Соответствие;
|
||||
ПараметрыПолученияПорций = Новый Массив;
|
||||
ПараметрыПолученияПорций.Добавить(НовыеПорции);
|
||||
ПараметрыПолученияПорций.Добавить(КонтекстПолученияИОбработкиПорций);
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетодаПолученияПорций, ПараметрыПолученияПорций);
|
||||
Для Каждого КлючИЗначение Из НовыеПорции Цикл
|
||||
Порции.Добавить(КлючИЗначение);
|
||||
Результаты.Вставить(КлючИЗначение.Ключ,
|
||||
Новый Структура(Новый ФиксированнаяСтруктура(РезультатДлительнойОперации)));
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если ИндексТекущейПорции >= Порции.Количество() Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КлючЗначение = Порции.Получить(ИндексТекущейПорции);
|
||||
|
||||
ПорцияОбработана = Ложь;
|
||||
Пока Не ПорцияОбработана Цикл
|
||||
|
||||
Поток = ДобавитьПоток(ПараметрыОперации, ПотокиПроцесса, ИдентификаторФормы, КлючЗначение.Ключ, КлючЗначение.Значение);
|
||||
ВыполнитьВФоне = ОжидатьСвободныйПоток(ИдентификаторПроцесса, ПотокиПроцесса,
|
||||
Результаты, ПрерватьВыполнениеЕслиОшибка);
|
||||
Если ВыполнитьВФоне = Неопределено Тогда
|
||||
ЗавершитьДосрочно = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Поток) =Тип("СтрокаТаблицыЗначений") Тогда
|
||||
Результат = ВыполнитьПоток(ПараметрыОперации, Поток, Результаты[КлючЗначение.Ключ], ИдентификаторФормы);
|
||||
Поток = ДобавитьПоток(ПотокиПроцесса, ИдентификаторПроцесса, КлючЗначение.Ключ, КлючЗначение.Значение, ВыполнитьВФоне);
|
||||
|
||||
Если ТипЗнч(Поток) = Тип("СтрокаТаблицыЗначений") Тогда
|
||||
Результат = ВыполнитьПоток(ПараметрыОперации, ПотокиПроцесса, Поток, Результаты[КлючЗначение.Ключ], ВыполнитьВФоне);
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Результаты[КлючЗначение.Ключ], Результат);
|
||||
Если Результат.Статус <> "Выполняется" Тогда
|
||||
ОтправитьСообщенияПотока(Результат.ИдентификаторЗадания);
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Статус = "Ошибка" И ПараметрыОперации.ПрерватьВыполнениеЕслиОшибка Тогда
|
||||
Если Результат.Статус = "Ошибка" И ПрерватьВыполнениеЕслиОшибка Тогда
|
||||
ЗавершитьДосрочно = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
ПорцияОбработана = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОтправитьСообщенияПотока(Поток.ИдентификаторЗадания);
|
||||
|
||||
СтатусОжидания = ОжидатьСвободныйПоток(ИдентификаторФормы, Результаты, Поток.ИдентификаторЗадания, ПараметрыОперации.ПрерватьВыполнениеЕслиОшибка);
|
||||
|
||||
Если Результат.Статус = "Ошибка" Или СтатусОжидания = Неопределено Тогда
|
||||
ЗавершитьДосрочно = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗавершитьДосрочно Тогда
|
||||
РезультатДлительнойОперации.Статус = "Ошибка";
|
||||
ОтменитьВыполнениеВсехПотоков(Результаты, ИдентификаторФормы);
|
||||
ОтменитьВыполнениеВсехПотоков(ПотокиПроцесса, Результаты);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КоличествоОбработанныхПорций = КоличествоОбработанныхПорций + 1;
|
||||
Процент = Окр(КоличествоОбработанныхПорций * 100 / Порции.Количество());
|
||||
Если ИмяМетодаПолученияПорций = Неопределено Тогда
|
||||
КоличествоОбработанныхПорций = КоличествоОбработанныхПорций + 1;
|
||||
Процент = Окр(КоличествоОбработанныхПорций * 100 / Порции.Количество());
|
||||
Иначе
|
||||
Процент = КонтекстПолученияИОбработкиПорций.Процент;
|
||||
КонецЕсли;
|
||||
Процент = ?(Процент < 100, Процент, 99);
|
||||
СообщитьПрогресс(Процент, Строка(КлючЗначение.Ключ), "ПрогрессМногопоточногоПроцесса");
|
||||
|
||||
Если Процент > 0 Тогда
|
||||
СообщитьПрогресс(Процент, Строка(КлючЗначение.Ключ), "ПрогрессМногопоточногоПроцесса");
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ОжидатьЗавершениеВсехПотоков(Результаты, ИдентификаторФормы, ПараметрыОперации.ПрерватьВыполнениеЕслиОшибка);
|
||||
ОжидатьЗавершениеВсехПотоков(ПотокиПроцесса, Результаты, ИдентификаторПроцесса, ПрерватьВыполнениеЕслиОшибка);
|
||||
|
||||
Исключение
|
||||
|
||||
@@ -1906,7 +1946,7 @@
|
||||
|
||||
ЗаписатьОшибку(РезультатДлительнойОперации.ПодробноеПредставлениеОшибки);
|
||||
|
||||
ОтменитьВыполнениеВсехПотоков(Результаты, ИдентификаторФормы);
|
||||
ОтменитьВыполнениеВсехПотоков(ПотокиПроцесса, Результаты);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
@@ -1924,10 +1964,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДобавитьПоток(ПараметрыОперации, Потоки, ИдентификаторПроцесса, КлючПотока, ПараметрыПотока)
|
||||
Функция ДобавитьПоток(Потоки, ИдентификаторПроцесса, КлючПотока, ПараметрыПотока, ВыполнитьВФоне)
|
||||
|
||||
Поток = Неопределено;
|
||||
|
||||
Если Не ВыполнитьВФоне Тогда
|
||||
Поток = Потоки.Добавить();
|
||||
Поток.ИдентификаторПотока = Новый УникальныйИдентификатор;
|
||||
Поток.ИдентификаторПроцесса = ИдентификаторПроцесса;
|
||||
Поток.ПараметрыМетода = ПараметрыПотока;
|
||||
Поток.КлючПотока = КлючПотока;
|
||||
Возврат Поток;
|
||||
КонецЕсли;
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
@@ -1951,8 +2000,8 @@
|
||||
НаборЗаписей.Прочитать();
|
||||
Запись = НаборЗаписей.Добавить();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Запись, Поток, , "ИдентификаторПотока,ПараметрыМетода,КлючПотока");
|
||||
Запись.ИдентификаторПотока = Поток.ИдентификаторПотока;
|
||||
ЗаполнитьЗначенияСвойств(Запись, Поток, , "ПараметрыМетода,КлючПотока");
|
||||
|
||||
Запись.ПараметрыМетода = Новый ХранилищеЗначения(Поток.ПараметрыМетода);
|
||||
Запись.КлючПотока = Новый ХранилищеЗначения(Поток.КлючПотока);
|
||||
|
||||
@@ -1976,32 +2025,36 @@
|
||||
// Выполнить указанный поток
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеПотока - Структура
|
||||
// ПараметрыОперации - Структура
|
||||
// Поток - СтрокаТаблицыЗначений: см. НовоеОписаниеПотоков
|
||||
// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы, если есть.
|
||||
// Результат - см. НовыйРезультатДлительнойОперации
|
||||
// ВыполнитьВФоне - Булево
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ВыполнитьВФоне
|
||||
//
|
||||
Функция ВыполнитьПоток(ОписаниеПотока, Поток, Результат, ИдентификаторФормы = Неопределено)
|
||||
Функция ВыполнитьПоток(ПараметрыОперации, ПотокиПроцесса, Поток, Результат, ВыполнитьВФоне)
|
||||
|
||||
ПараметрыВыполнения = ПараметрыВыполненияВФоне(ИдентификаторФормы);
|
||||
ПараметрыВыполнения = ПараметрыВыполненияВФоне();
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = Поток.Наименование;
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
ПараметрыВыполнения.ЗапуститьНеВФоне = ПараметрыОперации.ПараметрыВыполнения.ЗапуститьНеВФоне
|
||||
Или МонопольныйРежим() Или Не ВыполнитьВФоне;
|
||||
|
||||
ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Результат.АдресРезультата);
|
||||
Поток.АдресРезультата = ПараметрыВыполнения.АдресРезультата;
|
||||
|
||||
ПараметрыВыполнения = ПодготовитьПараметрыВыполнения(ПараметрыВыполнения, ОписаниеПотока.ДляФункции);
|
||||
ПараметрыВыполнения = ПодготовитьПараметрыВыполнения(ПараметрыВыполнения, ПараметрыОперации.ДляФункции);
|
||||
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ОписаниеПотока.ИмяМетода);
|
||||
РезультатЗапуска = ВыполнитьВФоне(ОписаниеПотока.ИмяМетода, Поток.ПараметрыМетода, ПараметрыВыполнения);
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ПараметрыОперации.ИмяМетода);
|
||||
РезультатЗапуска = ВыполнитьВФоне(ПараметрыОперации.ИмяМетода, Поток.ПараметрыМетода, ПараметрыВыполнения);
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ИмяМетодаМногопоточногоПроцесса());
|
||||
|
||||
Если РезультатЗапуска.Статус = "Выполняется" Тогда
|
||||
Поток.ИдентификаторЗадания = РезультатЗапуска.ИдентификаторЗадания;
|
||||
ИначеЕсли РезультатЗапуска.Статус <> "Выполняется" И РезультатЗапуска.Статус <> "Выполнено" Тогда
|
||||
Иначе
|
||||
УдалитьПоток(Поток.ИдентификаторПотока);
|
||||
ПотокиПроцесса.Удалить(Поток);
|
||||
Возврат РезультатЗапуска;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2012,36 +2065,66 @@
|
||||
КонецФункции
|
||||
|
||||
// Ожидать, пока количество выполняющихся потоков не станет меньше максимального.
|
||||
//
|
||||
// Параметры:
|
||||
// Группы - Соответствие
|
||||
//
|
||||
Функция ОжидатьСвободныйПоток(ИдентификаторПроцесса, Результаты, ИдентификаторЗадания, ЗавершитьДосрочноЕслиОшибка)
|
||||
Функция ОжидатьСвободныйПоток(ИдентификаторПроцесса, ПотокиПроцесса, Результаты, ЗавершитьДосрочноЕслиОшибка)
|
||||
|
||||
Потоки = ПотокиДлительныхОпераций();
|
||||
МаксимумПотоков = ДопустимоеКоличествоПотоков();
|
||||
ВыполнитьВФоне = МаксимумПотоков > 1;
|
||||
|
||||
Пока Потоки.Количество() >= МаксимумПотоков Цикл
|
||||
Пока Истина Цикл
|
||||
Потоки = ПотокиДлительныхОпераций();
|
||||
ЕстьАктивныйПотокПроцесса = Ложь;
|
||||
|
||||
ЕстьЗавершенныеПотоки = ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка);
|
||||
Для Каждого ПотокПроцесса Из ПотокиПроцесса Цикл
|
||||
Поток = Потоки.Найти(ПотокПроцесса.ИдентификаторПотока, "ИдентификаторПотока");
|
||||
Если Поток = Неопределено Тогда
|
||||
Поток = Потоки.Добавить();
|
||||
Иначе
|
||||
ЕстьАктивныйПотокПроцесса = Истина;
|
||||
КонецЕсли;
|
||||
ЗаполнитьЗначенияСвойств(Поток, ПотокПроцесса);
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗавершитьДосрочноЕслиОшибка И ЕстьЗавершенныеПотоки = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
ИдентификаторыПроцессов = Потоки.Скопировать(, "ИдентификаторПроцесса");
|
||||
ИдентификаторыПроцессов.Свернуть("ИдентификаторПроцесса");
|
||||
КоличествоВсехАктивныхПотоков = Потоки.Количество()
|
||||
+ ИдентификаторыПроцессов.Количество() - ?(ЕстьАктивныйПотокПроцесса, 1, 0);
|
||||
|
||||
Если КоличествоВсехАктивныхПотоков < МаксимумПотоков Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЕстьЗавершенныеПотоки Тогда
|
||||
ЕстьЗавершенныеПотоки = ЕстьЗавершенныеПотоки(Потоки,
|
||||
Результаты, ЗавершитьДосрочноЕслиОшибка, ИдентификаторПроцесса);
|
||||
|
||||
ИндексПотока = ПотокиПроцесса.Количество() - 1;
|
||||
Пока ИндексПотока >= 0 Цикл
|
||||
ПотокПроцесса = ПотокиПроцесса[ИндексПотока];
|
||||
Если Потоки.Найти(ПотокПроцесса.ИдентификаторПотока, "ИдентификаторПотока") = Неопределено Тогда
|
||||
ПотокиПроцесса.Удалить(ПотокПроцесса);
|
||||
КонецЕсли;
|
||||
ИндексПотока = ИндексПотока - 1;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗавершитьДосрочноЕслиОшибка И ЕстьЗавершенныеПотоки = Неопределено Тогда
|
||||
ВыполнитьВФоне = Неопределено;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЕстьЗавершенныеПотоки Или Не ВыполнитьВФоне Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОтправитьСообщенияПотока(ИдентификаторЗадания);
|
||||
Если Не ЕстьАктивныйПотокПроцесса Тогда
|
||||
// Не ждем, когда у процесса нет ни одного исполняющего потока.
|
||||
ВыполнитьВФоне = Ложь;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
ОжидатьЗавершениеПотока(Потоки[0]);
|
||||
|
||||
Потоки = ПотокиДлительныхОпераций();
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Истина;
|
||||
Возврат ВыполнитьВФоне;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -2053,6 +2136,10 @@
|
||||
//
|
||||
Процедура ОтправитьСообщенияПотока(Знач ИдентификаторЗадания)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ИдентификаторЗадания) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
|
||||
Если ФоновоеЗадание = Неопределено Тогда
|
||||
Возврат;
|
||||
@@ -2066,19 +2153,14 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Ожидать завершение всех потоков.
|
||||
//
|
||||
// Параметры:
|
||||
// Группы - Соответствие
|
||||
//
|
||||
Процедура ОжидатьЗавершениеВсехПотоков(Результаты, ИдентификаторФормы, ЗавершитьДосрочноЕслиОшибка)
|
||||
|
||||
Потоки = ПотокиДлительныхОпераций(ИдентификаторФормы);
|
||||
Процедура ОжидатьЗавершениеВсехПотоков(Потоки, Результаты, ИдентификаторПроцесса, ЗавершитьДосрочноЕслиОшибка)
|
||||
|
||||
Пока Потоки.Количество() > 0 Цикл
|
||||
ЕстьЗавершенныеПотоки = ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка);
|
||||
ЕстьЗавершенныеПотоки = ЕстьЗавершенныеПотоки(Потоки,
|
||||
Результаты, ЗавершитьДосрочноЕслиОшибка, ИдентификаторПроцесса);
|
||||
|
||||
Если ЕстьЗавершенныеПотоки = Неопределено Тогда
|
||||
ОтменитьВыполнениеВсехПотоков(Результаты, ИдентификаторФормы);
|
||||
ОтменитьВыполнениеВсехПотоков(Потоки, Результаты);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2103,8 +2185,6 @@
|
||||
|
||||
Если ЗначениеЗаполнено(Поток.ИдентификаторЗадания) Тогда
|
||||
|
||||
ОтправитьСообщенияПотока(Поток.ИдентификаторЗадания);
|
||||
|
||||
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Поток.ИдентификаторЗадания);
|
||||
|
||||
Если Задание <> Неопределено Тогда
|
||||
@@ -2119,7 +2199,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка)
|
||||
Функция ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка, ИдентификаторПроцесса)
|
||||
|
||||
ЕстьЗавершенныеПотоки = Ложь;
|
||||
|
||||
@@ -2129,40 +2209,44 @@
|
||||
Поток = Потоки[Индекс];
|
||||
|
||||
ИдентификаторЗадания = Поток.ИдентификаторЗадания;
|
||||
КлючПотока = Поток.КлючПотока.Получить();
|
||||
КлючПотока = Поток.КлючПотока;
|
||||
|
||||
Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда
|
||||
Попытка
|
||||
ЗаданиеВыполнено = ЗаданиеВыполнено(ИдентификаторЗадания);
|
||||
Если КлючПотока <> Неопределено И ЗаданиеВыполнено = Истина Тогда
|
||||
|
||||
Если Поток.ИдентификаторПроцесса = ИдентификаторПроцесса
|
||||
И КлючПотока <> Неопределено
|
||||
И ЗаданиеВыполнено = Истина Тогда
|
||||
|
||||
Результаты[КлючПотока].Статус = "Выполнено";
|
||||
ОтправитьСообщенияПотока(ИдентификаторЗадания);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ЗаданиеВыполнено = Неопределено;
|
||||
|
||||
Если КлючПотока <> Неопределено Тогда
|
||||
Если Поток.ИдентификаторПроцесса = ИдентификаторПроцесса
|
||||
И КлючПотока <> Неопределено Тогда
|
||||
|
||||
Результаты[КлючПотока].Статус = "Ошибка";
|
||||
Результаты[КлючПотока].КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||
Результаты[КлючПотока].ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||
ОтправитьСообщенияПотока(ИдентификаторЗадания);
|
||||
|
||||
Если ЗавершитьДосрочноЕслиОшибка = Истина Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ИдентификаторЗадания) Или ЗаданиеВыполнено <> Ложь Тогда
|
||||
|
||||
УдалитьПоток(Поток.ИдентификаторПотока);
|
||||
Потоки.Удалить(Поток);
|
||||
ЕстьЗавершенныеПотоки = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Индекс = Индекс - 1;
|
||||
@@ -2176,30 +2260,23 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Потоки - см. НовоеОписаниеПотоков
|
||||
// ПараметрыОперации - Структура
|
||||
// Результаты - Соответствие
|
||||
//
|
||||
Процедура ОтменитьВыполнениеВсехПотоков(Результаты, ИдентификаторФормы) Экспорт
|
||||
Процедура ОтменитьВыполнениеВсехПотоков(Потоки, Результаты)
|
||||
|
||||
Потоки = ПотокиДлительныхОпераций(ИдентификаторФормы);
|
||||
|
||||
ИндексПотока = Потоки.Количество() - 1;
|
||||
Пока ИндексПотока >= 0 Цикл
|
||||
Поток = Потоки[ИндексПотока];
|
||||
|
||||
Для Каждого Поток Из Потоки Цикл
|
||||
Если ЗначениеЗаполнено(Поток.ИдентификаторЗадания) Тогда
|
||||
ОтменитьВыполнениеЗадания(Поток.ИдентификаторЗадания);
|
||||
КонецЕсли;
|
||||
|
||||
КлючПотока = Поток.КлючПотока.Получить();
|
||||
КлючПотока = Поток.КлючПотока;
|
||||
|
||||
Если КлючПотока <> Неопределено Тогда
|
||||
Если КлючПотока <> Неопределено
|
||||
И Результаты[КлючПотока].Статус <> "Ошибка" Тогда
|
||||
Результаты[КлючПотока].Статус = "Отменено";
|
||||
КонецЕсли;
|
||||
|
||||
УдалитьПоток(Поток.ИдентификаторПотока);
|
||||
Потоки.Удалить(ИндексПотока);
|
||||
ИндексПотока = ИндексПотока -1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -2210,40 +2287,28 @@
|
||||
|
||||
Потоки = ПотокиДлительныхОпераций();
|
||||
|
||||
ИндексПотока = Потоки.Количество() - 1;
|
||||
Пока ИндексПотока >= 0 Цикл
|
||||
Поток = Потоки[ИндексПотока];
|
||||
Для Каждого Поток Из Потоки Цикл
|
||||
|
||||
Если Не ЗначениеЗаполнено(Поток.ИдентификаторЗадания) Тогда
|
||||
УдалитьПоток(Поток.ИдентификаторПотока);
|
||||
Иначе
|
||||
Задание = НайтиЗаданиеПоИдентификатору(Поток.ИдентификаторЗадания);
|
||||
|
||||
Если Задание = Неопределено
|
||||
Или Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
|
||||
Или Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
|
||||
УдалитьПоток(Поток.ИдентификаторПотока);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Потоки.Удалить(ИндексПотока);
|
||||
ИндексПотока = ИндексПотока -1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СохранитьПоток(Поток)
|
||||
|
||||
Идентификатор = Поток.ИдентификаторПотока;
|
||||
Если Не ЗначениеЗаполнено(Идентификатор) Тогда
|
||||
Идентификатор = Новый УникальныйИдентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ДлительныеОперации");
|
||||
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
|
||||
ЭлементБлокировки.УстановитьЗначение("ИдентификаторПотока", Идентификатор);
|
||||
ЭлементБлокировки.УстановитьЗначение("ИдентификаторПотока", Поток.ИдентификаторПотока);
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
@@ -2255,7 +2320,7 @@
|
||||
|
||||
НаборЗаписей = РегистрыСведений.ДлительныеОперации.СоздатьНаборЗаписей();
|
||||
|
||||
НаборЗаписей.Отбор.ИдентификаторПотока.Установить(Идентификатор);
|
||||
НаборЗаписей.Отбор.ИдентификаторПотока.Установить(Поток.ИдентификаторПотока);
|
||||
НаборЗаписей.Прочитать();
|
||||
|
||||
Если НаборЗаписей.Количество() = 0 Тогда
|
||||
@@ -2264,8 +2329,7 @@
|
||||
Запись = НаборЗаписей[0];
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Запись, Поток, , "ИдентификаторПотока,ПараметрыМетода,КлючПотока");
|
||||
Запись.ИдентификаторПотока = Идентификатор;
|
||||
ЗаполнитьЗначенияСвойств(Запись, Поток, , "ПараметрыМетода,КлючПотока");
|
||||
Запись.ПараметрыМетода = Новый ХранилищеЗначения(Поток.ПараметрыМетода);
|
||||
Запись.КлючПотока = Новый ХранилищеЗначения(Поток.КлючПотока);
|
||||
|
||||
@@ -2354,6 +2418,7 @@
|
||||
| ДлительныеОперации.Наименование КАК Наименование,
|
||||
| ДлительныеОперации.ПараметрыМетода КАК ПараметрыМетода,
|
||||
| ДлительныеОперации.ИдентификаторЗадания КАК ИдентификаторЗадания,
|
||||
| ДлительныеОперации.ИдентификаторПроцесса КАК ИдентификаторПроцесса,
|
||||
| ДлительныеОперации.ИдентификаторПотока КАК ИдентификаторПотока,
|
||||
| ДлительныеОперации.КлючПотока КАК КлючПотока
|
||||
|ИЗ
|
||||
@@ -2375,7 +2440,7 @@
|
||||
Для Каждого Поток Из Результат Цикл
|
||||
|
||||
Строка = ТаблицаПотоков.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Строка, Поток, , "ПараметрыМетода");
|
||||
ЗаполнитьЗначенияСвойств(Строка, Поток, , "КлючПотока, ПараметрыМетода");
|
||||
Если Не ЗначениеЗаполнено(Строка.АдресРезультата) Тогда
|
||||
Строка.АдресРезультата = Неопределено;
|
||||
КонецЕсли;
|
||||
@@ -2383,6 +2448,9 @@
|
||||
Если Поток.ПараметрыМетода <> Неопределено Тогда
|
||||
Строка.ПараметрыМетода = Поток.ПараметрыМетода.Получить();
|
||||
КонецЕсли;
|
||||
Если Поток.КлючПотока <> Неопределено Тогда
|
||||
Строка.ПараметрыМетода = Поток.КлючПотока.Получить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
События.Вставить("ПриДобавленииОбработчиковОбновления", Ложь); // Для обратной совместимости с БТС 1.2.2.
|
||||
События.Вставить("ПослеОбновленияИнформационнойБазы", Ложь);
|
||||
События.Вставить("ПриПолученииПриоритетаОбновления", Ложь);
|
||||
События.Вставить("ПриЗаполненииОбъектовПланируемыхКУдалению", Ложь);
|
||||
|
||||
// Печать
|
||||
События.Вставить("ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере", Ложь);
|
||||
@@ -3152,6 +3153,26 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриЗаполненииОбъектовПланируемыхКУдалению.
|
||||
Процедура ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
|
||||
МодульУправлениеДоступомСлужебный.ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииОбъектовПланируемыхКУдалению Тогда
|
||||
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
|
||||
МодульИнтеграцияПодсистемБТС.ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииОбъектовПланируемыхКУдалению Тогда
|
||||
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
|
||||
МодульИнтеграцияПодсистемБИП.ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Печать
|
||||
|
||||
@@ -2315,6 +2315,10 @@
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(ТипЗнч(ПроверяемыеДанные)) Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоБитаяСсылка = Неопределено Тогда
|
||||
ЭтоБитаяСсылка = Не ОбщегоНазначения.СсылкаСуществует(ПроверяемыеДанные);
|
||||
ПроверенныеСсылки[ПроверяемыеДанные] = ЭтоБитаяСсылка;
|
||||
@@ -2777,7 +2781,9 @@
|
||||
СсылочныеРеквизиты = Новый Массив;
|
||||
|
||||
Если Не ОбъектМетаданных.Корреспонденция Тогда
|
||||
СсылочныеРеквизиты.Добавить("Счет");
|
||||
Если ОбъектМетаданных.ПланСчетов <> Неопределено Тогда
|
||||
СсылочныеРеквизиты.Добавить("Счет");
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
СсылочныеРеквизиты.Добавить("СчетДт");
|
||||
СсылочныеРеквизиты.Добавить("СчетКт");
|
||||
@@ -3034,6 +3040,10 @@
|
||||
|
||||
Функция ВидыСубконто(ОбъектМетаданных)
|
||||
|
||||
Если ОбъектМетаданных.ПланСчетов = Неопределено Тогда
|
||||
Возврат Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
ВидыСубконтоОМ = ОбъектМетаданных.ПланСчетов.ВидыСубконто;
|
||||
Если ВидыСубконтоОМ = Неопределено Или Не СодержитСсылочныйТип(ВидыСубконтоОМ) Тогда
|
||||
Возврат Новый Массив;
|
||||
|
||||
@@ -3267,8 +3267,9 @@
|
||||
//
|
||||
Функция ПрогрессОбновленияОбластейДанных(РежимОбновления) Экспорт
|
||||
|
||||
Если Не ОбщегоНазначения.РазделениеВключено()
|
||||
Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||
Если Не ОбщегоНазначения.РазделениеВключено()
|
||||
Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность")
|
||||
Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -3305,11 +3306,8 @@
|
||||
Запрос.УстановитьПараметр("ПорядокСостоянияОжидает", ПорядокСостоянияОжидает);
|
||||
Запрос.УстановитьПараметр("ПорядокСостоянияОшибка", ПорядокСостоянияОшибка);
|
||||
|
||||
ОбластиОбновленныеНаВерсию = Новый Массив;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
|
||||
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
|
||||
ОбластиОбновленныеНаВерсию = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ОбластиОбновленныеНаВерсию(Метаданные.Имя, Метаданные.Версия);
|
||||
КонецЕсли;
|
||||
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
|
||||
ОбластиОбновленныеНаВерсию = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ОбластиОбновленныеНаВерсию(Метаданные.Имя, Метаданные.Версия);
|
||||
|
||||
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
|
||||
Запрос.УстановитьПараметр("ИспользуемыеОбласти", МодульРаботаВМоделиСервиса.ИспользуемыеОбластиДанных().Выгрузить());
|
||||
@@ -3325,8 +3323,9 @@
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ОбновленныеОбласти.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанныхВспомогательныеДанные
|
||||
|ПОМЕСТИТЬ ВерсииПодсистемОбластейДанных
|
||||
| ОбновленныеОбласти.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанныхВспомогательныеДанные,
|
||||
| ОбновленныеОбласти.ВыполненаРегистрацияОтложенныхОбработчиков КАК ВыполненаРегистрацияОтложенныхОбработчиков
|
||||
|ПОМЕСТИТЬ ОбновленныеОбласти
|
||||
|ИЗ
|
||||
| &ОбновленныеОбласти КАК ОбновленныеОбласти
|
||||
|;
|
||||
@@ -3334,16 +3333,14 @@
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ИспользуемыеОбласти.ОбластьДанных КАК ОбластьДанных,
|
||||
| ВЫБОР
|
||||
| КОГДА ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные ЕСТЬ NULL
|
||||
| ТОГДА ЛОЖЬ
|
||||
| ИНАЧЕ ИСТИНА
|
||||
| КОНЕЦ КАК ОперативноеОбновлениеЗавершено
|
||||
| НЕ ОбновленныеОбласти.ОбластьДанныхВспомогательныеДанные ЕСТЬ NULL КАК ОперативноеОбновлениеЗавершено,
|
||||
| НЕ ОбновленныеОбласти.ОбластьДанныхВспомогательныеДанные ЕСТЬ NULL
|
||||
| И НЕ ОбновленныеОбласти.ВыполненаРегистрацияОтложенныхОбработчиков КАК ВыполняетсяРегистрацияОтложенныхОбработчиков
|
||||
|ПОМЕСТИТЬ ОбластиДанных
|
||||
|ИЗ
|
||||
| ИспользуемыеОбласти КАК ИспользуемыеОбласти
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных
|
||||
| ПО (ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные = ИспользуемыеОбласти.ОбластьДанных)
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ОбновленныеОбласти КАК ОбновленныеОбласти
|
||||
| ПО (ОбновленныеОбласти.ОбластьДанныхВспомогательныеДанные = ИспользуемыеОбласти.ОбластьДанных)
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -3352,7 +3349,11 @@
|
||||
| МИНИМУМ(ВЫБОР
|
||||
| КОГДА &РежимОбновления = &РежимОбновленияОперативное
|
||||
| И ОбластиДанных.ОперативноеОбновлениеЗавершено
|
||||
| ТОГДА &ПорядокСостоянияОбновлено
|
||||
| ТОГДА ВЫБОР
|
||||
| КОГДА ОбластиДанных.ВыполняетсяРегистрацияОтложенныхОбработчиков
|
||||
| ТОГДА &ПорядокСостоянияВыполняется
|
||||
| ИНАЧЕ &ПорядокСостоянияОбновлено
|
||||
| КОНЕЦ
|
||||
| КОГДА &РежимОбновления = &РежимОбновленияОтложенное
|
||||
| И НЕ ОбластиДанных.ОперативноеОбновлениеЗавершено
|
||||
| ТОГДА &ПорядокСостоянияОжидает
|
||||
@@ -3488,21 +3489,32 @@
|
||||
|
||||
УсловияЗапроса = Новый Массив;
|
||||
|
||||
ЕстьФильтрОперативноеОбновление = Ложь;
|
||||
Если Отбор.Свойство("РежимыВыполнения") Тогда
|
||||
РежимыВыполнения = Новый Массив;
|
||||
Для Каждого ИмяЗначения Из Отбор.РежимыВыполнения Цикл
|
||||
РежимыВыполнения.Добавить(ОбновлениеИнформационнойБазыСлужебный.ЗначениеПеречисленияПоИмени(ИмяЗначения,
|
||||
Метаданные.Перечисления.РежимыВыполненияОбработчиков));
|
||||
РежимВыполнения = ОбновлениеИнформационнойБазыСлужебный.ЗначениеПеречисленияПоИмени(ИмяЗначения,
|
||||
Метаданные.Перечисления.РежимыВыполненияОбработчиков);
|
||||
РежимыВыполнения.Добавить(РежимВыполнения);
|
||||
Если РежимВыполнения = Перечисления.РежимыВыполненияОбработчиков.Оперативно
|
||||
Или РежимВыполнения = Перечисления.РежимыВыполненияОбработчиков.Монопольно Тогда
|
||||
ЕстьФильтрОперативноеОбновление = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
УсловияЗапроса.Добавить("ОбработчикиОбновления.РежимВыполнения В (&РежимыВыполнения)");
|
||||
Запрос.УстановитьПараметр("РежимыВыполнения", РежимыВыполнения);
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьФильтрВыполняется = Ложь;
|
||||
Если Отбор.Свойство("Статусы") Тогда
|
||||
Статусы = Новый Массив;
|
||||
Для Каждого ИмяЗначения Из Отбор.Статусы Цикл
|
||||
Статусы.Добавить(ОбновлениеИнформационнойБазыСлужебный.ЗначениеПеречисленияПоИмени(ИмяЗначения,
|
||||
Метаданные.Перечисления.СтатусыОбработчиковОбновления));
|
||||
Статус = ОбновлениеИнформационнойБазыСлужебный.ЗначениеПеречисленияПоИмени(ИмяЗначения,
|
||||
Метаданные.Перечисления.СтатусыОбработчиковОбновления);
|
||||
Статусы.Добавить(Статус);
|
||||
Если Статус = Перечисления.СтатусыОбработчиковОбновления.Выполняется Тогда
|
||||
ЕстьФильтрВыполняется = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
УсловияЗапроса.Добавить("ОбработчикиОбновления.Статус В (&Статусы)");
|
||||
Запрос.УстановитьПараметр("Статусы", Статусы);
|
||||
@@ -3555,6 +3567,26 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЕстьФильтрОперативноеОбновление И ЕстьФильтрВыполняется
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
|
||||
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
|
||||
ОбновленныеОбласти = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ОбластиОбновленныеНаВерсию(Метаданные.Имя, Метаданные.Версия);
|
||||
ОбластиВыполняетсяРегистрация = ОбновленныеОбласти.НайтиСтроки(
|
||||
Новый Структура("ВыполненаРегистрацияОтложенныхОбработчиков", Ложь));
|
||||
Для Каждого ЭлементВыполняетсяРегистрация Из ОбластиВыполняетсяРегистрация Цикл
|
||||
НомерОбласти = ЭлементВыполняетсяРегистрация.ОбластьДанныхВспомогательныеДанные;
|
||||
Если ОбластиДанных <> Неопределено И ОбластиДанных.Найти(НомерОбласти) = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Строка = ИнформацияПоОбработчикам.Добавить();
|
||||
Строка.ИмяОбработчика = НСтр("ru = 'Служебные процедуры регистрации отложенных обработчиков'");
|
||||
Строка.РежимВыполнения = ИменаРежимовПоЗначению[Перечисления.РежимыВыполненияОбработчиков.Оперативно];
|
||||
Строка.ИмяБиблиотеки = "БиблиотекаСтандартныхПодсистем";
|
||||
Строка.Статус = ИменаСтатусовПоЗначению[Перечисления.СтатусыОбработчиковОбновления.Выполняется];
|
||||
Строка.ОбластьДанных = НомерОбласти;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИнформацияПоОбработчикам;
|
||||
|
||||
КонецФункции
|
||||
@@ -3597,6 +3629,51 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет очередной устаревший объект в список объектов, которые
|
||||
// планируются к удалению в будущих версиях программы.
|
||||
//
|
||||
// Параметры:
|
||||
// Объекты - Соответствие из КлючИЗначение:
|
||||
// * Ключ - Строка - смотри ниже параметр Объект.
|
||||
// * Значение - Булево, Соответствие - смотри ниже параметр Уточнение.
|
||||
//
|
||||
// Объект - Строка - полное имя объекта метаданных с данными, который следует очистить.
|
||||
// Либо объект метаданных с основной таблицей, например, "Справочник.УдалитьОчередьЗаданий".
|
||||
// Либо значение перечисления, например, "Перечисление.ХозяйственныеОперации.УдалитьСписаниеТоваровПереданныхПартнерам".
|
||||
// Либо точка маршрута, например, "БизнесПроцесс.Задание.ТочкаМаршрута.УдалитьВернутьИсполнителю".
|
||||
// Либо все точки маршрута, например, "БизнесПроцесс.Задание.Точки".
|
||||
// Либо поле регистра, входящее в уникальный индекс,
|
||||
// например, измерение "РегистрСведений._ДемоОтветственныеЛица.Склад".
|
||||
//
|
||||
// Уточнение - Булево - когда в параметре Объект указан удаляемый в будущем объект.
|
||||
// Имя объекта должно начинаться с Удалить.
|
||||
// По умолчанию Ложь, если указано Истина, то данные объекта будут удалены.
|
||||
// - ОписаниеТипов, Тип, ПеречислениеСсылка, ТочкаМаршрутаБизнесПроцессаСсылка - когда
|
||||
// в параметре Объект указано поле тип которого сокращается
|
||||
// на список указанных ссылочных типов или один тип
|
||||
// или значение перечисления или значение точки маршрута бизнес-процесса.
|
||||
//
|
||||
Процедура ДобавитьОбъектПланируемыйКУдалению(Объекты, Объект, Уточнение = Ложь) Экспорт
|
||||
|
||||
Если ТипЗнч(Уточнение) = Тип("Булево") Тогда
|
||||
Объекты.Вставить(Объект, Уточнение);
|
||||
Иначе
|
||||
СокращаемыеТипыИЗначения = Объекты.Получить(Объект);
|
||||
Если СокращаемыеТипыИЗначения = Неопределено Тогда
|
||||
СокращаемыеТипыИЗначения = Новый Соответствие;
|
||||
Объекты.Вставить(Объект, СокращаемыеТипыИЗначения);
|
||||
КонецЕсли;
|
||||
Если ТипЗнч(Уточнение) = Тип("ОписаниеТипов") Тогда
|
||||
Для Каждого Тип Из Уточнение.Типы() Цикл
|
||||
СокращаемыеТипыИЗначения.Вставить(Тип, Истина);
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
СокращаемыеТипыИЗначения.Вставить(Уточнение, Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ДляВызоваИзДругихПодсистем
|
||||
|
||||
// ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.7.327";
|
||||
Описание.Версия = "3.1.7.343";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -259,6 +259,42 @@
|
||||
//
|
||||
Процедура ПриНачальномЗаполненииЭлемента(ПолноеИмяОбъекта, Объект, Данные, ДополнительныеПараметры) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается при выполнении обработчика обновления,
|
||||
// выполняющего очистку данных устаревших объектов метаданных.
|
||||
//
|
||||
// Кроме указанных устаревших объектов Удалить*, объекты метаданных,
|
||||
// отключенные от подсистем библиотек, по-возможности добавляются
|
||||
// ими автоматически в сокращение типов в измерениях своих регистров.
|
||||
// Дополнительные сведения могут быть указаны в документации по внедрению
|
||||
// подсистемы в подразделе "Удаление прикладных объектов из подсистемы".
|
||||
//
|
||||
// Параметры:
|
||||
// Объекты - см. ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению.Объекты
|
||||
//
|
||||
// Пример:
|
||||
// ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
// "Справочник.УдалитьОчередьЗаданий");
|
||||
//
|
||||
// ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
// "Перечисление.УдалитьСовместимостьНоменклатуры");
|
||||
//
|
||||
// ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
// "Перечисление.ХозяйственныеОперации.УдалитьСписаниеТоваровПереданныхПартнерам");
|
||||
//
|
||||
// ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
// "БизнесПроцесс.Задание.ТочкаМаршрута.УдалитьВернутьИсполнителю");
|
||||
//
|
||||
// ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
// "РегистрСведений.ВерсииОбъектов.Объект",
|
||||
// Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица,
|
||||
// |ДокументСсылка.НачислениеЗарплаты"));
|
||||
//
|
||||
Процедура ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты) Экспорт
|
||||
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область УстаревшиеПроцедурыИФункции
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
+3
-3
@@ -287,13 +287,13 @@
|
||||
Запрос.УстановитьПараметр("Версия", Версия);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанныхВспомогательныеДанные
|
||||
| ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанныхВспомогательныеДанные,
|
||||
| ВерсииПодсистемОбластейДанных.ВыполненаРегистрацияОтложенныхОбработчиков КАК ВыполненаРегистрацияОтложенныхОбработчиков
|
||||
|ИЗ
|
||||
| РегистрСведений.ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных
|
||||
|ГДЕ
|
||||
| ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы
|
||||
| И ВерсииПодсистемОбластейДанных.Версия = &Версия
|
||||
| И ВерсииПодсистемОбластейДанных.ВыполненаРегистрацияОтложенныхОбработчиков";
|
||||
| И ВерсииПодсистемОбластейДанных.Версия = &Версия";
|
||||
ОбластиОбновленныеНаВерсию = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
Возврат ОбластиОбновленныеНаВерсию;
|
||||
|
||||
@@ -183,7 +183,9 @@
|
||||
// * ИмяКаталогаРезервнойКопииИБ - Строка - каталог сохранения резервной копии.
|
||||
// * ВосстанавливатьИнформационнуюБазу - Булево - признак необходимости восстановления базы.
|
||||
// * ЗавершениеРаботыСистемы - Булево - признак того, что установка обновления происходит при завершении работы.
|
||||
// * ФайлыОбновления - Массив - содержит значения типа Структура.
|
||||
// * ФайлыОбновления - Массив из Структура:
|
||||
// ** ПолноеИмяФайлаОбновления - Строка
|
||||
// ** ВыполнитьОбработчикиОбновления - Булево - выполнить после перехода на эту версию.
|
||||
// * Исправления - Структура:
|
||||
// ** Установить - Массив - пути к файлам исправлений во временном хранилище,
|
||||
// которые требуется установить.
|
||||
@@ -203,7 +205,19 @@
|
||||
ОбновлениеКонфигурацииВызовСервера.СохранитьНастройкиОбновленияКонфигурации(Параметры);
|
||||
|
||||
Если Форма <> Неопределено Тогда
|
||||
Форма.Закрыть();
|
||||
Если Параметры.РежимОбновления = 0 Тогда
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПропуститьЗавершениеРаботыСистемыПослеОбработкиПредупреждений";
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, Истина);
|
||||
Попытка
|
||||
Форма.Закрыть();
|
||||
Исключение
|
||||
ПараметрыПриложения.Удалить(ИмяПараметра);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
ПараметрыПриложения.Удалить(ИмяПараметра);
|
||||
Иначе
|
||||
Форма.Закрыть();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.РежимОбновления = 0 Тогда // Обновить сейчас
|
||||
@@ -211,7 +225,7 @@
|
||||
ИначеЕсли Параметры.РежимОбновления = 1 Тогда // При завершении работы
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПредлагатьОбновлениеИнформационнойБазыПриЗавершенииСеанса";
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, Истина);
|
||||
ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ИменаФайловОбновления", ИменаФайловОбновления(Параметры));
|
||||
ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ИменаФайловОбновления", ИменаФайловОбновления(Параметры, Неопределено));
|
||||
ИначеЕсли Параметры.РежимОбновления = 2 Тогда // Запланировать обновление
|
||||
ЗапланироватьОбновлениеКонфигурации(Параметры, ПараметрыАдминистрирования);
|
||||
КонецЕсли;
|
||||
@@ -439,29 +453,50 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИменаФайловОбновления(Параметры)
|
||||
Функция ИменаФайловОбновления(Параметры, ТолькоПервыйФайл = Ложь)
|
||||
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ИменаФайловОбновления";
|
||||
Если ПараметрыПриложения.Получить(ИмяПараметра) <> Неопределено Тогда
|
||||
Если ТолькоПервыйФайл = Истина Тогда
|
||||
Возврат ПараметрыПриложения[ИмяПараметра].ИмяПервогоФайла;
|
||||
ИначеЕсли ТолькоПервыйФайл = Ложь Тогда
|
||||
Возврат ПараметрыПриложения[ИмяПараметра].ИменаФайлов;
|
||||
КонецЕсли;
|
||||
Возврат ПараметрыПриложения[ИмяПараметра];
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.Свойство("НуженФайлОбновления") И Не Параметры.НуженФайлОбновления Тогда
|
||||
ИмяПервогоФайла = "";
|
||||
ИменаФайловОбновления = "";
|
||||
Иначе
|
||||
ИмяПервогоФайла = Null;
|
||||
Если ПустаяСтрока(Параметры.ИмяФайлаОбновления) Тогда
|
||||
ИменаФайлов = Новый Массив;
|
||||
Для Каждого ФайлОбновления Из Параметры.ФайлыОбновления Цикл
|
||||
Если ИмяПервогоФайла = Null Тогда
|
||||
ИмяПервогоФайла = ФайлОбновления.ПолноеИмяФайлаОбновления;
|
||||
КонецЕсли;
|
||||
ПрефиксФайлаОбновления = ?(ФайлОбновления.ВыполнитьОбработчикиОбновления, "+", "");
|
||||
ИменаФайлов.Добавить(Форматировать(ПрефиксФайлаОбновления + ФайлОбновления.ПолноеИмяФайлаОбновления));
|
||||
КонецЦикла;
|
||||
ИменаФайловОбновления = СтрСоединить(ИменаФайлов, ",");
|
||||
Иначе
|
||||
ИменаФайловОбновления = Форматировать(Параметры.ИмяФайлаОбновления);
|
||||
ИмяПервогоФайла = Параметры.ИмяФайлаОбновления;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат "[" + ИменаФайловОбновления + "]";
|
||||
ИмяПервогоФайла = ?(ИмяПервогоФайла = Null, "", ИмяПервогоФайла);
|
||||
ИменаФайловОбновления = "[" + ИменаФайловОбновления + "]";
|
||||
|
||||
Если ТолькоПервыйФайл = Истина Тогда
|
||||
Возврат ИмяПервогоФайла;
|
||||
ИначеЕсли ТолькоПервыйФайл = Ложь Тогда
|
||||
Возврат ИменаФайловОбновления;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Новый Структура("ИмяПервогоФайла, ИменаФайлов",
|
||||
ИмяПервогоФайла, ИменаФайловОбновления);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -874,18 +909,10 @@
|
||||
ТекстыМакетов.Удалить("ОбластьПараметров");
|
||||
|
||||
//
|
||||
ФайлСкрипта = Новый ТекстовыйДокумент;
|
||||
ФайлСкрипта.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлСкрипта.УстановитьТекст(ТекстыМакетов.МакетФайлаОбновленияКонфигурации);
|
||||
|
||||
ИмяФайлаСкрипта = КаталогВременныхФайловОбновления + "main.js";
|
||||
ФайлСкрипта.Записать(ИмяФайлаСкрипта, КодировкаФайловПрограммыОбновления());
|
||||
ЗаписатьТекстВФайл(КаталогВременныхФайловОбновления + "main.js", ТекстыМакетов.МакетФайлаОбновленияКонфигурации);
|
||||
|
||||
// Вспомогательный файл: helpers.js.
|
||||
ФайлСкрипта = Новый ТекстовыйДокумент;
|
||||
ФайлСкрипта.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлСкрипта.УстановитьТекст(ТекстыМакетов.ДопФайлОбновленияКонфигурации);
|
||||
ФайлСкрипта.Записать(КаталогВременныхФайловОбновления + "helpers.js", КодировкаФайловПрограммыОбновления());
|
||||
ЗаписатьТекстВФайл(КаталогВременныхФайловОбновления + "helpers.js", ТекстыМакетов.ДопФайлОбновленияКонфигурации);
|
||||
|
||||
Если ИнтерактивныйРежим Тогда
|
||||
БиблиотекаКартинок.ЗаставкаВнешнейОперации.Записать(КаталогВременныхФайловОбновления + "splash.png");
|
||||
@@ -893,16 +920,10 @@
|
||||
БиблиотекаКартинок.ДлительнаяОперация48.Записать(КаталогВременныхФайловОбновления + "progress.gif");
|
||||
|
||||
ИмяГлавногоФайлаСкрипта = КаталогВременныхФайловОбновления + "splash.hta";
|
||||
ФайлСкрипта = Новый ТекстовыйДокумент;
|
||||
ФайлСкрипта.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлСкрипта.УстановитьТекст(ТекстыМакетов.ЗаставкаОбновленияКонфигурации);
|
||||
ФайлСкрипта.Записать(ИмяГлавногоФайлаСкрипта, КодировкаФайловПрограммыОбновления());
|
||||
ЗаписатьТекстВФайл(ИмяГлавногоФайлаСкрипта, ТекстыМакетов.ЗаставкаОбновленияКонфигурации);
|
||||
Иначе
|
||||
ИмяГлавногоФайлаСкрипта = КаталогВременныхФайловОбновления + "updater.js";
|
||||
ФайлСкрипта = Новый ТекстовыйДокумент;
|
||||
ФайлСкрипта.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлСкрипта.УстановитьТекст(ТекстыМакетов.НеинтерактивноеОбновлениеКонфигурации);
|
||||
ФайлСкрипта.Записать(ИмяГлавногоФайлаСкрипта, КодировкаФайловПрограммыОбновления());
|
||||
ЗаписатьТекстВФайл(ИмяГлавногоФайлаСкрипта, ТекстыМакетов.НеинтерактивноеОбновлениеКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоОтложенноеОбновление Тогда
|
||||
@@ -926,10 +947,7 @@
|
||||
ВставитьПараметрСкрипта("ОписаниеЗадачи" , ОписаниеЗадачи, Истина, СкриптСозданияЗадачиПланировщикаЗадач);
|
||||
|
||||
ИмяСкриптаСозданияЗадачиПланировщикаЗадач = КаталогВременныхФайловОбновления + "addsheduletask.js";
|
||||
ФайлСкрипта = Новый ТекстовыйДокумент;
|
||||
ФайлСкрипта.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлСкрипта.УстановитьТекст(СкриптСозданияЗадачиПланировщикаЗадач);
|
||||
ФайлСкрипта.Записать(ИмяСкриптаСозданияЗадачиПланировщикаЗадач, КодировкаФайловПрограммыОбновления());
|
||||
ЗаписатьТекстВФайл(ИмяСкриптаСозданияЗадачиПланировщикаЗадач, СкриптСозданияЗадачиПланировщикаЗадач);
|
||||
|
||||
Параметры.КодЗадачиПланировщика = КодЗадачи;
|
||||
|
||||
@@ -937,22 +955,119 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ФайлЛога = Новый ТекстовыйДокумент;
|
||||
ФайлЛога.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлЛога.УстановитьТекст(СтандартныеПодсистемыКлиент.ИнформацияДляПоддержки());
|
||||
ФайлЛога.Записать(КаталогВременныхФайловОбновления + "templog.txt", КодировкаТекста.Системная);
|
||||
ЗаписатьТекстВФайл(КаталогВременныхФайловОбновления + "templog.txt",
|
||||
СтандартныеПодсистемыКлиент.ИнформацияДляПоддержки(), КодировкаТекста.Системная);
|
||||
|
||||
ФайлСкрипта = Новый ТекстовыйДокумент;
|
||||
ФайлСкрипта.Вывод = ИспользованиеВывода.Разрешить;
|
||||
ФайлСкрипта.УстановитьТекст(ТекстыМакетов.СкриптУдаленияПатчей);
|
||||
ФайлСкрипта.Записать(КаталогВременныхФайловОбновления + "add-delete-patches.js", КодировкаФайловПрограммыОбновления());
|
||||
ЗаписатьТекстВФайл(КаталогВременныхФайловОбновления + "add-delete-patches.js",
|
||||
ТекстыМакетов.СкриптУдаленияПатчей);
|
||||
|
||||
Возврат ИмяГлавногоФайлаСкрипта;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаписатьТекстВФайл(ПолноеИмяФайла, Текст, Кодировка = Неопределено)
|
||||
|
||||
Если Кодировка = Неопределено Тогда
|
||||
Кодировка = КодировкаФайловПрограммыОбновления();
|
||||
КонецЕсли;
|
||||
|
||||
ФайлСкрипта = Новый ЗаписьТекста(ПолноеИмяФайла, Кодировка);
|
||||
ФайлСкрипта.Записать(Текст);
|
||||
ФайлСкрипта.Закрыть();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Параметры - см. УстановитьОбновление.Параметры
|
||||
// ПараметрыАдминистрирования - см. СтандартныеПодсистемыСервер.ПараметрыАдминистрирования.
|
||||
//
|
||||
Процедура ЗапуститьСкриптОбновления(Параметры, ПараметрыАдминистрирования)
|
||||
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("Параметры", Параметры);
|
||||
Контекст.Вставить("ПараметрыАдминистрирования", ПараметрыАдминистрирования);
|
||||
|
||||
ПараметрыФормы = Новый Структура("ИмяПервогоФайлаОбновления",
|
||||
ИменаФайловОбновления(Параметры, Истина));
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ЗапуститьСкриптОбновленияПослеПроверкиФайлаОбновления",
|
||||
ЭтотОбъект, Контекст);
|
||||
|
||||
Форма = ОткрытьФорму("ОбщаяФорма.ПроверкаФайлаОбновления", ПараметрыФормы,,,,,
|
||||
Оповещение, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
|
||||
|
||||
Если Форма = Неопределено Тогда
|
||||
ЗапуститьСкриптОбновленияПриОчисткеДанных(Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Контекст - Структура:
|
||||
// * Параметры - см. УстановитьОбновление.Параметры
|
||||
// * ПараметрыАдминистрирования - см. СтандартныеПодсистемыСервер.ПараметрыАдминистрирования.
|
||||
// Результат - Булево, Неопределено
|
||||
//
|
||||
Процедура ЗапуститьСкриптОбновленияПослеПроверкиФайлаОбновления(Результат, Контекст) Экспорт
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
ЗапуститьСкриптОбновленияПослеОчисткиУстаревшихДанных(Истина, Контекст);
|
||||
Иначе
|
||||
ЗапуститьСкриптОбновленияПриОчисткеДанных(Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Контекст - см. ЗапуститьСкриптОбновленияПослеПроверкиФайлаОбновления.Контекст
|
||||
//
|
||||
Процедура ЗапуститьСкриптОбновленияПриОчисткеДанных(Контекст)
|
||||
|
||||
ПолноеИмяФормы = "Обработка.РезультатыОбновленияПрограммы.Форма.ОчисткаУстаревшихДанных";
|
||||
|
||||
Окна = ПолучитьОкна();
|
||||
Для Каждого Окно Из Окна Цикл
|
||||
Для Каждого Форма Из Окно.Содержимое Цикл
|
||||
Если Форма.ИмяФормы = ПолноеИмяФормы И Форма.Открыта() Тогда
|
||||
Форма.Закрыть();
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ЗапуститьСкриптОбновленияПослеОчисткиУстаревшихДанных",
|
||||
ЭтотОбъект, Контекст);
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("ОчиститьИЗакрыть", Истина);
|
||||
|
||||
ОткрытьФорму(ПолноеИмяФормы, ПараметрыФормы,,,,,
|
||||
Оповещение, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Результат - Булево, Неопределено
|
||||
// Контекст - см. ЗапуститьСкриптОбновленияПослеПроверкиФайлаОбновления.Контекст
|
||||
//
|
||||
Процедура ЗапуститьСкриптОбновленияПослеОчисткиУстаревшихДанных(Результат, Контекст) Экспорт
|
||||
|
||||
Если Результат <> Истина Тогда
|
||||
Если Результат <> Ложь Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Обновление конфигурации отменено.'"));
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗапуститьСкриптОбновленияЗавершение(Контекст.Параметры, Контекст.ПараметрыАдминистрирования);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Параметры - см. УстановитьОбновление.Параметры
|
||||
// ПараметрыАдминистрирования - см. СтандартныеПодсистемыСервер.ПараметрыАдминистрирования.
|
||||
//
|
||||
Процедура ЗапуститьСкриптОбновленияЗавершение(Параметры, ПараметрыАдминистрирования)
|
||||
|
||||
ИмяГлавногоФайлаСкрипта = СформироватьФайлыСкриптаОбновления(Истина, Параметры, ПараметрыАдминистрирования);
|
||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(), "Информация",
|
||||
НСтр("ru = 'Выполняется процедура обновления конфигурации:'") + " " + ИмяГлавногоФайлаСкрипта);
|
||||
|
||||
@@ -4008,6 +4008,9 @@
|
||||
ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(Тип) Тогда
|
||||
Представление = "БизнесПроцессСсылка";
|
||||
|
||||
ИначеЕсли БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(Тип) Тогда
|
||||
Представление = "ТочкаМаршрутаБизнесПроцессаСсылка";
|
||||
|
||||
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(Тип) Тогда
|
||||
Представление = "ПланВидовХарактеристикСсылка";
|
||||
|
||||
@@ -6234,6 +6237,61 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Служебные объекты и объекты при загрузке из резервной копии,
|
||||
// должны записываться без какой-либо прикладной логики.
|
||||
//
|
||||
// Запись служебных объектов без отключения прикладной логики,
|
||||
// может привести к зацикливанию, снижению производительности,
|
||||
// а также избыточным изменениях, которые в некоторых случаях
|
||||
// могут неожиданно повлиять на логику работы.
|
||||
//
|
||||
// Служебными являются объекты, которые обычно не участвуют
|
||||
// в обмене данными, не зависят от других объектов, например:
|
||||
// - кэши;
|
||||
// - даты обновления кэшей и аналогичные признаки;
|
||||
// - промежуточные данные для передачи параметров в фоновые задания;
|
||||
// - вспомогательные служебные данные (например, ключи доступа,
|
||||
// идентификаторы объектов метаданных).
|
||||
//
|
||||
// При использовании подсистемы Управление доступом, требуется
|
||||
// отдельно вызывать процедуру ОтключитьОбновлениеКлючейДоступа
|
||||
// общего модуля УправлениеДоступом.
|
||||
//
|
||||
// Процедура включает режим загрузки данных,
|
||||
// отключает регистрацию объектов на планах обмена,
|
||||
// отключает контроль механизма удаления помеченных объектов.
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - ПланОбменаОбъект
|
||||
// - КонстантаМенеджерЗначения
|
||||
// - СправочникОбъект
|
||||
// - ДокументОбъект
|
||||
// - ПоследовательностьНаборЗаписей
|
||||
// - ПланВидовХарактеристикОбъект
|
||||
// - ПланСчетовОбъект
|
||||
// - ПланВидовРасчетаОбъект
|
||||
// - БизнесПроцессОбъект
|
||||
// - ЗадачаОбъект
|
||||
// - УдалениеОбъекта
|
||||
// - РегистрСведенийНаборЗаписей
|
||||
// - РегистрНакопленияНаборЗаписей
|
||||
// - РегистрБухгалтерииНаборЗаписей
|
||||
// - РегистрРасчетаНаборЗаписей
|
||||
// - ПерерасчетНаборЗаписей
|
||||
//
|
||||
// ЭтоУзелПланаОбмена - Булево
|
||||
//
|
||||
Процедура ОтключитьКонтрольЗаписи(Объект, ЭтоУзелПланаОбмена = Ложь) Экспорт
|
||||
|
||||
Объект.ДополнительныеСвойства.Вставить("НеВыполнятьКонтрольУдаляемых");
|
||||
Объект.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов");
|
||||
Объект.ОбменДанными.Загрузка = Истина;
|
||||
Если Не ЭтоУзелПланаОбмена Тогда
|
||||
Объект.ОбменДанными.Получатели.АвтоЗаполнение = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -9312,18 +9370,16 @@
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
НоваяСборка = НоваяСборка(СистемнаяИнформация.ВерсияПриложения);
|
||||
Если Не ЗначениеЗаполнено(НоваяСборка) Тогда
|
||||
НоваяСборка = НоваяСборка(ОбщиеПараметры.МинимальнаяВерсияПлатформы);
|
||||
Если ЗначениеЗаполнено(НоваяСборка)
|
||||
И Пользователи.ЭтоПолноправныйПользователь(, Истина, Ложь) Тогда
|
||||
ОбщиеПараметры.МинимальнаяВерсияПлатформы = НоваяСборка;
|
||||
ОбщиеПараметры.МинимальноНеобходимаяВерсияПлатформы = НоваяСборка;
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ОбщиеПараметры.РекомендуемаяВерсияПлатформы, НоваяСборка) < 0 Тогда
|
||||
ОбщиеПараметры.РекомендуемаяВерсияПлатформы = НоваяСборка;
|
||||
НоваяРекомендуемаяСборка = НоваяСборка(ОбщиеПараметры.МинимальнаяВерсияПлатформы);
|
||||
Если ЗначениеЗаполнено(НоваяРекомендуемаяСборка) Тогда
|
||||
МинимальнаяСборка = НомерСборкиПоТекущейВерсииПлатформы(МинимальнаяВерсияПлатформы());
|
||||
ОбщиеПараметры.МинимальнаяВерсияПлатформы = МинимальнаяСборка;
|
||||
ОбщиеПараметры.МинимальноНеобходимаяВерсияПлатформы = МинимальнаяСборка;
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ОбщиеПараметры.РекомендуемаяВерсияПлатформы, НоваяРекомендуемаяСборка) < 0 Тогда
|
||||
ОбщиеПараметры.РекомендуемаяВерсияПлатформы = НоваяРекомендуемаяСборка;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ОбщиеПараметры.МинимальнаяВерсияПлатформы, НоваяСборка) < 0 Тогда
|
||||
ИначеЕсли ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ОбщиеПараметры.МинимальнаяВерсияПлатформы, НоваяСборка) < 0 Тогда
|
||||
ОбщиеПараметры.РекомендуемаяВерсияПлатформы = НоваяСборка;
|
||||
ОбщиеПараметры.МинимальнаяВерсияПлатформы = НоваяСборка;
|
||||
ОбщиеПараметры.МинимальноНеобходимаяВерсияПлатформы = НоваяСборка;
|
||||
|
||||
@@ -843,11 +843,6 @@
|
||||
//
|
||||
Функция НовыйИнтернетПрокси(НастройкаПроксиСервера, URLИлиПротокол) Экспорт
|
||||
|
||||
Протокол = "http";
|
||||
Если ЗначениеЗаполнено(URLИлиПротокол) Тогда
|
||||
Протокол = ПротоколДляПрокси(URLИлиПротокол);
|
||||
КонецЕсли;
|
||||
|
||||
Если НастройкаПроксиСервера = Неопределено Тогда
|
||||
// Системные установки прокси-сервера.
|
||||
Возврат Неопределено;
|
||||
@@ -865,26 +860,35 @@
|
||||
Возврат Новый ИнтернетПрокси(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ИспользоватьАутентификациюОС = НастройкаПроксиСервера.Получить("ИспользоватьАутентификациюОС");
|
||||
ИспользоватьАутентификациюОС = ?(ИспользоватьАутентификациюОС = Истина, Истина, Ложь);
|
||||
|
||||
ДополнительныеНастройки = НастройкаПроксиСервера.Получить("ДополнительныеНастройкиПрокси");
|
||||
Если ТипЗнч(ДополнительныеНастройки) <> Тип("Соответствие") Тогда
|
||||
ДополнительныеНастройки = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
// Настройки прокси-сервера, заданные вручную.
|
||||
Прокси = Новый ИнтернетПрокси;
|
||||
|
||||
// Определение адреса и порта прокси-сервера.
|
||||
ДополнительныеНастройки = НастройкаПроксиСервера.Получить("ДополнительныеНастройкиПрокси");
|
||||
ПроксиПоПротоколу = Неопределено;
|
||||
Если ТипЗнч(ДополнительныеНастройки) = Тип("Соответствие") Тогда
|
||||
ПроксиПоПротоколу = ДополнительныеНастройки.Получить(Протокол);
|
||||
КонецЕсли;
|
||||
|
||||
ИспользоватьАутентификациюОС = НастройкаПроксиСервера.Получить("ИспользоватьАутентификациюОС");
|
||||
ИспользоватьАутентификациюОС = ?(ИспользоватьАутентификациюОС = Истина, Истина, Ложь);
|
||||
|
||||
Если ТипЗнч(ПроксиПоПротоколу) = Тип("Структура") Тогда
|
||||
Прокси.Установить(Протокол, ПроксиПоПротоколу.Адрес, ПроксиПоПротоколу.Порт,
|
||||
Протоколы = СтрРазделить("http,https,ftp,ftps", ",", Ложь);
|
||||
Для Каждого Протокол Из Протоколы Цикл
|
||||
АдресСервера = НастройкаПроксиСервера["Сервер"];
|
||||
Порт = НастройкаПроксиСервера["Порт"];
|
||||
|
||||
ПроксиПоПротоколу = ДополнительныеНастройки[Протокол];
|
||||
Если ТипЗнч(ПроксиПоПротоколу) = Тип("Структура") Тогда
|
||||
АдресСервера = ПроксиПоПротоколу.Адрес;
|
||||
Порт = ПроксиПоПротоколу.Порт;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Порт) Тогда
|
||||
Порт = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Прокси.Установить(Протокол, АдресСервера, Порт,
|
||||
НастройкаПроксиСервера["Пользователь"], НастройкаПроксиСервера["Пароль"], ИспользоватьАутентификациюОС);
|
||||
Иначе
|
||||
Прокси.Установить(Протокол, НастройкаПроксиСервера["Сервер"], НастройкаПроксиСервера["Порт"],
|
||||
НастройкаПроксиСервера["Пользователь"], НастройкаПроксиСервера["Пароль"], ИспользоватьАутентификациюОС);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Прокси.НеИспользоватьПроксиДляЛокальныхАдресов = НастройкаПроксиСервера["НеИспользоватьПроксиДляЛокальныхАдресов"];
|
||||
|
||||
|
||||
@@ -575,6 +575,9 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяБезРасширения);
|
||||
РасширениеБезТочки = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(РасширениеБезТочки);
|
||||
|
||||
ВремяИзмененияУниверсальное = ПараметрыФайла.ВремяИзмененияУниверсальное;
|
||||
Если Не ЗначениеЗаполнено(ВремяИзмененияУниверсальное)
|
||||
Или ВремяИзмененияУниверсальное > ТекущаяУниверсальнаяДата() Тогда
|
||||
@@ -2240,7 +2243,7 @@
|
||||
ГиперссылкаПерехода.Заголовок = ДобавляемыйЭлемент.Заголовок;
|
||||
Если ДобавляемыйЭлемент.ОтображатьКоличество Тогда
|
||||
|
||||
Владелец = ?(ЗначениеЗаполнено(Форма.Параметры.ЗначениеКопирования), Форма.Параметры.ЗначениеКопирования, ВладелецПрисоединенныхФайлов);
|
||||
Владелец = ?(Форма.Параметры.Свойство("ЗначениеКопирования") И ЗначениеЗаполнено(Форма.Параметры.ЗначениеКопирования), Форма.Параметры.ЗначениеКопирования, ВладелецПрисоединенныхФайлов);
|
||||
КоличествоПрисоединенныхФайлов = РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(Владелец);
|
||||
Если КоличествоПрисоединенныхФайлов > 0 Тогда
|
||||
ГиперссылкаПерехода.Заголовок = ГиперссылкаПерехода.Заголовок + " ("
|
||||
|
||||
@@ -1587,9 +1587,11 @@
|
||||
|
||||
Параметры.ОбработкаПродолжения = Неопределено;
|
||||
Параметры.ОбработкаЗавершения = Неопределено;
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПропуститьЗавершениеРаботыСистемыПослеОбработкиПредупреждений";
|
||||
|
||||
Если Не Параметры.Отказ
|
||||
И Не Параметры.НепрерывноеВыполнение Тогда
|
||||
И Не Параметры.НепрерывноеВыполнение
|
||||
И ПараметрыПриложения.Получить(ИмяПараметра) = Неопределено Тогда
|
||||
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы";
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, Истина);
|
||||
|
||||
@@ -1797,6 +1797,110 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриЗаполненииОбъектовПланируемыхКУдалению.
|
||||
Процедура ПриЗаполненииОбъектовПланируемыхКУдалению(Объекты) Экспорт
|
||||
|
||||
// РегистрСведений.ЗависимостиПравДоступа.ТипВедущейТаблицы
|
||||
ЗависимостиПравДоступа = РегистрыСведений.ЗависимостиПравДоступа.ЗависимостиПравДоступа();
|
||||
ТипыВедущихТаблиц = Новый Массив;
|
||||
Для Каждого Строка Из ЗависимостиПравДоступа Цикл
|
||||
ТипыВедущихТаблиц.Добавить(ТипЗнч(Строка.ТипВедущейТаблицы));
|
||||
КонецЦикла;
|
||||
ТребуемыйТипВедущейТаблицы = Новый ОписаниеТипов(ТипыВедущихТаблиц);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипВедущейТаблицы,
|
||||
Метаданные.РегистрыСведений.ЗависимостиПравДоступа.Измерения.ТипВедущейТаблицы);
|
||||
|
||||
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиВнедрения = НастройкиВнедрения();
|
||||
СвойстваВидовДоступа = СвойстваВидовДоступа();
|
||||
|
||||
// ОпределяемыйТип.ЗначениеДоступа
|
||||
ТипыГруппИЗначений = Новый Массив;
|
||||
Для Каждого КлючИЗначение Из СвойстваВидовДоступа.ПоТипамГруппИЗначений Цикл
|
||||
ТипыГруппИЗначений.Добавить(КлючИЗначение.Ключ);
|
||||
КонецЦикла;
|
||||
ТребуемыйТипЗначенияДоступа = Новый ОписаниеТипов(
|
||||
СтрСоединить(НастройкиВнедрения.ЗначенияДоступа, ","));
|
||||
ТребуемыйТипЗначенияДоступа = Новый ОписаниеТипов(ТребуемыйТипЗначенияДоступа, ТипыГруппИЗначений);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ЗначенияГруппДоступа.Измерения.ЗначениеДоступа);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ЗначенияГруппДоступаПоУмолчанию.Измерения.ТипЗначенийДоступа);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ГруппыЗначенийДоступа.Измерения.ЗначениеДоступа);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ГруппыЗначенийДоступа.Измерения.ГруппаЗначенийДоступа);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ИспользуемыеВидыДоступа.Измерения.ТипЗначенийДоступа);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.Измерения.ТипЗначенийДоступа);
|
||||
|
||||
// ОпределяемыйТип.ВладелецНастроекПрав
|
||||
ВозможныеПрава = ВозможныеПраваДляНастройкиПравОбъектов();
|
||||
ТипыВладельцевНастроекПрав = Новый Массив;
|
||||
Для Каждого ВладелецПрав Из ВозможныеПрава.ТипыВладельцев Цикл
|
||||
ТипыВладельцевНастроекПрав.Добавить(ТипЗнч(ВладелецПрав));
|
||||
КонецЦикла;
|
||||
ТребуемыйТипВладельцаНастроекПрав = Новый ОписаниеТипов(ТипыВладельцевНастроекПрав);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипВладельцаНастроекПрав,
|
||||
Метаданные.РегистрыСведений.НастройкиПравОбъектов.Измерения.Объект);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипВладельцаНастроекПрав,
|
||||
Метаданные.РегистрыСведений.НаследованиеНастроекПравОбъектов.Измерения.Объект);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипВладельцаНастроекПрав,
|
||||
Метаданные.РегистрыСведений.НаследованиеНастроекПравОбъектов.Измерения.Родитель);
|
||||
|
||||
// ОпределяемыйТип.ВладелецЗначенийКлючейДоступа
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
Новый ОписаниеТипов(СтрСоединить(НастройкиВнедрения.ВладельцыЗначенийКлючейДоступа.Ссылки, ",")),
|
||||
Метаданные.РегистрыСведений.КлючиДоступаКОбъектам.Измерения.Объект);
|
||||
|
||||
// ОпределяемыйТип.ПолеРегистраКлючейДоступаКРегистрам
|
||||
Для Каждого ОписаниеРегистровКлючей Из НастройкиВнедрения.ТипыИзмеренийРегистровКлючей Цикл
|
||||
ИмяРегистраКлючей = ОписаниеРегистровКлючей.Ключ;
|
||||
МетаданныеРегистраКлючей = Метаданные.РегистрыСведений[ИмяРегистраКлючей];
|
||||
КоличествоПолей = УправлениеДоступомСлужебныйПовтИсп.КоличествоОпорныхПолейРегистра(ИмяРегистраКлючей);
|
||||
ТребуемыйТипПоля = Новый ОписаниеТипов(СтрСоединить(ОписаниеРегистровКлючей.Значение.ИменаТипов, ","));
|
||||
Для НомерПоля = 1 По КоличествоПолей Цикл
|
||||
ИмяПоля = "Поле" + НомерПоля;
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипПоля,
|
||||
МетаданныеРегистраКлючей.Измерения[ИмяПоля]);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
// РегистрСведений.НаборыЗначенийДоступа.Объект
|
||||
ТипыОбъектовПодписок = УправлениеДоступомСлужебныйПовтИсп.ТипыОбъектовВПодпискахНаСобытия(
|
||||
"ЗаписатьНаборыЗначенийДоступа");
|
||||
ТипыСсылокОбъектовПодписок = Новый Массив;
|
||||
Для Каждого КлючИЗначение Из ТипыОбъектовПодписок Цикл
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоТипу(КлючИЗначение.Ключ);
|
||||
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеОбъекта.ПолноеИмя());
|
||||
ПустаяСсылка = МенеджерОбъекта.ПустаяСсылка();
|
||||
ТипыСсылокОбъектовПодписок.Добавить(ТипЗнч(ПустаяСсылка));
|
||||
КонецЦикла;
|
||||
ТребуемыйТипТаблицСЗаписьюНаборовЗначенийДоступа = Новый ОписаниеТипов(ТипыСсылокОбъектовПодписок);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипТаблицСЗаписьюНаборовЗначенийДоступа,
|
||||
Метаданные.РегистрыСведений.НаборыЗначенийДоступа.Измерения.Объект);
|
||||
|
||||
// РегистрСведений.НаборыЗначенийДоступа.ЗначениеДоступа
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.НаборыЗначенийДоступа.Измерения.ЗначениеДоступа);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// ИзменениеЯзыков - см. МультиязычностьСервер.ОписаниеСтарыхИНовыхНастроекЯзыков
|
||||
//
|
||||
@@ -3225,6 +3329,32 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// Объекты - см. ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению.Объекты
|
||||
// ПолноеИмяИзмерения - см. ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению.Объект
|
||||
// ТребуемыеТипы - ОписаниеТипов
|
||||
// УказанныеТипы - ОписаниеТипов
|
||||
//
|
||||
Процедура ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыеТипы, МетаданныеИзмерения)
|
||||
|
||||
Если ТребуемыеТипы.Типы().Количество() = 0 Тогда
|
||||
ЛишниеТипы = МетаданныеИзмерения.Тип;
|
||||
Иначе
|
||||
ЛишниеТипы = Новый ОписаниеТипов(МетаданныеИзмерения.Тип,, ТребуемыеТипы.Типы());
|
||||
КонецЕсли;
|
||||
|
||||
Если ЛишниеТипы.Типы().Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЧастиИмени = СтрРазделить(МетаданныеИзмерения.ПолноеИмя(), ".");
|
||||
ЧастиИмени.Удалить(2);
|
||||
|
||||
ОбновлениеИнформационнойБазы.ДобавитьОбъектПланируемыйКУдалению(Объекты,
|
||||
СтрСоединить(ЧастиИмени, "."), ЛишниеТипы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обработчики подписок на события.
|
||||
|
||||
|
||||
@@ -772,7 +772,7 @@
|
||||
|
||||
Функция КоличествоОпорныхПолейРегистра(Знач ИмяРегистра = "") Экспорт
|
||||
|
||||
Если ИмяРегистра = "" Тогда
|
||||
Если ИмяРегистра = "" Или ИмяРегистра = "КлючиДоступаКРегистрам" Тогда
|
||||
ИмяРегистра = "КлючиДоступаКРегистрам";
|
||||
Измерения = Метаданные.РегистрыСведений.КлючиДоступаКРегистрам.Измерения;
|
||||
Если Измерения.Количество() < 1 Или Измерения[0].Имя <> "Регистр" Тогда
|
||||
|
||||
@@ -103,10 +103,17 @@
|
||||
|
||||
ДополнительныеСведения = Новый Массив;
|
||||
Для каждого Свойство Из Свойства Цикл
|
||||
Если НЕ Свойство.ЭтоДополнительноеСведение Тогда
|
||||
Если Не Свойство.ЭтоДополнительноеСведение Тогда
|
||||
|
||||
ИмяКолонки = "ДополнительныйРеквизит_"
|
||||
+ СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Строка(Свойство));
|
||||
|
||||
Если ИнформацияПоКолонкам.Найти(ИмяКолонки, "ИмяКолонки") <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаИнфоПроКолонки = ИнформацияПоКолонкам.Добавить();
|
||||
ИмяКолонки = СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Строка(Свойство));
|
||||
СтрокаИнфоПроКолонки.ИмяКолонки = "ДополнительныйРеквизит_" + ИмяКолонки;
|
||||
СтрокаИнфоПроКолонки.ИмяКолонки = ИмяКолонки;
|
||||
СтрокаИнфоПроКолонки.ПредставлениеКолонки = Строка(Свойство);
|
||||
СтрокаИнфоПроКолонки.ТипКолонки = Свойство.ТипЗначения;
|
||||
СтрокаИнфоПроКолонки.ОбязательнаДляЗаполнения = Свойство.ЗаполнятьОбязательно;
|
||||
@@ -131,9 +138,16 @@
|
||||
КонецЦикла;
|
||||
|
||||
Для каждого Свойство Из ДополнительныеСведения Цикл
|
||||
|
||||
ИмяКолонки = "Свойство_"
|
||||
+ СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Строка(Свойство));
|
||||
|
||||
Если ИнформацияПоКолонкам.Найти(ИмяКолонки, "ИмяКолонки") <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаИнфоПроКолонки = ИнформацияПоКолонкам.Добавить();
|
||||
ИмяКолонки = СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Строка(Свойство));
|
||||
СтрокаИнфоПроКолонки.ИмяКолонки = "Свойство_" + ИмяКолонки;
|
||||
СтрокаИнфоПроКолонки.ИмяКолонки = ИмяКолонки;
|
||||
СтрокаИнфоПроКолонки.ПредставлениеКолонки = Строка(Свойство);
|
||||
СтрокаИнфоПроКолонки.ТипКолонки = Свойство.ТипЗначения;
|
||||
СтрокаИнфоПроКолонки.ОбязательнаДляЗаполнения = Свойство.ЗаполнятьОбязательно;
|
||||
|
||||
@@ -883,7 +883,16 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ОписаниеШтампов) = Тип("Массив") Тогда
|
||||
|
||||
ИндексШтампа = 1;
|
||||
|
||||
НомерШтампаВСтроке = 0;
|
||||
Если Документ.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда
|
||||
КоличествоШтамповПоШирине = Мин(3, ОписаниеШтампов.Количество());
|
||||
Иначе
|
||||
КоличествоШтамповПоШирине = Мин(2, ОписаниеШтампов.Количество());
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Штамп Из ОписаниеШтампов Цикл
|
||||
ИмяОбласти = "ШтампЭП" + Строка(ИндексШтампа);
|
||||
ОбластьНайдена = Документ.Области.Найти(ИмяОбласти) <> Неопределено;
|
||||
@@ -893,30 +902,55 @@
|
||||
Документ.Области.ШтампЛеваяКолонка.ШиринаКолонки = Размеры.ЛеваяКолонка;
|
||||
Документ.Области.ШтампПраваяКолонка.ШиринаКолонки = Размеры.ПраваяКолонка;
|
||||
Иначе
|
||||
Документ.Вывести(Штамп.ПолучитьОбласть("Отступ"));
|
||||
НомерШтампаВСтроке = НомерШтампаВСтроке + 1;
|
||||
|
||||
ШиринаШтампа = Штамп.Области.Штамп.Право;
|
||||
ШтампВерх = Штамп.Области.Штамп.Верх;
|
||||
ШтампНиз = Штамп.Области.Штамп.Низ;
|
||||
ВысотаШтампа = ШтампНиз - ШтампВерх;
|
||||
ВысотаНачало = Документ.ВысотаТаблицы;
|
||||
ВысотаКонец = Документ.ВысотаТаблицы + ВысотаШтампа;
|
||||
|
||||
Документ.Область(ВысотаНачало, 1, ВысотаКонец, ШиринаШтампа).Разъединить();
|
||||
Если НомерШтампаВСтроке = 1 Или НомерШтампаВСтроке > КоличествоШтамповПоШирине Тогда
|
||||
|
||||
ШиринаНачало = 1; НомерШтампаВСтроке = 1;
|
||||
ОбластиДляПроверкиПоВысоте = Новый Массив;
|
||||
ОбластиДляПроверкиПоВысоте.Добавить(Штамп.ПолучитьОбласть("Отступ"));
|
||||
ОбластиДляПроверкиПоВысоте.Добавить(Штамп.ПолучитьОбласть("ОбластьСтрокШтамп"));
|
||||
Если Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(Документ, ОбластиДляПроверкиПоВысоте, Истина) Тогда
|
||||
Документ.ВывестиГоризонтальныйРазделительСтраниц();
|
||||
КонецЕсли;
|
||||
|
||||
Документ.Вывести(Штамп.ПолучитьОбласть("Отступ"));
|
||||
|
||||
ВысотаНачало = Документ.ВысотаТаблицы;
|
||||
ВысотаКонец = Документ.ВысотаТаблицы + ВысотаШтампа;
|
||||
|
||||
ШиринаШтамповВСтроке = КоличествоШтамповПоШирине * Штамп.ШиринаТаблицы;
|
||||
Документ.Область(ВысотаНачало, ШиринаНачало, ВысотаКонец, ШиринаШтамповВСтроке).Разъединить();
|
||||
// Формат строк, чтобы изменение ширины колонок не повлияло на остальной документ.
|
||||
Документ.Область(ВысотаНачало, , ВысотаКонец).СоздатьФорматСтрок();
|
||||
|
||||
Если Документ.ШиринаТаблицы > ШиринаШтамповВСтроке Тогда
|
||||
Документ.Область(ВысотаНачало, ШиринаШтамповВСтроке + 1, ВысотаКонец, Документ.ШиринаТаблицы).ШиринаКолонки = 0;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ШиринаКонец = ШиринаНачало - 1 + ШиринаШтампа;
|
||||
|
||||
// Вставка в разъединенные области область из макета штампа.
|
||||
ИсходнаяОбласть = Штамп.Область(ШтампВерх, 1, ШтампНиз, ШиринаШтампа);
|
||||
ОбластьПриемник = Документ.Область(ВысотаНачало, 1, ВысотаКонец, ШиринаШтампа);
|
||||
ОбластьПриемник = Документ.Область(ВысотаНачало, ШиринаНачало, ВысотаКонец, ШиринаКонец);
|
||||
Документ.ВставитьОбласть(ИсходнаяОбласть, ОбластьПриемник, , Истина);
|
||||
// Формат строк, чтобы изменение ширины колонок не повлияло на остальной документ.
|
||||
Документ.Область(ВысотаНачало, , ВысотаКонец).СоздатьФорматСтрок();
|
||||
|
||||
Документ.Области.ШтампЛеваяКолонка.ШиринаКолонки = Размеры.ЛеваяКолонка;
|
||||
Документ.Области.ШтампПраваяКолонка.ШиринаКолонки = Размеры.ПраваяКолонка;
|
||||
Документ.Области.ОтступШтампа.ШиринаКолонки = 3;
|
||||
|
||||
ШиринаНачало = ШиринаКонец + 1;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИндексШтампа = ИндексШтампа + 1;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Для Каждого ОписаниеШтампа Из ОписаниеШтампов Цикл
|
||||
ИмяОбласти = ОписаниеШтампа.Ключ;
|
||||
|
||||
@@ -336,48 +336,28 @@
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// ДанныеСертификатов - Массив из ДвоичныеДанные
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из ДвоичныеДанные - Сертификаты по порядку до корневого
|
||||
//
|
||||
Функция СертификатыПоПорядкуДоКорневого(ДанныеСертификатов) Экспорт
|
||||
|
||||
ПоПорядку = Новый Массив;
|
||||
Сертификаты = Новый Соответствие;
|
||||
Для Каждого ДанныеСертификата Из ДанныеСертификатов Цикл
|
||||
ПоПорядку.Добавить(ДанныеСертификата);
|
||||
Сертификаты.Вставить(Новый СертификатКриптографии(ДанныеСертификата), ДанныеСертификата);
|
||||
КонецЦикла;
|
||||
|
||||
ОписаниеСертификатов = Новый Соответствие;
|
||||
СертификатыПоСубъектам = Новый Соответствие;
|
||||
Для Каждого ОписаниеСертификата Из Сертификаты Цикл
|
||||
СертификатыПоСубъектам.Вставить(ОписаниеСертификата.Ключ.Субъект.CN, ОписаниеСертификата.Ключ);
|
||||
|
||||
Для Каждого ДанныеСертификата Из ДанныеСертификатов Цикл
|
||||
Сертификат = Новый СертификатКриптографии(ДанныеСертификата);
|
||||
ПоПорядку.Добавить(ДанныеСертификата);
|
||||
ОписаниеСертификатов.Вставить(Сертификат, ДанныеСертификата);
|
||||
СертификатыПоСубъектам.Вставить(Сертификат.Субъект.CN, ДанныеСертификата);
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ОписаниеСертификата Из Сертификаты Цикл
|
||||
Сертификат = ОписаниеСертификата.Ключ;
|
||||
ДанныеСертификата = ОписаниеСертификата.Значение;
|
||||
СертификатИздателя = СертификатыПоСубъектам.Получить(Сертификат.Издатель.CN);
|
||||
Если СертификатИздателя = Неопределено Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'В сертификатах подписи не удалось найти сертификат издателя
|
||||
|%1
|
||||
|сертификата %2'"),
|
||||
Сертификат.Издатель.CN,
|
||||
Сертификат.Субъект.CN);
|
||||
КонецЕсли;
|
||||
Позиция = ПоПорядку.Найти(ДанныеСертификата);
|
||||
Если Сертификат.Издатель.CN = Сертификат.Субъект.CN Тогда
|
||||
Если Позиция <> ПоПорядку.Количество() - 1 Тогда
|
||||
ПоПорядку.Удалить(Позиция);
|
||||
ПоПорядку.Добавить(ДанныеСертификата);
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПозицияИздателя = ПоПорядку.Найти(Сертификаты.Получить(СертификатИздателя));
|
||||
Если Позиция + 1 = ПозицияИздателя Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПоПорядку.Удалить(Позиция);
|
||||
ПозицияИздателя = ПоПорядку.Найти(Сертификаты.Получить(СертификатИздателя));
|
||||
ПоПорядку.Вставить(ПозицияИздателя, ДанныеСертификата);
|
||||
КонецЦикла;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.УпорядочитьСертификаты(
|
||||
ПоПорядку, ОписаниеСертификатов, СертификатыПоСубъектам);
|
||||
|
||||
Возврат ПоПорядку;
|
||||
|
||||
|
||||
@@ -180,24 +180,35 @@
|
||||
|
||||
ПоПорядку = Новый Массив;
|
||||
СертификатыПоСубъектам = Новый Соответствие;
|
||||
|
||||
Для Каждого ОписаниеСертификата Из Сертификаты Цикл
|
||||
ПоПорядку.Добавить(ОписаниеСертификата);
|
||||
СертификатыПоСубъектам.Вставить(ОписаниеСертификата.Субъект.CN, ОписаниеСертификата);
|
||||
КонецЦикла;
|
||||
ОписаниеСертификатов = Новый Соответствие;
|
||||
|
||||
Для Каждого Сертификат Из Сертификаты Цикл
|
||||
СертификатИздателя = СертификатыПоСубъектам.Получить(Сертификат.Издатель.CN);
|
||||
Если СертификатИздателя = Неопределено Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'В сертификатах подписи не удалось найти сертификат издателя
|
||||
|%1
|
||||
|сертификата %2'"),
|
||||
Сертификат.Издатель.CN,
|
||||
Сертификат.Субъект.CN);
|
||||
КонецЕсли;
|
||||
ОписаниеСертификатов.Вставить(Сертификат, Сертификат);
|
||||
ПоПорядку.Добавить(Сертификат);
|
||||
СертификатыПоСубъектам.Вставить(Сертификат.Субъект.CN, Сертификат);
|
||||
КонецЦикла;
|
||||
|
||||
УпорядочитьСертификаты(ПоПорядку, ОписаниеСертификатов, СертификатыПоСубъектам);
|
||||
|
||||
Возврат ПоПорядку;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура УпорядочитьСертификаты(ПоПорядку, ОписаниеСертификатов, СертификатыПоСубъектам) Экспорт
|
||||
|
||||
Для Каждого ОписаниеСертификата Из ОписаниеСертификатов Цикл
|
||||
СвойстваСертификата = ОписаниеСертификата.Ключ;
|
||||
Сертификат = ОписаниеСертификата.Значение;
|
||||
СертификатИздателя = СертификатыПоСубъектам.Получить(СвойстваСертификата.Издатель.CN);
|
||||
|
||||
Позиция = ПоПорядку.Найти(Сертификат);
|
||||
Если Сертификат.Издатель.CN = Сертификат.Субъект.CN Тогда
|
||||
Если СвойстваСертификата.Издатель.CN = СвойстваСертификата.Субъект.CN
|
||||
Или СертификатИздателя = Неопределено Тогда
|
||||
|
||||
Если Позиция <> ПоПорядку.ВГраница() Тогда
|
||||
ПоПорядку.Удалить(Позиция);
|
||||
ПоПорядку.Добавить(Сертификат);
|
||||
@@ -213,13 +224,7 @@
|
||||
ПоПорядку.Вставить(ПозицияИздателя, Сертификат);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПоПорядку;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПользователиСертификатаСтрокой(Пользователь1, Пользователь2, КоличествоПользователей) Экспорт
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="7c981c4f-a0c3-4b07-b5a1-e712e373a868">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="635656f3-d99d-4a36-bdf2-a2a8fe543981">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="b42b4bbe-4d83-499e-bbed-dce99a01f648"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="1f1d7658-0f33-4220-86f1-a449232d5dca"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="4b16b73c-8e05-4388-8374-0e1099063200"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="26af4ae8-553a-45c2-a9d8-ca957b04af5a"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="f93cb4fc-bc67-497d-aa4f-40a045b671a8"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="0089bc18-addd-4a29-b273-b87f10bca335"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="245513a9-7d11-43fa-bce8-28728b882769"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="4004c042-de83-4628-9430-5edc369f8383"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2c9a726d-a000-46cc-a8ec-b3c92037929c"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="5ed5c0aa-e270-4391-9a25-57eaf35b7a8c"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="66e58ecf-08f4-49f6-986c-8265208e1686"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="e3743616-bfdb-4c6e-843d-289ba9e2dfe9"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="242bdf81-6826-4e21-9550-bc94bac8a79c"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="ff9df76e-9364-4a53-bfe2-dc7cbdc7cc51"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>3.1.7.327</version>
|
||||
<version>3.1.7.343</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
@@ -1442,6 +1442,7 @@
|
||||
<scheduledJobs>ScheduledJob.ОчисткаЗамеровВремени</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОчисткаНенужныхФайлов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОчисткаУстаревшихВерсийОбъектов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОчисткаУстаревшихДанных</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ПерестроениеАгрегатов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ПланированиеИзвлеченияТекстаВМоделиСервиса</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ПолучениеИОтправкаЭлектронныхПисем</scheduledJobs>
|
||||
@@ -1885,6 +1886,7 @@
|
||||
<commonForms>CommonForm.ПредупреждениеБезопасности</commonForms>
|
||||
<commonForms>CommonForm.ПредупрежденияПриЗавершенииРаботы</commonForms>
|
||||
<commonForms>CommonForm.ПриоритетОбновленияВОбластяхДанных</commonForms>
|
||||
<commonForms>CommonForm.ПроверкаФайлаОбновления</commonForms>
|
||||
<commonForms>CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей</commonForms>
|
||||
<commonForms>CommonForm.ПустойРабочийСтол</commonForms>
|
||||
<commonForms>CommonForm.РазрешенныеНеаккредитованныеУЦ</commonForms>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,bc033f22-0aa4-4ed2-9bd1-06e1d1462cd0,1,5af75db0-90ee-4031-8a22-523c18d88bd6,"3.1.7.327","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6775,1,0,7c981c4f-a0c3-4b07-b5a1-e712e373a868,7c981c4f-a0c3-4b07-b5a1-e712e373a868,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated
|
||||
{6,1,1,dc052ebc-c9e2-4e63-9033-f473921844fb,1,d6f42273-dbb8-43ea-b11e-0000ccea447c,"3.1.7.343","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6778,1,0,635656f3-d99d-4a36-bdf2-a2a8fe543981,635656f3-d99d-4a36-bdf2-a2a8fe543981,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated
|
||||
@@ -1902,6 +1902,37 @@
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ОчисткаУстаревшихДанных</name>
|
||||
<id>2245</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ОчисткаУстаревшихДанныхРасширеннаяПодсказка</name>
|
||||
<id>2246</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Очистка данных вручную, когда при реструктуризации произошла ошибка «Записи регистра стали неуникальными»</value>
|
||||
</title>
|
||||
<type>Label</type>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Hyperlink</type>
|
||||
<commandName>Form.Command.ОчисткаУстаревшихДанных</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2548,6 +2579,28 @@
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ОчисткаУстаревшихДанных</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Очистка устаревших данных</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Очистка устаревших данных перед обновление конфигурации</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ОчисткаУстаревшихДанных</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
@@ -98,6 +98,10 @@
|
||||
НастроитьИспользованиеКоличестваПотоковОбновления(ПриоритетОбработкиДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда
|
||||
Элементы.ОчисткаУстаревшихДанных.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// Обновление состояния элементов.
|
||||
УстановитьДоступность();
|
||||
|
||||
@@ -167,6 +171,13 @@
|
||||
ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.РезультатыОбновленияПрограммы", ПараметрыФормы);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОчисткаУстаревшихДанных(Команда)
|
||||
|
||||
ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.ОчисткаУстаревшихДанных");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -52,13 +52,14 @@ TD {
|
||||
</li>
|
||||
<li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Сертификаты и программы электронной подписи и шифрования</a> - переход к настройке параметров подключения средств криптографии: электронной подписи и шифрования. </li>
|
||||
<li><b>Тип подписи для документов</b> - с помощью переключателя выберите, какой тип электронной подписи в зависимости от срока действия будет использоваться в программе:</li>
|
||||
<ul><li><b>Базовая подпись (CAdES-BES)</b> - становится недействительной после окончания срока действия сертификата;</li>
|
||||
<li><b>Подпись с меткой доверенного времени (CAdES-T)</b> - срок действия можно продлить с помощью метки доверенного времени;</li>
|
||||
<li><b>Архивная подпись (CAdES-A)</b> - содержит полный набор доказательств подлинности, может автоматически продлеваться.</li></ul></ul><ul><li><b>Адреса серверов меток времени</b> - предлагаются программой по умолчанию, предоставляет поставщик услуг криптографии.</li>
|
||||
<ul><li><b>Базовая подпись (CAdES-BES)</b> - не содержит метку времени и становится недействительной после окончания срока действия сертификата подписанта (обычно в течение 1 года);</li>
|
||||
<li><b>Подпись с меткой доверенного времени (CAdES-T)</b> - действует после окончания срока действия сертификата подписанта, пока действует сертификат подписи метки времени (обычно до 15 лет). Рекомендуется к использованию при подписании документов, которые должны сохранять юридическую значимость в течение нескольких лет. </li>
|
||||
<li><b>Архивная подпись (CAdES-A)</b> - содержит полный набор доказательств подлинности, в том числе цепочку сертификатов и может продлеваться с помощью добавления меток времени. Используется для архивного хранения электронных подписей. Такая подпись может иметь большой размер файла в зависимости от свойств сертификатов, так как может включать в себя списки отзыва размером в десятки мегабайт, увеличивающих размер файла подписи в 1000 раз. </li></ul></ul><ul><li><b>Адреса серверов меток времени</b> - предлагаются программой по умолчанию, предоставляет поставщик услуг криптографии.</li>
|
||||
<li><b>Усовершенствовать подписи</b> - выберите действие с подписями, добавленными ранее:</li>
|
||||
<ul><li><b>Не усовершенствовать</b> - не будет предпринято никаких действий;</li>
|
||||
<li><b>Автоматически (с помощью регламентного задания)</b> - в списке регламентных заданий можно будет посмотреть и проверить действия программы;</li>
|
||||
<li><b>В интерфейсе администратора</b> - усовершенствовать вручную с помощью различных команд и <a href="Report.ПродлениеСрокаДействияЭлектронныхПодписей/Help">отчета</a> <b>Продление срока действия электронных подписей</b>.</li></ul><li><b>Начиная с даты создания подписи</b> - можно усовершенствовать подписи, созданные начиная с указанной даты. Ее необходимо написать в специальном поле.</li>
|
||||
<li><b>В интерфейсе администратора</b> - усовершенствовать вручную с помощью различных команд и <a href="Report.ПродлениеСрокаДействияЭлектронныхПодписей/Help">отчета</a> <b>Продление срока действия электронных подписей</b>.</li></ul><li><b>Начиная с даты создания подписи</b> - можно усовершенствовать подписи, созданные начиная с указанной даты. Ее необходимо выбрать в специальном поле.</li>
|
||||
<li><b>Автоматически продлевать архивные подписи </b>- будут добавляться новые метки времени в архивные подписи <b>(CAdES-A)</b> за месяц до окончания действия сертификата последней метки времени.</li>
|
||||
<a name="СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS"></a>
|
||||
<li><strong>Проверять подписи и сертификаты на сервере</strong> - В этом случае проверка электронной подписи и сертификата будет происходить на сервере или веб-сервере, что позволяет не устанавливать программу на каждом компьютере, где требуются только такие операции.</li>
|
||||
<li><b>Подписывать и шифровать на сервере</b> - позволяет не устанавливать программу криптографии на компьютер пользователя для подписания, шифрования и расшифровки. В этом случае необходимо установить программу криптографии и сертификат с закрытым ключом на компьютере, где работает сервер 1С:Предприятия или веб-сервер. Для серверов с Linux необходимо заполнить пути к программам криптографии. Сделать это можно в карточке программы в списке <b>Сертификаты и программы электронной подписи и шифрования</b>.</li>
|
||||
|
||||
+10
-2
@@ -426,7 +426,8 @@
|
||||
Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса)
|
||||
И СтрСравнить(ИмяУровня, "city") = 0
|
||||
И ПустаяСтрока(Адрес["city"])
|
||||
И СтрСравнить(Адрес["districtType"], "Г") = 0 Тогда
|
||||
И (СтрСравнить(Адрес["districtType"], "Г") = 0
|
||||
Или СтрСравнить(Адрес["districtType"], "Г.") = 0) Тогда
|
||||
|
||||
ИмяУровня = "district";
|
||||
|
||||
@@ -520,7 +521,9 @@
|
||||
|
||||
РодительскийИдентификатор = Неопределено;
|
||||
|
||||
ИменаУровнейАдреса = ?(РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса),
|
||||
ЭтоМуниципальныйАдрес = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса);
|
||||
|
||||
ИменаУровнейАдреса = ?(ЭтоМуниципальныйАдрес,
|
||||
НаселенныйПунктДетально.munLevels,
|
||||
НаселенныйПунктДетально.admLevels);
|
||||
|
||||
@@ -529,6 +532,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого УровеньАдреса Из ИменаУровнейАдреса Цикл
|
||||
|
||||
Если ЭтоМуниципальныйАдрес И СтрСравнить(УровеньАдреса, "district") = 0 Тогда
|
||||
Продолжить; // город в районе
|
||||
КонецЕсли;
|
||||
|
||||
Если УровеньАдреса = ИмяУровня Тогда
|
||||
Возврат РодительскийИдентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1790,37 +1790,40 @@
|
||||
// Дом и корпус
|
||||
ЗданияИПомещения = ЗданияИПомещенияАдреса(АдресРФ);
|
||||
|
||||
ПараметрыОбъекта = ЗначениеЗданияИлиПомещения(ЗданияИПомещения.Здания, РаботаСАдресамиПовтИсп.ВариантыДанныхДом(), РасширенныйСоставПолей);
|
||||
Если ПараметрыОбъекта.Количество() = 0 Тогда
|
||||
Если ЗданияИПомещения.Здания.Количество() = 0 Тогда
|
||||
ДобавитьЗначение(Список, "ТипДома", "");
|
||||
ДобавитьЗначение(Список, "Дом", "");
|
||||
Иначе
|
||||
Для Каждого СтрокаОбъекта Из ПараметрыОбъекта Цикл
|
||||
ДобавитьЗначение(Список, "ТипДома", СтрокаОбъекта.Тип, РасширенныйСоставПолей);
|
||||
ДобавитьЗначение(Список, "Дом", СтрокаОбъекта.Значение, РасширенныйСоставПолей);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОбъекта = ЗначениеЗданияИлиПомещения(ЗданияИПомещения.Здания, РаботаСАдресамиПовтИсп.ВариантыДанныхСтроение(), РасширенныйСоставПолей);
|
||||
Если ПараметрыОбъекта.Количество() = 0 Тогда
|
||||
ДобавитьЗначение(Список, "ТипКорпуса", "");
|
||||
ДобавитьЗначение(Список, "Корпус", "");
|
||||
ИначеЕсли ПараметрыОбъекта.Количество() = 1 Тогда
|
||||
СтрокаОбъекта = ПараметрыОбъекта[0];
|
||||
ДобавитьЗначение(Список, "ТипКорпуса", СтрокаОбъекта.Тип, РасширенныйСоставПолей);
|
||||
ДобавитьЗначение(Список, "Корпус", СтрокаОбъекта.Значение, РасширенныйСоставПолей);
|
||||
Иначе
|
||||
ТипКорпуса = ПараметрыОбъекта[0].Тип;
|
||||
ЗначениеКорпуса = "";
|
||||
Разделитель = "";
|
||||
Сокращения = РаботаСАдресами.СокращенияОбъектовАдресацииАдресаРФ();
|
||||
Для Каждого СтрокаОбъекта Из ПараметрыОбъекта Цикл
|
||||
ИмяЗдания = ?(ЗначениеЗаполнено(Сокращения[СтрокаОбъекта.Тип]), Сокращения[СтрокаОбъекта.Тип], СтрокаОбъекта.Тип);
|
||||
ЗначениеКорпуса = ЗначениеКорпуса + Разделитель + ИмяЗдания + " " + СтрокаОбъекта.Значение;
|
||||
Разделитель = ", " ;
|
||||
КонецЦикла;
|
||||
ДобавитьЗначение(Список, "ТипКорпуса", ТипКорпуса, РасширенныйСоставПолей);
|
||||
ДобавитьЗначение(Список, "Корпус", ЗначениеКорпуса , РасширенныйСоставПолей);
|
||||
СтрокаОбъекта = ЗданияИПомещения.Здания[0];
|
||||
ДобавитьЗначение(Список, "ТипДома", СтрокаОбъекта.Тип, Ложь);
|
||||
ДобавитьЗначение(Список, "Дом", СтрокаОбъекта.Значение, Ложь);
|
||||
|
||||
ЗданияИПомещения.Удалить(СтрокаОбъекта);
|
||||
Если ЗданияИПомещения.Здания.Количество() > 0 Тогда
|
||||
|
||||
ПараметрыОбъекта = ЗначениеЗданияИлиПомещения(ЗданияИПомещения.Здания, РаботаСАдресамиПовтИсп.ВариантыДанныхСтроение(), Ложь);
|
||||
Если ПараметрыОбъекта.Количество() = 0 Тогда
|
||||
ДобавитьЗначение(Список, "ТипКорпуса", "");
|
||||
ДобавитьЗначение(Список, "Корпус", "");
|
||||
ИначеЕсли ПараметрыОбъекта.Количество() = 1 Тогда
|
||||
СтрокаОбъекта = ПараметрыОбъекта[0];
|
||||
ДобавитьЗначение(Список, "ТипКорпуса", СтрокаОбъекта.Тип, Ложь);
|
||||
ДобавитьЗначение(Список, "Корпус", СтрокаОбъекта.Значение, Ложь);
|
||||
Иначе
|
||||
ТипКорпуса = ПараметрыОбъекта[0].Тип;
|
||||
ЗначениеКорпуса = "";
|
||||
Разделитель = "";
|
||||
Сокращения = РаботаСАдресами.СокращенияОбъектовАдресацииАдресаРФ();
|
||||
Для Каждого СтрокаОбъекта Из ПараметрыОбъекта Цикл
|
||||
ИмяЗдания = ?(ЗначениеЗаполнено(Сокращения[СтрокаОбъекта.Тип]), Сокращения[СтрокаОбъекта.Тип], СтрокаОбъекта.Тип);
|
||||
ЗначениеКорпуса = ЗначениеКорпуса + Разделитель + ИмяЗдания + " " + СтрокаОбъекта.Значение;
|
||||
Разделитель = ", " ;
|
||||
КонецЦикла;
|
||||
ДобавитьЗначение(Список, "ТипКорпуса", ТипКорпуса, РасширенныйСоставПолей);
|
||||
ДобавитьЗначение(Список, "Корпус", ЗначениеКорпуса , РасширенныйСоставПолей);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОбъекта = ЗначениеЗданияИлиПомещения(ЗданияИПомещения.Помещения, РаботаСАдресамиПовтИсп.ВариантыДанныхПомещение(), РасширенныйСоставПолей);
|
||||
|
||||
+1663
File diff suppressed because it is too large.
Load diff
+590
@@ -0,0 +1,590 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2023, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
УстановитьУсловноеОформление();
|
||||
|
||||
ОчиститьИЗакрыть = Параметры.ОчиститьИЗакрыть;
|
||||
Элементы.КоманднаяПанельДиалога.Видимость = Ложь;
|
||||
|
||||
ОбновитьВидимостьДоступность(ЭтотОбъект, Истина);
|
||||
|
||||
Если ОчиститьИЗакрыть Тогда
|
||||
ЧиститьУдаляемые = Ложь;
|
||||
Элементы.ПредупреждениеНадпись.Заголовок =
|
||||
НСтр("ru = 'Отложенное обновление <a href = %1>не завершено</a>. Рекомендуется завершить обновление и выполнить очистку перед обновлением конфигурации.'");
|
||||
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
Элементы.ГруппаПояснение.Видимость = Ложь;
|
||||
Элементы.ОбрабатыватьОбластиДанных.Видимость = Ложь;
|
||||
Элементы.КоманднаяПанельФормы.Видимость = Ложь;
|
||||
Если ОтложенноеОбновлениеЗавершено Тогда
|
||||
ДлительнаяОперацияОчистки = НачатьОчисткуНаСервере();
|
||||
Иначе
|
||||
ДлительнаяОперацияОбновления = НачатьОбновлениеНаСервере();
|
||||
Элементы.ГруппаПредупреждение.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
НавигационнаяСсылка = "e1cib/app/Обработка.РезультатыОбновленияПрограммы.Форма.ОчисткаУстаревшихДанных";
|
||||
ДлительнаяОперацияОбновления = НачатьОбновлениеНаСервере();
|
||||
Элементы.УстаревшиеДанныеОбластьДанных.Формат = "ЧН=0";
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ПредупреждениеНадпись.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(
|
||||
Элементы.ПредупреждениеНадпись.Заголовок, "ОткрытьРезультатыОбновления");
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
|
||||
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
|
||||
ОтчетПрогрессОбновления = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ОтчетПрогрессОбновления();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
Если Не ОчиститьИЗакрыть
|
||||
Или Не ОтложенноеОбновлениеЗавершено Тогда
|
||||
Обновить(Неопределено);
|
||||
Иначе
|
||||
Очистить(Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||
|
||||
Если ЗавершениеРаботы Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОтменитьДлительныеОперации();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "ВыполненВыходИзОбластиДанных"
|
||||
Или ИмяСобытия = "ВыполненВходВОбластьДанных" Тогда
|
||||
|
||||
ПодключитьОбработчикОжидания("ПриИзмененииОбластиДанных", 0.1, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПредупреждениеНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Если НавигационнаяСсылкаФорматированнойСтроки <> "ОткрытьРезультатыОбновления" Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если НеразделенныйРежим И ЗначениеЗаполнено(ОтчетПрогрессОбновления) Тогда
|
||||
ОткрытьФорму(ОтчетПрогрессОбновления);
|
||||
Иначе
|
||||
ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбрабатыватьОбластиДанныхПриИзменении(Элемент)
|
||||
|
||||
УстаревшиеДанные.Очистить();
|
||||
ОбновитьВидимостьДоступность(ЭтотОбъект, Истина);
|
||||
Обновить("");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВывестиКоличествоПриИзменении(Элемент)
|
||||
|
||||
Если ВывестиКоличество Тогда
|
||||
УстаревшиеДанные.Очистить();
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьВидимостьДоступность(ЭтотОбъект);
|
||||
Обновить("");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЧиститьУдаляемыеПриИзменении(Элемент)
|
||||
|
||||
УстаревшиеДанные.Очистить();
|
||||
Обновить("");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПродолжитьБезОчистки(Команда)
|
||||
Закрыть(Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОтменитьОбновлениеКонфигурации(Команда)
|
||||
Закрыть(Ложь);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Обновить(Команда)
|
||||
|
||||
Элементы.ОбрабатыватьОбластиДанных.Доступность = Истина;
|
||||
Элементы.ВывестиКоличество.Доступность = Истина;
|
||||
Элементы.ЧиститьУдаляемые.Доступность = Истина;
|
||||
|
||||
Если Команда <> Неопределено Тогда
|
||||
ДлительнаяОперацияОбновления = НачатьОбновлениеНаСервере();
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПрогресс(0);
|
||||
|
||||
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
|
||||
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения =
|
||||
Новый ОписаниеОповещения("ОбновитьПриПолученииПрогресса",
|
||||
ЭтотОбъект, ДлительнаяОперацияОбновления);
|
||||
|
||||
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбновитьЗавершение",
|
||||
ЭтотОбъект, ДлительнаяОперацияОбновления);
|
||||
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперацияОбновления,
|
||||
ОповещениеОЗавершении, ПараметрыОжидания);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Очистить(Команда)
|
||||
|
||||
Если ОтложенноеОбновлениеЗавершено Тогда
|
||||
ОчиститьПослеПодтверждения(Новый Структура("Значение", "Продолжить"), Команда);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбработкаЗавершения = Новый ОписаниеОповещения(
|
||||
"ОчиститьПослеПодтверждения", ЭтотОбъект, Команда);
|
||||
|
||||
ТекстВопроса =
|
||||
НСтр("ru = 'Отложенное обновление не завершено.
|
||||
|Очистка может удалить данные, которые требуются для завершения обновления.
|
||||
|
|
||||
|Сделайте резервную копию, если она еще не сделана.'");
|
||||
|
||||
Кнопки = Новый СписокЗначений;
|
||||
Кнопки.Добавить("Продолжить", НСтр("ru = 'Продолжить'"));
|
||||
Кнопки.Добавить("Отмена", НСтр("ru = 'Отмена'"));
|
||||
|
||||
ДополнительныеПараметры = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ДополнительныеПараметры.Заголовок = НСтр("ru = 'Очистка устаревших данных'");
|
||||
ДополнительныеПараметры.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
ДополнительныеПараметры.КнопкаПоУмолчанию = "Отмена";
|
||||
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОбработкаЗавершения,
|
||||
ТекстВопроса, Кнопки, ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПланОчистки(Команда)
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.УстановитьТекст(ПланОчисткиНаСервере(ЧиститьУдаляемые, ОбрабатыватьОбластиДанных));
|
||||
ТекстовыйДокумент.Показать(НСтр("ru = 'План очистки устаревших данных'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьУсловноеОформление()
|
||||
|
||||
УсловноеОформление.Элементы.Очистить();
|
||||
|
||||
Элемент = УсловноеОформление.Элементы.Добавить();
|
||||
|
||||
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
|
||||
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.УстаревшиеДанныеОбластьДанных.Имя);
|
||||
|
||||
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УстаревшиеДанные.ОбластьДанных");
|
||||
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
|
||||
ОтборЭлемента.ПравоеЗначение = -1;
|
||||
|
||||
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Общие данные'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Процедура ОбновитьВидимостьДоступность(Форма, ОбновитьРезультатОтложенногоОбновления = Ложь)
|
||||
|
||||
Элементы = Форма.Элементы;
|
||||
|
||||
Если ОбновитьРезультатОтложенногоОбновления Тогда
|
||||
Форма.ОтложенноеОбновлениеЗавершено = ОтложенноеОбновлениеЗавершено(Форма.НеразделенныйРежим);
|
||||
КонецЕсли;
|
||||
Элементы.ГруппаПредупреждение.Видимость = Не Форма.ОтложенноеОбновлениеЗавершено;
|
||||
|
||||
Элементы.ОбрабатыватьОбластиДанных.Видимость = Форма.НеразделенныйРежим;
|
||||
Элементы.УстаревшиеДанныеОбластьДанных.Видимость =
|
||||
Форма.НеразделенныйРежим И Форма.ОбрабатыватьОбластиДанных;
|
||||
|
||||
Элементы.УстаревшиеДанныеКоличество.Видимость = Форма.ВывестиКоличество;
|
||||
Элементы.УстаревшиеДанные.Шапка =
|
||||
Элементы.УстаревшиеДанныеКоличество.Видимость
|
||||
Или Элементы.УстаревшиеДанныеОбластьДанных.Видимость;
|
||||
|
||||
Элементы.УстаревшиеДанные.ВысотаШапки =
|
||||
?(Элементы.УстаревшиеДанныеКоличество.Видимость, 2, 1);
|
||||
|
||||
Элементы.ФормаОчистить.Доступность = Форма.УстаревшиеДанные.Количество() > 0;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ОтложенноеОбновлениеЗавершено(НеразделенныйРежим)
|
||||
|
||||
НеразделенныйРежим = Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
||||
|
||||
Возврат ОбновлениеИнформационнойБазыСлужебный.ОтложенноеОбновлениеЗавершено();
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриИзмененииОбластиДанных()
|
||||
|
||||
Обновить("");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОтменитьДлительныеОперации()
|
||||
|
||||
Если ДлительнаяОперацияОбновления <> Неопределено Тогда
|
||||
ДлительныеОперации.ОтменитьВыполнениеЗадания(
|
||||
ДлительнаяОперацияОбновления.ИдентификаторЗадания);
|
||||
ДлительнаяОперацияОбновления = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДлительнаяОперацияОчистки <> Неопределено Тогда
|
||||
ДлительныеОперации.ОтменитьВыполнениеЗадания(
|
||||
ДлительнаяОперацияОчистки.ИдентификаторЗадания);
|
||||
ДлительнаяОперацияОчистки = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(АдресРезультатаОбновления) Тогда
|
||||
УдалитьИзВременногоХранилища(АдресРезультатаОбновления);
|
||||
АдресРезультатаОбновления = "";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(АдресРезультатаОчистки) Тогда
|
||||
УдалитьИзВременногоХранилища(АдресРезультатаОчистки);
|
||||
АдресРезультатаОчистки = "";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьПрогресс(Процент)
|
||||
|
||||
Элементы.ДлительнаяОперацияПроцент.Заголовок =
|
||||
Формат(Процент, "ЧН=0") + "%";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаСервере
|
||||
Функция НачатьОбновлениеНаСервере()
|
||||
|
||||
ОбновитьВидимостьДоступность(ЭтотОбъект, Истина);
|
||||
|
||||
УстаревшиеДанные.Очистить();
|
||||
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаДлительнаяОперация;
|
||||
Элементы.ДлительнаяОперацияТекст.Заголовок =
|
||||
НСтр("ru = 'Обновление списка устаревших данных ...'");
|
||||
|
||||
ОтменитьДлительныеОперации();
|
||||
|
||||
АдресРезультатаОбновления = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление списка устаревших данных'");
|
||||
ПараметрыВыполнения.АдресРезультата = АдресРезультатаОбновления;
|
||||
ПараметрыВыполнения.ЗапуститьВФоне = Истина; // Всегда в фоне (очередь заданий в файловом варианте).
|
||||
ПараметрыВыполнения.СРасширениямиБазыДанных = Истина;
|
||||
|
||||
ПараметрыЗадания = Новый Структура;
|
||||
ПараметрыЗадания.Вставить("ВывестиКоличество", ВывестиКоличество);
|
||||
ПараметрыЗадания.Вставить("ЧиститьУдаляемые", ЧиститьУдаляемые);
|
||||
ПараметрыЗадания.Вставить("ОбрабатыватьОбластиДанных", ОбрабатыватьОбластиДанных);
|
||||
|
||||
Результат = ДлительныеОперации.ВыполнитьВФоне(
|
||||
"ОбновлениеИнформационнойБазыСлужебный.СформироватьСписокУстаревшихДанныхВФоне",
|
||||
ПараметрыЗадания, ПараметрыВыполнения);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьПриПолученииПрогресса(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ДополнительныеПараметры <> ДлительнаяОперацияОбновления Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Прогресс <> Неопределено Тогда
|
||||
УстановитьПрогресс(Результат.Прогресс.Процент);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьЗавершение(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ДополнительныеПараметры <> ДлительнаяОперацияОбновления Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьОшибка = Ложь;
|
||||
ЗавершитьОбновлениеНаСервере(Результат, ЕстьОшибка);
|
||||
|
||||
Если Не ОчиститьИЗакрыть Тогда
|
||||
ОбновитьВидимостьДоступность(ЭтотОбъект);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЕстьОшибка Или УстаревшиеДанные.Количество() > 0 Тогда
|
||||
ОбновитьВидимостьДоступность(ЭтотОбъект);
|
||||
Элементы.Страницы.Видимость = Ложь;
|
||||
Элементы.КоманднаяПанельДиалога.Видимость = Истина;
|
||||
Элементы.ОтменитьОбновлениеКонфигурации.КнопкаПоУмолчанию = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Закрыть(Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗавершитьОбновлениеНаСервере(Знач Результат, ЕстьОшибка)
|
||||
|
||||
ДлительнаяОперацияОбновления = Неопределено;
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаУстаревшиеДанные;
|
||||
|
||||
Если ЗначениеЗаполнено(АдресРезультатаОбновления) Тогда
|
||||
Данные = ПолучитьИзВременногоХранилища(АдресРезультатаОбновления);
|
||||
УдалитьИзВременногоХранилища(АдресРезультатаОбновления);
|
||||
АдресРезультатаОбновления = "";
|
||||
Иначе
|
||||
Данные = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОшибки = "";
|
||||
|
||||
Если Результат.Статус = "Ошибка" Тогда
|
||||
ТекстОшибки = Результат.ПодробноеПредставлениеОшибки;
|
||||
ИначеЕсли ТипЗнч(Данные) = Тип("Строка") Тогда
|
||||
ТекстОшибки = Данные;
|
||||
ИначеЕсли Данные = Неопределено Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Фоновое задание не вернуло результат'");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаОшибка;
|
||||
ЕстьОшибка = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Статус <> "Выполнено" Тогда
|
||||
ЕстьОшибка = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Строка Из Данные Цикл
|
||||
ЗаполнитьЗначенияСвойств(УстаревшиеДанные.Добавить(), Строка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОчиститьПослеПодтверждения(Ответ, Команда) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(Ответ)
|
||||
Или Ответ.Значение <> "Продолжить" Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Команда <> Неопределено Тогда
|
||||
ДлительнаяОперацияОчистки = НачатьОчисткуНаСервере();
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПрогресс(0);
|
||||
|
||||
Элементы.ОбрабатыватьОбластиДанных.Доступность = Ложь;
|
||||
Элементы.ВывестиКоличество.Доступность = Ложь;
|
||||
Элементы.ЧиститьУдаляемые.Доступность = Ложь;
|
||||
Элементы.ФормаОчистить.Доступность = Ложь;
|
||||
|
||||
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
|
||||
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения =
|
||||
Новый ОписаниеОповещения("ОчиститьПриПолученииПрогресса",
|
||||
ЭтотОбъект, ДлительнаяОперацияОчистки);
|
||||
|
||||
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОчиститьЗавершение",
|
||||
ЭтотОбъект, ДлительнаяОперацияОчистки);
|
||||
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперацияОчистки,
|
||||
ОповещениеОЗавершении, ПараметрыОжидания);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция НачатьОчисткуНаСервере()
|
||||
|
||||
ОбновлениеИнформационнойБазыСлужебный.ОтменитьРегламентноеЗаданиеОчисткаУстаревшихДанных();
|
||||
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаДлительнаяОперация;
|
||||
Элементы.ДлительнаяОперацияТекст.Заголовок =
|
||||
НСтр("ru = 'Очистка устаревших данных ...'");
|
||||
|
||||
ОтменитьДлительныеОперации();
|
||||
|
||||
АдресРезультатаОчистки = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Очистка устаревших данных'");
|
||||
ПараметрыВыполнения.АдресРезультата = АдресРезультатаОчистки;
|
||||
ПараметрыВыполнения.ЗапуститьВФоне = Истина; // Всегда в фоне (очередь заданий в файловом варианте).
|
||||
ПараметрыВыполнения.СРасширениямиБазыДанных = Истина;
|
||||
ПараметрыВыполнения.КлючФоновогоЗадания = ОбновлениеИнформационнойБазыСлужебный.КлючЗаданияОчисткиУстаревшихДанных();
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
ПараметрыЗадания = Новый Структура;
|
||||
ПараметрыЗадания.Вставить("ЧиститьУдаляемые", ЧиститьУдаляемые);
|
||||
ПараметрыЗадания.Вставить("ОбрабатыватьОбластиДанных", ОбрабатыватьОбластиДанных);
|
||||
|
||||
Результат = ДлительныеОперации.ВыполнитьВФоне(
|
||||
"ОбновлениеИнформационнойБазыСлужебный.ОчиститьУстаревшиеДанныеВФоне",
|
||||
ПараметрыЗадания, ПараметрыВыполнения);
|
||||
Иначе
|
||||
НаборПараметровПроцедуры = Новый Структура;
|
||||
НаборПараметровПроцедуры.Вставить("Контекст", Новый Структура("ЧиститьУдаляемые", ЧиститьУдаляемые));
|
||||
НаборПараметровПроцедуры.Вставить("ИмяМетодаПолученияПорций",
|
||||
"ОбновлениеИнформационнойБазыСлужебный.УстаревшиеДанныеПриЗапросеПорцийВФоне");
|
||||
|
||||
Результат = ДлительныеОперации.ВыполнитьПроцедуруВНесколькоПотоков(
|
||||
"ОбновлениеИнформационнойБазыСлужебный.УстаревшиеДанныеПриОчисткеПорцииВФоне",
|
||||
ПараметрыВыполнения, НаборПараметровПроцедуры);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОчиститьПриПолученииПрогресса(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ДополнительныеПараметры <> ДлительнаяОперацияОчистки Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Прогресс <> Неопределено Тогда
|
||||
УстановитьПрогресс(Результат.Прогресс.Процент);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОчиститьЗавершение(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ДополнительныеПараметры <> ДлительнаяОперацияОчистки Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьОшибка = Ложь;
|
||||
ЗавершитьОчисткуНаСервере(Результат, ЕстьОшибка);
|
||||
|
||||
Если ЕстьОшибка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОчиститьИЗакрыть Тогда
|
||||
Закрыть(Истина);
|
||||
Иначе
|
||||
Обновить("");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗавершитьОчисткуНаСервере(Знач Результат, ЕстьОшибка)
|
||||
|
||||
ДлительнаяОперацияОчистки = Неопределено;
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаУстаревшиеДанные;
|
||||
|
||||
Если ЗначениеЗаполнено(АдресРезультатаОчистки) Тогда
|
||||
Результаты = ПолучитьИзВременногоХранилища(АдресРезультатаОчистки);
|
||||
УдалитьИзВременногоХранилища(АдресРезультатаОчистки);
|
||||
АдресРезультатаОчистки = "";
|
||||
Иначе
|
||||
Результаты = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Статус = "Ошибка" Тогда
|
||||
ТекстОшибки = Результат.ПодробноеПредставлениеОшибки;
|
||||
Иначе
|
||||
ТекстОшибки = ОбновлениеИнформационнойБазыСлужебный.ТекстОшибкиОчисткиУстаревшихДанных(Результаты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаОшибка;
|
||||
ЕстьОшибка = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ПланОчисткиНаСервере(ЧиститьУдаляемые, ОбрабатыватьОбластиДанных)
|
||||
|
||||
Возврат ОбновлениеИнформационнойБазыСлужебный.ПланОчисткиУстаревшихДанных(
|
||||
ЧиститьУдаляемые,, Не ОбрабатыватьОбластиДанных);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -100,4 +100,13 @@
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="886df9ab-09b4-4c7a-bd44-6afeab68d831">
|
||||
<name>ОчисткаУстаревшихДанных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Очистка устаревших данных</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
</mdclass:DataProcessor>
|
||||
@@ -1851,11 +1851,14 @@
|
||||
СтруктураВложений = Новый Структура;
|
||||
ТекстHTML = "";
|
||||
ТекстПисьмаФорматированныйДокумент.ПолучитьHTML(ТекстHTML, СтруктураВложений);
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(Объект.ТекстHTML) Тогда
|
||||
Объект.ТекстHTML = Взаимодействия.ОбработатьТекстHTMLДляФорматированногоДокумента(
|
||||
Объект.Ссылка, Объект.ТекстHTML, СтруктураВложений);
|
||||
ТекстПисьмаФорматированныйДокумент.УстановитьHTML(Объект.ТекстHTML, СтруктураВложений);
|
||||
ПозицияКартинки = СтрНайти(Объект.ТекстHTML, "<img");
|
||||
Если ПозицияКартинки > 0 И СтрНайти(Объект.ТекстHTML, "cid:", НаправлениеПоиска.СНачала, ПозицияКартинки) > 0 Тогда
|
||||
Объект.ТекстHTML = Взаимодействия.ОбработатьТекстHTMLДляФорматированногоДокумента(
|
||||
Объект.Ссылка, Объект.ТекстHTML, СтруктураВложений);
|
||||
ТекстПисьмаФорматированныйДокумент.УстановитьHTML(Объект.ТекстHTML, СтруктураВложений);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -22,49 +22,7 @@
|
||||
СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ЗависимостиПравДоступа = СоздатьНаборЗаписей();
|
||||
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
Таблица.Колонки.Добавить("ПодчиненнаяТаблица", Новый ОписаниеТипов("Строка"));
|
||||
Таблица.Колонки.Добавить("ВедущаяТаблица", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриЗаполненииЗависимостейПравДоступа(Таблица);
|
||||
УправлениеДоступомПереопределяемый.ПриЗаполненииЗависимостейПравДоступа(Таблица);
|
||||
|
||||
ЗависимостиПравДоступа = СоздатьНаборЗаписей().Выгрузить();
|
||||
Для каждого Строка Из Таблица Цикл
|
||||
НоваяСтрока = ЗависимостиПравДоступа.Добавить();
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Строка.ПодчиненнаяТаблица);
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ошибка в процедуре %1
|
||||
|общего модуля %2.
|
||||
|
|
||||
|Не найдена подчиненная таблица ""%3"".'"),
|
||||
"ПриЗаполненииЗависимостейПравДоступа",
|
||||
"УправлениеДоступомПереопределяемый",
|
||||
Строка.ПодчиненнаяТаблица);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
НоваяСтрока.ПодчиненнаяТаблица = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(
|
||||
Строка.ПодчиненнаяТаблица);
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Строка.ВедущаяТаблица);
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ошибка в процедуре %1
|
||||
|общего модуля %2.
|
||||
|
|
||||
|Не найдена ведущая таблица ""%3"".'"),
|
||||
"ПриЗаполненииЗависимостейПравДоступа",
|
||||
"УправлениеДоступомПереопределяемый",
|
||||
Строка.ВедущаяТаблица);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
НоваяСтрока.ТипВедущейТаблицы = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
Строка.ВедущаяТаблица).ПустаяСсылка();
|
||||
КонецЦикла;
|
||||
ЗависимостиПравДоступа = ЗависимостиПравДоступа();
|
||||
|
||||
ТекстЗапросовВременныхТаблиц =
|
||||
"ВЫБРАТЬ
|
||||
@@ -117,4 +75,63 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * ПодчиненнаяТаблица - СправочникСсылка.ИдентификаторыОбъектовМетаданных
|
||||
// * ТипВедущейТаблицы - ЛюбаяСсылка
|
||||
//
|
||||
Функция ЗависимостиПравДоступа() Экспорт
|
||||
|
||||
ЗависимостиПравДоступа = СоздатьНаборЗаписей();
|
||||
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
Таблица.Колонки.Добавить("ПодчиненнаяТаблица", Новый ОписаниеТипов("Строка"));
|
||||
Таблица.Колонки.Добавить("ВедущаяТаблица", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриЗаполненииЗависимостейПравДоступа(Таблица);
|
||||
УправлениеДоступомПереопределяемый.ПриЗаполненииЗависимостейПравДоступа(Таблица);
|
||||
|
||||
ЗависимостиПравДоступа = СоздатьНаборЗаписей().Выгрузить();
|
||||
Для каждого Строка Из Таблица Цикл
|
||||
НоваяСтрока = ЗависимостиПравДоступа.Добавить();
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Строка.ПодчиненнаяТаблица);
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ошибка в процедуре %1
|
||||
|общего модуля %2.
|
||||
|
|
||||
|Не найдена подчиненная таблица ""%3"".'"),
|
||||
"ПриЗаполненииЗависимостейПравДоступа",
|
||||
"УправлениеДоступомПереопределяемый",
|
||||
Строка.ПодчиненнаяТаблица);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
НоваяСтрока.ПодчиненнаяТаблица = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(
|
||||
Строка.ПодчиненнаяТаблица);
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Строка.ВедущаяТаблица);
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ошибка в процедуре %1
|
||||
|общего модуля %2.
|
||||
|
|
||||
|Не найдена ведущая таблица ""%3"".'"),
|
||||
"ПриЗаполненииЗависимостейПравДоступа",
|
||||
"УправлениеДоступомПереопределяемый",
|
||||
Строка.ВедущаяТаблица);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
НоваяСтрока.ТипВедущейТаблицы = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
Строка.ВедущаяТаблица).ПустаяСсылка();
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЗависимостиПравДоступа;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -5,34 +5,49 @@
|
||||
<p>Возможности облачных сервисов можно использовать и при работе с файлами, хранящимися в программе. Предусмотрено использование облачных сервисов для хранения и обработки файлов, присоединенных к различным объектам программы, а также хранящихся в списке <strong>Файлы</strong>.</p>
|
||||
<p>Программа позволяет видеть свои файлы в своей папке проводника или на своем устройстве, там же и редактировать, а также синхронизировать их.</p>
|
||||
<h3>Список облачных сервисов </h3>
|
||||
<ul><li><strong>Яндекс.Диск</strong>;
|
||||
</li><li><strong>Box.com</strong>;
|
||||
</li><li><strong>Dropbox</strong> (через платный сервис <strong>dropdav</strong>);</li><li>или любой другой сервис с которым возможна работа по протоколу WEBDAV.</li></ul><h3>Принципы синхронизации файлов</h3>
|
||||
<div><br></div>
|
||||
<div>Список облачных сервисов не ограничен программой, однако используемый сервис должен соответствовать требованиям протокола <b>WEBDAV</b>. </div>
|
||||
<div>В программе доступны готовые настройки синхронизации с:</div>
|
||||
<ul><li><strong>Яндекс.Диск</strong>;</li>
|
||||
<li><strong>Dropbox</strong> (через платный сервис <strong>dropdav</strong>);</li>
|
||||
<li>или любым другим сервисом с которым возможна работа по протоколу <b>WEBDAV</b>.</li></ul><h3>Принципы синхронизации файлов</h3>
|
||||
<ul><li>Синхронизировать можно только одну папку в одном плане обмена.
|
||||
</li><li>Если настроена синхронизация файлов с облачным сервисом, то редактирование и создание файлов в самой программе будет недоступно во избежание конфликтов. Можно возобновить редактирование файлов в программе, если отключить синхронизацию с облаком.
|
||||
</li><li>В облачном сервисе файлы хранятся в папке по шаблону <strong><Общий путь учетной записи>\Представление объекта программы\Представление элемента данных</strong>, например: <strong>\YandexDisk\БСП 2.3.2\Демо Заказ Покупателя (Документ) \Демо Заказ Покупателя 00-0000001 от 17.12.2010 17 46 36</strong>.
|
||||
</li><li>При создании новых файлов или изменении существующих, файлы автоматически захватываются <strong>Автором</strong> файлов, указанным в учетной записи.
|
||||
</li><li>После выполнения синхронизации освобождаются файлы, которые не были обработаны во время синхронизации.
|
||||
</li><li>После выполнения синхронизации проверяются все неиспользуемые учетные записи. Если они захватили файлы, то файлы освобождаются. Например, если необходимо полностью отключить синхронизацию, то следует отключить все настройки с флажком <strong>Синхронизировать</strong> и при следующем выполнении регламентного задания все файлы освобождаются.
|
||||
</li><li>Не поддерживается режим RLS (возможность ограничивать права доступа на уровне записей). </li></ul><h3>Настройка синхронизации файлов</h3>
|
||||
</li>
|
||||
<li>Если настроена синхронизация файлов с облачным сервисом, то редактирование и создание файлов в самой программе будет недоступно во избежание конфликтов. Можно возобновить редактирование файлов в программе, если отключить синхронизацию с облаком.
|
||||
</li>
|
||||
<li>В облачном сервисе файлы хранятся в папке по шаблону <strong><Общий путь учетной записи>\Представление объекта программы\Представление элемента данных</strong>, например: <strong>\YandexDisk\БСП 2.3.2\Демо Заказ Покупателя (Документ) \Демо Заказ Покупателя 00-0000001 от 17.12.2010 17 46 36</strong>.
|
||||
</li>
|
||||
<li>При создании новых файлов или изменении существующих, файлы автоматически захватываются <strong>Автором</strong> файлов, указанным в учетной записи.
|
||||
</li>
|
||||
<li>После выполнения синхронизации освобождаются файлы, которые не были обработаны во время синхронизации.
|
||||
</li>
|
||||
<li>После выполнения синхронизации проверяются все неиспользуемые учетные записи. Если они захватили файлы, то файлы освобождаются. Например, если необходимо полностью отключить синхронизацию, то следует отключить все настройки с флажком <strong>Синхронизировать</strong> и при следующем выполнении регламентного задания все файлы освобождаются.
|
||||
</li>
|
||||
<li>Не поддерживается режим RLS (возможность ограничивать права доступа на уровне записей). </li></ul><h3>Настройка синхронизации файлов</h3>
|
||||
<ul><li>
|
||||
<div>В списке имеются колонки:</div>
|
||||
<ul><li>
|
||||
<div><strong>Владелец файла</strong> - перечислены объекты программы-владельцы файлов. С помощью флажков можно указать, файлы каких владельцев необходимо синхронизировать;</div>
|
||||
</li><li>
|
||||
</li>
|
||||
<li>
|
||||
<div><strong>Учетная запись</strong> - указывается учетная запись облачного сервиса. Для разных владельцев файлов могут быть указаны разные учетные записи;</div>
|
||||
</li><li>
|
||||
<div><strong>Правило</strong> - ссылка показывает, какие файлы синхронизируются. По умолчанию принимает значение <strong>Все файлы</strong>. Нажав на ссылку, перейдите к <a href="InformationRegister.НастройкиСинхронизацииФайлов.Form.ФормаЗаписиНастройки/Help">настройке синхронизации файлов конкретного владельца</a>.</div></li></ul></li><li>
|
||||
</li>
|
||||
<li>
|
||||
<div><strong>Правило</strong> - ссылка показывает, какие файлы синхронизируются. По умолчанию принимает значение <strong>Все файлы</strong>. Нажав на ссылку, перейдите к <a href="InformationRegister.НастройкиСинхронизацииФайлов.Form.ФормаЗаписиНастройки/Help">настройке синхронизации файлов конкретного владельца</a>.</div></li></ul></li>
|
||||
<li>
|
||||
<div>С помощью кнопки <strong>Настроить синхронизацию файлов</strong> или соответствующей команды контекстного меню по правой кнопке мыши можно добавить новую синхронизацию файлов для списков программы (для таких объектов можно настроить несколько синхронизаций).</div></li></ul><h3>Синхронизация файлов</h3>
|
||||
<ul><li>
|
||||
<div>Файлы можно синхронизировать с облачным сервисом вручную. Для этого в списке нажмите кнопку <strong>Синхронизировать</strong>.</div></li></ul><h3>Настройка автоматической синхронизации файлов</h3>
|
||||
<ul><li>
|
||||
<div>Включите флажок <strong>Автоматически синхронизировать файлы</strong>.</div>
|
||||
</li><li>
|
||||
</li>
|
||||
<li>
|
||||
<div>Перейдите по ссылке <strong>Настроить расписание</strong>, которая становится доступной. Настройте <a href="v8help://mngbase/jobschedule.lf">расписание</a>.</div>
|
||||
</li><li>
|
||||
</li>
|
||||
<li>
|
||||
<div>После подтверждения расписания оно отражается под флажком.</div>
|
||||
</li><li>
|
||||
</li>
|
||||
<li>
|
||||
<div>Синхронизация регламентным заданием по умолчанию происходит по умолчанию каждые 600 секунд.</div></li></ul><h3>См. также:</h3>
|
||||
<ul><li>
|
||||
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>
|
||||
@@ -354,6 +354,7 @@
|
||||
|
||||
ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
|
||||
ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновая загрузка параметров работы программы'");
|
||||
ПараметрыОперации.ЗапуститьВФоне = Истина;
|
||||
ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение;
|
||||
|
||||
Если ОбщегоНазначения.РежимОтладки() Тогда
|
||||
@@ -376,8 +377,9 @@
|
||||
|
||||
ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
|
||||
ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновое обновление параметров работы программы'");
|
||||
ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение;
|
||||
ПараметрыОперации.БезРасширений = Истина;
|
||||
ПараметрыОперации.ЗапуститьВФоне = Истина;
|
||||
ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение;
|
||||
|
||||
Если ОбщегоНазначения.РежимОтладки()
|
||||
И Не ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения) Тогда
|
||||
@@ -419,6 +421,7 @@
|
||||
|
||||
ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
|
||||
ПараметрыОперации.НаименованиеФоновогоЗадания = НСтр("ru = 'Фоновое обновление параметров работы версий расширений'");
|
||||
ПараметрыОперации.ЗапуститьВФоне = Истина;
|
||||
ПараметрыОперации.ОжидатьЗавершение = ОжидатьЗавершение;
|
||||
|
||||
Если ОбщегоНазначения.РежимОтладки()
|
||||
|
||||
@@ -2126,6 +2126,93 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ИзвлекатьТекстыФайловНаСервере</name>
|
||||
<right>
|
||||
@@ -2706,93 +2793,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДополнительныеАдресныеСведения</name>
|
||||
<right>
|
||||
|
||||
@@ -90,6 +90,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ПроверкаФайлаОбновления</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ПериодыНерабочихДнейКалендаря</name>
|
||||
<right>
|
||||
@@ -1112,6 +1119,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ИзвлекатьТекстыФайловНаСервере</name>
|
||||
<right>
|
||||
@@ -1349,33 +1383,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования</name>
|
||||
<right>
|
||||
|
||||
@@ -902,6 +902,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ИзвлекатьТекстыФайловНаСервере</name>
|
||||
<right>
|
||||
@@ -1099,33 +1126,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДополнительныеАдресныеСведения</name>
|
||||
<right>
|
||||
|
||||
@@ -237,6 +237,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.Exchange_3_0_1_1.Operation.Upload</name>
|
||||
<right>
|
||||
@@ -286,33 +313,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.Exchange_2_0_1_6.Operation.PutFileIntoStorage</name>
|
||||
<right>
|
||||
|
||||
@@ -686,6 +686,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.СообщениеSMS</name>
|
||||
<right>
|
||||
@@ -868,33 +895,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DocumentJournal.Взаимодействия</name>
|
||||
<right>
|
||||
|
||||
@@ -3,6 +3,33 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ВидыКонтактнойИнформации</name>
|
||||
<right>
|
||||
@@ -81,31 +108,4 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
@@ -3,6 +3,33 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам</name>
|
||||
<right>
|
||||
@@ -56,33 +83,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ДополнительныеОтчетыИОбработки</name>
|
||||
<right>
|
||||
|
||||
@@ -72,13 +72,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -106,6 +99,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДанныеБизнесПроцессов</name>
|
||||
<right>
|
||||
|
||||
@@ -49,6 +49,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ПроизводственныеКалендари</name>
|
||||
<right>
|
||||
@@ -88,33 +115,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ИспользоватьНесколькоПроизводственныхКалендарей</name>
|
||||
<right>
|
||||
|
||||
@@ -29,6 +29,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.Анкета</name>
|
||||
<right>
|
||||
@@ -92,33 +119,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.НачатьИнтервью</name>
|
||||
<right>
|
||||
|
||||
@@ -49,13 +49,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ГруппыПользователей.Command.ГруппыПользователя</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -83,6 +76,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ГруппыПользователей.Command.ГруппыПользователя</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.СоставыГруппПользователей</name>
|
||||
<right>
|
||||
|
||||
@@ -98,13 +98,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ИсполнителиЗадач.Command.РолиИИсполнителиЗадач</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -132,6 +125,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ИсполнителиЗадач.Command.РолиИИсполнителиЗадач</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач</name>
|
||||
<right>
|
||||
|
||||
@@ -3,6 +3,33 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.УчетныеЗаписиЭлектроннойПочты</name>
|
||||
<right>
|
||||
@@ -77,33 +104,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ОтправкаСообщения</name>
|
||||
<right>
|
||||
|
||||
@@ -106,13 +106,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -140,6 +133,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ЗадачиПоПредмету</name>
|
||||
<right>
|
||||
|
||||
@@ -10,13 +10,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ПраваДоступа</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -44,6 +37,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ПраваДоступа</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ГруппыДоступа</name>
|
||||
<right>
|
||||
|
||||
@@ -171,6 +171,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.КоличествоЗамеровВПакетеЭкспорта</name>
|
||||
<right>
|
||||
@@ -211,33 +238,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ОценкаПроизводительностиПериодЗаписи</name>
|
||||
<right>
|
||||
|
||||
@@ -3,13 +3,6 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>CommonForm.ОтправкаSMS</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -37,4 +30,11 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ОтправкаSMS</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
@@ -3006,6 +3006,45 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ИзвлекатьТекстыФайловНаСервере</name>
|
||||
<right>
|
||||
@@ -3793,45 +3832,6 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.ОтзывСогласияНаОбработкуПерсональныхДанных</name>
|
||||
<right>
|
||||
|
||||
@@ -1435,6 +1435,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>SessionParameter.СпискиСОграничениемПоПолям</name>
|
||||
<right>
|
||||
@@ -1794,33 +1821,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.ОтзывСогласияНаОбработкуПерсональныхДанных</name>
|
||||
<right>
|
||||
|
||||
@@ -3,13 +3,6 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>WebService.InterfaceVersion.Operation.GetVersions</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -37,4 +30,11 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.InterfaceVersion.Operation.GetVersions</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
@@ -66,27 +66,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange.Operation.PrepareExchangeExecution</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange_2_0_1_6.Operation.GetExchangePlans</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange_2_0_1_6.Operation.StartExchangeExecutionInFirstDataBase</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -114,6 +93,27 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange.Operation.PrepareExchangeExecution</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange_2_0_1_6.Operation.GetExchangePlans</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange_2_0_1_6.Operation.StartExchangeExecutionInFirstDataBase</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>WebService.RemoteAdministrationOfExchange_2_1_6_1.Operation.StartExchangeExecutionInSecondDataBase</name>
|
||||
<right>
|
||||
|
||||
@@ -33,17 +33,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>SessionParameter.ПодключениеDSS</name>
|
||||
<right>
|
||||
<name>Get</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Set</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -71,6 +60,17 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>SessionParameter.ПодключениеDSS</name>
|
||||
<right>
|
||||
<name>Get</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Set</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ИспользоватьСервисDSS</name>
|
||||
<right>
|
||||
|
||||
@@ -3,6 +3,33 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам</name>
|
||||
<right>
|
||||
@@ -32,33 +59,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ДополнительныеОтчетыИОбработки</name>
|
||||
<right>
|
||||
|
||||
@@ -82,20 +82,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ЗадачиПоБизнесПроцессу</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -123,6 +109,20 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ЗадачиПоБизнесПроцессу</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</name>
|
||||
<right>
|
||||
|
||||
@@ -75,13 +75,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -109,6 +102,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.ВсеЗадачи</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ЗадачиПоПредмету</name>
|
||||
<right>
|
||||
|
||||
@@ -74,21 +74,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.Анкета</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InputByString</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -116,6 +101,21 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.Анкета</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InputByString</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.НачатьИнтервью</name>
|
||||
<right>
|
||||
|
||||
@@ -3,6 +3,33 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.УчетныеЗаписиЭлектроннойПочты</name>
|
||||
<right>
|
||||
@@ -31,33 +58,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ОтправкаСообщения</name>
|
||||
<right>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" daysRepeatPeriod="1" beginTime="01:00:00" endTime="06:00:00" completionTime="00:00:00" repeatPeriodInDay="900" repeatPause="300" weeksPeriod="1">
|
||||
<weekDays>Mon</weekDays>
|
||||
<weekDays>Tue</weekDays>
|
||||
<weekDays>Wed</weekDays>
|
||||
<weekDays>Thu</weekDays>
|
||||
<weekDays>Fri</weekDays>
|
||||
<weekDays>Sat</weekDays>
|
||||
<weekDays>Sun</weekDays>
|
||||
<months>Jan</months>
|
||||
<months>Feb</months>
|
||||
<months>Mar</months>
|
||||
<months>Apr</months>
|
||||
<months>May</months>
|
||||
<months>Jun</months>
|
||||
<months>Jul</months>
|
||||
<months>Aug</months>
|
||||
<months>Sep</months>
|
||||
<months>Oct</months>
|
||||
<months>Nov</months>
|
||||
<months>Dec</months>
|
||||
</schedule:Schedule>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="546af6c0-0762-4d2d-9d3b-c6a8f6c57674">
|
||||
<name>ОчисткаУстаревшихДанных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Очистка устаревших данных</value>
|
||||
</synonym>
|
||||
<methodName>CommonModule.ОбновлениеИнформационнойБазыСлужебный.ОчисткаУстаревшихДанных</methodName>
|
||||
<restartCountOnFailure>3</restartCountOnFailure>
|
||||
<restartIntervalOnFailure>10</restartIntervalOnFailure>
|
||||
</mdclass:ScheduledJob>
|
||||
+1
@@ -43,5 +43,6 @@
|
||||
<content>Enum.РежимыВыполненияОтложенныхОбработчиков</content>
|
||||
<content>DataProcessor.ОписаниеОбработчиковОбновления</content>
|
||||
<content>InformationRegister.ПрогрессОбновления</content>
|
||||
<content>ScheduledJob.ОчисткаУстаревшихДанных</content>
|
||||
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
+1
@@ -18,5 +18,6 @@
|
||||
<content>CommonModule.ОбновлениеКонфигурацииВызовСервера</content>
|
||||
<content>XDTOPackage.Patch</content>
|
||||
<content>CommonForm.УстановленныеИсправления</content>
|
||||
<content>CommonForm.ПроверкаФайлаОбновления</content>
|
||||
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
Reference in new issue
Block a user