3_1_3_187

This commit is contained in:
Компания 1С committed 2020-06-26 16:08:00 +03:00
1 parent 28ee5cbb92
commit efed23eac5
44 files changed
+1113 -442

No files matched your search

@@ -104,8 +104,9 @@
Возврат;
КонецЕсли;
ПереносДопустим = НЕ ЗначениеЗаполнено(Элементы.Список.ТекущиеДанные.Пользователь)
И Элементы.Список.ТекущиеДанные.Ссылка <> РодительПерсональныхГруппДоступа;
ТекущиеДанные = ТекущиеДанныеТаблицы(Элементы.Список);
ПереносДопустим = НЕ ЗначениеЗаполнено(ТекущиеДанные.Пользователь)
И ТекущиеДанные.Ссылка <> РодительПерсональныхГруппДоступа;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ФормаПеренестиЭлемент", "Доступность", ПереносДопустим);
@@ -217,4 +218,18 @@
КонецПроцедуры
// Параметры:
// ТаблицаФормы - ДанныеФормыКоллекция
//
// Возвращаемое значение:
// ДанныеФормыСтруктура:
// * Ссылка - СправочникСсылка.ГруппыДоступа
// * Пользователь - СправочникСсылка.Пользователи
// - СправочникСсылка.ВнешниеПользователи
//
&НаКлиенте
Функция ТекущиеДанныеТаблицы(ТаблицаФормы)
Возврат ТаблицаФормы.ТекущиеДанные;
КонецФункции
#КонецОбласти
@@ -35,19 +35,8 @@
Элементы.Ошибки.ВысотаВСтрокахТаблицы = Мин(Ошибки.Количество(), 3);
Если ЗначениеЗаполнено(ОшибкаНаКлиенте)
И ЗначениеЗаполнено(ОшибкаНаКлиенте.ОписаниеОшибки)
И ЗначениеЗаполнено(ОшибкаНаСервере)
И ЗначениеЗаполнено(ОшибкаНаСервере.ОписаниеОшибки) Тогда
ОписаниеОшибки = НСтр("ru = 'НА СЕРВЕРЕ:'")
+ Символы.ПС + Символы.ПС + ОшибкаНаСервере.ОписаниеОшибки
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'НА КОМПЬЮТЕРЕ:'")
+ Символы.ПС + Символы.ПС + ОшибкаНаКлиенте.ОписаниеОшибки;
Иначе
ОписаниеОшибки = СокрЛП(ОшибкаНаКлиенте.ОписаниеОшибки);
КонецЕсли;
ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
ОшибкаНаКлиенте, ОшибкаНаСервере);
ПоказатьИнструкцию = Параметры.ПоказатьИнструкцию;
ПоказатьПереходКНастройкеПрограмм = Параметры.ПоказатьПереходКНастройкеПрограмм;
@@ -222,7 +211,8 @@
И ТипЗнч(ОписаниеОшибок.Ошибки) = Тип("Массив")
И ОписаниеОшибок.Ошибки.Количество() > 0 Тогда
Для Каждого СвойстваОшибки Из ОписаниеОшибок.Ошибки Цикл
СвойстваОшибок = ОписаниеОшибок.Ошибки; // Массив Из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
Для Каждого СвойстваОшибки Из СвойстваОшибок Цикл
ОписаниеСЗаголовком = "";
Если ЗначениеЗаполнено(СвойстваОшибки.ЗаголовокОшибки) Тогда
@@ -219,7 +219,7 @@
Возврат;
КонецЕсли;
Если Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
Если ЭлектроннаяПодписьСлужебныйКлиент.ТребуетсяПутьКПрограмме() Тогда
ПерсональныеНастройки = ЭлектроннаяПодписьКлиент.ПерсональныеНастройки();
ПутьКПрограмме = ПерсональныеНастройки.ПутиКПрограммамЭлектроннойПодписиИШифрования.Получить(
Объект.Ссылка);
@@ -253,7 +253,7 @@
Если ИнформацияМодуля <> Неопределено
И Объект.ИмяПрограммы <> ИнформацияМодуля.Имя
И ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
И Не ЭлектроннаяПодписьСлужебныйКлиент.ТребуетсяПутьКПрограмме() Тогда
ИнформацияМодуля = Неопределено;
КонецЕсли;
@@ -22,7 +22,9 @@
Элементы.СертификатУсиленнаяЗащитаЗакрытогоКлюча.Имя,
Элементы.ПояснениеУсиленногоПароля.Имя);
СертификатПараметрыРеквизитов = СертификатПараметрыРеквизитов();
СертификатПараметрыРеквизитов =
ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитовСертификата();
Если Параметры.Свойство("Организация") Тогда
СертификатПараметрыРеквизитов.Вставить("Организация", Параметры.Организация);
КонецЕсли;
@@ -93,16 +95,6 @@
КонецПроцедуры
// Возвращаемое значение:
// Структура:
// * Наименование - Строка
//
&НаКлиентеНаСервереБезКонтекста
Функция СертификатПараметрыРеквизитов()
Возврат Новый Структура;
КонецФункции
&НаКлиенте
Процедура ПриОткрытии(Отказ)
@@ -650,7 +642,7 @@
//
// Параметры:
// РезультатПоиска - СертификатКриптографии
// Контекст
// Контекст - Структура
//
&НаКлиенте
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификата(РезультатПоиска, Контекст) Экспорт
@@ -731,7 +723,7 @@
Процедура ПерейтиКВыборуТекущегоСертификатаПослеЗаполненияСвойствСертификата(Контекст)
Если СертификатПараметрыРеквизитов.Свойство("Наименование") Тогда
ПараметрыРеквизитов = СертификатПараметрыРеквизитов; // см. СертификатПараметрыРеквизитов
ПараметрыРеквизитов = СертификатПараметрыРеквизитов; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитовСертификата
Если ПараметрыРеквизитов.Наименование.ТолькоПросмотр Тогда
Элементы.СертификатНаименование.ТолькоПросмотр = Истина;
КонецЕсли;
@@ -11,7 +11,9 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СертификатПараметрыРеквизитов = СертификатПараметрыРеквизитов();
СертификатПараметрыРеквизитов =
ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитовСертификата();
Если Параметры.Свойство("Организация") Тогда
СертификатПараметрыРеквизитов.Вставить("Организация", Параметры.Организация);
КонецЕсли;
@@ -55,17 +57,6 @@
КонецПроцедуры
// Возвращаемое значение:
// Структура:
// * Организация
//
&НаКлиентеНаСервереБезКонтекста
Функция СертификатПараметрыРеквизитов()
ПараметрыРеквизитов = Новый Структура;
Возврат ПараметрыРеквизитов;
КонецФункции
&НаКлиенте
Процедура ПриОткрытии(Отказ)
@@ -380,7 +371,7 @@
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОписаниеДанныхСертификата(
Форма.СертификатОписаниеДанных, СвойстваСертификата);
СертификатПараметрыРеквизитов = Форма.СертификатПараметрыРеквизитов; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатПараметрыРеквизитов
СертификатПараметрыРеквизитов = Форма.СертификатПараметрыРеквизитов; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитовСертификата
СохраненныеСвойства = СохраненныеСвойстваСертификата(
Форма.СертификатОтпечаток,
Форма.СертификатАдрес,
@@ -579,7 +579,8 @@
ОписаниеДанных.Вставить("ОписаниеОшибки");
КонецЕсли;
ОписаниеДанных.ОписаниеОшибки = ОшибкаНаКлиенте.ОписаниеОшибки;
ОписаниеДанных.ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
ОшибкаНаКлиенте, ОшибкаНаСервере, НСтр("ru = 'Не удалось подписать данные по причине:'"));
Если Открыта() Тогда
Закрыть(Ложь);
@@ -652,7 +652,8 @@
ОписаниеДанных.Вставить("ОписаниеОшибки");
КонецЕсли;
ОписаниеДанных.ОписаниеОшибки = ОшибкаНаКлиенте.ОписаниеОшибки;
ОписаниеДанных.ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
ОшибкаНаКлиенте, ОшибкаНаСервере, НСтр("ru = 'Не удалось расшифровать данные по причине:'"));
Если Открыта() Тогда
Закрыть(Ложь);
@@ -1057,7 +1057,8 @@
ОписаниеДанных.Вставить("ОписаниеОшибки");
КонецЕсли;
ОписаниеДанных.ОписаниеОшибки = ОшибкаНаКлиенте.ОписаниеОшибки;
ОписаниеДанных.ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
ОшибкаНаКлиенте, ОшибкаНаСервере, НСтр("ru = 'Не удалось зашифровать данные по причине:'"));
Если Открыта() Тогда
Закрыть(Ложь);
@@ -99,9 +99,12 @@
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ШаблоныСообщений.Ссылка КАК Ссылка
| ШаблоныСообщений.Ссылка КАК Ссылка,
| ШаблоныСообщений.ПолноеИмяТипаПараметраВводаНаОсновании КАК ПолноеИмяТипаПараметраВводаНаОсновании
|ИЗ
| Справочник.ШаблоныСообщений КАК ШаблоныСообщений";
| Справочник.ШаблоныСообщений КАК ШаблоныСообщений
|ГДЕ
| ШаблоныСообщений.ПредназначенДляВводаНаОсновании = ИСТИНА";
РезультатЗапроса = Запрос.Выполнить();
@@ -102,38 +102,25 @@
КонецЕсли;
ПутиКПрограммамПоУмолчанию = Новый Структура;
РаботаСПрограммамиНаСервере = ПроверятьПодписиНаСервере Или ПодписыватьНаСервере;
Если ОбщегоНазначения.ЭтоWindowsКлиент()
И (Не РаботаСПрограммамиНаСервере
Или ОбщегоНазначения.ЭтоWindowsСервер()) Тогда
Элементы.ГруппаПрограммыLinuxПутьКПрограмме.Видимость = Ложь;
Иначе
Если ОбщегоНазначения.ЭтоMacOSКлиент() Тогда
ПутьПоУмолчанию = "/opt/cprocsp/lib/libcapi10.dylib:/opt/cprocsp/lib/libcapi20.dylib:"
+ "/opt/cprocsp/lib/libcapi10.4.dylib:/opt/cprocsp/lib/libcapi20.4.dylib";
ПутиКПрограммамПоУмолчанию.Вставить("ПутьMac", ПутьПоУмолчанию);
Элементы.ПрограммыLinuxПутьКПрограмме.СписокВыбора.Добавить(
"ПутьMac", НСтр("ru = 'Путь для Mac OS'") + ": " + ПутьПоУмолчанию);
КонецЕсли;
Если ОбщегоНазначения.ЭтоMacOSКлиент() Тогда
ПутьПоУмолчанию = "/opt/cprocsp/lib/libcapi10.dylib:/opt/cprocsp/lib/libcapi20.dylib:"
+ "/opt/cprocsp/lib/libcapi10.4.dylib:/opt/cprocsp/lib/libcapi20.4.dylib";
Если ОбщегоНазначения.ЭтоLinuxКлиент()
Или (РаботаСПрограммамиНаСервере
И ОбщегоНазначения.ЭтоLinuxСервер()) Тогда
ПутиКПрограммамПоУмолчанию.Вставить("ПутьMac", ПутьПоУмолчанию);
Элементы.ПрограммыLinuxПутьКПрограмме.СписокВыбора.Добавить(
"ПутьMac", НСтр("ru = 'Путь для Mac OS'") + ": " + ПутьПоУмолчанию);
ПутьПоУмолчанию = "/opt/cprocsp/lib/amd64/libcapilite.so:"
+ "/opt/cprocsp/lib/amd64/libcapi10.so:/opt/cprocsp/lib/amd64/libcapi20.so";
ИначеЕсли ОбщегоНазначения.ЭтоLinuxКлиент() Тогда
ПутьПоУмолчанию = "/opt/cprocsp/lib/amd64/libcapilite.so:"
+ "/opt/cprocsp/lib/amd64/libcapi10.so:/opt/cprocsp/lib/amd64/libcapi20.so";
ПутиКПрограммамПоУмолчанию.Вставить("ПутьLinux", ПутьПоУмолчанию);
Элементы.ПрограммыLinuxПутьКПрограмме.СписокВыбора.Добавить(
"ПутьLinux", НСтр("ru = 'Путь для Linux'") + ": " + ПутьПоУмолчанию);
КонецЕсли;
ПутиКПрограммамПоУмолчанию.Вставить("ПутьLinux", ПутьПоУмолчанию);
Элементы.ПрограммыLinuxПутьКПрограмме.СписокВыбора.Добавить(
"ПутьLinux", НСтр("ru = 'Путь для Linux'") + ": " + ПутьПоУмолчанию);
Иначе // Не ЭлектроннаяПодписьСлужебныйКлиент.ТребуетсяПутьКПрограмме.
Элементы.ГруппаПрограммыLinuxПутьКПрограмме.Видимость = Ложь;
КонецЕсли;
Элементы.ГруппаВебКлиентРасширениеНеУстановлено.Видимость = ОбщегоНазначения.ЭтоВебКлиент()
@@ -471,9 +458,10 @@
Возврат;
КонецЕсли;
ТекущиеДанные = СертификатыТекущиеДанные(Элементы.Сертификаты);
ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("СоздатьЗаявление", Истина);
ПараметрыСоздания.Вставить("СертификатОснование", Элементы.Сертификаты.ТекущиеДанные.Ссылка);
ПараметрыСоздания.Вставить("СертификатОснование", ТекущиеДанные.Ссылка);
ЭлектроннаяПодписьСлужебныйКлиент.ДобавитьСертификат(ПараметрыСоздания);
@@ -530,6 +518,20 @@
КонецПроцедуры
// Параметры:
// ТаблицаФормы - ДанныеФормыКоллекция
//
// Возвращаемое значение:
// ДанныеФормыСтруктура:
// * Ссылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
&НаКлиенте
Функция СертификатыТекущиеДанные(ТаблицаФормы)
Возврат ТаблицаФормы.ТекущиеДанные;
КонецФункции
&НаКлиенте
Процедура ПрограммыУстановитьПометкуУдаленияПродолжить(Ответ, ТекущаяПрограмма) Экспорт
@@ -794,7 +796,7 @@
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
ПараметрыВыполнения.Вставить("АлгоритмПодписи", "");
ПараметрыВыполнения.Вставить("ИнтерактивныйРежим", Ложь);
ПараметрыВыполнения.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
ПараметрыВыполнения.Вставить("ЭтоLinux", ЭлектроннаяПодписьСлужебныйКлиент.ТребуетсяПутьКПрограмме());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
"ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклПродолжение", ЭтотОбъект, Контекст));
@@ -810,7 +812,7 @@
Процедура ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклПродолжение(Менеджер, Контекст) Экспорт
ОписаниеПрограммы = Контекст.ОписаниеПрограммы;
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки; // Массив Из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
Если Менеджер <> Неопределено Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Установлена на компьютере.'"));
@@ -140,7 +140,9 @@
НоваяСтрока.КонтрольнаяСумма = Base64Строка(Расширение.ХешСумма);
НоваяСтрока.ИдентификаторРасширения = Расширение.УникальныйИдентификатор;
НоваяСтрока.Версия = Расширение.Версия;
Если СвойстваИсправления <> Неопределено Тогда
Если СвойстваИсправления = "ОшибкаЧтения" Тогда
НоваяСтрока.Статус = 0;
ИначеЕсли СвойстваИсправления <> Неопределено Тогда
НоваяСтрока.Статус = 0;
НоваяСтрока.Описание = СвойстваИсправления.Description;
НоваяСтрока.ПрименимоДля = ИсправлениеПрименимоДля(СвойстваИсправления);
@@ -421,6 +421,10 @@
КонецЦикла;
КонецЕсли;
Иначе
Если ТипЗнч(ИдентификаторЗадания) <> Тип("УникальныйИдентификатор") Тогда
Продолжить;
КонецЕсли;
Отбор = Новый Структура("УникальныйИдентификатор");
Отбор.УникальныйИдентификатор = ИдентификаторЗадания;
НайденныеЗадания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
@@ -1648,7 +1648,8 @@
ДопСвойства = КомпоновщикНастроекКД.ПользовательскиеНастройки.ДополнительныеСвойства;
ДопСвойства.Вставить("КлючВарианта", Результат.КлючВарианта);
ДопСвойства.Вставить("ИспользуемыеТаблицы", Параметры.ИспользуемыеТаблицы);
ДопСвойства.Вставить("ИспользуемыеТаблицы",
ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИспользуемыеТаблицы", Новый Массив));
// Проверка корректности данных, по которым формируется отчет.
@@ -785,8 +785,10 @@
// Параметры:
// Объект - СправочникОбъект
// - ДокументОбъект
// - ДанныеФормыСтруктура - где:
// * Ссылка - СправочникСсылка, ДокументСсылка, ПланВидовХарактеристикСсылка
// - ДанныеФормыСтруктура:
// * Ссылка - СправочникСсылка
// - ДокументСсылка
// - ПланВидовХарактеристикСсылка
// * ИсходныйКлючЗаписи -РегистрСведенийЗапись
//
// Возвращаемое значение:
@@ -2058,6 +2058,8 @@
Запрос.Текст = ТекстЗапроса;
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Возврат Не Запрос.Выполнить().Пустой();
КонецФункции
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.3.179";
Описание.Версия = "3.1.3.187";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -69,6 +69,8 @@
Если СвойстваИсправления = Неопределено Тогда
// Исправление еще не применено.
УдалитьИсправление = Ложь;
ИначеЕсли СвойстваИсправления = "ОшибкаЧтения" Тогда
УдалитьИсправление = Истина;
Иначе
ТекстСообщения = НСтр("ru = 'Проверка патча ""%1"".'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Исправление.Имя);
@@ -282,7 +284,7 @@
ИнформацияОбИсправлении = Новый Структура("Идентификатор, Наименование");
СвойстваИсправления = СвойстваИсправления(Расширение.Имя);
Если СвойстваИсправления <> Неопределено Тогда
Если СвойстваИсправления <> Неопределено И СвойстваИсправления <> "ОшибкаЧтения" Тогда
ИнформацияОбИсправлении.Идентификатор = СвойстваИсправления.UUID;
КонецЕсли;
ИнформацияОбИсправлении.Наименование = Расширение.Имя;
@@ -399,6 +401,9 @@
КонецЕсли;
Попытка
СвойстваИсправления = СвойстваИсправления(Расширение.Имя);
Если СвойстваИсправления = "ОшибкаЧтения" Или СвойстваИсправления = Неопределено Тогда
Продолжить;
КонецЕсли;
Идентификатор = СвойстваИсправления.UUID;
Если Удаляемые.Найти(Строка(Идентификатор)) <> Неопределено Тогда
Расширение.Удалить();
@@ -609,7 +614,11 @@
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
Возврат ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип("http://www.v8.1c.ru/ssl/patch", "Patch"));
Попытка
Возврат ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип("http://www.v8.1c.ru/ssl/patch", "Patch"));
Исключение
Возврат "ОшибкаЧтения";
КонецПопытки;
КонецФункции
@@ -59,7 +59,11 @@
Процедура ПриПолученииФормыВыбораПользователейСистемыВзаимодействия(НазначениеВыбора, Форма, ИдентификаторОбсуждения, Параметры, ВыбраннаяФорма, СтандартнаяОбработка) Экспорт
// Не переопределяем, при выборе получателя доступны только пользователи обсуждения.
Если НазначениеВыбора = НазначениеВыбораПользователейСистемыВзаимодействия.ПолучательСообщения Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
ПолучательСообщения = ?(ОбщегоНазначенияКлиентСервер.СравнитьВерсии("8.3.17",СистемнаяИнформация.ВерсияПриложения) > 0,
Вычислить("НазначениеВыбораПользователейСистемыВзаимодействия.ПолучательСообщения"),
Неопределено);
Если НазначениеВыбора = ПолучательСообщения Тогда
Возврат;
КонецЕсли;
@@ -169,11 +169,7 @@
НастройкиСостава = Новый НастройкиСоставаИнтерфейсаКлиентскогоПриложения;
ГруппаСлева = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения;
Информация = Новый СистемнаяИнформация;
Если Не (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Информация.ВерсияПриложения, "8.3.15.0") >= 0
И Метаданные.РежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать) Тогда
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияРежимаСовместимости(), "8.3.15.0") < 0 Тогда
ГруппаСлева.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИнструментов"));
КонецЕсли;
@@ -5945,6 +5941,45 @@
КонецФункции
// Возвращает версию режима совместимости в формате нумерации редакций и версий, например, 8.3.15.0.
//
// Возвращаемое значение:
// Строка - версия режима совместимости в формате нумерации редакций и версий.
//
Функция ВерсияРежимаСовместимости()
Если Метаданные.РежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
Информация = Новый СистемнаяИнформация;
Возврат Информация.ВерсияПриложения;
КонецЕсли;
ОписаниеРежимаСовместимости = СтрРазделить(Метаданные.РежимСовместимости, "_");
Символов = СтрДлина(ОписаниеРежимаСовместимости[0]);
НомерРедакции = "";
Для НомерСимвола = 1 По Символов Цикл
ТекущийСимвол = Сред(ОписаниеРежимаСовместимости[0], НомерСимвола, 1);
Если СтрНайти("0123456789", ТекущийСимвол) > 0 Тогда
НомерРедакции = НомерРедакции + ТекущийСимвол;
КонецЕсли;
КонецЦикла;
ОписаниеРежимаСовместимости.Установить(0, НомерРедакции);
Для Индекс = ОписаниеРежимаСовместимости.Количество() По 3 Цикл
ОписаниеРежимаСовместимости.Добавить("0");
КонецЦикла;
Возврат СтрСоединить(ОписаниеРежимаСовместимости, ".");
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Процедуры используемые при обмене данными.
@@ -566,9 +566,11 @@
ОчередьПометкиКУдалению = Новый Массив;
Для Каждого Действие Из ТаблицаДействий Цикл
Если Действие.Действие <> "ЗаменитьСсылку"
И (Не ЗначениеЗаполнено(Действие.Источник.ВерсияДанных)
ИЛИ Не ЗначениеЗаполнено(Действие.ОбнаруженныйСсылка.ВерсияДанных)) Тогда
ИЛИ Не ЗначениеЗаполнено(Действие.ОбнаруженныйСсылка)
ИЛИ Не ЗначениеЗаполнено(Значение(Действие.ОбнаруженныйСсылка, "ВерсияДанных"))) Тогда
Продолжить;
КонецЕсли;
@@ -1503,6 +1505,15 @@
Возврат Таблица;
КонецФункции
Функция Значение(Источник, ИмяСвойства, ЗначениеПоУмолчанию = Неопределено)
Буфер = Новый Структура(ИмяСвойства, ЗначениеПоУмолчанию);
ЗаполнитьЗначенияСвойств(Буфер, Источник);
Возврат Буфер[ИмяСвойства];
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -623,6 +623,10 @@
// - РегистрНакопленияМенеджерЗаписи
// - РегистрБухгалтерииМенеджерЗаписи
// - РегистрРасчетаМенеджерЗаписи - менеджер проверяемой записи.
// - РегистрСведенийНаборЗаписей
// - РегистрНакопленияНаборЗаписей
// - РегистрБухгалтерииНаборЗаписей
// - РегистрРасчетаНаборЗаписей - набор проверяемых записей.
//
Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект) Экспорт
@@ -664,10 +664,11 @@
// *** ИменаТипов - Массив из Строка - полные имена типов (на английском).
// *** ПоляРегистров - Соответствие:
// **** Ключ - Строка - полное имя регистра, который ограничивается.
// **** Значение - Массив из Структура - со свойствами:
// Порядок полей соответствуют служебным полям Поле1, Поле2, ...
// **** Значение - Массив из Структура:
// ***** Поле - Строка - имя поля регистра.
// ***** Тип - ОписаниеТипов - типы поля регистра.
// Порядок полей в массиве соответствуют
// служебным полям Поле1, Поле2, ...
// *** ПоляРегистровПоТипам - Соответствие:
// **** Ключ - Строка - полное имя типа (на английском).
// **** Значение - Массив из Строка - полные имена полей, например,
@@ -837,7 +838,7 @@
// ТекстОграничения - Строка - текст ограничения, который будет разобран.
//
// Возвращаемое значение:
// см. УправлениеДоступом.СтруктураОграничения.
// см. УправлениеДоступом.СтруктураОграничения
//
Функция СтруктураОграниченияИзОписания(ПолноеИмя, ТекстОграничения) Экспорт
@@ -5874,10 +5875,12 @@
Функция КлючИЗначение(Структура)
Для каждого КлючИЗначение Из Структура Цикл
Для Каждого КлючИЗначение Из Структура Цикл
Возврат КлючИЗначение;
КонецЦикла;
Возврат "";
КонецФункции
// Для процедур ОбновитьНаборЗаписей, ОбновитьНовыеЗаписиНабораПоРазличнымНовымЗаписям.
@@ -7959,7 +7962,7 @@
// Универсальное ограничение доступа.
// Параметры:
// ОписаниеДанных - см. УправлениеДоступом.ЧтениеРазрешено.ОписаниеДанных
// ОписаниеДанных - см. УправлениеДоступом.ИзменениеРазрешено.ОписаниеДанных
// Изменение - Булево
// ВызыватьИсключение - Булево
// ПроверитьТолькоСтаруюВерсию - Булево
@@ -8155,6 +8158,8 @@
СообщитьОбОшибкеДоступа(ДанныеДляПредставления, СтараяВерсия, ПравоЧтения, ПравоИзменения, ЭтоНовый);
Возврат Ложь;
КонецФункции
// Для функции ДоступРазрешен.
@@ -8222,6 +8227,8 @@
СообщитьОбОшибкеДоступа(ДанныеДляПредставления, Ложь, Ложь, Ложь, Ложь);
Возврат Ложь;
КонецФункции
// Требуется, как начальная максимальная дата при планировании начального обновления доступа.
@@ -14059,6 +14066,15 @@
КонецПроцедуры
// Для процедуры ПодготовитьПланОбновления, ЗаписатьПоследнийОбновленныйЭлемент.
//
// Возвращаемое значение:
// Структура:
// * ПоследнийОбновленныйЭлемент - см. НачальныйЭлемент
// * ТочечноеЗадание - Структура:
// ** ПоКлючамДоступа - Соответствие
// ** ПоЗначениямПолей - Соответствие
// ** ПоЗначениямСГруппами - Соответствие
//
Функция СохраняемыеПараметрыЗадания(ЭтоОбновлениеПрав, ПараметрыОбновления, ПараметрыЗадания = Неопределено,
ПерезапускОбновления = Ложь, ОчиститьТочечноеЗадание = Ложь)
@@ -17403,10 +17419,11 @@
Иначе
Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОписаниеДанных);
КонецЕсли;
Объект = Объекты[0]; // СправочникОбъект
ЭлементыДанных = Новый ТаблицаЗначений;
ЭлементыДанных.Колонки.Добавить("ТекущаяСсылка", Новый ОписаниеТипов(
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТипЗнч(Объекты[0].Ссылка))));
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТипЗнч(Объект.Ссылка))));
Модель = Новый Структура;
Модель.Вставить("ЭлементыДанных", ЭлементыДанных);
@@ -17417,17 +17434,19 @@
ПоляТаблицОбъекта = ПараметрыОграничения.ПоляТаблицОбъекта;
Для Каждого Объект Из Объекты Цикл
Объект = Объект; // СправочникОбъект
ТекущаяСсылка = ПользователиСлужебный.СсылкаОбъекта(ОписаниеДанных);
ЭлементыДанных.Добавить().ТекущаяСсылка = ТекущаяСсылка;
Для Каждого ОписаниеТаблицы Из ПоляТаблицОбъекта Цикл
Таблица = Модель.Таблицы.Получить(ОписаниеТаблицы.ПолноеИмяТаблицы);
ОписаниеТаблицы = ОписаниеТаблицы; // см. НовыеПоляТаблицыОбъекта
Таблица = Модель.Таблицы.Получить(ОписаниеТаблицы.ПолноеИмяТаблицы); // ТаблицаЗначений
СписокПолей = ОписаниеТаблицы.СписокПолей;
Если Таблица = Неопределено Тогда
Таблица = ОписаниеТаблицы.ТаблицаСПолями.Получить();
Модель.Таблицы.Вставить(ОписаниеТаблицы.ПолноеИмяТаблицы, Таблица);
КонецЕсли;
Если ЗначениеЗаполнено(ОписаниеТаблицы.ТабличнаяЧасть) Тогда
Выгрузка = Объект[ОписаниеТаблицы.ТабличнаяЧасть].Выгрузить(, СписокПолей);
Выгрузка = Объект[ОписаниеТаблицы.ТабличнаяЧасть].Выгрузить(, СписокПолей); // ТаблицаЗначений
Выгрузка.Свернуть(СписокПолей);
Для Каждого Строка Из Выгрузка Цикл
НоваяСтрока = Таблица.Добавить();
@@ -20929,7 +20948,7 @@
// * ПоКлючамДоступа - см. ВедущийСписокПоКлючамДоступаИлиЗначениямСГруппами
// * ПоЗначениямСГруппами - см. ВедущийСписокПоКлючамДоступаИлиЗначениямСГруппами
//
Функция СвойстваСпискаКакВедущего(ПолноеИмя, ИдентификаторТранзакции = Неопределено, ПовторныйВызов = Ложь)
Функция СвойстваСпискаКакВедущего(ПолноеИмя, ИдентификаторТранзакции = Неопределено, ПовторныйВызов = Ложь) Экспорт
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
@@ -21122,7 +21141,8 @@
// Основная функция, возвращающая параметры, необходимые для проверки прав в момент записи элементов данных.
//
// Возвращаемое значение:
// Структура
// см. ПараметрыОграниченияПоСтруктуреОграничения
// см. РассчитанныеПараметрыОграничения
//
Функция ПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции = Неопределено, ДляВнешнихПользователей = Неопределено) Экспорт
@@ -21313,7 +21333,17 @@
КонецПроцедуры
// Для процедуры ДобавитьПараметрыОграниченияСписка.
Функция РассчитанныеПараметрыОграничения(ПолноеИмя, ОбщийКонтекст, ДействующиеПараметры)
//
// Возвращаемое значение:
// Структура:
// * Версия - Строка
// * ВедущиеСписки - Соответствие:
// ** Ключ - Строка - полное имя списка
// ** Значение - см. СвойстваСпискаКакВедущего
// * ДляПользователей - см. ПараметрыОграниченияПоСтруктуреОграничения
// * РезультатДляВнешнихПользователей - см. ПараметрыОграниченияПоСтруктуреОграничения
//
Функция РассчитанныеПараметрыОграничения(ПолноеИмя, ОбщийКонтекст, ДействующиеПараметры) Экспорт
ОписаниеОграничения = ОписаниеОграниченияДанных(ОбщийКонтекст, ПолноеИмя);
@@ -23642,8 +23672,8 @@
// * ВсеПоля - Массив
// * ТипыВсехПолей - Соответствие
// * НаборыПолей - Структура:
// * ДляПользователей
// * ДляВнешнихПользователей
// * ДляПользователей - Булево
// * ДляВнешнихПользователей - Булево
// * Имя - Строка - имя табличной части (есть только у полей табличной части)
//
Функция ОписаниеПолейВедущегоСписка()
@@ -24164,10 +24194,10 @@
Или ИмяКоллекцииТипа = "Задачи");
Если ИмяКоллекцииТипа = "РегистрыСведений" Тогда
МетаданныеРегистра = Метаданные.РегистрыСведений[СтрРазделить(Список, ".")[1]];
Результат.Вставить("СписокСПериодом",
МетаданныеРегистра = Метаданные.РегистрыСведений.Найти(СтрРазделить(Список, ".")[1]);
Результат.Вставить("СписокСПериодом", ?(МетаданныеРегистра = Неопределено, Ложь,
МетаданныеРегистра.ПериодичностьРегистраСведений
<> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический);
<> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический));
Иначе
Результат.Вставить("СписокСПериодом",
ИмяКоллекцииТипа = "РегистрыНакопления"
@@ -24653,7 +24683,7 @@
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(Контекст.Список) Тогда
Если СтрРазделить(Контекст.Список, ".").Количество() > 1 Тогда
ИмяОтдельногоРегистраКлючей = "КлючиДоступаКРегистру" + СтрРазделить(Контекст.Список, ".")[1];
Если Метаданные.РегистрыСведений.Найти(ИмяОтдельногоРегистраКлючей) = Неопределено Тогда
ИмяОтдельногоРегистраКлючей = "";
@@ -25869,7 +25899,8 @@
Если Не ПоляТаблиц.Свойство(ИмяТаблицыОбъекта) Тогда
ПоляТаблиц.Вставить(ИмяТаблицыОбъекта, Новый Массив);
КонецЕсли;
ПоляТаблиц[ИмяТаблицыОбъекта].Добавить(ИмяПоляТаблицы);
ПоляТаблицы = ПоляТаблиц[ИмяТаблицыОбъекта]; // Массив
ПоляТаблицы.Добавить(ИмяПоляТаблицы);
КонецЕсли;
Если Не ПоляТаблицОбъекта.Состав.Свойство(ИмяТаблицыОбъекта) Тогда
@@ -28132,7 +28163,8 @@
Процедура ДобавитьТекстЗапросаУстаревшихЭлементовДанных(Результат, Контекст)
Если Результат.ЭтоСсылочныйТип Тогда
ТипСсылки = ТипСсылкиПоПолномуИмениМетаданных(Результат.Список);
ТипСсылки = ?(ЗначениеЗаполнено(Результат.Версия),
ТипСсылкиПоПолномуИмениМетаданных(Результат.Список), Неопределено);
ТипыСсылок = УправлениеДоступомСлужебныйПовтИсп.ТипыПоляТаблицы("ОпределяемыйТип.ВладелецЗначенийКлючейДоступа");
Если ТипыСсылок.Получить(ТипСсылки) = Неопределено Тогда
@@ -417,7 +417,7 @@
////////////////////////////////////////////////////////////////////////////////
// Обработчики событий общей формы ФормаОтчета.
// См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки.
// См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки
Процедура ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя <> "Отчет.АнализПравДоступа" Тогда
@@ -472,6 +472,20 @@
КонецФункции
// Возвращаемое значение:
// Структура:
// * ВедущиеСпискиПроверенные - Соответствие:
// ** Ключ - Строка - полное имя списка
// ** Значение - см. УправлениеДоступомСлужебный.СвойстваСпискаКакВедущего
// * ОграниченияСписков - Соответствие:
// ** Ключ - Строка - полное имя списка
// ** Значение - см. УправлениеДоступомСлужебный.РассчитанныеПараметрыОграничения
// * ИдентификаторыТранзакции - Соответствие:
// ** Ключ - УникальныйИдентификатор - произвольный УИД.
// ** Значение - Булево - значение Истина.
// * ВсеВидыОграниченийПрав - Неопределено
// - Строка
//
Функция КэшПараметровОграничения(КлючДанныхПовторногоИспользования) Экспорт
Хранилище = Новый Структура;
@@ -594,6 +594,11 @@
КонецФункции
// Только для внутреннего использования.
// Параметры:
// Ссылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
// Сертификат - СертификатКриптографии
// ПараметрыРеквизитов - см. НовыеПараметрыРеквизитовСертификата
//
Процедура ПередНачаломРедактированияСертификатаКлюча(Ссылка, Сертификат, ПараметрыРеквизитов) Экспорт
Таблица = Новый ТаблицаЗначений;
@@ -605,14 +610,11 @@
ЭлектроннаяПодписьПереопределяемый.ПередНачаломРедактированияСертификатаКлюча(Ссылка, Сертификат, Таблица);
ПараметрыРеквизитов = Новый Структура;
ПараметрыРеквизитов = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитовСертификата();
Для каждого Строка Из Таблица Цикл
Параметры = Новый Структура;
Параметры.Вставить("ТолькоПросмотр", Строка.ТолькоПросмотр);
Параметры.Вставить("ПроверкаЗаполнения", Строка.ПроверкаЗаполнения);
Параметры.Вставить("Видимость", Строка.Видимость);
Параметры.Вставить("ЗначениеЗаполнения", Строка.ЗначениеЗаполнения);
Для Каждого Строка Из Таблица Цикл
Параметры = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитаСертификата();
ЗаполнитьЗначенияСвойств(Параметры, Строка);
ПараметрыРеквизитов.Вставить(Строка.ИмяРеквизита, Параметры);
КонецЦикла;
@@ -1005,6 +1007,22 @@
КонецФункции
// В ОС Linux и MacOS при создании менеджера криптографии
// требуется указывать путь к программе.
//
// Возвращаемое значение:
// Булево
//
Функция ТребуетсяПутьКПрограмме() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
Возврат ОбщегоНазначения.ЭтоLinuxСервер()
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Общие процедуры и функции управляемых форм.
@@ -1249,10 +1267,7 @@
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения:
// * СертификатПараметрыРеквизитов - Структура:
// ** Ключ - Строка
// ** Значение - Структура:
// *** ЗначениеЗаполнения - Структура
// * СертификатПараметрыРеквизитов - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитовСертификата
// Программа - Неопределено
// ДляШифрования - Булево
//
@@ -1280,7 +1295,7 @@
КонецЕсли;
Для каждого КлючИЗначение Из Форма.СертификатПараметрыРеквизитов Цикл
ИмяРеквизита = КлючИЗначение.Ключ;
Свойства = КлючИЗначение.Значение;
Свойства = КлючИЗначение.Значение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеПараметрыРеквизитаСертификата
Если ПропускаемыеРеквизиты.Получить(ИмяРеквизита) <> Неопределено Тогда
Продолжить;
КонецЕсли;
@@ -1638,7 +1653,7 @@
Свойства = Новый Структура("Тип, Путь", ОписаниеПрограммы.ТипПрограммы, "");
Если ОбщегоНазначения.ЭтоLinuxСервер() Тогда
Если ТребуетсяПутьКПрограмме() Тогда
ПутиКПрограммамНаСерверахLinux = ПутиКПрограммамНаСерверахLinux(ИмяКомпьютера());
Свойства.Путь = ПутиКПрограммамНаСерверахLinux.Получить(ОписаниеПрограммы.Ссылка);
Иначе
@@ -2202,7 +2217,7 @@
Возврат Неопределено;
КонецЕсли;
ЭтоLinux = ОбщегоНазначения.ЭтоLinuxСервер();
ЭтоLinux = ТребуетсяПутьКПрограмме();
Если ЭтоLinux Тогда
ПутиКПрограммамНаСерверахLinux = ПутиКПрограммамНаСерверахLinux(ИмяКомпьютера);
@@ -389,9 +389,13 @@
КонецПроцедуры
// См. также Контекст в ЭлектроннаяПодписьСлужебныйКлиент.КонтекстПоискаУстановленныхПрограмм
//
// Параметры:
// Контекст - см. ЭлектроннаяПодписьСлужебныйКлиент.КонтекстПоискаУстановленныхПрограмм
//
// Контекст - Структура:
// * Программы - см. ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаполнитьСписокПрограммДляПоиска
// * Индекс - Число
//
Процедура НайтиУстановленныеПрограммыНаСервереЦиклНачало(Контекст)
Если Контекст.Программы.Количество() <= Контекст.Индекс + 1 Тогда
// После цикла.
@@ -412,7 +416,7 @@
ПараметрыВыполнения.Вставить("Индекс", -1);
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
ПараметрыВыполнения.Вставить("ЭтоLinux", ОбщегоНазначения.ЭтоLinuxСервер());
ПараметрыВыполнения.Вставить("ЭтоLinux", ЭлектроннаяПодписьСлужебный.ТребуетсяПутьКПрограмме());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
@@ -18,6 +18,19 @@
КонецФункции
// В ОС Linux и MacOS при создании менеджера криптографии
// требуется указывать путь к программе.
//
// Возвращаемое значение:
// Булево
//
Функция ТребуетсяПутьКПрограмме() Экспорт
Возврат ОбщегоНазначенияКлиент.ЭтоLinuxКлиент()
Или ОбщегоНазначенияКлиент.ЭтоMacOSКлиент();
КонецФункции
// Продолжение процедуры ДатаПодписания.
Процедура ДатаПодписанияПослеЧтенияВБуферДвоичныхДанных(БуферДанныхПодписи, Контекст) Экспорт
@@ -141,7 +154,8 @@
ПараметрыВыполнения.Вставить("Индекс", -1);
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
ПараметрыВыполнения.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
ПараметрыВыполнения.Вставить("АлгоритмПодписи", "");
ПараметрыВыполнения.Вставить("ЭтоLinux", ТребуетсяПутьКПрограмме());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
ПараметрыВыполнения.Вставить("ИнтерактивныйРежим", Ложь);
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
@@ -157,7 +171,7 @@
Процедура НайтиУстановленныеПрограммыЦиклПродолжение(Менеджер, Контекст) Экспорт
ОписаниеПрограммы = Контекст.ОписаниеПрограммы;
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки; // Массив Из ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки; // Массив Из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
Если Менеджер <> Неопределено Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверкиНаКлиенте, "");
@@ -166,7 +180,7 @@
Возврат;
КонецЕсли;
Для каждого Ошибка Из Ошибки Цикл
Для Каждого Ошибка Из Ошибки Цикл
Прервать;
КонецЦикла;
@@ -1097,9 +1111,14 @@
Если Контекст.МенеджерКриптографии = Неопределено Тогда
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Контекст.ПоказатьОшибку
И Контекст.ОписаниеОшибкиНаСервере = Неопределено
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
Если Контекст.ПоказатьОшибку = Истина
И Контекст.ОписаниеОшибкиНаСервере = Неопределено
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда
ПараметрыСоздания.ПоказатьОшибку = Истина;
Иначе
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
КонецЕсли;
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
@@ -1123,7 +1142,10 @@
Если ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда
ПроверитьСертификатВМоделиСервиса(Контекст);
Иначе
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.ОписаниеОшибкиНаСервере);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Контекст.ОписаниеОшибкиНаКлиенте = Результат;
КонецЕсли;
ПроверитьСертификатПослеНеуспешнойПроверки(Контекст);
КонецЕсли;
Возврат;
КонецЕсли;
@@ -1251,23 +1273,16 @@
// Продолжение процедуры ПроверитьСертификат.
Процедура ПроверитьСертификатПослеНеуспешнойПроверки(Контекст)
Если Контекст.ОписаниеОшибкиНаКлиенте <> Неопределено
И Контекст.ОписаниеОшибкиНаСервере <> Неопределено Тогда
Если Контекст.ОписаниеОшибкиНаКлиенте = Неопределено
И Контекст.ОписаниеОшибкиНаСервере = Неопределено Тогда
Результат =
НСтр("ru = 'НА СЕРВЕРЕ:'")
+ Символы.ПС + Символы.ПС + Контекст.ОписаниеОшибкиНаСервере
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'НА КОМПЬЮТЕРЕ:'")
+ Символы.ПС + Символы.ПС + Контекст.ОписаниеОшибкиНаКлиенте;
ИначеЕсли Контекст.ОписаниеОшибкиНаКлиенте <> Неопределено Тогда
Результат = Контекст.ОписаниеОшибкиНаКлиенте;
ОбщееОписаниеОшибки = Неопределено;
Иначе
Результат = Контекст.ОписаниеОшибкиНаСервере;
ОбщееОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
Контекст.ОписаниеОшибкиНаКлиенте, Контекст.ОписаниеОшибкиНаСервере, Неопределено);
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Результат);
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ОбщееОписаниеОшибки);
КонецПроцедуры
@@ -1402,18 +1417,31 @@
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
ОписаниеОшибок.ЗаголовокОшибки = ЗаголовокОшибки;
ТекстОбщейОшибки = "";
Если Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент()
И Не ОбщегоНазначенияКлиент.ЭтоLinuxКлиент()
И Не ОбщегоНазначенияКлиент.ЭтоMacOSКлиент() Тогда
ТекстОбщейОшибки = НСтр("ru = 'Устройство не поддерживается.'");
СвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
СвойстваОшибки.НеПоддерживается = Истина;
КонецЕсли;
Если Не Подключено Тогда
ТекстОшибки =
ТекстОбщейОшибки =
НСтр("ru = 'В браузере требуется установить расширение
|для работы с электронной подписью и шифрованием.'");
СвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
СвойстваОшибки.Описание = ТекстОшибки;
СвойстваОшибки.НетРасширения = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ТекстОбщейОшибки) Тогда
СвойстваОшибки.Описание = ТекстОбщейОшибки;
ОписаниеОшибок.Общая = Истина;
ОписаниеОшибок.Ошибки.Добавить(СвойстваОшибки);
ОписаниеОшибок.ОписаниеОшибки = СокрЛП(ЗаголовокОшибки + Символы.ПС + ТекстОшибки);
ОписаниеОшибок.ОписаниеОшибки = СокрЛП(ЗаголовокОшибки + Символы.ПС + ТекстОбщейОшибки);
Если Контекст.ПоказатьОшибку = Неопределено Тогда
ОписаниеОшибки = ОписаниеОшибок;
@@ -1430,8 +1458,7 @@
Контекст.Вставить("ЗаголовокФормы", ЗаголовокФормы);
Контекст.Вставить("ОписаниеОшибок", ОписаниеОшибок);
// Здесь проверяется что это Linux или macOS клиент.
Контекст.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
Контекст.Вставить("ЭтоLinux", ТребуетсяПутьКПрограмме());
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Контекст.Программа, ОписаниеОшибок.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм);
@@ -4173,7 +4200,7 @@
Контекст.ТипКриптопровайдера = ОписаниеПрограммы.ТипПрограммы;
Контекст.ИмяКриптопровайдера = ИмяКриптопровайдера;
Если ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
Если Не ТребуетсяПутьКПрограмме() Тогда
ПутьКПрограмме = "";
Иначе
ПерсональныеНастройки = ЭлектроннаяПодписьКлиент.ПерсональныеНастройки();
@@ -4196,7 +4223,7 @@
Процедура ПослеУстановкиСвойстваКомпонентыПутьККриптопровайдеру(Контекст) Экспорт
Если ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
Если Не ТребуетсяПутьКПрограмме() Тогда
Контекст.ОбъектКомпоненты.НачатьУстановкуЗапретитьПользовательскийИнтерфейс(
Новый ОписаниеОповещения("ПослеУстановкиСвойстваЗапретитьПользовательскийИнтерфейс", ЭтотОбъект, Контекст),
Не ИспользуетсяИнтерактивныйРежимКриптографии(Контекст.МенеджерКриптографии));
@@ -38,6 +38,43 @@
#Область СлужебныеПроцедурыИФункции
// Возвращаемое значение:
// Структура:
// * ТолькоПросмотр - Булево - если установить Истина, редактирование будет запрещено.
// * ПроверкаЗаполнения - Булево - если установить Истина, заполнение будет проверяться.
// * Видимость - Булево - если установить Истина, реквизит станет невидимым.
// * ЗначениеЗаполнения - Произвольный - начальное значение реквизита нового объекта.
// - Неопределено - заполнение не требуется.
//
Функция НовыеПараметрыРеквизитаСертификата() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ТолькоПросмотр", Ложь);
Параметры.Вставить("ПроверкаЗаполнения", Ложь);
Параметры.Вставить("Видимость", Ложь);
Параметры.Вставить("ЗначениеЗаполнения", Неопределено);
Возврат Параметры;
КонецФункции
// АПК:558-выкл - №467.2.2 допустимо не вызывать сразу и на клиенте и на сервере, так как функция используется в
// вышестоящей клиент-серверной функции.
// Возвращаемое значение:
// Структура:
// * Наименование - см. НовыеПараметрыРеквизитаСертификата
// * Организация - см. НовыеПараметрыРеквизитаСертификата
// * УсиленнаяЗащитаЗакрытогоКлюча - см. НовыеПараметрыРеквизитаСертификата
//
Функция НовыеПараметрыРеквизитовСертификата() Экспорт
Возврат Новый Структура;
КонецФункции
// АПК:558-вкл.
Функция ОписаниеПрограммыПоИмениКриптопровайдера(ИмяКриптопровайдера, ОписанияПрограмм) Экспорт
ПрограммаНайдена = Ложь;
@@ -104,6 +141,7 @@
СвойстваОшибки.Вставить("ЗаголовокОшибки", "");
СвойстваОшибки.Вставить("Описание", "");
СвойстваОшибки.Вставить("ИзИсключения", Ложь);
СвойстваОшибки.Вставить("НеПоддерживается", Ложь);
СвойстваОшибки.Вставить("НетРасширения", Ложь);
СвойстваОшибки.Вставить("КАдминистратору", Ложь);
СвойстваОшибки.Вставить("Инструкция", Ложь);
@@ -157,13 +195,15 @@
// Только для внутреннего использования.
//
// Параметры:
// ОписаниеПрограммы - см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограмм
// ЭтоLinux - Булево
// Ошибки - Массив
// ЭтоСервер - Булево
// ПутиКПрограммамНаСерверахLinux - Строка
// ОписаниеПрограммы - см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограмм
// ЭтоLinux - Булево
// Ошибки - Массив
// ЭтоСервер - Булево
// ПутиКПрограммамНаСерверахLinux - Строка
//
// Возвращаемое значение:
// Структура, Неопределено:
// Неопределено
// Структура:
// * ПутьКПрограмме - Строка
//
Функция МенеджерКриптографииСвойстваПрограммы(ОписаниеПрограммы, ЭтоLinux, Ошибки, ЭтоСервер,
@@ -205,6 +245,18 @@
КонецФункции
// Только для внутреннего использования.
// Параметры:
// ОписаниеПрограммы - Структура:
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
// АлгоритмыПодписи - Массив Из Строка
// АлгоритмПодписи - Строка
// Ошибки - Массив Из см. НовыеСвойстваОшибки
// ЭтоСервер - Булево
// ДобавлятьОшибку - Булево
//
// Возвращаемое значение:
// Булево
//
Функция МенеджерКриптографииАлгоритмПодписиПоддерживается(ОписаниеПрограммы, АлгоритмыПодписи,
АлгоритмПодписи, Ошибки, ЭтоСервер, ДобавлятьОшибку) Экспорт
@@ -246,6 +298,10 @@
//
Функция МенеджерКриптографииАлгоритмыУстановлены(ОписаниеПрограммы, Менеджер, Ошибки) Экспорт
Если ОписаниеПрограммы.ИмяПрограммы = "Default" Тогда
Возврат Истина;
КонецЕсли;
Если ВыполненОбходНарушенияОбратнойСовместимостиВViPNetCSP_4_4(ОписаниеПрограммы, Менеджер) Тогда
Возврат Истина;
КонецЕсли;
@@ -483,6 +539,9 @@
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
// Ошибка - см. НовоеОписаниеОшибок
//
// Возвращаемое значение:
// СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
Функция ЗаписатьСертификатВСправочник(Контекст, Ошибка) Экспорт
Контекст.ДополнительныеПараметры.Программа = Контекст.ОписаниеПрограммы.Ссылка;
@@ -811,6 +870,62 @@
КонецФункции
// Только для внутреннего использования.
Функция ОбщееОписаниеОшибки(ОшибкаНаКлиенте, ОшибкаНаСервере, ЗаголовокОшибки = "") Экспорт
ОписаниеОшибкиНаКлиенте = УпрощеннаяСтруктураОшибки(ОшибкаНаКлиенте, ЗаголовокОшибки);
ОписаниеОшибкиНаСервере = УпрощеннаяСтруктураОшибки(ОшибкаНаСервере, ЗаголовокОшибки);
Если Не ЗначениеЗаполнено(ОписаниеОшибкиНаКлиенте.ОписаниеОшибки)
И Не ЗначениеЗаполнено(ОписаниеОшибкиНаСервере.ОписаниеОшибки) Тогда
ОбщееОписаниеОшибки = НСтр("ru = 'Неизвестная ошибка'");
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибкиНаКлиенте.ОписаниеОшибки)
Или ОписаниеОшибкиНаКлиенте.НеПоддерживается
И ЗначениеЗаполнено(ОписаниеОшибкиНаСервере.ОписаниеОшибки) Тогда
Если ЗначениеЗаполнено(ОписаниеОшибкиНаСервере.ЗаголовокОшибки)
И ЗначениеЗаполнено(ОписаниеОшибкиНаСервере.Описание) Тогда
ОбщееОписаниеОшибки =
ОписаниеОшибкиНаСервере.ЗаголовокОшибки
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'НА СЕРВЕРЕ:'")
+ Символы.ПС + Символы.ПС + ОписаниеОшибкиНаСервере.Описание;
Иначе
ОбщееОписаниеОшибки =
НСтр("ru = 'НА СЕРВЕРЕ:'")
+ Символы.ПС + Символы.ПС + ОписаниеОшибкиНаСервере.ОписаниеОшибки;
КонецЕсли;
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибкиНаСервере.ОписаниеОшибки) Тогда
ОбщееОписаниеОшибки = ОписаниеОшибкиНаКлиенте.ОписаниеОшибки;
Иначе
Если ОписаниеОшибкиНаКлиенте.ЗаголовокОшибки = ОписаниеОшибкиНаСервере.ЗаголовокОшибки
И ЗначениеЗаполнено(ОписаниеОшибкиНаКлиенте.ЗаголовокОшибки) Тогда
ОбщееОписаниеОшибки = ОписаниеОшибкиНаКлиенте.ЗаголовокОшибки + Символы.ПС + Символы.ПС;
ТекстОшибкиНаКлиенте = ОписаниеОшибкиНаКлиенте.Описание;
ТекстОшибкиНаСервере = ОписаниеОшибкиНаСервере.Описание;
Иначе
ОбщееОписаниеОшибки = "";
ТекстОшибкиНаКлиенте = ОписаниеОшибкиНаКлиенте.ОписаниеОшибки;
ТекстОшибкиНаСервере = ОписаниеОшибкиНаСервере.ОписаниеОшибки;
КонецЕсли;
ОбщееОписаниеОшибки = ОбщееОписаниеОшибки
+ НСтр("ru = 'НА СЕРВЕРЕ:'")
+ Символы.ПС + Символы.ПС + ТекстОшибкиНаСервере
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'НА КОМПЬЮТЕРЕ:'")
+ Символы.ПС + Символы.ПС + ТекстОшибкиНаКлиенте;
КонецЕсли;
Возврат ОбщееОписаниеОшибки;
КонецФункции
// Только для внутреннего использования.
Функция ДатаПодписанияУниверсальная(БуферДвоичныхДанныхПодписи) Экспорт
@@ -1252,6 +1367,55 @@
КонецФункции
// Для функции ОбщееОписаниеОшибки.
Функция УпрощеннаяСтруктураОшибки(Ошибка, ЗаголовокОшибки)
УпрощеннаяСтруктура = Новый Структура;
УпрощеннаяСтруктура.Вставить("ОписаниеОшибки", "");
УпрощеннаяСтруктура.Вставить("ЗаголовокОшибки", "");
УпрощеннаяСтруктура.Вставить("Описание", "");
УпрощеннаяСтруктура.Вставить("НеПоддерживается", Ложь);
Если ТипЗнч(Ошибка) = Тип("Строка") Тогда
УпрощеннаяСтруктура.ОписаниеОшибки = СокрЛП(Ошибка);
Возврат УпрощеннаяСтруктура;
ИначеЕсли ТипЗнч(Ошибка) <> Тип("Структура") Тогда
Возврат УпрощеннаяСтруктура;
КонецЕсли;
Если Ошибка.Свойство("ОписаниеОшибки") Тогда
УпрощеннаяСтруктура.ОписаниеОшибки = СокрЛП(Ошибка.ОписаниеОшибки);
КонецЕсли;
Если Ошибка.Свойство("ЗаголовокОшибки") Тогда
Если Ошибка.Свойство("Ошибки") И Ошибка.Ошибки.Количество() = 1 Тогда
Если ЗаголовокОшибки <> Неопределено Тогда
УпрощеннаяСтруктура.ЗаголовокОшибки = Ошибка.ЗаголовокОшибки;
КонецЕсли;
СвойстваОшибки = Ошибка.Ошибки[0]; // см. НовыеСвойстваОшибки
Описание = "";
Если ЗначениеЗаполнено(СвойстваОшибки.Программа) Тогда
Описание = Описание + Строка(СвойстваОшибки.Программа) + ":" + Символы.ПС;
КонецЕсли;
Описание = Описание + СвойстваОшибки.Описание;
УпрощеннаяСтруктура.Описание = СокрЛП(Описание);
УпрощеннаяСтруктура.ОписаниеОшибки = СокрЛП(УпрощеннаяСтруктура.ЗаголовокОшибки + Символы.ПС + Описание);
Если СвойстваОшибки.НеПоддерживается Тогда
УпрощеннаяСтруктура.НеПоддерживается = Истина;
КонецЕсли;
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(ЗаголовокОшибки) Тогда
УпрощеннаяСтруктура.ЗаголовокОшибки = ЗаголовокОшибки;
УпрощеннаяСтруктура.Описание = УпрощеннаяСтруктура.ОписаниеОшибки;
УпрощеннаяСтруктура.ОписаниеОшибки = ЗаголовокОшибки
+ Символы.ПС + УпрощеннаяСтруктура.ОписаниеОшибки;
КонецЕсли;
Возврат УпрощеннаяСтруктура;
КонецФункции
// Для процедуры ДатаПодписанияУниверсальная.
Функция ЭтоЦифры(Строка)
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8ff0cbf5-13a2-4e10-9dd7-2ba2c0cd9a5f">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8c87c512-6ae4-4111-b01f-b59ffc2d5769">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="55f12360-a2cf-443f-aef3-620d9382379f"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="85168f69-648d-460c-a2c8-57f6096a9bb0"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e562a003-d4ae-41fb-bad3-f5c18a9a0b3c"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="9d067948-23ae-4a13-921b-7b16ac3320f5"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="81dff8fe-dc8a-42ee-915f-37e1144ac9fa"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="740e9d95-4528-4d0d-8297-0c05fc1d86a3"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="10276437-0976-4006-806e-705aef3088da"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="9510e390-c14b-4a95-98ea-d3339d911826"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="6b89390b-f295-4c9a-ad3a-94fbf4d931ab"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="4e5ed0b8-c78f-48f8-b538-61ef41cd73c7"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="eb4d4929-b06a-432c-b019-052890d60d51"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="07c732d5-3b8f-44e1-b41c-920a600e41bc"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4ed1c33c-9b4b-4dcf-be3c-6de1f8482ba2"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="3c73e931-7b98-40f6-8fbc-7bac30aa4bd3"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.3.179</version>
<version>3.1.3.187</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,2ac99d46-4e85-4bf0-bbcf-7ff68bf106ad,1,5197e798-f4f3-49c5-bcc1-3b08a70d5474,"3.1.3.179","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6168,1,0,8ff0cbf5-13a2-4e10-9dd7-2ba2c0cd9a5f,8ff0cbf5-13a2-4e10-9dd7-2ba2c0cd9a5f,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,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,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
{6,1,1,8d964ca0-2f83-4089-b07c-5591c401b588,1,d5cd7ec8-a228-44d4-9ce2-fdbd49cad8fd,"3.1.3.187","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6170,1,0,8c87c512-6ae4-4111-b01f-b59ffc2d5769,8c87c512-6ae4-4111-b01f-b59ffc2d5769,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,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,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -1561,19 +1561,8 @@
Подсистемы = ОбработчикиОбновления.Выгрузить(,ИменаКолонок);
Подсистемы.Свернуть(ИменаКолонок);
ПереопределенияОчереди = ОбработчикиСПереопределеннойОчередью();
РазрабатываемыеПодсистемы = РазрабатываемыеПодсистемы();
Для Каждого Библиотека Из ИтерацииОбновления Цикл
Если ПереопределенаОчередьБиблиотеки(Библиотека, ПереопределенияОчереди) Тогда
Продолжить;
КонецЕсли;
ЗаполнятьОчередь = РазрабатываемыеПодсистемы.Найти(Библиотека.Подсистема) <> Неопределено;
Если НЕ ЗаполнятьОчередь Тогда
Продолжить;
КонецЕсли;
Отбор = Новый Структура("РежимВыполнения", "Отложенно");
Отбор.Вставить("ОчередьОтложеннойОбработки", 0);
ОтложенныеОбработчики = Библиотека.Обработчики.НайтиСтроки(Отбор); // см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления()
@@ -1592,70 +1581,6 @@
КонецПроцедуры
// Параметры:
// Библиотека - Строка
// ПереопределенияОчереди - см. ОбработчикиСПереопределеннойОчередью
// Возвращаемое значение:
// Булево
//
Функция ПереопределенаОчередьБиблиотеки(Библиотека, ПереопределенияОчереди)
ОтборПоПодсистеме = Новый Структура("Подсистема", Библиотека.Подсистема);
НайденныеПереопределения = ПереопределенияОчереди.НайтиСтроки(ОтборПоПодсистеме);
Для каждого Переопределение Из НайденныеПереопределения Цикл
Отбор = Новый Структура;
Отбор.Вставить("Версия", Переопределение.Версия);
Отбор.Вставить("Процедура", Переопределение.Процедура);
Если ЗначениеЗаполнено(Переопределение.Идентификатор) Тогда
Отбор.Вставить("Идентификатор", Новый УникальныйИдентификатор(Переопределение.Идентификатор));
КонецЕсли;
НайденныеОбработчики = Библиотека.Обработчики.НайтиСтроки(Отбор);
Для Каждого Обработчик Из НайденныеОбработчики Цикл
Обработчик.ОчередьОтложеннойОбработки = Переопределение.ОчередьУстановленная;
КонецЦикла;
КонецЦикла;
Возврат НайденныеПереопределения.Количество() > 0;
КонецФункции
// Параметры:
// ИменаБиблиотек - Неопределено
// Возвращаемое значение:
// ТаблицаЗначений:
// * Подсистема - Строка
// * Процедура - Строка
// * Идентификатор - Строка
// * РежимВыполнения - Строка
// * Версия - Строка
// * ВерсияЧислом - Число
// * НоваяОчередь - Строка
// * ОчередьОтложеннойОбработки - Строка
// * Ссылка - Строка
//
Функция ОбработчикиСПереопределеннойОчередью(ИменаБиблиотек = Неопределено)
Если ИменаБиблиотек = Неопределено Тогда
ИменаБиблиотек = РазрабатываемыеПодсистемы();
КонецЕсли;
ТекстыЗапросов = Новый Массив;
ТекстыЗапросов.Добавить(ТекстВременнойТаблицыОбработчиков());
ТекстыЗапросов.Добавить(ТекстЗапросаПереопределенныхОчередейОтложенныхОбработчиков());
Запрос = Новый Запрос;
Запрос.Текст = СтрСоединить(ТекстыЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
Запрос.УстановитьПараметр("Обработчики", ОбработчикиОбновления.Выгрузить());
Запрос.УстановитьПараметр("Параллельно", "Параллельно");
Запрос.УстановитьПараметр("Отложенно", "Отложенно");
Запрос.УстановитьПараметр("РазрабатываемыеПодсистемы", ИменаБиблиотек);
Обработчики = Запрос.Выполнить().Выгрузить();
Возврат Обработчики;
КонецФункции
Функция ТекстЗапросаПереопределенныхОчередейОтложенныхОбработчиков()
Возврат
@@ -1890,6 +1890,151 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаФайлы</name>
<id>147</id>
<items xsi:type="form:FormField">
<name>УдалятьФайлы</name>
<id>149</id>
<title>
<key>ru</key>
<value>Автоматически удалять файлы обрабатываемых объектов</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.УдалятьФайлы</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTip>
<key>ru</key>
<value>Подходит для случаев, когда выполняется скрытие не по всем объектам конфигурации, а только по выбранным.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>УдалятьФайлыРасширеннаяПодсказка</name>
<id>151</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>УдалятьФайлыКонтекстноеМеню</name>
<id>150</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Файлы</value>
</title>
<extendedTooltip>
<name>ГруппаФайлыРасширеннаяПодсказка</name>
<id>148</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПерсональныеНастройки</name>
<id>152</id>
<items xsi:type="form:FormField">
<name>ОчищатьПерсональныеНастройкиПользователей</name>
<id>154</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ОчищатьПерсональныеНастройкиПользователей</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<extendedTooltip>
<name>ОчищатьПерсональныеНастройкиПользователейРасширеннаяПодсказка</name>
<id>156</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОчищатьПерсональныеНастройкиПользователейКонтекстноеМеню</name>
<id>155</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Персональные настройки</value>
</title>
<extendedTooltip>
<name>ГруппаПерсональныеНастройкиРасширеннаяПодсказка</name>
<id>153</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -462,6 +462,8 @@
Объект.ПравилоСтрока = ПравилаОбработки.Строка;
Объект.ПравилоХранилищеЗначений = ПравилаОбработки.ХранилищаЗначений;
ПредставлениеПравилаЧисло = ПравилаОбработки.Числа;
Объект.УдалятьФайлы = ПравилаОбработки.УдалятьФайлы;
Объект.ОчищатьПерсональныеНастройкиПользователей = ПравилаОбработки.ОчищатьПерсональныеНастройкиПользователей;
ЗначениеЧисло = 1;
ЗначениеДата = 1;
@@ -572,6 +574,8 @@
ПравилаОбработки.Вставить("ПравилоБулево");
ПравилаОбработки.Вставить("ПравилоДата");
ПравилаОбработки.Вставить("ПравилоХранилищеЗначений");
ПравилаОбработки.Вставить("УдалятьФайлы");
ПравилаОбработки.Вставить("ОчищатьПерсональныеНастройкиПользователей");
Если ПредставлениеПравилаЧисло = "Умножить"
Или ПредставлениеПравилаЧисло = "Разделить"
@@ -674,14 +678,8 @@
Модуль = Неопределено;
КонецЕсли;
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Общий модуль ""%1"" не найден.'"), Имя);
КонецЕсли;
#Иначе
Модуль = Вычислить(Имя);
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Общий модуль ""%1"" не найден.'"), Имя);
КонецЕсли;
#КонецЕсли
Возврат Модуль;
@@ -36,6 +36,13 @@
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПравилаОбработки);
ОчищатьДвоичныеДанныеФайлов = Ложь;
Если УдалятьФайлы Тогда
РегистрДанныхФайловВыбранДляОчистки = ПроверитьРегистрДляУдаленияФайловВыбран(ДеревоОбрабатываемыхОбъектов);
ОчищатьДвоичныеДанныеФайлов = (НЕ РегистрДанныхФайловВыбранДляОчистки);
КонецЕсли;
ПараметрыОтбора.Вставить("ОчищатьДвоичныеДанныеФайлов", ОчищатьДвоичныеДанныеФайлов);
Для Каждого ТипМетаданных Из ДеревоОбрабатываемыхОбъектов.Строки Цикл
Если ТипМетаданных.Пометка = 0 Тогда
@@ -72,6 +79,10 @@
КонецЕсли;
Если ОчищатьПерсональныеНастройкиПользователей Тогда
ОчиститьПерсональныеНастройкиПользователей();
КонецЕсли;
ПоместитьВоВременноеХранилище(Истина, АдресХранилища);
КонецПроцедуры
@@ -449,6 +460,7 @@
КонецЕсли;
ОбрабатываемыйОбъект = Неопределено;
Пока Истина Цикл
Если Результат.Количество() = 0 Тогда
@@ -604,6 +616,9 @@
Если ВыполнитьЗаписьОбъекта Тогда
ЗаписатьДанные(ОбрабатываемыйОбъект, ЗначениеЗаполнено(Субъекты));
Если ПараметрыОтбора.ОчищатьДвоичныеДанныеФайлов Тогда
УдалитьДвоичныеДанныеФайловОбъекта(ОбрабатываемыйОбъект);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Субъекты) И ВключеноВерсионирование Тогда
@@ -627,6 +642,10 @@
КонецЦикла;
Если УдалятьФайлы Тогда
УдалитьФайлыОбъектаМетаданных(ОбрабатываемыйОбъект, ОбъектМетаданных, ПараметрыОтбора);
КонецЕсли;
КонецПроцедуры
Функция ДанныеОбъектаМетаданных(ОбъектМетаданных, ТекущаяСсылка = "")
@@ -648,6 +667,116 @@
КонецФункции
// Параметры:
// ОбъектМетаданных - ОбъектМетаданных
Процедура УдалитьФайлыОбъектаМетаданных(ВладелецФайла, ОбъектМетаданных, ПараметрыОтбора)
Если ВладелецФайла = Неопределено Тогда
Возврат;
КонецЕсли;
Если СтрЗаканчиваетсяНа(ОбъектМетаданных.Имя, "ПрисоединенныеФайлы") Тогда
Возврат;
КонецЕсли;
МодульРаботаСФайламиСлужебный = ОбщийМодуль("РаботаСФайламиСлужебный");
Если МодульРаботаСФайламиСлужебный = Неопределено Тогда
Возврат;
КонецЕсли;
ИмяСправочникаХранилищаФайлов = МодульРаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов(ВладелецФайла);
Если ПустаяСтрока(ИмяСправочникаХранилищаФайлов) Тогда
Возврат;
КонецЕсли;
ПолноеИмяСправочника = "Справочник." + ИмяСправочникаХранилищаФайлов;
ДеревоОбрабатываемыхОбъектов = ОбъектМетаданных.Владелец();
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("ПолноеИмя", ПолноеИмяСправочника);
МассивСтрок = ДеревоОбрабатываемыхОбъектов.Строки.НайтиСтроки(СтруктураПоиска, Истина);
Если МассивСтрок.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СтрокаСправочникаФайлов = МассивСтрок[0];
Если СтрокаСправочникаФайлов.Пометка = 1 Тогда
Возврат;
КонецЕсли;
УстановитьПометкуДляСтрокДерева(СтрокаСправочникаФайлов.Строки, 1);
ОбработатьОбъектМетаданных(СтрокаСправочникаФайлов, ПараметрыОтбора);
КонецПроцедуры
Процедура УстановитьПометкуДляСтрокДерева(КоллекцияСтрок, Пометка)
Для Каждого Строка Из КоллекцияСтрок Цикл
Строка.Пометка = Пометка;
УстановитьПометкуДляСтрокДерева(Строка.Строки, Пометка)
КонецЦикла;
КонецПроцедуры
Функция ПроверитьРегистрДляУдаленияФайловВыбран(ДеревоОбрабатываемыхОбъектов)
ИмяРегистраДвоичныхДанных = "ДвоичныеДанныеФайлов";
Если Метаданные.НайтиПоПолномуИмени("РегистрСведений." + ИмяРегистраДвоичныхДанных) = Неопределено Тогда
Возврат Истина;
КонецЕсли;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("ПолноеИмя", "РегистрСведений." + ИмяРегистраДвоичныхДанных);
МассивСтрок = ДеревоОбрабатываемыхОбъектов.Строки.НайтиСтроки(СтруктураПоиска, Истина);
Если МассивСтрок.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
СтрокаРегистра = МассивСтрок[0];
Возврат (СтрокаРегистра.Пометка = 1);
КонецФункции
Процедура УдалитьДвоичныеДанныеФайловОбъекта(ОбрабатываемыйОбъект)
Если НЕ СтрЗаканчиваетсяНа(ОбрабатываемыйОбъект.Метаданные().Имя, "ПрисоединенныеФайлы") Тогда
Возврат;
КонецЕсли;
ИмяРегистраДвоичныхДанных = "ДвоичныеДанныеФайлов";
Если Метаданные.НайтиПоПолномуИмени("РегистрСведений." + ИмяРегистраДвоичныхДанных) = Неопределено Тогда
Возврат;
КонецЕсли;
НаборЗаписей = РегистрыСведений[ИмяРегистраДвоичныхДанных].СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Файл.Установить(ОбрабатываемыйОбъект.Ссылка);
НаборЗаписей.Прочитать();
ВыполнитьЗаписьОбъекта = Ложь;
Для Каждого Запись Из НаборЗаписей Цикл
Запись.ДвоичныеДанныеФайла = Неопределено;
ВыполнитьЗаписьОбъекта = Истина;
КонецЦикла;
Если ВыполнитьЗаписьОбъекта Тогда
ЗаписатьДанные(НаборЗаписей);
КонецЕсли;
КонецПроцедуры
Процедура ОчиститьПерсональныеНастройкиПользователей()
ХранилищеПользовательскихНастроекОтчетов.Удалить(Неопределено, Неопределено, Неопределено);
ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, Неопределено);
ХранилищеНастроекДанныхФорм.Удалить(Неопределено, Неопределено, Неопределено);
ХранилищеОбщихНастроек.Удалить(Неопределено, Неопределено, Неопределено);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции формирования дерева метаданных.
@@ -916,6 +1045,7 @@
КонецЦикла;
Представление = " (" + Представление + ")";
Возврат Представление;
КонецФункции
@@ -1307,15 +1437,32 @@
Правила = Новый Структура;
Правила.Вставить("Строка", "СлучайноеЗначение");
Правила.Вставить("Дата", "СлучайноеЗначение");
Правила.Вставить("Дата", "НеИзменять");
Правила.Вставить("Булево", "НеИзменять");
Правила.Вставить("ХранилищаЗначений", "Очистить");
Правила.Вставить("Числа", "СлучайноеЗначение");
Правила.Вставить("УдалятьФайлы", Истина);
Правила.Вставить("ОчищатьПерсональныеНастройкиПользователей", Истина);
Возврат Правила;
КонецФункции
Функция ОбщийМодуль(Имя)
Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
// АПК:488-выкл ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно.
УстановитьБезопасныйРежим(Истина);
Модуль = Вычислить(Имя);
// АПК:488-вкл
Иначе
Модуль = Неопределено;
КонецЕсли;
Возврат Модуль;
КонецФункции
#КонецОбласти
#Иначе
@@ -81,6 +81,30 @@
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="52f065fe-556a-47cd-82b1-c56d7894df30">
<name>ОчищатьПерсональныеНастройкиПользователей</name>
<synonym>
<key>ru</key>
<value>Очищать персональные настройки пользователей</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="186efec4-1343-4234-a9b6-c8d8096faf76">
<name>УдалятьФайлы</name>
<synonym>
<key>ru</key>
<value>Удалять файлы</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</attributes>
<forms uuid="68598d98-0c59-4cda-b0b2-6901d3aff88b">
<name>Форма</name>
<synonym>
@@ -351,7 +351,7 @@
<id>65</id>
<title>
<key>ru</key>
<value>Выполнять полную проверку возможности удаления и не удаляет объекты при наличии мест использования.
<value>Выполнять полную проверку возможности удаления и не удалять объекты при наличии мест использования.
Подходит для удаления одиночных объектов.</value>
</title>
<type>Label</type>
@@ -61,7 +61,7 @@
УстановитьСостояниеВыбораПомеченныхНаУдаление();
УстановитьУсловноеОформление();
УстановитьСписокДействийМестИспользования();
УстановитьСписокДействийМестИспользования(ЭтотОбъект);
ТолькоПросмотр = Истина;
КонецПроцедуры
@@ -681,24 +681,51 @@
&НаКлиенте
Процедура ЗарегистрироватьДействиеМестаИспользования(МестоИспользования, Действие, Параметр = Неопределено)
МестоИспользования.Действие = Действие;
МестоИспользования.ДействиеПредставление = ?(Параметр = Неопределено,
ДействияМестИспользованияНеудаленных.НайтиПоЗначению(МестоИспользования.Действие),
ДействиеПредставление = ?(Параметр = Неопределено,
ДействияМестИспользованияНеудаленных.НайтиПоЗначению(Действие),
ПредставлениеКомандыЗаменитьНа(МестоИспользования, Параметр));
Если Действие <> Неопределено Тогда
Успешно = Истина;
ЗарегистрированноеДействие = ТаблицаДействий.НайтиСтроки(Новый Структура("ОбнаруженныйСсылка",МестоИспользования.ОбнаруженныйСсылка));
Если ЗарегистрированноеДействие.Количество() = 0 Тогда
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = МестоИспользования.Действие;
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ОбнаруженныйСсылка = МестоИспользования.ОбнаруженныйСсылка;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
// Добавление еще одной замены
ИначеЕсли ЗарегистрированноеДействие[0].Действие <> "Удалить" И ЗарегистрированноеДействие[0].Источник <> МестоИспользования.ОбнаруженныйСсылка Тогда
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
// Удаление
ИначеЕсли ЗарегистрированноеДействие[0].Действие = Действие Тогда
Для каждого УдаляемоеДействие Из ЗарегистрированноеДействие Цикл
ТаблицаДействий.Удалить(УдаляемоеДействие);
КонецЦикла;
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ОбнаруженныйСсылка = МестоИспользования.ОбнаруженныйСсылка;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
Иначе
ЗарегистрированноеДействие = ТаблицаДействий[0];
ЗарегистрированноеДействие.Действие = МестоИспользования.Действие;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
СообщениеПользователю = НСтр("ru='Для места использования %1 нельзя выбрать действие %2.'");
СообщениеПользователю = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеПользователю,
МестоИспользования.ОбнаруженныйСсылка,
МестоИспользования.ДействиеПредставление);
Состояние(СообщениеПользователю);
Успешно = Ложь;
КонецЕсли;
Если Успешно Тогда
МестоИспользования.Действие = Действие;
МестоИспользования.ДействиеПредставление = ДействиеПредставление;
КонецЕсли;
КонецЕсли;
@@ -809,14 +836,15 @@
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьСписокДействийМестИспользования()
ДействияМестИспользованияНеудаленных.Добавить("Удалить", "Удалить");
ДействияМестИспользованияНеудаленных.Добавить("ЗаменитьСсылку", "Заменить %ПредставлениеСсылка% на");
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьСписокДействийМестИспользования(Форма)
Форма.ДействияМестИспользованияНеудаленных.Очистить();
Форма.ДействияМестИспользованияНеудаленных.Добавить("Удалить", "Удалить");
Форма.ДействияМестИспользованияНеудаленных.Добавить("ЗаменитьСсылку", "Заменить %ПредставлениеСсылка% на");
Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Очистить();
Для Каждого ЭлементСписка Из ДействияМестИспользованияНеудаленных Цикл
Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление);
Форма.Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Очистить();
Для Каждого ЭлементСписка Из Форма.ДействияМестИспользованияНеудаленных Цикл
Форма.Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление);
КонецЦикла;
КонецПроцедуры
@@ -884,7 +912,7 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВыбранноеДействиеНадПричинойНеудаления(Форма, ПричинаНеудаления, Действие = "")
Процедура УстановитьВыбранноеДействиеНадПричинойНеудаления(Форма, Знач ПричинаНеудаления, Действие = "")
Если ПричинаНеудаления.ЭтоОшибка Тогда
Возврат;
КонецЕсли;
@@ -951,8 +979,19 @@
КонецЕсли;
Если ЗначениеЗаполнено(ТекущиеДанные.ОбнаруженныйСсылка) Тогда
Элементы.СвязиНеУдаленныхДействие.СписокВыбора[1].Представление = ПредставлениеКомандыЗаменитьНа(ТекущиеДанные);
Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Очистить();
Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Добавить("Удалить", ПредставлениеКомандыУдалить(ТекущиеДанные));
Действия = ТаблицаДействий.НайтиСтроки(Новый Структура("ОбнаруженныйСсылка", ТекущиеДанные.ОбнаруженныйСсылка));
Если НЕ(Действия.Количество() > 0
И Действия[0].Действие = "Удалить"
И Действия[0].Источник <> ТекущиеДанные.УдаляемыйСсылка) Тогда
Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Добавить("ЗаменитьСсылку", ПредставлениеКомандыЗаменитьНа(ТекущиеДанные));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
@@ -971,6 +1010,13 @@
Возврат ПредставлениеКомандыЗаменитьНа;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеКомандыУдалить(ТекущиеДанные)
Представление = "Удалить " + ТекущиеДанные.Представление;
Возврат Представление;
КонецФункции
#КонецОбласти
&НаКлиенте
@@ -506,7 +506,11 @@
&НаСервере
Процедура УстановитьСсылкуНаОригинал()
Документ = Запись.Ссылка.ПолучитьОбъект();
// Для отключения проверки конфигурации.
СвойстваЗаписи = Новый Структура("Ссылка");
ЗаполнитьЗначенияСвойств(СвойстваЗаписи, Запись);
Документ = СвойстваЗаписи.Ссылка.ПолучитьОбъект();
ТипДокумента = Метаданные.НайтиПоПолномуИмени(ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Ссылка));
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") Тогда
@@ -100,7 +100,7 @@
//
Функция ПараметрыРасшифровки(АдресДанныхРасшифровки, Расшифровка) Экспорт
ДанныеРасшифровки = ПолучитьИзВременногоХранилища(АдресДанныхРасшифровки);
ДанныеРасшифровки = ПолучитьИзВременногоХранилища(АдресДанныхРасшифровки); // ДанныеРасшифровкиКомпоновкиДанных
ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Расшифровка];
СписокПолей = Новый Соответствие;
@@ -30,15 +30,7 @@
КонецПроцедуры
// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
// См. также: ФормаКлиентскогоПриложения.ПриСозданииНаСервере в синтакс-помощнике
// и ОтчетыПереопределяемый.ПриСозданииНаСервере.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма отчета.
// Отказ - Булево - передается из параметров обработчика "как есть".
// СтандартнаяОбработка - Булево - передается из параметров обработчика "как есть".
//
// См. ОтчетыПереопределяемый.ПриСозданииНаСервере
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
Если ЗначениеЗаполнено(Форма.НастройкиОтчета.ВариантСсылка) Тогда
@@ -402,20 +394,14 @@
ТекстЗапроса =
"ВЫБРАТЬ
| Пользователи.Ссылка КАК Ссылка,
| НЕ Пользователи.Недействителен
| И НЕ Пользователи.ПометкаУдаления КАК ВходВПрограммуРазрешен
| СоставыГруппПользователей.Пользователь КАК Ссылка,
| СоставыГруппПользователей.ГруппаПользователей КАК ПользовательИлиГруппа,
| СоставыГруппПользователей.Используется КАК ВходВПрограммуРазрешен
|ПОМЕСТИТЬ ВсеПользователи
|ИЗ
| Справочник.Пользователи КАК Пользователи
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ГруппыПользователей.Ссылка,
| НЕ ГруппыПользователей.ПометкаУдаления
|ИЗ
| Справочник.ГруппыПользователей КАК ГруппыПользователей
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|ГДЕ
| ТИПЗНАЧЕНИЯ(СоставыГруппПользователей.Пользователь) = ТИП(Справочник.Пользователи)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
@@ -423,7 +409,8 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ГруппыДоступаПользователи.Пользователь КАК Пользователь,
| ВсеПользователи.Ссылка КАК Пользователь,
| ВсеПользователи.ПользовательИлиГруппа КАК ПользовательИлиГруппа,
| ГруппыДоступа.Профиль КАК Профиль,
| ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа
|ПОМЕСТИТЬ ГруппыДоступаПользователей
@@ -431,13 +418,16 @@
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа
| ПО ГруппыДоступаПользователи.Ссылка = ГруппыДоступа.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеПользователи КАК ПользователиГрупп
| ПО ГруппыДоступаПользователи.Пользователь = ПользователиГрупп.ПользовательИлиГруппа
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеПользователи КАК ВсеПользователи
| ПО ГруппыДоступаПользователи.Пользователь = ВсеПользователи.Ссылка
| ПО (ПользователиГрупп.Ссылка = ВсеПользователи.Ссылка)
|ГДЕ
| НЕ ГруппыДоступа.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ГруппыДоступаПользователи.Пользователь,
| ВсеПользователи.Ссылка,
| ВсеПользователи.ПользовательИлиГруппа,
| ГруппыДоступа.Профиль,
| ГруппыДоступаПользователи.Ссылка
|
@@ -545,6 +535,7 @@
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ГруппыДоступаПользователей.Пользователь КАК Пользователь,
| ГруппыДоступаПользователей.ПользовательИлиГруппа КАК ПользовательИлиГруппа,
| ГруппыДоступаПользователей.ГруппаДоступа КАК ГруппаДоступа,
| ПраваПрофилей.ОбъектМетаданных КАК ОбъектМетаданных,
| МАКСИМУМ(ПраваПрофилей.Просмотр) КАК Просмотр,
@@ -559,6 +550,7 @@
|
|СГРУППИРОВАТЬ ПО
| ГруппыДоступаПользователей.Пользователь,
| ГруппыДоступаПользователей.ПользовательИлиГруппа,
| ГруппыДоступаПользователей.ГруппаДоступа,
| ПраваПрофилей.ОбъектМетаданных,
| ПраваПрофилей.Профиль
@@ -570,6 +562,7 @@
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПраваОбъектов.Пользователь КАК Пользователь,
| ПраваОбъектов.ПользовательИлиГруппа КАК ПользовательИлиГруппа,
| ПраваОбъектов.ГруппаДоступа КАК ГруппаДоступа,
| ПраваОбъектов.ОбъектМетаданных КАК ОбъектМетаданных,
| ПраваОбъектов.Просмотр КАК Просмотр
@@ -588,6 +581,7 @@
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПраваОбъектов.Пользователь КАК Пользователь,
| ПраваОбъектов.ПользовательИлиГруппа КАК ПользовательИлиГруппа,
| ПраваОбъектов.ГруппаДоступа КАК ГруппаДоступа,
| ПраваОбъектов.ОбъектМетаданных КАК ОбъектМетаданных,
| ПраваОбъектов.Просмотр КАК Просмотр,
@@ -612,6 +606,7 @@
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПраваОбъектовИСвязанныеОтчеты.Пользователь КАК Пользователь,
| ПраваОбъектовИСвязанныеОтчеты.ПользовательИлиГруппа КАК ПользовательИлиГруппа,
| ПраваОбъектовИСвязанныеОтчеты.ГруппаДоступа КАК ГруппаДоступа,
| ПраваОбъектовИСвязанныеОтчеты.ОбъектМетаданных КАК ОбъектМетаданных,
| ПраваОбъектовИСвязанныеОтчеты.Просмотр КАК Просмотр,
@@ -685,6 +680,7 @@
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВсеПользователи.Ссылка КАК Пользователь,
| ВсеПользователи.ПользовательИлиГруппа КАК ПользовательИлиГруппа,
| ВсеОбъектыСПравами.ОбъектМетаданных КАК ОбъектМетаданных,
| ВсеОбъектыСПравами.Отчет КАК Отчет,
| ВсеПользователи.ВходВПрограммуРазрешен КАК ВходВПрограммуРазрешен
@@ -695,6 +691,7 @@
|
|СГРУППИРОВАТЬ ПО
| ВсеПользователи.Ссылка,
| ВсеПользователи.ПользовательИлиГруппа,
| ВсеОбъектыСПравами.ОбъектМетаданных,
| ВсеОбъектыСПравами.Отчет,
| ВсеПользователи.ВходВПрограммуРазрешен
@@ -708,6 +705,7 @@
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(ПраваПользователейСНастроеннымиПравами.Пользователь, ВсеПользователиИОбъекты.Пользователь) КАК Пользователь,
| ЕСТЬNULL(ПраваПользователейСНастроеннымиПравами.ПользовательИлиГруппа, ВсеПользователиИОбъекты.ПользовательИлиГруппа) КАК ПользовательИлиГруппа,
| ВЫБОР
| КОГДА &УпрощенныйИнтерфейсНастройкиПравДоступа
| ТОГДА ПраваПользователейСНастроеннымиПравами.Профиль
@@ -30,7 +30,6 @@
</v8:item>
</title>
<valueType>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ГруппыПользователей</v8:Type>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Пользователи</v8:Type>
</valueType>
</field>
@@ -240,6 +239,20 @@
<v8:Type>xs:boolean</v8:Type>
</valueType>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>ПользовательИлиГруппа</dataPath>
<field>ПользовательИлиГруппа</field>
<title xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь или группа</v8:content>
</v8:item>
</title>
<valueType>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ГруппыПользователей</v8:Type>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Пользователи</v8:Type>
</valueType>
</field>
<dataSource>ИсточникДанных1</dataSource>
<objectName>ПраваПользователей</objectName>
</dataSet>
@@ -1110,14 +1123,19 @@
<dcsset:userSettingID>39a199ad-a34a-4363-bcad-f674ea3b14c8</dcsset:userSettingID>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>InList</dcsset:comparisonType>
<dcsset:right xsi:type="v8:ValueListType">
<v8:valueType/>
<v8:lastId xsi:type="xs:decimal">-1</v8:lastId>
</dcsset:right>
<dcsset:userSettingID>ece687f5-e5a6-4d3c-9153-fca4b227345a</dcsset:userSettingID>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">ВходВПрограммуРазрешен</dcsset:left>
@@ -1488,14 +1506,19 @@
<dcsset:userSettingID>0231de1c-3184-40d8-8247-c5650409922c</dcsset:userSettingID>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>InList</dcsset:comparisonType>
<dcsset:right xsi:type="v8:ValueListType">
<v8:valueType/>
<v8:lastId xsi:type="xs:decimal">-1</v8:lastId>
</dcsset:right>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
@@ -1812,10 +1835,15 @@
</dcsset:selection>
<dcsset:filter>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>Equal</dcsset:comparisonType>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
@@ -2216,11 +2244,16 @@
<dcsset:viewMode>Normal</dcsset:viewMode>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>Equal</dcsset:comparisonType>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>7a412447-4710-4980-a012-e951cdfc618f</dcsset:userSettingID>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
@@ -2657,9 +2690,15 @@
<dcsset:viewMode>Normal</dcsset:viewMode>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>Equal</dcsset:comparisonType>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
</dcsset:filter>
<dcsset:conditionalAppearance>
@@ -3373,9 +3412,19 @@
</dcsset:selection>
<dcsset:filter>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>InList</dcsset:comparisonType>
<dcsset:right xsi:type="v8:ValueListType">
<v8:valueType/>
<v8:lastId xsi:type="xs:decimal">-1</v8:lastId>
</dcsset:right>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Отчет</dcsset:left>
@@ -3745,10 +3794,19 @@
</dcsset:selection>
<dcsset:filter>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
<dcsset:left xsi:type="dcscor:Field">Пользователь</dcsset:left>
<dcsset:left xsi:type="dcscor:Field">ПользовательИлиГруппа</dcsset:left>
<dcsset:comparisonType>InList</dcsset:comparisonType>
<dcsset:right xsi:type="v8:ValueListType">
<v8:valueType/>
<v8:lastId xsi:type="xs:decimal">-1</v8:lastId>
</dcsset:right>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingPresentation xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пользователь</v8:content>
</v8:item>
</dcsset:userSettingPresentation>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:use>false</dcsset:use>
@@ -2723,65 +2723,6 @@
<value>true</value>
</right>
</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>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -2869,6 +2810,65 @@
<value>true</value>
</right>
</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>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса</name>
<right>
@@ -28,6 +28,37 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов</name>
<right>
@@ -76,37 +107,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -3874,6 +3874,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов</name>
<right>
@@ -3959,45 +3998,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса</name>
<right>