3_1_10_492

This commit is contained in:
Компания 1С committed 2025-04-03 22:48:00 +03:00
1 parent 8124765e0a
commit d07aadde31
67 files changed
+1839 -1498

No files matched your search

@@ -80,6 +80,7 @@
БизнесПроцессОбъект = СведенияОЗадаче.БизнесПроцесс.ПолучитьОбъект(); БизнесПроцессОбъект = СведенияОЗадаче.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка); ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка);
БизнесПроцессОбъект.РезультатВыполнения = РезультатВыполненияПриПеренаправлении(СведенияОЗадаче) БизнесПроцессОбъект.РезультатВыполнения = РезультатВыполненияПриПеренаправлении(СведенияОЗадаче)
+ ?(ЗначениеЗаполнено(БизнесПроцессОбъект.РезультатВыполнения), Символы.ПС, "")
+ БизнесПроцессОбъект.РезультатВыполнения; + БизнесПроцессОбъект.РезультатВыполнения;
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
БизнесПроцессОбъект.Записать(); БизнесПроцессОбъект.Записать();
@@ -242,14 +243,21 @@
Функция РезультатВыполненияПриПеренаправлении(Знач СведенияОЗадаче) Функция РезультатВыполненияПриПеренаправлении(Знач СведенияОЗадаче)
СтрокаФормат = "%1, %2 " + НСтр("ru = 'перенаправил(а) задачу'") + ":
|%3
|";
Комментарий = СокрЛП(СведенияОЗадаче.РезультатВыполнения); Комментарий = СокрЛП(СведенияОЗадаче.РезультатВыполнения);
Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС); Если Не ПустаяСтрока(Комментарий) Тогда
Комментарий = ": " + Комментарий;
КонецЕсли;
Если Пользователи.ТекущийПользователь() = СведенияОЗадаче.Исполнитель Тогда
СтрокаФормат = НСтр("ru = '%1, %2 перенаправил(а) задачу%3'");
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, СведенияОЗадаче.ДатаИсполнения, Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, СведенияОЗадаче.ДатаИсполнения,
СведенияОЗадаче.Исполнитель, Комментарий); СведенияОЗадаче.Исполнитель, Комментарий);
Иначе
СтрокаФормат = НСтр("ru = '%1, %4 (ранее исполнителем был %2) перенаправил(а) задачу%3'");
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, СведенияОЗадаче.ДатаИсполнения,
СведенияОЗадаче.Исполнитель, Комментарий, Пользователи.ТекущийПользователь() );
КонецЕсли;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -430,7 +430,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Форма[ИмяРеквизита + "Значение"] = ВыбранноеЗначение.КонтактнаяИнформация; Форма[ИмяРеквизита + "Значение"] = ВыбранноеЗначение.Значение;
Форма[ИмяРеквизита] = ВыбранноеЗначение.Представление; Форма[ИмяРеквизита] = ВыбранноеЗначение.Представление;
РеквизитыПроверкиАдреса[ИмяРеквизита] = Истина; РеквизитыПроверкиАдреса[ИмяРеквизита] = Истина;
@@ -509,7 +509,7 @@
СтранаРегистрацииКод = СтранаАдресаКонтактнойИнформации.Код; СтранаРегистрацииКод = СтранаАдресаКонтактнойИнформации.Код;
КонецЕсли; КонецЕсли;
Форма[ИмяРеквизита + "Значение"] = ВыбранноеЗначение.КонтактнаяИнформация; Форма[ИмяРеквизита + "Значение"] = ВыбранноеЗначение.Значение;
Форма[ИмяРеквизита] = ВыбранноеЗначение.Представление; Форма[ИмяРеквизита] = ВыбранноеЗначение.Представление;
КонецПроцедуры КонецПроцедуры
@@ -1171,6 +1171,14 @@
НалоговыйОрганДействия.КодНалоговогоОргана),,,, Отказ); НалоговыйОрганДействия.КодНалоговогоОргана),,,, Отказ);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Для Каждого СтрокаПолномочий Из Объект.Полномочия Цикл
Если СтрНачинаетсяС(СтрокаПолномочий.Код, "1_FNS") Тогда
ОбщегоНазначения.СообщитьПользователю(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Доверенность содержит устаревший код налоговых полномочий %1. Коды налоговых полномочий должны начинаться с 2_FNS.'"),
СтрокаПолномочий.Код),,,, Отказ);
КонецЕсли;
КонецЦикла;
КонецЕсли; КонецЕсли;
Если СтрДлина(Объект.ИныеСведения) > 5000 Тогда Если СтрДлина(Объект.ИныеСведения) > 5000 Тогда
@@ -370,7 +370,7 @@
ЕдиноличнымИсполнительнымОрганомВыступаетФизическоеЛицо = "1"; ЕдиноличнымИсполнительнымОрганомВыступаетФизическоеЛицо = "1";
КонецЕсли; КонецЕсли;
СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыОрганизации); СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыОрганизации, ДляНалоговыхОрганов);
СведенияОДоверителеЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "РосОргДоверТип")); СведенияОДоверителеЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "РосОргДоверТип"));
СведенияОДоверителеЮридическогоЛица.ЕИОУК = ЕдиноличнымИсполнительнымОрганомВыступаетУправляющаяКомпания; СведенияОДоверителеЮридическогоЛица.ЕИОУК = ЕдиноличнымИсполнительнымОрганомВыступаетУправляющаяКомпания;
@@ -452,7 +452,7 @@
Функция СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании(РеквизитыУправляющейКомпании, РеквизитыФизическихЛиц, ДляНалоговыхОрганов) // СВЮЛ Функция СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании(РеквизитыУправляющейКомпании, РеквизитыФизическихЛиц, ДляНалоговыхОрганов) // СВЮЛ
СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыУправляющейКомпании); СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыУправляющейКомпании, ДляНалоговыхОрганов);
СведенияОДолжностныхЛицах = СведенияОДолжностныхЛицах(РеквизитыФизическихЛиц, ДляНалоговыхОрганов); СведенияОДолжностныхЛицах = СведенияОДолжностныхЛицах(РеквизитыФизическихЛиц, ДляНалоговыхОрганов);
СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СВЮЛТип")); СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СВЮЛТип"));
@@ -546,11 +546,11 @@
Представитель.СведИП = СведенияОбИндивидуальномПредпринимателе; Представитель.СведИП = СведенияОбИндивидуальномПредпринимателе;
ИначеЕсли РеквизитыПредставителя.ЭтоИностраннаяОрганизация Тогда ИначеЕсли РеквизитыПредставителя.ЭтоИностраннаяОрганизация Тогда
ТипПредставителя = "5"; ТипПредставителя = "5";
СведенияОбИностранномЮридическомЛице = СведенияОбИностранномЮридическомЛице(РеквизитыПредставителя); СведенияОбИностранномЮридическомЛице = СведенияОбИностранномЮридическомЛице(РеквизитыПредставителя, ДляНалоговыхОрганов);
Представитель.СведИО = СведенияОбИностранномЮридическомЛице; Представитель.СведИО = СведенияОбИностранномЮридическомЛице;
ИначеЕсли РеквизитыПредставителя.ЭтоФилиал Тогда ИначеЕсли РеквизитыПредставителя.ЭтоФилиал Тогда
ТипПредставителя = "4"; ТипПредставителя = "4";
СведенияОФилиалеЮридическогоЛица = СведенияОЮридическомЛице(РеквизитыПредставителя); СведенияОФилиалеЮридическогоЛица = СведенияОЮридическомЛице(РеквизитыПредставителя, ДляНалоговыхОрганов);
Для Каждого РеквизитыЛицаПредставителя Из РеквизитыЛицПредставителя Цикл Для Каждого РеквизитыЛицаПредставителя Из РеквизитыЛицПредставителя Цикл
СведенияОФизическомЛице = СведенияОДолжностномЛице(РеквизитыЛицаПредставителя, ДляНалоговыхОрганов); СведенияОФизическомЛице = СведенияОДолжностномЛице(РеквизитыЛицаПредставителя, ДляНалоговыхОрганов);
Прервать; Прервать;
@@ -559,7 +559,7 @@
Представитель.СведФизЛ = СведенияОФизическомЛице; Представитель.СведФизЛ = СведенияОФизическомЛице;
Иначе Иначе
ТипПредставителя = "1"; ТипПредставителя = "1";
СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыПредставителя); СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыПредставителя, ДляНалоговыхОрганов);
Представитель.СведОрг = СведенияОЮридическомЛице; Представитель.СведОрг = СведенияОЮридическомЛице;
КонецЕсли; КонецЕсли;
СведенияОПредставителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвУпПредТип")); СведенияОПредставителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвУпПредТип"));
@@ -657,7 +657,7 @@
КонецФункции КонецФункции
Функция СведенияОЮридическомЛице(РеквизитыОрганизации) // СвОргТип Функция СведенияОЮридическомЛице(РеквизитыОрганизации, ДляНалоговыхОрганов) // СвОргТип
НаименованиеЮридическогоЛица = РеквизитыОрганизации.НаименованиеПолное; НаименованиеЮридическогоЛица = РеквизитыОрганизации.НаименованиеПолное;
ИНН = РеквизитыОрганизации.ИНН; ИНН = РеквизитыОрганизации.ИНН;
@@ -670,7 +670,7 @@
НаименованиеУчредительногоДокумента = РеквизитыОрганизации.НаименованиеУчредительногоДокумента; НаименованиеУчредительногоДокумента = РеквизитыОрганизации.НаименованиеУчредительногоДокумента;
КонтактныйТелефон = РеквизитыОрганизации.Телефон; КонтактныйТелефон = РеквизитыОрганизации.Телефон;
АдресЭлектроннойПочты = РеквизитыОрганизации.ЭлектроннаяПочта; АдресЭлектроннойПочты = РеквизитыОрганизации.ЭлектроннаяПочта;
АдресЮридическогоЛица = СведенияОбАдресе(РеквизитыОрганизации.ЮридическийАдресЗначение); АдресЮридическогоЛица = СведенияОбАдресе(РеквизитыОрганизации.ЮридическийАдресЗначение, ДляНалоговыхОрганов);
СведенияОЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвОргТип")); СведенияОЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвОргТип"));
СведенияОЮридическомЛице.НаимОрг = НаименованиеЮридическогоЛица; СведенияОЮридическомЛице.НаимОрг = НаименованиеЮридическогоЛица;
@@ -701,7 +701,7 @@
КонецФункции КонецФункции
Функция СведенияОбАдресе(Адрес) // АдрТип Функция СведенияОбАдресе(Адрес, ДляНалоговыхОрганов) // АдрТип
Если Не ЗначениеЗаполнено(Адрес) Тогда Если Не ЗначениеЗаполнено(Адрес) Тогда
Возврат Неопределено; Возврат Неопределено;
@@ -710,13 +710,13 @@
ПоляАдреса = РаботаСАдресами.СведенияОбАдресе(Адрес, Новый Структура("КодыАдреса", Истина)); ПоляАдреса = РаботаСАдресами.СведенияОбАдресе(Адрес, Новый Структура("КодыАдреса", Истина));
СубъектРоссийскойФедерации = ПоляАдреса.КодРегиона; СубъектРоссийскойФедерации = ПоляАдреса.КодРегиона;
ИдентификаторАдресаПоФИАС = ПоляАдреса.ИдентификаторАдресногоОбъекта; ИдентификаторАдресаПоФИАС = ПоляАдреса.ИдентификаторДома;
ФИАСАдресВРоссийскойФедерации = ПоляАдреса.МуниципальноеПредставление; ФИАСАдресВРоссийскойФедерации = ПоляАдреса.МуниципальноеПредставление;
АдресВРоссийскойФедерации = ПоляАдреса.Представление; АдресВРоссийскойФедерации = ПоляАдреса.Представление;
СведенияОбАдресе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "АдрТип")); СведенияОбАдресе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "АдрТип"));
СведенияОбАдресе.Регион = СубъектРоссийскойФедерации; СведенияОбАдресе.Регион = СубъектРоссийскойФедерации;
Если ЗначениеЗаполнено(ПоляАдреса.ИдентификаторАдресногоОбъекта) Тогда Если Не ДляНалоговыхОрганов И ЗначениеЗаполнено(ИдентификаторАдресаПоФИАС) Тогда
СведенияОбАдресе.ИдФИАС = Строка(ИдентификаторАдресаПоФИАС); СведенияОбАдресе.ИдФИАС = Строка(ИдентификаторАдресаПоФИАС);
СведенияОбАдресе.ФИАСАдрРФ = ФИАСАдресВРоссийскойФедерации; СведенияОбАдресе.ФИАСАдрРФ = ФИАСАдресВРоссийскойФедерации;
Иначе Иначе
@@ -731,7 +731,7 @@
СведенияОДоверителеИностранногоЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ИнОргДоверТип")); СведенияОДоверителеИностранногоЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ИнОргДоверТип"));
СведенияОбИностранномЮридическомЛице = СведенияОбИностранномЮридическомЛице(РеквизитыОрганизации); СведенияОбИностранномЮридическомЛице = СведенияОбИностранномЮридическомЛице(РеквизитыОрганизации, ДляНалоговыхОрганов);
СведенияОДоверителеИностранногоЮридическогоЛица.СвИнОрг = СведенияОбИностранномЮридическомЛице; СведенияОДоверителеИностранногоЮридическогоЛица.СвИнОрг = СведенияОбИностранномЮридическомЛице;
Для Каждого РеквизитыФизическогоЛица Из РеквизитыФизическихЛиц Цикл Для Каждого РеквизитыФизическогоЛица Из РеквизитыФизическихЛиц Цикл
@@ -743,7 +743,7 @@
КонецФункции КонецФункции
Функция СведенияОбИностранномЮридическомЛице(РеквизитыОрганизации) // СвИнОргТип Функция СведенияОбИностранномЮридическомЛице(РеквизитыОрганизации, ДляНалоговыхОрганов) // СвИнОргТип
НаименованиеОрганизации = РеквизитыОрганизации.НаименованиеПолное; НаименованиеОрганизации = РеквизитыОрганизации.НаименованиеПолное;
ИННЮЛ = РеквизитыОрганизации.ИНН; ИННЮЛ = РеквизитыОрганизации.ИНН;
@@ -756,7 +756,7 @@
КонтактныйТелефон = РеквизитыОрганизации.Телефон; КонтактныйТелефон = РеквизитыОрганизации.Телефон;
АдресЭлектроннойПочты = РеквизитыОрганизации.ЭлектроннаяПочта; АдресЭлектроннойПочты = РеквизитыОрганизации.ЭлектроннаяПочта;
ЮридическийАдресВСтранеРегистрации = РеквизитыОрганизации.ЮридическийАдресВСтранеРегистрации; ЮридическийАдресВСтранеРегистрации = РеквизитыОрганизации.ЮридическийАдресВСтранеРегистрации;
ФактическийАдрес = СведенияОбАдресе(РеквизитыОрганизации.ФактическийАдресЗначение); ФактическийАдрес = СведенияОбАдресе(РеквизитыОрганизации.ФактическийАдресЗначение, ДляНалоговыхОрганов);
СведенияОбИностранномЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвИнОргТип")); СведенияОбИностранномЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвИнОргТип"));
СведенияОбИностранномЮридическомЛице.НаимИО = НаименованиеОрганизации; СведенияОбИностранномЮридическомЛице.НаимИО = НаименованиеОрганизации;
@@ -847,7 +847,7 @@
ФИОДоверителя = ФИОДоверителя(РеквизитыФизическогоЛица); ФИОДоверителя = ФИОДоверителя(РеквизитыФизическогоЛица);
АдресМестаЖительства = Неопределено; АдресМестаЖительства = Неопределено;
Если ЗначениеЗаполнено(РеквизитыФизическогоЛица.АдресРегистрацииЗначение) Тогда Если ЗначениеЗаполнено(РеквизитыФизическогоЛица.АдресРегистрацииЗначение) Тогда
АдресМестаЖительства = СведенияОбАдресе(РеквизитыФизическогоЛица.АдресРегистрацииЗначение); АдресМестаЖительства = СведенияОбАдресе(РеквизитыФизическогоЛица.АдресРегистрацииЗначение, ДляНалоговыхОрганов);
КонецЕсли; КонецЕсли;
СведенияОДокументеУдостоверяющемЛичность = СведенияОДокументеУдостоверяющемЛичность(РеквизитыФизическогоЛица); СведенияОДокументеУдостоверяющемЛичность = СведенияОДокументеУдостоверяющемЛичность(РеквизитыФизическогоЛица);
@@ -2954,7 +2954,7 @@
Функция СведенияОФилиалеЮридическогоЛица(РеквизитыОрганизации, РеквизитыУправляющихКомпаний, РеквизитыФизическихЛиц, ДляНалоговыхОрганов) // ФилПерПолн Функция СведенияОФилиалеЮридическогоЛица(РеквизитыОрганизации, РеквизитыУправляющихКомпаний, РеквизитыФизическихЛиц, ДляНалоговыхОрганов) // ФилПерПолн
СведенияОФилиалеЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ФилПерПолнТип")); СведенияОФилиалеЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ФилПерПолнТип"));
СведенияОФилиалеЮридическогоЛица.СвФил = СведенияОЮридическомЛице(РеквизитыОрганизации); СведенияОФилиалеЮридическогоЛица.СвФил = СведенияОЮридическомЛице(РеквизитыОрганизации, ДляНалоговыхОрганов);
Для Каждого РеквизитыФизическогоЛица Из РеквизитыФизическихЛиц Цикл Для Каждого РеквизитыФизическогоЛица Из РеквизитыФизическихЛиц Цикл
СведенияОФилиалеЮридическогоЛица.СвРукФил = СведенияОДолжностномЛице(РеквизитыФизическогоЛица, ДляНалоговыхОрганов); СведенияОФилиалеЮридическогоЛица.СвРукФил = СведенияОДолжностномЛице(РеквизитыФизическогоЛица, ДляНалоговыхОрганов);
@@ -86,9 +86,11 @@
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ВладелецФормы); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ВладелецФормы);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ПараметрыОжидания.Интервал = Параметры.Интервал; ПараметрыОжидания.Интервал = Параметры.Интервал;
ПараметрыОжидания.ОповещениеПользователя = Параметры.ОповещениеПользователя;
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = ОповещениеОПрогрессе; ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = ОповещениеОПрогрессе;
ПараметрыОжидания.ОтменятьПриЗакрытииФормыВладельца = ОтменятьПриЗакрытии; ПараметрыОжидания.ОтменятьПриЗакрытииФормыВладельца = ОтменятьПриЗакрытии;
Если ТипЗнч(Параметры.ОповещениеПользователя) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(ПараметрыОжидания.ОповещениеПользователя, Параметры.ОповещениеПользователя);
КонецЕсли;
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецЕсли; КонецЕсли;
@@ -720,8 +720,6 @@
<id>38</id> <id>38</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount> <autoMaxRowsCount>true</autoMaxRowsCount>
@@ -410,6 +410,10 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</autoCommandBar> </autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers> <handlers>
<event>OnCreateAtServer</event> <event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name> <name>ПриСозданииНаСервере</name>
@@ -28,7 +28,14 @@
Заголовок = Параметры.Заголовок; Заголовок = Параметры.Заголовок;
КонецЕсли; КонецЕсли;
СравнитьНаСервере(); БлокировкаОбработкиАктивизации = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("НачатьСравнениеНаКлиенте", 0.1, Истина);
КонецПроцедуры КонецПроцедуры
@@ -110,8 +117,8 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
&НаСервере &НаКлиенте
Процедура СравнитьНаСервере() Процедура НачатьСравнениеНаКлиенте()
БлокировкаОбработкиАктивизации = Истина; БлокировкаОбработкиАктивизации = Истина;
@@ -124,28 +131,61 @@
РазличияЯчеекЛевый.Очистить(); РазличияЯчеекЛевый.Очистить();
РазличияЯчеекПравый.Очистить(); РазличияЯчеекПравый.Очистить();
ВыполнитьСравнение(); ДлительнаяОперация = НачатьСравнениеНаСервере();
ОповещениеОЗавершении = Новый ОписаниеОповещения("ВывестиРезультатНаКлиенте", ЭтотОбъект);
БлокировкаОбработкиАктивизации = Ложь; ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ТекстСообщения = НСтр("ru = 'Выполняется сравнение документов.'");
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
Процедура ВыполнитьСравнение() Функция НачатьСравнениеНаСервере()
#Область Сравнение
// Тексты из ячеек табличных документов выгружается в таблицы значений.
ТаблицаЛевогоДокумента = ПрочитатьТабличныйДокумент(ТабличныйДокументЛевый); ТаблицаЛевогоДокумента = ПрочитатьТабличныйДокумент(ТабличныйДокументЛевый);
ТаблицаПравогоДокумента = ПрочитатьТабличныйДокумент(ТабличныйДокументПравый); ТаблицаПравогоДокумента = ПрочитатьТабличныйДокумент(ТабличныйДокументПравый);
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "СтандартныеПодсистемыСервер.СравнитьТаблицы",
ТаблицаЛевогоДокумента, ТаблицаПравогоДокумента);
КонецФункции
&НаКлиенте
Процедура ВывестиРезультатНаКлиенте(Результат, ДополнительныеПараметры) Экспорт
БлокировкаОбработкиАктивизации = Ложь;
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(Результат.ИнформацияОбОшибке);
Возврат;
КонецЕсли;
ВывестиРезультатНаСервере(Результат.АдресРезультата);
СледующееИзменение(Элементы.ТабличныйДокументЛевый, ТабличныйДокументЛевый, РазличияЯчеекЛевый);
КонецПроцедуры
&НаСервере
Процедура ВывестиРезультатНаСервере(АдресРезультата)
#Область Сравнение
РезультатСравнения = ПолучитьИзВременногоХранилища(АдресРезультата);
// Сравниваются табличные документы по строкам и подбираются соответствия строк. // Сравниваются табличные документы по строкам и подбираются соответствия строк.
Соответствия = СформироватьСоответствия(ТаблицаЛевогоДокумента, ТаблицаПравогоДокумента, Истина); Соответствия = РезультатСравнения.СоответствияСтрок;
СоответствиеСтрокЛевый = Соответствия[0]; СоответствиеСтрокЛевый = Соответствия[0];
СоответствиеСтрокПравый = Соответствия[1]; СоответствиеСтрокПравый = Соответствия[1];
// Сравниваются табличные документы по столбцам и подбираются соответствия столбцов. // Сравниваются табличные документы по столбцам и подбираются соответствия столбцов.
Соответствия = СформироватьСоответствия(ТаблицаЛевогоДокумента, ТаблицаПравогоДокумента, Ложь); Соответствия = РезультатСравнения.СоответствияСтолбцов;
СоответствиеСтолбцовЛевый = Соответствия[0]; СоответствиеСтолбцовЛевый = Соответствия[0];
СоответствиеСтолбцовПравый = Соответствия[1]; СоответствиеСтолбцовПравый = Соответствия[1];
@@ -324,437 +364,6 @@
КонецФункции КонецФункции
&НаСервере
Функция СформироватьСоответствия(ТаблицаЛевая, ТаблицаПравая, ПоСтрокам)
ДанныеИзТаблицыЛевая = ПолучитьДанныеДляСравнения(ТаблицаЛевая, ПоСтрокам);
ДанныеИзТаблицыПравая = ПолучитьДанныеДляСравнения(ТаблицаПравая, ПоСтрокам);
Если ПоСтрокам Тогда
РезультатСоответствияЛевая = Новый СписокЗначений;
РезультатСоответствияЛевая.ЗагрузитьЗначения(Новый Массив(ТаблицаЛевая.Количество()+1));
РезультатСоответствияПравая = Новый СписокЗначений;
РезультатСоответствияПравая.ЗагрузитьЗначения(Новый Массив(ТаблицаПравая.Количество()+1));
Иначе
РезультатСоответствияЛевая = Новый СписокЗначений;
РезультатСоответствияЛевая.ЗагрузитьЗначения(Новый Массив(ТаблицаЛевая.Колонки.Количество()+1));
РезультатСоответствияПравая = Новый СписокЗначений;
РезультатСоответствияПравая.ЗагрузитьЗначения(Новый Массив(ТаблицаПравая.Колонки.Количество()+1));
КонецЕсли;
ТекстЗапроса = "";
ТекстЗапроса = ТекстЗапроса + " ВЫБРАТЬ * ПОМЕСТИТЬ ТаблицаЛевая
| ИЗ &ДанныеИзТаблицыЛевая КАК ДанныеИзТаблицыЛевая;" + Символы.ПС;
ТекстЗапроса = ТекстЗапроса + " ВЫБРАТЬ * ПОМЕСТИТЬ ТаблицаПравая
| ИЗ &ДанныеИзТаблицыПравая КАК ДанныеИзТаблицыПравая;" + Символы.ПС;
ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ
| ТаблицаЛевая.Номер КАК НомерЭлементаЛевая,
| ТаблицаПравая.Номер КАК НомерЭлементаПравая,
| ВЫБОР
| КОГДА ТаблицаПравая.Номер - ТаблицаЛевая.Номер < 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 - Итерационная обработка таблицы
Выборка.Следующий();
УровеньКонфликтов = Выборка.КоличествоКонфликтов;
ВременныеТаблицыКУдалению = Новый Массив;
ВременныеТаблицыКУдалению.Добавить("СоответствияДляЗамены");
ВременныеТаблицыКУдалению.Добавить("ВариантыСоответствийДляЗаменыСКонфликтами");
ВременныеТаблицыКУдалению.Добавить("ВариантыСоответствийДляЗамены");
ВременныеТаблицыКУдалению.Добавить("СоответствияСКонфликтами");
ВременныеТаблицыКУдалению.Добавить("ЗаменяемыеСоответствия");
ВременныеТаблицыКУдалению.Добавить("НайденныеКонфликты");
ВременныеТаблицыКУдалению.Добавить("МаксимальныйВесЗамены");
ВременныеТаблицыКУдалению.Добавить("НайденныеКонфликтыВариантов");
УдалитьВременныеТаблицы(Запрос, ВременныеТаблицыКУдалению); //@skip-check query-in-loop - Итерационная обработка таблицы
КонецЦикла;
Запрос.Текст = "ВЫБРАТЬ
| Соответствия.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
| Соответствия.НомерЭлементаПравая КАК НомерЭлементаПравая
|ИЗ
| Соответствия КАК Соответствия";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если РезультатСоответствияЛевая[Выборка.НомерЭлементаЛевая].Значение = Неопределено
И РезультатСоответствияПравая[Выборка.НомерЭлементаПравая].Значение = Неопределено Тогда
РезультатСоответствияЛевая[Выборка.НомерЭлементаЛевая].Значение = Выборка.НомерЭлементаПравая;
РезультатСоответствияПравая[Выборка.НомерЭлементаПравая].Значение = Выборка.НомерЭлементаЛевая;
КонецЕсли;
КонецЦикла;
Результат = Новый Массив;
Результат.Добавить(РезультатСоответствияЛевая);
Результат.Добавить(РезультатСоответствияПравая);
Возврат Результат;
КонецФункции
&НаСервере
Функция ПолучитьДанныеДляСравнения(ТаблицаЗначенийИсточник, ПоСтрокам)
МаксимальныйРазмерСтрок = Новый КвалификаторыСтроки(100);
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Номер", Новый ОписаниеТипов("Число"));
Результат.Колонки.Добавить("Значение", Новый ОписаниеТипов("Строка", , МаксимальныйРазмерСтрок));
Граница1 = ?(ПоСтрокам, ТаблицаЗначенийИсточник.Количество(),
ТаблицаЗначенийИсточник.Колонки.Количество()) - 1;
Граница2 = ?(ПоСтрокам, ТаблицаЗначенийИсточник.Колонки.Количество(),
ТаблицаЗначенийИсточник.Количество()) - 1;
Для Индекс1 = 0 По Граница1 Цикл
Для Индекс2 = 0 По Граница2 Цикл
НоваяСтрока = Результат.Добавить();
НоваяСтрока.Номер = Индекс1+1;
НоваяСтрока.Значение = ?(ПоСтрокам, ТаблицаЗначенийИсточник[Индекс1][Индекс2],
ТаблицаЗначенийИсточник[Индекс2][Индекс1]);
КонецЦикла;
КонецЦикла;
Результат.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Результат.ЗаполнитьЗначения(1, "Количество");
Результат.Свернуть("Номер, Значение", "Количество");
Возврат Результат;
КонецФункции
&НаКлиенте &НаКлиенте
Процедура ОбработатьАктивизациюОбласти(ТабДокИсточник, ТабДокПриемник, СоответствияИсточник, СоответствияПриемник) Процедура ОбработатьАктивизациюОбласти(ТабДокИсточник, ТабДокПриемник, СоответствияИсточник, СоответствияПриемник)
@@ -891,10 +500,4 @@
КонецФункции КонецФункции
&НаСервере
Процедура УдалитьВременныеТаблицы(Запрос, Таблицы)
Запрос.Текст = "УНИЧТОЖИТЬ " + СтрСоединить(Таблицы, "; УНИЧТОЖИТЬ ");
Запрос.Выполнить();
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -2332,11 +2332,14 @@
КонецЕсли; КонецЕсли;
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер");
ДополнительныеПараметры = Новый Структура("НаименованиеВключаетСокращение, ПроверитьАдрес", Истина, Истина); ДополнительныеПараметры = Новый Структура("НаименованиеВключаетСокращение, ПроверитьАдрес", Истина, Истина);
АдресСтруктура = МодульРаботаСАдресами.СведенияОбАдресе(АдресЗначение, ДополнительныеПараметры); АдресСтруктура = МодульРаботаСАдресами.СведенияОбАдресе(АдресЗначение, ДополнительныеПараметры);
Если АдресСтруктура.РезультатПроверкиАдреса <> "Успех" Тогда Если АдресСтруктура.РезультатПроверкиАдреса <> "Успех" И АдресСтруктура.Свойство("ТипАдреса")
И (АдресСтруктура.ТипАдреса = МодульРаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес()
Или АдресСтруктура.ТипАдреса = МодульРаботаСАдресамиКлиентСервер.МуниципальныйАдрес()) Тогда
Возврат АдресСтруктура.ОшибкиПроверкиАдреса; Возврат АдресСтруктура.ОшибкиПроверкиАдреса;
КонецЕсли; КонецЕсли;
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.10.479"; Описание.Версия = "3.1.10.492";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -930,7 +930,6 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
ЗаблокироватьДанныеДляРедактирования(ДокументСсылка);
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ДокументОбъект = ДокументСсылка.ПолучитьОбъект(); ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
Если ДокументОбъект.ПроверитьЗаполнение() Тогда Если ДокументОбъект.ПроверитьЗаполнение() Тогда
@@ -3951,31 +3951,7 @@
ВызватьИсключение; ВызватьИсключение;
КонецПопытки; КонецПопытки;
Иначе Иначе
НаборЗаписей = РегистрыСведений.СведенияОПользователях.СоздатьНаборЗаписей(); ОбновитьСведенияПриСменеПароля(Пользователь, Параметры.Пользователь);
НаборЗаписей.Отбор.Пользователь.Установить(Пользователь);
НаборЗаписей.Прочитать();
Записать = Ложь;
Если НаборЗаписей.Количество() = 0 Тогда
СведенияОПользователе = НаборЗаписей.Добавить();
СведенияОПользователе.Пользователь = Пользователь;
Записать = Истина;
Иначе
СведенияОПользователе = НаборЗаписей[0];
КонецЕсли;
Если Параметры.Пользователь.ДополнительныеСвойства.Свойство("СменаПароляПриВходеВПрограмму") Тогда
СведенияОПользователе.ПотребоватьСменуПароляПриВходе = Ложь;
Записать = Истина;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено() Тогда
НоваяДатаНачала = НачалоДня(ТекущаяДатаСеанса());
Если СведенияОПользователе.УдалитьДатаНачалаИспользованияПароля <> НоваяДатаНачала Тогда
СведенияОПользователе.УдалитьДатаНачалаИспользованияПароля = НоваяДатаНачала;
Записать = Истина;
КонецЕсли;
КонецЕсли;
Если Записать Тогда
НаборЗаписей.Записать();
КонецЕсли;
КонецЕсли; КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -4002,6 +3978,60 @@
КонецФункции КонецФункции
// Для функции ОбработатьНовыйПароль и процедуры ОбновитьСведенияПриСменеХешаПароля.
Процедура ОбновитьСведенияПриСменеПароля(Пользователь, ПользовательОбъект)
НаборЗаписей = РегистрыСведений.СведенияОПользователях.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Пользователь.Установить(Пользователь);
НаборЗаписей.Прочитать();
Записать = Ложь;
Если НаборЗаписей.Количество() = 0 Тогда
СведенияОПользователе = НаборЗаписей.Добавить();
СведенияОПользователе.Пользователь = Пользователь;
Записать = Истина;
Иначе
СведенияОПользователе = НаборЗаписей[0];
КонецЕсли;
Если ПользовательОбъект.ДополнительныеСвойства.Свойство("СменаПароляПриВходеВПрограмму") Тогда
СведенияОПользователе.ПотребоватьСменуПароляПриВходе = Ложь;
Записать = Истина;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено() Тогда
НоваяДатаНачала = НачалоДня(ТекущаяДатаСеанса());
Если СведенияОПользователе.УдалитьДатаНачалаИспользованияПароля <> НоваяДатаНачала Тогда
СведенияОПользователе.УдалитьДатаНачалаИспользованияПароля = НоваяДатаНачала;
Записать = Истина;
КонецЕсли;
КонецЕсли;
Если Записать Тогда
// АПК:1327-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
НаборЗаписей.Записать();
// АПК:1327-вкл.
КонецЕсли;
КонецПроцедуры
// Для процедуры ЗаписатьПользователяИБ.
Процедура ОбновитьСведенияПриСменеХешаПароля(ПользовательОбъект)
Пользователь = СсылкаОбъекта(ПользовательОбъект);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СведенияОПользователях");
ЭлементБлокировки.УстановитьЗначение("Пользователь", Пользователь);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ОбновитьСведенияПриСменеПароля(Пользователь, ПользовательОбъект);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
// Для формы СменаПароля и функции НовыйПарольМожноУстановить. // Для формы СменаПароля и функции НовыйПарольМожноУстановить.
// //
// Возвращаемое значение: // Возвращаемое значение:
@@ -10834,6 +10864,14 @@
Если ЗначениеЗаполнено(ТекстОшибки) Тогда Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ВызватьИсключение ТекстОшибки; ВызватьИсключение ТекстОшибки;
КонецЕсли; КонецЕсли;
ИначеЕсли ОбщегоНазначения.РазделениеВключено()
И ХешПароляЗадан
И (Не ПараметрыОбработки.СтарыйПользовательИБСуществует
Или ПараметрыОбработки.ОписаниеСтарогоПользователяИБ.СохраняемоеЗначениеПароля
<> ОписаниеПользователяИБ.СохраняемоеЗначениеПароля) Тогда
ОбновитьСведенияПриСменеХешаПароля(ПользовательОбъект);
КонецЕсли; КонецЕсли;
// Попытка записи пользователя ИБ. // Попытка записи пользователя ИБ.
@@ -1224,7 +1224,13 @@
Файл = Новый Файл(ПутьКФайлу); Файл = Новый Файл(ПутьКФайлу);
Если Файл.Существует() Тогда Если Файл.Существует() Тогда
Попытка
Файл.УстановитьУниверсальноеВремяИзменения(НовоеВремяИзменения); Файл.УстановитьУниверсальноеВремяИзменения(НовоеВремяИзменения);
Исключение
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
НСтр("ru = 'Работа с файлами.Ошибка установки времени изменения'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
"Ошибка", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -106,7 +106,7 @@
КонецЕсли; КонецЕсли;
Если ТипЗнч(Форма.Склонения) = Тип("ФиксированнаяСтруктура") Тогда Если ТипЗнч(Форма.Склонения) = Тип("ФиксированнаяСтруктура") Тогда
ЗаписатьВРегистрСклонения(Представление, Объект, Форма.Склонения); ЗаписатьВРегистрСклонения(Представление, Объект, Форма.Склонения, Истина);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -384,9 +384,10 @@
КонецФункции КонецФункции
Процедура ЗаписатьВРегистрСклонения(Представление, Объект, Склонения) Процедура ЗаписатьВРегистрСклонения(Представление, Объект, Склонения, ЗаписьИзФормы = Ложь)
Если Не Метаданные.ОпределяемыеТипы.ОбъектСклонения.Тип.СодержитТип(ТипЗнч(Объект)) Тогда Если Не ЗначениеЗаполнено(Объект)
Или Не Метаданные.ОпределяемыеТипы.ОбъектСклонения.Тип.СодержитТип(ТипЗнч(Объект)) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -396,18 +397,50 @@
ХешПредставления = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Представление); ХешПредставления = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Представление);
НаборЗаписейСклонения = РегистрыСведений.СклоненияПредставленийОбъектов.СоздатьНаборЗаписей(); НаборЗаписейСклонения = РегистрыСведений.СклоненияПредставленийОбъектов.СоздатьНаборЗаписей();
НаборЗаписейСклонения.Отбор.Объект.Установить(Объект.Ссылка); НаборЗаписейСклонения.Отбор.Объект.Установить(Объект.Ссылка);
Если Не ЗаписьИзФормы Тогда
НаборЗаписейСклонения.Отбор.ХешПредставления.Установить(ХешПредставления);
КонецЕсли;
НоваяСтрока = НаборЗаписейСклонения.Добавить(); Блокировка = Новый БлокировкаДанных;
НоваяСтрока.Объект = Объект.Ссылка; ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СклоненияПредставленийОбъектов");
НоваяСтрока.ХешПредставления = ХешПредставления; ЭлементБлокировки.УстановитьЗначение("Объект", Объект.Ссылка);
НоваяСтрока.ИменительныйПадеж = Склонения.Именительный;
НоваяСтрока.РодительныйПадеж = Склонения.Родительный;
НоваяСтрока.ДательныйПадеж = Склонения.Дательный;
НоваяСтрока.ВинительныйПадеж = Склонения.Винительный;
НоваяСтрока.ТворительныйПадеж = Склонения.Творительный;
НоваяСтрока.ПредложныйПадеж = Склонения.Предложный;
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
НаборЗаписейСклонения.Прочитать();
Если ЗаписьИзФормы Или НаборЗаписейСклонения.Количество() = 0 Тогда
Отбор = Новый Структура;
Отбор.Вставить("Объект", Объект.Ссылка);
Отбор.Вставить("ХешПредставления", ХешПредставления);
Отбор.Вставить("ИменительныйПадеж", Склонения.Именительный);
Отбор.Вставить("РодительныйПадеж", Склонения.Родительный);
Отбор.Вставить("ДательныйПадеж", Склонения.Дательный);
Отбор.Вставить("ВинительныйПадеж", Склонения.Винительный);
Отбор.Вставить("ТворительныйПадеж", Склонения.Творительный);
Отбор.Вставить("ПредложныйПадеж", Склонения.Предложный);
Таблица = НаборЗаписейСклонения.Выгрузить();
Если Таблица.НайтиСтроки(Отбор).Количество() = 0 Тогда
НаборЗаписейСклонения.Очистить();
ЗаполнитьЗначенияСвойств(НаборЗаписейСклонения.Добавить(), Отбор);
НаборЗаписейСклонения.Записать(); НаборЗаписейСклонения.Записать();
КонецЕсли;
Иначе
СуществующаяСтрока = НаборЗаписейСклонения[0];
Склонения.Именительный = СуществующаяСтрока.ИменительныйПадеж;
Склонения.Родительный = СуществующаяСтрока.РодительныйПадеж;
Склонения.Дательный = СуществующаяСтрока.ДательныйПадеж;
Склонения.Винительный = СуществующаяСтрока.ВинительныйПадеж;
Склонения.Творительный = СуществующаяСтрока.ТворительныйПадеж;
Склонения.Предложный = СуществующаяСтрока.ПредложныйПадеж;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры КонецПроцедуры
@@ -737,58 +770,55 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ХешПредставления", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Представление)); Запрос.УстановитьПараметр("ХешПредставления", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Представление));
Если Объект <> Неопределено
И Метаданные.ОпределяемыеТипы.ОбъектСклонения.Тип.СодержитТип(ТипЗнч(Объект)) Тогда
Запрос.УстановитьПараметр("Объект", Объект); Запрос.УстановитьПараметр("Объект", Объект);
Запрос.УстановитьПараметр("ИспользуетсяОтборПоОбъекту", Объект <> Неопределено);
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ ПЕРВЫЕ 1
| КОЛИЧЕСТВО(ВЫРАЗИТЬ(СклоненияПредставленийОбъектов.ИменительныйПадеж КАК СТРОКА(255))) КАК КоличествоНаборовСклонений,
| СклоненияПредставленийОбъектов.ХешПредставления КАК ХешПредставления
|ПОМЕСТИТЬ ТаблицаРегистраБезОтбораПоОбъекту
|ИЗ
| РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов
|ГДЕ
| СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления
|
|СГРУППИРОВАТЬ ПО
| СклоненияПредставленийОбъектов.ХешПредставления
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СклоненияПредставленийОбъектов.ИменительныйПадеж КАК Именительный, | СклоненияПредставленийОбъектов.ИменительныйПадеж КАК Именительный,
| СклоненияПредставленийОбъектов.РодительныйПадеж КАК Родительный, | СклоненияПредставленийОбъектов.РодительныйПадеж КАК Родительный,
| СклоненияПредставленийОбъектов.ДательныйПадеж КАК Дательный, | СклоненияПредставленийОбъектов.ДательныйПадеж КАК Дательный,
| СклоненияПредставленийОбъектов.ВинительныйПадеж КАК Винительный, | СклоненияПредставленийОбъектов.ВинительныйПадеж КАК Винительный,
| СклоненияПредставленийОбъектов.ТворительныйПадеж КАК Творительный, | СклоненияПредставленийОбъектов.ТворительныйПадеж КАК Творительный,
| СклоненияПредставленийОбъектов.ПредложныйПадеж КАК Предложный, | СклоненияПредставленийОбъектов.ПредложныйПадеж КАК Предложный
| 0 КАК Приоритет
|ИЗ |ИЗ
| РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов
|ГДЕ |ГДЕ
| &ИспользуетсяОтборПоОбъекту
| И СклоненияПредставленийОбъектов.Объект = &Объект
| И СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СклоненияПредставленийОбъектов.ИменительныйПадеж,
| СклоненияПредставленийОбъектов.РодительныйПадеж,
| СклоненияПредставленийОбъектов.ДательныйПадеж,
| СклоненияПредставленийОбъектов.ВинительныйПадеж,
| СклоненияПредставленийОбъектов.ТворительныйПадеж,
| СклоненияПредставленийОбъектов.ПредложныйПадеж,
| 1
|ИЗ
| РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаРегистраБезОтбораПоОбъекту КАК ТаблицаРегистраБезОтбораПоОбъекту
| ПО СклоненияПредставленийОбъектов.ХешПредставления = ТаблицаРегистраБезОтбораПоОбъекту.ХешПредставления
| И (ТаблицаРегистраБезОтбораПоОбъекту.КоличествоНаборовСклонений = 1)
|ГДЕ
| СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления | СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления
| |
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Приоритет"; | ВЫБОР
| КОГДА СклоненияПредставленийОбъектов.Объект = &Объект
| ТОГДА 0
| КОГДА ТИПЗНАЧЕНИЯ(СклоненияПредставленийОбъектов.Объект) = ТИПЗНАЧЕНИЯ(&Объект)
| ТОГДА 1
| ИНАЧЕ 2
| КОНЕЦ";
Иначе
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| СклоненияПредставленийОбъектов.ИменительныйПадеж КАК Именительный,
| СклоненияПредставленийОбъектов.РодительныйПадеж КАК Родительный,
| СклоненияПредставленийОбъектов.ДательныйПадеж КАК Дательный,
| СклоненияПредставленийОбъектов.ВинительныйПадеж КАК Винительный,
| СклоненияПредставленийОбъектов.ТворительныйПадеж КАК Творительный,
| СклоненияПредставленийОбъектов.ПредложныйПадеж КАК Предложный
|ИЗ
| РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов
|ГДЕ
| СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления
|
|УПОРЯДОЧИТЬ ПО
| ВЫБОР
| КОГДА СклоненияПредставленийОбъектов.Объект = НЕОПРЕДЕЛЕНО
| ТОГДА 2
| КОГДА СклоненияПредставленийОбъектов.Объект.Ссылка ЕСТЬ NULL
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ";
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -5210,6 +5210,493 @@
КонецФункции КонецФункции
#Область СравнениеТаблиц
Функция СравнитьТаблицы(Таблица1, Таблица2) Экспорт
Результат = Новый Структура;
// Сравниваются табличные документы по строкам и подбираются соответствия строк.
Результат.Вставить("СоответствияСтрок", СформироватьСоответствия(Таблица1, Таблица2, Истина));
// Сравниваются табличные документы по столбцам и подбираются соответствия столбцов.
Результат.Вставить("СоответствияСтолбцов", СформироватьСоответствия(Таблица1, Таблица2, Ложь));
Возврат Результат;
КонецФункции
Функция СформироватьСоответствия(ТаблицаЛевая, ТаблицаПравая, ПоСтрокам)
ДанныеИзТаблицыЛевая = ПолучитьДанныеДляСравнения(ТаблицаЛевая, ПоСтрокам);
ДанныеИзТаблицыПравая = ПолучитьДанныеДляСравнения(ТаблицаПравая, ПоСтрокам);
Если ПоСтрокам Тогда
РезультатСоответствияЛевая = Новый СписокЗначений;
РезультатСоответствияЛевая.ЗагрузитьЗначения(Новый Массив(ТаблицаЛевая.Количество()+1));
РезультатСоответствияПравая = Новый СписокЗначений;
РезультатСоответствияПравая.ЗагрузитьЗначения(Новый Массив(ТаблицаПравая.Количество()+1));
Иначе
РезультатСоответствияЛевая = Новый СписокЗначений;
РезультатСоответствияЛевая.ЗагрузитьЗначения(Новый Массив(ТаблицаЛевая.Колонки.Количество()+1));
РезультатСоответствияПравая = Новый СписокЗначений;
РезультатСоответствияПравая.ЗагрузитьЗначения(Новый Массив(ТаблицаПравая.Колонки.Количество()+1));
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеИзТаблицыЛевая.Номер КАК Номер,
| ДанныеИзТаблицыЛевая.Значение КАК Значение,
| ДанныеИзТаблицыЛевая.Количество КАК Количество
|ПОМЕСТИТЬ ТаблицаЛевая
|ИЗ
| &ДанныеИзТаблицыЛевая КАК ДанныеИзТаблицыЛевая
|
|ИНДЕКСИРОВАТЬ ПО
| Значение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДанныеИзТаблицыПравая.Номер КАК Номер,
| ДанныеИзТаблицыПравая.Значение КАК Значение,
| ДанныеИзТаблицыПравая.Количество КАК Количество
|ПОМЕСТИТЬ ТаблицаПравая
|ИЗ
| &ДанныеИзТаблицыПравая КАК ДанныеИзТаблицыПравая
|
|ИНДЕКСИРОВАТЬ ПО
| Значение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаЛевая.Номер КАК НомерЭлементаЛевая,
| ТаблицаПравая.Номер КАК НомерЭлементаПравая,
| ВЫБОР
| КОГДА ТаблицаПравая.Номер - ТаблицаЛевая.Номер < 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 - Итерационная обработка таблицы
Выборка.Следующий();
УровеньКонфликтов = Выборка.КоличествоКонфликтов;
ВременныеТаблицыКУдалению = Новый Массив;
ВременныеТаблицыКУдалению.Добавить("СоответствияДляЗамены");
ВременныеТаблицыКУдалению.Добавить("ВариантыСоответствийДляЗаменыСКонфликтами");
ВременныеТаблицыКУдалению.Добавить("ВариантыСоответствийДляЗамены");
ВременныеТаблицыКУдалению.Добавить("СоответствияСКонфликтами");
ВременныеТаблицыКУдалению.Добавить("ЗаменяемыеСоответствия");
ВременныеТаблицыКУдалению.Добавить("НайденныеКонфликты");
ВременныеТаблицыКУдалению.Добавить("МаксимальныйВесЗамены");
ВременныеТаблицыКУдалению.Добавить("НайденныеКонфликтыВариантов");
УдалитьВременныеТаблицы(Запрос, ВременныеТаблицыКУдалению); //@skip-check query-in-loop - Итерационная обработка таблицы
КонецЦикла;
Запрос.Текст = "ВЫБРАТЬ
| Соответствия.НомерЭлементаЛевая КАК НомерЭлементаЛевая,
| Соответствия.НомерЭлементаПравая КАК НомерЭлементаПравая
|ИЗ
| Соответствия КАК Соответствия";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если РезультатСоответствияЛевая[Выборка.НомерЭлементаЛевая].Значение = Неопределено
И РезультатСоответствияПравая[Выборка.НомерЭлементаПравая].Значение = Неопределено Тогда
РезультатСоответствияЛевая[Выборка.НомерЭлементаЛевая].Значение = Выборка.НомерЭлементаПравая;
РезультатСоответствияПравая[Выборка.НомерЭлементаПравая].Значение = Выборка.НомерЭлементаЛевая;
КонецЕсли;
КонецЦикла;
Результат = Новый Массив;
Результат.Добавить(РезультатСоответствияЛевая);
Результат.Добавить(РезультатСоответствияПравая);
Возврат Результат;
КонецФункции
Функция ПолучитьДанныеДляСравнения(ТаблицаЗначенийИсточник, ПоСтрокам)
МаксимальныйРазмерСтрок = Новый КвалификаторыСтроки(100);
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Номер", Новый ОписаниеТипов("Число"));
Результат.Колонки.Добавить("Значение", Новый ОписаниеТипов("Строка", , МаксимальныйРазмерСтрок));
Граница1 = ?(ПоСтрокам, ТаблицаЗначенийИсточник.Количество(),
ТаблицаЗначенийИсточник.Колонки.Количество()) - 1;
Граница2 = ?(ПоСтрокам, ТаблицаЗначенийИсточник.Колонки.Количество(),
ТаблицаЗначенийИсточник.Количество()) - 1;
Для Индекс1 = 0 По Граница1 Цикл
Для Индекс2 = 0 По Граница2 Цикл
НоваяСтрока = Результат.Добавить();
НоваяСтрока.Номер = Индекс1+1;
НоваяСтрока.Значение = ?(ПоСтрокам, ТаблицаЗначенийИсточник[Индекс1][Индекс2],
ТаблицаЗначенийИсточник[Индекс2][Индекс1]);
КонецЦикла;
КонецЦикла;
Результат.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Результат.ЗаполнитьЗначения(1, "Количество");
Результат.Свернуть("Номер, Значение", "Количество");
Возврат Результат;
КонецФункции
Процедура УдалитьВременныеТаблицы(Запрос, Таблицы)
Запрос.Текст = "УНИЧТОЖИТЬ " + СтрСоединить(Таблицы, "; УНИЧТОЖИТЬ ");
Запрос.Выполнить();
КонецПроцедуры
#КонецОбласти
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -1522,15 +1522,14 @@
// Запускает обновление доступа, если оно запланировано и еще не запущено. // Запускает обновление доступа, если оно запланировано и еще не запущено.
Процедура ЗапуститьОбновлениеДоступа() Экспорт Процедура ЗапуститьОбновлениеДоступа() Экспорт
Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь) Тогда Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь)
Или МонопольныйРежим()
Или ЗапускатьОбновлениеДоступаДляУскоренияТолькоТочечныхЗаданий(Истина)
И Не ЕстьЗапланированныеТочечныеЗадания() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если МонопольныйРежим() Тогда ЗапуститьОбновлениеДоступаНаУровнеЗаписей(,, Истина);
Возврат;
КонецЕсли;
ЗапуститьОбновлениеДоступаНаУровнеЗаписей();
КонецПроцедуры КонецПроцедуры
@@ -12425,6 +12424,38 @@
#Область ОбновлениеДоступа #Область ОбновлениеДоступа
// Для процедуры ЗапуститьОбновлениеДоступа.
Функция ЕстьЗапланированныеТочечныеЗадания()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СписокДляПланированияОбновленияКэшаРасчетаПрав",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(СписокДляПланированияОбновленияКэшаРасчетаПрав(), Ложь));
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА КАК ЗначениеИстина
|ИЗ
| РегистрСведений.ОбновлениеКлючейДоступаКДанным КАК ОбновлениеКлючейДоступаКДанным
|ГДЕ
| ОбновлениеКлючейДоступаКДанным.ТочечноеЗадание
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
|ИЗ
| РегистрСведений.ОбновлениеКлючейДоступаПользователей КАК ОбновлениеКлючейДоступаПользователей
|ГДЕ
| ОбновлениеКлючейДоступаПользователей.ТочечноеЗадание
| И ОбновлениеКлючейДоступаПользователей.Список <> &СписокДляПланированияОбновленияКэшаРасчетаПрав";
Возврат Не Запрос.Выполнить().Пустой();
КонецФункции
// Запускает фоновое задание обновления доступа вместо регламентного задания. // Запускает фоновое задание обновления доступа вместо регламентного задания.
// //
// Параметры: // Параметры:
@@ -12434,6 +12465,9 @@
// выполнение будет продолжаться до полного завершения. // выполнение будет продолжаться до полного завершения.
// ЭтоПерезапуск - Булево - если передать Истина, тогда текущий сеанс фонового задания не будет // ЭтоПерезапуск - Булево - если передать Истина, тогда текущий сеанс фонового задания не будет
// считаться незавершенным исполнителем. // считаться незавершенным исполнителем.
// ДляУскорения - Булево - если передать Истина, тогда признак передается в процедуру обновления доступа,
// чтобы прекратить обновление, когда точечных заданий нет и функция
// ЗапускатьОбновлениеДоступаДляУскоренияТолькоТочечныхЗаданий возвращает Истина.
// //
// Возвращаемое значение: // Возвращаемое значение:
// - Неопределено - обновление доступа не требуется или запрещено. // - Неопределено - обновление доступа не требуется или запрещено.
@@ -12453,7 +12487,7 @@
// * ТекстПредупреждения - Неопределено - если запуска не было или запущено новое фоновое задание. // * ТекстПредупреждения - Неопределено - если запуска не было или запущено новое фоновое задание.
// - Строка - описание, что обновление доступа уже запущено. // - Строка - описание, что обновление доступа уже запущено.
// //
Функция ЗапуститьОбновлениеДоступаНаУровнеЗаписей(ЭтоЗапускВручную = Ложь, ЭтоПерезапуск = Ложь) Экспорт Функция ЗапуститьОбновлениеДоступаНаУровнеЗаписей(ЭтоЗапускВручную = Ложь, ЭтоПерезапуск = Ложь, ДляУскорения = Ложь) Экспорт
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
@@ -12507,6 +12541,14 @@
УстановитьЗапретОбновленияДоступа(Ложь); УстановитьЗапретОбновленияДоступа(Ложь);
ПараметрыЗадания = Новый Массив; ПараметрыЗадания = Новый Массив;
ПараметрыЗадания.Добавить(Истина); ПараметрыЗадания.Добавить(Истина);
ИначеЕсли ЭтоПерезапуск Или ДляУскорения Тогда
ДополнительныеПараметры = НовыеДополнительныеПараметрыОбновленияДоступа();
ДополнительныеПараметры.ЭтоПерезапуск = ЭтоПерезапуск;
ДополнительныеПараметры.ДляУскорения = ДляУскорения;
ПараметрыЗадания = Новый Массив;
ПараметрыЗадания.Добавить(Ложь);
ПараметрыЗадания.Добавить(Ложь);
ПараметрыЗадания.Добавить(ДополнительныеПараметры);
Иначе Иначе
ПараметрыЗадания = Неопределено; ПараметрыЗадания = Неопределено;
КонецЕсли; КонецЕсли;
@@ -12742,7 +12784,8 @@
КонецФункции КонецФункции
// Обработчик регламентного задания ОбновлениеДоступаНаУровнеЗаписей. // Обработчик регламентного задания ОбновлениеДоступаНаУровнеЗаписей.
Процедура ОбновлениеДоступаНаУровнеЗаписей(ОбновитьВсе = Ложь, ВызыватьИсключениеВместоРегистрацииОшибки = Ложь) Экспорт Процедура ОбновлениеДоступаНаУровнеЗаписей(ОбновитьВсе = Ложь, ВызыватьИсключениеВместоРегистрацииОшибки = Ложь,
ДополнительныеПараметры = Неопределено) Экспорт
// Регламентное задание должно запускаться сразу, как только было запланировано обновление доступа. // Регламентное задание должно запускаться сразу, как только было запланировано обновление доступа.
// После обработки первой порции по всем таблицам (2 мин на все) можно сделать // После обработки первой порции по всем таблицам (2 мин на все) можно сделать
@@ -12755,13 +12798,41 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей); Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей);
ВыполнитьОбновлениеДоступаНаУровнеЗаписей(ОбновитьВсе, ВызыватьИсключениеВместоРегистрацииОшибки, 0); ВыполнитьОбновлениеДоступаНаУровнеЗаписей(ОбновитьВсе, ВызыватьИсключениеВместоРегистрацииОшибки,
0, , ДополнительныеПараметры);
КонецПроцедуры КонецПроцедуры
// Только для внутреннего использования.
//
// Возвращаемое значение:
// Структура:
// * ДляУскорения - Булево
// * ЭтоПерезапуск - Булево
//
Функция НовыеДополнительныеПараметрыОбновленияДоступа()
Результат = Новый Структура;
Результат.Вставить("ДляУскорения", Ложь);
Результат.Вставить("ЭтоПерезапуск", Ложь);
Возврат Результат;
КонецФункции
// Выполняет обновление доступа, если запланировано. // Выполняет обновление доступа, если запланировано.
Процедура ВыполнитьОбновлениеДоступаНаУровнеЗаписей(ОбновитьВсе, Процедура ВыполнитьОбновлениеДоступаНаУровнеЗаписей(ОбновитьВсе, ВызыватьИсключениеВместоРегистрацииОшибки,
ВызыватьИсключениеВместоРегистрацииОшибки, СекундНеБолее, ПослеОбновлениеИБ = Ложь) СекундНеБолее, ПослеОбновлениеИБ = Ложь, ДополнительныеПараметры = Неопределено)
Если ОбновитьВсе Тогда
СекундНеБолее = 0;
КонецЕсли;
НовыеДополнительныеПараметры = НовыеДополнительныеПараметрыОбновленияДоступа();
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(НовыеДополнительныеПараметры, ДополнительныеПараметры);
КонецЕсли;
ДополнительныеПараметры = НовыеДополнительныеПараметры;
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
@@ -12810,6 +12881,7 @@
Если Исполнитель = Неопределено Тогда Если Исполнитель = Неопределено Тогда
ПоследнееОбновлениеДоступа.ОбновлениеОтменено = Ложь; ПоследнееОбновлениеДоступа.ОбновлениеОтменено = Ложь;
ПоследнееОбновлениеДоступа.ДляУскорения = ДополнительныеПараметры.ДляУскорения;
ПоследнееОбновлениеДоступа.ДатаЗапускаНаСервере = ТекущаяДатаНаСервере(); ПоследнееОбновлениеДоступа.ДатаЗапускаНаСервере = ТекущаяДатаНаСервере();
ПоследнееОбновлениеДоступа.НомерСеанса = ТекущийСеанс.НомерСеанса; ПоследнееОбновлениеДоступа.НомерСеанса = ТекущийСеанс.НомерСеанса;
ПоследнееОбновлениеДоступа.НачалоСеанса = ТекущийСеанс.НачалоСеанса; ПоследнееОбновлениеДоступа.НачалоСеанса = ТекущийСеанс.НачалоСеанса;
@@ -12819,6 +12891,11 @@
УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция); УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если ПоследнееОбновлениеДоступа.ДляУскорения И Не ДополнительныеПараметры.ДляУскорения Тогда
ПоследнееОбновлениеДоступа.ДляУскорения = Ложь;
УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция);
КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
@@ -12876,18 +12953,17 @@
И СекундНеБолее = 0 И СекундНеБолее = 0
И Не ПослеОбновлениеИБ; И Не ПослеОбновлениеИБ;
ТекстОшибкиПланирования = "";
ТекстВсехОшибок = ""; ТекстВсехОшибок = "";
ТекстОшибкиЗавершения = "";
ДатаПолногоЗавершения = ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения; ДатаПолногоЗавершения = ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения;
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("СекундНеБолее", СекундНеБолее);
ПараметрыВыполнения.Вставить("ТекстОшибкиПланирования", "");
ПараметрыВыполнения.Вставить("ТекстОшибкиЗавершения", "");
ПараметрыВыполнения.Вставить("ОписаниеОсновногоСеанса", ОписаниеОсновногоСеанса);
Попытка Попытка
Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(Истина); ВыполнитьОбновлениеДоступа(ОбновитьВсе, ПараметрыВыполнения, ПоследнееОбновлениеДоступа);
ЗапланироватьОбработкуУстаревшихЭлементов(ТекстОшибкиПланирования,
ПоследнееОбновлениеДоступа.ПоследнееПланированиеОбработкиУстаревшихЭлементов);
ВыполнитьОбновлениеДоступа(ОбновитьВсе, ОписаниеОсновногоСеанса,
ПоследнееОбновлениеДоступа.ОбновлениеОтменено, ТекстОшибкиЗавершения, СекундНеБолее,
ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения);
Если Не ПерезапускВозможен Тогда Если Не ПерезапускВозможен Тогда
СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса(ТекстВсехОшибок); СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса(ТекстВсехОшибок);
КонецЕсли; КонецЕсли;
@@ -12926,8 +13002,8 @@
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке))); ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)));
КонецПопытки; КонецПопытки;
ДобавитьТекстОшибкиЗавершения(ТекстВсехОшибок, ТекстОшибкиПланирования); ДобавитьТекстОшибкиЗавершения(ТекстВсехОшибок, ПараметрыВыполнения.ТекстОшибкиПланирования);
ДобавитьТекстОшибкиЗавершения(ТекстВсехОшибок, ТекстОшибкиЗавершения); ДобавитьТекстОшибкиЗавершения(ТекстВсехОшибок, ПараметрыВыполнения.ТекстОшибкиЗавершения);
ПоследнееОбновлениеДоступа.ДатаЗавершенияНаСервере = ТекущаяДатаНаСервере(); ПоследнееОбновлениеДоступа.ДатаЗавершенияНаСервере = ТекущаяДатаНаСервере();
Если ЗначениеЗаполнено(ТекстВсехОшибок) Тогда Если ЗначениеЗаполнено(ТекстВсехОшибок) Тогда
@@ -12958,7 +13034,7 @@
КонецПопытки; КонецПопытки;
Если ПерезапускВозможен И СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса() Тогда Если ПерезапускВозможен И СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса() Тогда
ЗапуститьОбновлениеДоступаНаУровнеЗаписей(, Истина); ЗапуститьОбновлениеДоступаНаУровнеЗаписей(, Истина, ПоследнееОбновлениеДоступа.ДляУскорения);
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(ТекстВсехОшибок) Тогда Если Не ЗначениеЗаполнено(ТекстВсехОшибок) Тогда
@@ -13062,6 +13138,7 @@
Свойства.Вставить("ИдентификаторФоновогоЗадания", Свойства.Вставить("ИдентификаторФоновогоЗадания",
ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор());
Свойства.Вставить("ПоследнееПланированиеОбработкиУстаревшихЭлементов", '00010101'); Свойства.Вставить("ПоследнееПланированиеОбработкиУстаревшихЭлементов", '00010101');
Свойства.Вставить("ДляУскорения", Ложь);
Если ТипЗнч(ТекущееЗначение) <> Тип("ХранилищеЗначения") Тогда Если ТипЗнч(ТекущееЗначение) <> Тип("ХранилищеЗначения") Тогда
Возврат Свойства; Возврат Свойства;
@@ -13165,8 +13242,19 @@
КонецФункции КонецФункции
// Для процедур ОбновлениеДоступаНаУровнеЗаписей, ДобавитьЗаданияОбновленияДоступа. // Для процедур ВыполнитьОбновлениеДоступа, ДобавитьЗаданияОбновленияДоступа и
Процедура ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(ПриЗапуске = Ложь) // ОбновитьСоставИспользуемыхВерсийПараметровШаблонов.
//
// Параметры:
// Контекст - см. НовыйКонтекстОбновленияДоступа
// ПриЗапуске - Булево
//
Процедура ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(Контекст, ПриЗапуске = Ложь)
Показатели = Контекст.Показатели;
Если Показатели <> Неопределено Тогда
НачалоПроверки = ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
@@ -13221,6 +13309,10 @@
Или ПриЗапуске Или ПриЗапуске
И ЗапланированоОбновлениеПараметровОграниченияДоступа(ДатаАктуальностиПараметровОграниченияДоступа) Тогда И ЗапланированоОбновлениеПараметровОграниченияДоступа(ДатаАктуальностиПараметровОграниченияДоступа) Тогда
Если Показатели <> Неопределено Тогда
НачалоОбновления = ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЕсли;
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
// Предварительное кэширование в файловой ИБ вне транзакции для предотвращения конфликтов блокировок. // Предварительное кэширование в файловой ИБ вне транзакции для предотвращения конфликтов блокировок.
ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом"); // СтандартныеПодсистемыПовтИсп.ИменаПодсистем ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом"); // СтандартныеПодсистемыПовтИсп.ИменаПодсистем
@@ -13283,6 +13375,10 @@
ТекущаяВерсияТекстов, Истина); ТекущаяВерсияТекстов, Истина);
КонецПопытки; КонецПопытки;
КонецЕсли; КонецЕсли;
Если Показатели <> Неопределено Тогда
Показатели.ВремяОбновленияПараметровОграничения = Показатели.ВремяОбновленияПараметровОграничения
+ (ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоОбновления);
КонецЕсли;
КонецЕсли; КонецЕсли;
// Удаление устаревших параметров ограничения доступа. // Удаление устаревших параметров ограничения доступа.
@@ -13313,12 +13409,9 @@
// параметров сеанса из параметров ограничения, что недопустимо. // параметров сеанса из параметров ограничения, что недопустимо.
РезультатЗапроса = Запрос.Выполнить(); РезультатЗапроса = Запрос.Выполнить();
// АПК:1328-вкл. // АПК:1328-вкл.
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
Если Не РезультатЗапроса.Пустой() Тогда
НаборЗаписей = РегистрыСведений.ПараметрыОграниченияДоступа.СоздатьНаборЗаписей(); НаборЗаписей = РегистрыСведений.ПараметрыОграниченияДоступа.СоздатьНаборЗаписей();
Выборка = РезультатЗапроса.Выбрать(); Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Версия.Установить(Выборка.Версия); НаборЗаписей.Отбор.Версия.Установить(Выборка.Версия);
@@ -13328,10 +13421,16 @@
НаборЗаписей.Записать(); НаборЗаписей.Записать();
КонецПопытки; КонецПопытки;
КонецЦикла; КонецЦикла;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь); УстановитьОтключениеБезопасногоРежима(Ложь);
Если Показатели <> Неопределено Тогда
Показатели.ВремяПроверкиИОбновленияПараметровОграничения = Показатели.ВремяПроверкиИОбновленияПараметровОграничения
+ (ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоПроверки);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Для процедуры ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа. // Для процедуры ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа.
@@ -13490,16 +13589,12 @@
// Параллельность обеспечивает сама процедура путем запуска до двух фоновых заданий // Параллельность обеспечивает сама процедура путем запуска до двух фоновых заданий
// на каждый список, но не более значения константы КоличествоПотоковОбновленияДоступа. // на каждый список, но не более значения константы КоличествоПотоковОбновленияДоступа.
// //
Процедура ВыполнитьОбновлениеДоступа(Знач ОбновитьВсе, ОписаниеОсновногоСеанса, Процедура ВыполнитьОбновлениеДоступа(ОбновитьВсе, ПараметрыВыполнения, ПоследнееОбновлениеДоступа)
ОбновлениеОтменено, ТекстОшибкиЗавершения, СекундНеБолее, ДатаПолногоЗавершения)
Если СекундНеБолее > 0 Тогда
ОбновитьВсе = Ложь;
КонецЕсли;
Контекст = НовыйКонтекстОбновленияДоступа(); Контекст = НовыйКонтекстОбновленияДоступа();
Контекст.Вставить("ОписаниеОсновногоСеанса", ОписаниеОсновногоСеанса); Контекст.Вставить("Показатели", ПоказателиОбновленияОсновногоСеанса());
Контекст.Вставить("ТекущееФоновоеЗадание", ОписаниеОсновногоСеанса.ФоновоеЗадание); Контекст.Вставить("ОписаниеОсновногоСеанса", ПараметрыВыполнения.ОписаниеОсновногоСеанса);
Контекст.Вставить("ТекущееФоновоеЗадание", ПараметрыВыполнения.ОписаниеОсновногоСеанса.ФоновоеЗадание);
Контекст.Вставить("Задания", ТаблицаЗаданийОбновления()); Контекст.Вставить("Задания", ТаблицаЗаданийОбновления());
Контекст.Вставить("ЗаданияДляЗапуска", Новый Массив); Контекст.Вставить("ЗаданияДляЗапуска", Новый Массив);
Контекст.Вставить("ЗанятыеПотоки", Новый Соответствие); Контекст.Вставить("ЗанятыеПотоки", Новый Соответствие);
@@ -13508,7 +13603,7 @@
Контекст.Вставить("ОбщиеПараметрыОбновления", ОписаниеОбщихПараметровОбновления()); Контекст.Вставить("ОбщиеПараметрыОбновления", ОписаниеОбщихПараметровОбновления());
Контекст.Вставить("ОбновлениеВЭтомСеансе", Ложь); Контекст.Вставить("ОбновлениеВЭтомСеансе", Ложь);
Контекст.Вставить("КоличествоПотоков", 0); Контекст.Вставить("КоличествоПотоков", 0);
Контекст.Вставить("ДатаПолногоЗавершения", ДатаПолногоЗавершения); Контекст.Вставить("ДатаПолногоЗавершения", ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения);
Контекст.Вставить("ТекстОшибкиЗавершения", ""); Контекст.Вставить("ТекстОшибкиЗавершения", "");
Контекст.Вставить("ЕстьОтложенныеЗадания", Ложь); Контекст.Вставить("ЕстьОтложенныеЗадания", Ложь);
Контекст.Вставить("ЕстьЗапущенноеЗадание", Истина); Контекст.Вставить("ЕстьЗапущенноеЗадание", Истина);
@@ -13523,7 +13618,11 @@
Контекст.Вставить("ИдентификаторыОтключенныхОбъектовМетаданных", Новый Соответствие); Контекст.Вставить("ИдентификаторыОтключенныхОбъектовМетаданных", Новый Соответствие);
Контекст.Вставить("ИдентификаторСправочникаНаборыГруппДоступа", Контекст.Вставить("ИдентификаторСправочникаНаборыГруппДоступа",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Справочник.НаборыГруппДоступа")); ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Справочник.НаборыГруппДоступа"));
ОписаниеОсновногоСеанса.Удалить("ФоновоеЗадание"); ПараметрыВыполнения.ОписаниеОсновногоСеанса.Удалить("ФоновоеЗадание");
ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(Контекст, Истина);
ЗапланироватьОбработкуУстаревшихЭлементов(ПараметрыВыполнения.ТекстОшибкиПланирования,
ПоследнееОбновлениеДоступа.ПоследнееПланированиеОбработкиУстаревшихЭлементов);
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапросаЗаданий(); Запрос.Текст = ТекстЗапросаЗаданий();
@@ -13537,15 +13636,15 @@
Задания = Контекст.Задания; Задания = Контекст.Задания;
ЗанятыеПотоки = Контекст.ЗанятыеПотоки; ЗанятыеПотоки = Контекст.ЗанятыеПотоки;
Если СекундНеБолее > 0 Тогда Если ПараметрыВыполнения.СекундНеБолее > 0 Тогда
ОкончаниеВыполнения = ТекущаяДатаСеанса() + СекундНеБолее; ОкончаниеВыполнения = ТекущаяДатаСеанса() + ПараметрыВыполнения.СекундНеБолее;
Иначе Иначе
ОкончаниеВыполнения = ТекущаяДатаСеанса() ОкончаниеВыполнения = ТекущаяДатаСеанса()
+ МаксимальноеКоличествоМинутВыполненияФоновогоЗаданияОбновленияДоступа() * 60; + МаксимальноеКоличествоМинутВыполненияФоновогоЗаданияОбновленияДоступа() * 60;
КонецЕсли; КонецЕсли;
ЗаполнитьКоличествоПотоков(Контекст); ЗаполнитьКоличествоПотоков(Контекст);
Контекст.Вставить("Показатели", ПоказателиОбновленияУправляющегоПотока(Контекст)); ДобавитьПоказателиОбновленияУправляющегоПотока(Контекст);
ПовторныйЗапуск = Ложь; ПовторныйЗапуск = Ложь;
Пока Истина Цикл Пока Истина Цикл
@@ -13649,6 +13748,18 @@
ОбработатьВыполненныеЗадания(Контекст); ОбработатьВыполненныеЗадания(Контекст);
Контекст.ПервыйПроход = Ложь; Контекст.ПервыйПроход = Ложь;
КонецЦикла; КонецЦикла;
Если Не ОбновитьВсе
И ПоследнееОбновлениеДоступа.ДляУскорения
И ЗапускатьОбновлениеДоступаДляУскоренияТолькоТочечныхЗаданий(Ложь)
И Задания.Найти(Истина, "ЕстьТочечноеЗадание") = Неопределено Тогда
Если ПоследнееОбновлениеДоступа().ДляУскорения Тогда
Прервать;
Иначе
ПоследнееОбновлениеДоступа.ДляУскорения = Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
Если Не Контекст.ОбработкаЗавершена Если Не Контекст.ОбработкаЗавершена
@@ -13661,9 +13772,9 @@
ЗавершитьОбновлениеДоступа(Контекст); ЗавершитьОбновлениеДоступа(Контекст);
ТекстОшибкиЗавершения = Контекст.ТекстОшибкиЗавершения; ПараметрыВыполнения.ТекстОшибкиЗавершения = Контекст.ТекстОшибкиЗавершения;
ОбновлениеОтменено = Контекст.ОбновлениеОтменено; ПоследнееОбновлениеДоступа.ОбновлениеОтменено = Контекст.ОбновлениеОтменено;
ДатаПолногоЗавершения = Контекст.ДатаПолногоЗавершения; ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения = Контекст.ДатаПолногоЗавершения;
КонецПроцедуры КонецПроцедуры
@@ -13701,7 +13812,7 @@
КонецФункции КонецФункции
// Для процедуры ВыполнитьОбновлениеДоступаНаУровнеЗаписей. // Для процедуры ВыполнитьОбновлениеДоступа.
Процедура ЗапланироватьОбработкуУстаревшихЭлементов(ТекстОшибкиПланирования, Процедура ЗапланироватьОбработкуУстаревшихЭлементов(ТекстОшибкиПланирования,
ПоследнееПланированиеОбработкиУстаревшихЭлементов) ПоследнееПланированиеОбработкиУстаревшихЭлементов)
@@ -14132,7 +14243,7 @@
КонецЕсли; КонецЕсли;
Попытка Попытка
ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(); ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(Контекст);
Исключение Исключение
Если СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса() Тогда Если СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса() Тогда
Контекст.ТребуетсяПерезапускСеанса = Истина; Контекст.ТребуетсяПерезапускСеанса = Истина;
@@ -14679,7 +14790,7 @@
КонецЕсли; КонецЕсли;
Попытка Попытка
ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(); ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(Контекст);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь); ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь);
Исключение Исключение
Если СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса() Тогда Если СтандартныеПодсистемыСервер.ТребуетсяПерезапускСеанса() Тогда
@@ -15978,19 +16089,34 @@
КонецПроцедуры КонецПроцедуры
// Для процедуры ВыполнитьОбновлениеДоступаСпискаВФоне. // Для процедуры ВыполнитьОбновлениеДоступа.
Функция ПоказателиОбновленияУправляющегоПотока(Контекст) Функция ПоказателиОбновленияОсновногоСеанса()
Если Не РегистрироватьПоказателиОбновленияДоступа() Тогда Если Не РегистрироватьПоказателиОбновленияДоступа() Тогда
Возврат Неопределено; Возврат Неопределено;
КонецЕсли; КонецЕсли;
Показатели = Новый Структура; Показатели = Новый Структура;
Показатели.Вставить("ВремяПроверкиИОбновленияПараметровОграничения", 0);
Показатели.Вставить("ВремяОбновленияПараметровОграничения", 0);
// Переменные. // Переменные.
Показатели.Вставить("НачалоРаботыВМиллисекундах", ТекущаяУниверсальнаяДатаВМиллисекундах()); Показатели.Вставить("НачалоРаботыВМиллисекундах", ТекущаяУниверсальнаяДатаВМиллисекундах());
Показатели.Вставить("НачалоВыдачиЗадания"); Показатели.Вставить("НачалоВыдачиЗадания");
Возврат Показатели;
КонецФункции
// Для процедуры ВыполнитьОбновлениеДоступа.
Процедура ДобавитьПоказателиОбновленияУправляющегоПотока(Контекст)
Если Не РегистрироватьПоказателиОбновленияДоступа() Тогда
Возврат;
КонецЕсли;
Показатели = Контекст.Показатели;
Если Контекст.ОбновлениеВЭтомСеансе Тогда Если Контекст.ОбновлениеВЭтомСеансе Тогда
ДобавитьПоказателиВыполненияЗаданий(Показатели); ДобавитьПоказателиВыполненияЗаданий(Показатели);
Иначе Иначе
@@ -16012,9 +16138,7 @@
Показатели.Вставить("НачалоОбработкиЗадания", 0); Показатели.Вставить("НачалоОбработкиЗадания", 0);
КонецЕсли; КонецЕсли;
Возврат Показатели; КонецПроцедуры
КонецФункции
// Для процедуры ВыполнитьОбновлениеДоступаСпискаВФоне. // Для процедуры ВыполнитьОбновлениеДоступаСпискаВФоне.
Функция ПоказателиОбновленияИсполняющегоПотока() Функция ПоказателиОбновленияИсполняющегоПотока()
@@ -16264,7 +16388,7 @@
ВремяОжиданияНовыхЗаданий = Показатели.ВремяОжиданияНовыхЗаданий / 1000; ВремяОжиданияНовыхЗаданий = Показатели.ВремяОжиданияНовыхЗаданий / 1000;
Комментарий = НСтр("ru = 'Завершен сеанс исполняющего потока обновления доступа.'"); Комментарий = НСтр("ru = 'Завершен сеанс исполняющего потока обновления доступа.'");
ДобавитьЗначенияПоказателейРаботыСеанса(Комментарий, Показатели, Контекст.ТекущийСеанс); ДобавитьЗначенияПоказателейРаботыСеанса(Комментарий, Показатели, Контекст.ТекущийСеанс, Истина);
ОписаниеСеанса = Контекст.ОписаниеРодительскогоСеанса; // См. ОписаниеОсновногоСеанса ОписаниеСеанса = Контекст.ОписаниеРодительскогоСеанса; // См. ОписаниеОсновногоСеанса
@@ -16292,7 +16416,7 @@
// Для процедур ЗарегистрироватьПоказателиОбновленияУправляющегоПотока и // Для процедур ЗарегистрироватьПоказателиОбновленияУправляющегоПотока и
// ЗарегистрироватьПоказателиОбновленияИсполняющегоПотока. // ЗарегистрироватьПоказателиОбновленияИсполняющегоПотока.
// //
Процедура ДобавитьЗначенияПоказателейРаботыСеанса(Комментарий, Показатели, ОписаниеСеанса) Процедура ДобавитьЗначенияПоказателейРаботыСеанса(Комментарий, Показатели, ОписаниеСеанса, ЭтоИсполняющийПоток = Ложь)
ВремяРаботы = (ТекущаяУниверсальнаяДатаВМиллисекундах() ВремяРаботы = (ТекущаяУниверсальнаяДатаВМиллисекундах()
- Показатели.НачалоРаботыВМиллисекундах) / 1000; - Показатели.НачалоРаботыВМиллисекундах) / 1000;
@@ -16305,6 +16429,16 @@
ОписаниеСеанса.НачалоСеанса, ОписаниеСеанса.НачалоСеанса,
ФорматСекунд(ВремяРаботы)); ФорматСекунд(ВремяРаботы));
Если ЭтоИсполняющийПоток Тогда
Возврат;
КонецЕсли;
Комментарий = Комментарий + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Время проверки и обновления параметров ограничения: %1 сек
|Время обновления параметров ограничения: %2 сек'"),
ФорматСекунд(Показатели.ВремяПроверкиИОбновленияПараметровОграничения / 1000),
ФорматСекунд(Показатели.ВремяОбновленияПараметровОграничения / 1000));
КонецПроцедуры КонецПроцедуры
// Для процедур ЗарегистрироватьПоказателиОбновленияУправляющегоПотока и // Для процедур ЗарегистрироватьПоказателиОбновленияУправляющегоПотока и
@@ -25044,6 +25178,12 @@
КонецФункции КонецФункции
Функция ЗапускатьОбновлениеДоступаДляУскоренияТолькоТочечныхЗаданий(ПроверкаПриЗапуске)
Возврат Ложь;
КонецФункции
Функция РегистрироватьПоказателиОбновленияДоступа() Функция РегистрироватьПоказателиОбновленияДоступа()
Возврат Истина; Возврат Истина;
@@ -2286,6 +2286,10 @@
Идентификатор = СтрЗаменить(НеобработанныйИдентификатор, "<", ""); Идентификатор = СтрЗаменить(НеобработанныйИдентификатор, "<", "");
Если ПустаяСтрока(Идентификатор) Тогда
Продолжить;
КонецЕсли;
Если НуженПереводСтроки Тогда Если НуженПереводСтроки Тогда
ИдентификаторыКВозврату = ИдентификаторыКВозврату + Символы.ПС; ИдентификаторыКВозврату = ИдентификаторыКВозврату + Символы.ПС;
КонецЕсли; КонецЕсли;
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="df98b791-2c7e-4022-9790-70f56feb1624"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b5df7246-5f59-413f-9bd8-59c649021f2a">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="55b88c77-1733-4bd3-82a9-2ec572192475"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="6b5343ca-57f7-4497-ac0b-ca5512b9443e"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="d07ffbe3-54fb-40db-93e0-63a6d4c1ed27"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="c72c1d12-6497-4764-aaec-38fafe7a7775"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="1f10266c-0757-4b21-8302-de79699a9cc0"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="8dd71308-4377-4903-9292-efa2afe6a119"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="5375e688-1f43-4fe7-8c0f-2a4374fe5743"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="382abb97-d266-45de-a1ba-737070148bb6"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="c28b5d81-b972-4086-9745-7aec6c78edd9"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="17dfadb8-0575-47ff-8a5c-c3af6757f486"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1337962c-b8f5-4125-836e-001f2ae0f71a"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="8367398c-614d-4176-8a6a-830c79426f52"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="c6e5c27f-efdc-4025-a9cf-b8ebf2c0f8af"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="6b71d46f-0bca-4b9d-bd8d-e4844336c281"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.10.479</version> <version>3.1.10.492</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,e7e1572c-b487-457e-852e-981b0966a8fa,1,3b82364e-416e-445c-9d1e-a58ce1fc27ba,"3.1.10.479","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7670,1,0,df98b791-2c7e-4022-9790-70f56feb1624,df98b791-2c7e-4022-9790-70f56feb1624,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,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,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,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,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,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,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,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,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-b7bLine truncated {6,1,1,25bf533c-def2-4197-a3a1-53f79cf9abc2,1,3bd9f8a7-7c5c-4448-8fc9-300b115eaa11,"3.1.10.492","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7670,1,0,b5df7246-5f59-413f-9bd8-59c649021f2a,b5df7246-5f59-413f-9bd8-59c649021f2a,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,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,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,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,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,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,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,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,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-b7bLine truncated
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 90; Возврат 91;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.10.442"; Возврат "3.1.10.483";
КонецФункции КонецФункции
@@ -1192,8 +1192,11 @@
<Item Calendar="95" Year="2024" DayType="Праздник" Date="20240617" SwapDate=""/> <Item Calendar="95" Year="2024" DayType="Праздник" Date="20240617" SwapDate=""/>
<Item Calendar="95" Year="2024" DayType="Праздник" Date="20240624" SwapDate=""/> <Item Calendar="95" Year="2024" DayType="Праздник" Date="20240624" SwapDate=""/>
<Item Calendar="95" Year="2024" DayType="Праздник" Date="20240930" SwapDate=""/> <Item Calendar="95" Year="2024" DayType="Праздник" Date="20240930" SwapDate=""/>
<Item Calendar="95" Year="2025" DayType="Праздник" Date="20250330" SwapDate="20250331"/>
<Item Calendar="95" Year="2025" DayType="Воскресенье" Date="20250331" SwapDate="20250330"/>
<Item Calendar="95" Year="2025" DayType="Праздник" Date="20250420" SwapDate="20250421"/> <Item Calendar="95" Year="2025" DayType="Праздник" Date="20250420" SwapDate="20250421"/>
<Item Calendar="95" Year="2025" DayType="Воскресенье" Date="20250421" SwapDate="20250420"/> <Item Calendar="95" Year="2025" DayType="Воскресенье" Date="20250421" SwapDate="20250420"/>
<Item Calendar="95" Year="2025" DayType="Праздник" Date="20250606" SwapDate=""/>
<Item Calendar="95" Year="2025" DayType="Праздник" Date="20250608" SwapDate="20250609"/> <Item Calendar="95" Year="2025" DayType="Праздник" Date="20250608" SwapDate="20250609"/>
<Item Calendar="95" Year="2025" DayType="Воскресенье" Date="20250609" SwapDate="20250608"/> <Item Calendar="95" Year="2025" DayType="Воскресенье" Date="20250609" SwapDate="20250608"/>
<Item Calendar="95" Year="2025" DayType="Предпраздничный" Date="20250929" SwapDate=""/> <Item Calendar="95" Year="2025" DayType="Предпраздничный" Date="20250929" SwapDate=""/>
@@ -10,7 +10,7 @@
<value>Заявление на выпуск нового квалифицированного сертификата</value> <value>Заявление на выпуск нового квалифицированного сертификата</value>
</synonym> </synonym>
<useStandardCommands>true</useStandardCommands> <useStandardCommands>true</useStandardCommands>
<defaultForm>DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.ТехническаяИнформация</defaultForm> <defaultForm>DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма</defaultForm>
<forms uuid="5bc04a9a-6a0a-4607-b8eb-743b87143ae7"> <forms uuid="5bc04a9a-6a0a-4607-b8eb-743b87143ae7">
<name>Форма</name> <name>Форма</name>
<synonym> <synonym>
@@ -102,6 +102,10 @@
&НаКлиенте &НаКлиенте
Процедура ОписаниеДатыЗапретаПриИзменении(Элемент) Процедура ОписаниеДатыЗапретаПриИзменении(Элемент)
Если Элемент.Имя = "ЗапретИзмененияДанныхНеУстановлен" Тогда
ДатаЗапрета = '00010101';
КонецЕсли;
ДатыЗапретаИзмененияСлужебныйКлиентСервер.УточнитьНастройкуДатыЗапретаПриИзменении(ЭтотОбъект); ДатыЗапретаИзмененияСлужебныйКлиентСервер.УточнитьНастройкуДатыЗапретаПриИзменении(ЭтотОбъект);
ПодключитьОбработчикОжидания("ОбновитьОтображениеДатыЗапретаПриИзмененииОбработчикОжидания", 0.1, Истина); ПодключитьОбработчикОжидания("ОбновитьОтображениеДатыЗапретаПриИзмененииОбработчикОжидания", 0.1, Истина);
@@ -48,6 +48,10 @@
Для Каждого Элемент Из ДанныеКлассификатора["elements"] Цикл Для Каждого Элемент Из ДанныеКлассификатора["elements"] Цикл
Группа = Классификатор; Группа = Классификатор;
КодПолномочия = Элемент["code"]; КодПолномочия = Элемент["code"];
Если СтрНачинаетсяС(КодПолномочия, "1_FNS") Тогда
Продолжить;
КонецЕсли;
КодГруппы = Элемент["parentUUID"]; КодГруппы = Элемент["parentUUID"];
НаименованиеГруппы = Элемент["parent"]; НаименованиеГруппы = Элемент["parent"];
@@ -4199,6 +4199,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.СписокЗапрещенныхРасширений</name> <name>Constant.СписокЗапрещенныхРасширений</name>
<right> <right>
@@ -4897,93 +4984,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name> <name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name>
<right> <right>
@@ -2209,6 +2209,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>CommonForm.ВыборДействияПриОбнаруженииОтличийФайла</name> <name>CommonForm.ВыборДействияПриОбнаруженииОтличийФайла</name>
<right> <right>
@@ -2689,33 +2716,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name> <name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name>
<right> <right>
@@ -1752,6 +1752,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>CommonForm.ВыборДействияПриОбнаруженииОтличийФайла</name> <name>CommonForm.ВыборДействияПриОбнаруженииОтличийФайла</name>
<right> <right>
@@ -2171,33 +2198,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name> <name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name>
<right> <right>
@@ -648,6 +648,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>WebService.EnterpriseDataExchange_1_0_1_1.Operation.TestConnection</name> <name>WebService.EnterpriseDataExchange_1_0_1_1.Operation.TestConnection</name>
<right> <right>
@@ -790,33 +817,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>WebService.Exchange_3_0_1_1.Operation.TestConnection</name> <name>WebService.Exchange_3_0_1_1.Operation.TestConnection</name>
<right> <right>
@@ -256,29 +256,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.АдресныеОбъекты</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -306,6 +283,29 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.АдресныеОбъекты</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.ДомаЗданияСтроения</name> <name>InformationRegister.ДомаЗданияСтроения</name>
<right> <right>
@@ -60,6 +60,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.УничтоженныеПерсональныеДанные</name> <name>InformationRegister.УничтоженныеПерсональныеДанные</name>
<right> <right>
@@ -146,31 +173,4 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> </Rights>
@@ -135,6 +135,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.НастройкиВариантовОтчетов</name> <name>InformationRegister.НастройкиВариантовОтчетов</name>
<right> <right>
@@ -165,33 +192,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.ВариантыОтчетов.Command.СброситьНастройкиРазмещения</name> <name>Catalog.ВариантыОтчетов.Command.СброситьНастройкиРазмещения</name>
<right> <right>
@@ -1059,6 +1059,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.СообщениеSMSПрисоединенныеФайлы</name> <name>Catalog.СообщениеSMSПрисоединенныеФайлы</name>
<right> <right>
@@ -1296,33 +1323,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>DocumentJournal.Взаимодействия.Command.НаписатьSMSПоКонтакту</name> <name>DocumentJournal.Взаимодействия.Command.НаписатьSMSПоКонтакту</name>
<right> <right>
@@ -85,6 +85,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.ГруппыВнешнихПользователей</name> <name>Catalog.ГруппыВнешнихПользователей</name>
<right> <right>
@@ -124,31 +151,4 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> </Rights>
@@ -36,6 +36,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ДатыЗапретаИзменения</name> <name>InformationRegister.ДатыЗапретаИзменения</name>
<right> <right>
@@ -131,33 +158,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
<restrictionTemplate> <restrictionTemplate>
<name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name> <name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name>
<condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") <condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "")
@@ -18,6 +18,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Report.ДатыЗапретаИзменения</name> <name>Report.ДатыЗапретаИзменения</name>
<right> <right>
@@ -135,33 +162,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
<restrictionTemplate> <restrictionTemplate>
<name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name> <name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name>
<condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") <condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "")
@@ -95,20 +95,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ДополнительныеОтчетыИОбработки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.НастройкаМоихОтчетовИОбработок</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -136,4 +122,18 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ДополнительныеОтчетыИОбработки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.НастройкаМоихОтчетовИОбработок</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -166,13 +166,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.РедактированиеМеток</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -200,6 +193,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.РедактированиеМеток</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.РедактированиеДополнительныхСведений</name> <name>CommonForm.РедактированиеДополнительныхСведений</name>
<right> <right>
@@ -100,6 +100,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</name> <name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</name>
<right> <right>
@@ -204,33 +231,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ДанныеБизнесПроцессов.Command.МоиБизнесПроцессы</name> <name>InformationRegister.ДанныеБизнесПроцессов.Command.МоиБизнесПроцессы</name>
<right> <right>
@@ -70,13 +70,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.МоиЗаметкиПоПредмету</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -104,6 +97,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.МоиЗаметкиПоПредмету</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.Заметки.Command.ВсеЗаметки</name> <name>Catalog.Заметки.Command.ВсеЗаметки</name>
<right> <right>
@@ -165,13 +165,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.ВариантыОтчетов.Command.РазместитьВРазделах</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -199,6 +192,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.ВариантыОтчетов.Command.РазместитьВРазделах</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -166,32 +166,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ДоступныеАнкеты</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</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> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -219,6 +193,32 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ДоступныеАнкеты</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</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>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -87,13 +87,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ПрисоединенныеФайлы</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -121,6 +114,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ПрисоединенныеФайлы</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.РедактируемыеФайлы</name> <name>CommonCommand.РедактируемыеФайлы</name>
<right> <right>
@@ -87,13 +87,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ПрисоединенныеФайлы</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -121,6 +114,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ПрисоединенныеФайлы</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.РедактируемыеФайлы</name> <name>CommonCommand.РедактируемыеФайлы</name>
<right> <right>
@@ -77,13 +77,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ОтправкаСообщения</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -111,6 +104,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ОтправкаСообщения</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -127,6 +127,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</name> <name>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</name>
<right> <right>
@@ -166,31 +193,4 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> </Rights>
@@ -146,27 +146,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -194,6 +173,27 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Report.Задачи</name> <name>Report.Задачи</name>
<right> <right>
@@ -40,13 +40,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ДополнительныеСведенияКоманднаяПанель</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -74,6 +67,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ДополнительныеСведенияКоманднаяПанель</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.РедактированиеДополнительныхСведений</name> <name>CommonForm.РедактированиеДополнительныхСведений</name>
<right> <right>
@@ -22,6 +22,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.МакетыПечатныхФорм</name> <name>Catalog.МакетыПечатныхФорм</name>
<right> <right>
@@ -61,31 +88,4 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> </Rights>
@@ -37,13 +37,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ЖурналУчетаОригиналовПервичныхДокументов</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -71,4 +64,11 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ЖурналУчетаОригиналовПервичныхДокументов</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -17,6 +17,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.ГруппыДоступа</name> <name>Catalog.ГруппыДоступа</name>
<right> <right>
@@ -94,33 +121,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Catalog.ПрофилиГруппДоступа</name> <name>Catalog.ПрофилиГруппДоступа</name>
<right> <right>
@@ -237,17 +237,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.ЗамерыВремениТехнологические</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -275,6 +264,17 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.ЗамерыВремениТехнологические</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DataProcessor.ОценкаПроизводительности.Command.НастройкиОценкиПроизводительности</name> <name>DataProcessor.ОценкаПроизводительности.Command.НастройкиОценкиПроизводительности</name>
<right> <right>
@@ -5790,6 +5790,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>Constant.СписокЗапрещенныхРасширений</name> <name>Constant.СписокЗапрещенныхРасширений</name>
<right> <right>
@@ -6731,45 +6770,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name> <name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name>
<right> <right>
@@ -10,13 +10,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -48,6 +41,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DataProcessor.ЖурналРегистрации</name> <name>DataProcessor.ЖурналРегистрации</name>
<right> <right>
@@ -2939,6 +2939,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>SessionParameter.ПараметрыОбработчикаОбновления</name> <name>SessionParameter.ПараметрыОбработчикаОбновления</name>
<right> <right>
@@ -3537,33 +3564,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>SessionParameter.ТекущийВнешнийПользователь</name> <name>SessionParameter.ТекущийВнешнийПользователь</name>
<right> <right>
@@ -115,6 +115,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>WebService.RemoteAdministrationOfExchange_2_0_1_6.Operation.TestConnection</name> <name>WebService.RemoteAdministrationOfExchange_2_0_1_6.Operation.TestConnection</name>
<right> <right>
@@ -143,33 +170,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>WebService.RemoteAdministrationOfExchange_2_1_6_1.Operation.GetExchangeFeatures</name> <name>WebService.RemoteAdministrationOfExchange_2_1_6_1.Operation.GetExchangeFeatures</name>
<right> <right>
@@ -25,32 +25,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.УничтоженныеПерсональныеДанные</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<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> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -78,4 +52,30 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.УничтоженныеПерсональныеДанные</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<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>
</Rights> </Rights>
@@ -58,17 +58,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.НастройкиВариантовОтчетов</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -96,4 +85,15 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.НастройкиВариантовОтчетов</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -47,21 +47,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.ГруппыВнешнихПользователей</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> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -89,4 +74,19 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.ГруппыВнешнихПользователей</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>
</Rights> </Rights>
@@ -36,6 +36,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ДатыЗапретаИзменения</name> <name>InformationRegister.ДатыЗапретаИзменения</name>
<right> <right>
@@ -85,33 +112,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
<restrictionTemplate> <restrictionTemplate>
<name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name> <name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name>
<condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") <condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "")
@@ -18,6 +18,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Report.ДатыЗапретаИзменения</name> <name>Report.ДатыЗапретаИзменения</name>
<right> <right>
@@ -85,33 +112,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
<restrictionTemplate> <restrictionTemplate>
<name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name> <name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name>
<condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "") <condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "")
@@ -55,20 +55,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ДополнительныеОтчетыИОбработки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.НастройкаМоихОтчетовИОбработок</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -96,6 +82,20 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ДополнительныеОтчетыИОбработки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.НастройкаМоихОтчетовИОбработок</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -23,13 +23,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ДополнительныеСведенияКоманднаяПанель</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -57,6 +50,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ДополнительныеСведенияКоманднаяПанель</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.РедактированиеДополнительныхСведений</name> <name>CommonForm.РедактированиеДополнительныхСведений</name>
<right> <right>
@@ -96,6 +96,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</name> <name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</name>
<right> <right>
@@ -148,33 +175,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Report.Задачи</name> <name>Report.Задачи</name>
<right> <right>
@@ -104,20 +104,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</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> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -145,6 +131,20 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</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> <object>
<name>Report.Задачи</name> <name>Report.Задачи</name>
<right> <right>
@@ -92,21 +92,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</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> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -134,6 +119,21 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</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> <object>
<name>Report.АнализОпроса</name> <name>Report.АнализОпроса</name>
<right> <right>
@@ -31,13 +31,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ОтправкаСообщения</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -65,6 +58,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ОтправкаСообщения</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")