3_1_5_192

This commit is contained in:
Компания 1С committed 2021-09-16 13:14:00 +03:00
1 parent ebd39458e4
commit 8e46accf22
72 files changed
+1407 -670

No files matched your search

@@ -617,8 +617,8 @@
ИначеЕсли Форма.Отложен Тогда
ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач,
Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D"));
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Задание будет запущено <a href=""ОткрытьНастройкуОтложенногоСтарта"">%1</a>'"),
ДатаОтложенногоСтартаСтрокой);
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Задание будет запущено <a href=""%1"">%2</a>'"),
"ОткрытьНастройкуОтложенногоСтарта", ДатаОтложенногоСтартаСтрокой);
КонецЕсли;
Возврат ТекстСостояния;
@@ -1623,6 +1623,11 @@
УточнениеСвойств.Добавить(НСтр("ru = 'Аутентификация ОС (включена)'"));
КонецЕсли;
Если ПриЧтенииВходВПрограммуРазрешен И Объект.Недействителен Тогда
ВходВПрограммуРазрешен = Ложь;
УточнениеСвойств.Вставить(0, НСтр("ru = 'Вход в программу разрешен'"));
КонецЕсли;
Если ЗначениеЗаполнено(УточнениеСвойств) Тогда
ПоказатьКомандыУстраненияРазличий =
УровеньДоступа.НастройкиДляВхода
@@ -66,6 +66,15 @@
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если Не ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда
ИндексЦелевоеВремя = ПроверяемыеРеквизиты.Найти("ЦелевоеВремя");
Если ИндексЦелевоеВремя <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(ИндексЦелевоеВремя);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Иначе
@@ -678,6 +678,15 @@
&НаКлиенте
Процедура ЗаполнитьИзПользователяИБ(Команда)
Если УровеньДоступа.УправлениеСписком
И ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда
Если ПриЧтенииВходВПрограммуРазрешен И Объект.Недействителен Тогда
Объект.Недействителен = Ложь;
НедействителенПриИзменении(Элементы.Недействителен);
КонецЕсли;
КонецЕсли;
ЗаполнитьПоляПоПользователюИБНаСервере();
КонецПроцедуры
@@ -2192,7 +2201,16 @@
УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Полное имя ""%1""'"),
ПользовательИБПолноеИмя));
КонецЕсли;
Если ПриЧтенииВходВПрограммуРазрешен И Объект.Недействителен Тогда
ВходВПрограммуРазрешен = Ложь;
ПоказатьКомандыУстраненияРазличий =
ПоказатьКомандыУстраненияРазличий
Или ДействияВФорме.СвойстваЭлемента = "Редактирование";
УточнениеСвойств.Вставить(0, НСтр("ru = 'Вход в программу разрешен'"));
КонецЕсли;
// Проверка на соответствие почты
Если УровеньДоступа.ИзменениеТекущего Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
@@ -2211,8 +2229,8 @@
УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Почта для восстановления пароля ""%1""'"),
ПользовательИБАдресЭлектроннойПочты));
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если УточнениеСвойств.Количество() > 0 Тогда
@@ -219,7 +219,7 @@
// При необходимости обновляет группы доступа обновленных профилей.
// Создаются не найденные поставляемые папки профилей и профили групп доступа.
//
// Особенности обновления настраиваются в процедуре ЗаполнитьПоставляемыеПрофилиГруппДоступа
// Особенности обновления настраиваются в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа
// общего модуля УправлениеДоступомПереопределяемый (см. комментарий к процедуре).
//
// Параметры:
@@ -561,7 +561,7 @@
КонецФункции
// Проверяет изменен ли поставляемый профиль или папка профилей по сравнению с описанием из процедуры
// УправлениеДоступомПереопределяемый.ЗаполнитьПоставляемыеПрофилиГруппДоступа().
// УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа().
//
// Параметры:
// Профиль - СправочникСсылка.ПрофилиГруппДоступа
@@ -308,6 +308,10 @@
Процедура ЗаполнитьСертификатыШифрованияИзНабора(ОписаниеНабораСертификатов)
Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ОписаниеНабораСертификатов)) Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПроверитьЧтениеРазрешено(ОписаниеНабораСертификатов);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", ОписаниеНабораСертификатов);
Запрос.Текст =
@@ -317,8 +321,10 @@
| РегистрСведений.СертификатыШифрования КАК СертификатыШифрования
|ГДЕ
| СертификатыШифрования.ЗашифрованныйОбъект = &Ссылка";
МассивСертификатов = Новый Массив;
УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Ложь);
МассивСертификатов = Новый Массив;
Пока Выборка.Следующий() Цикл
МассивСертификатов.Добавить(Выборка.Сертификат.Получить());
КонецЦикла;
@@ -759,10 +759,10 @@
<usePurposes>MobileDevice</usePurposes>
</forms>
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
<name>КомпонентаXMLDSIG</name>
<name>КомпонентаXMLDSig_3_0_1_23</name>
<synonym>
<key>ru</key>
<value>Компонента XMLDSIG</value>
<value>Компонента XMLDSig 3.0.1.23</value>
</synonym>
<templateType>AddIn</templateType>
</templates>
@@ -168,7 +168,7 @@
КонецЕсли;
СписокСтран = УправлениеКонтактнойИнформацией.СтраныУчастникиЕАЭС();
СписокСтран = УправлениеКонтактнойИнформацией.ПользовательскиеСтраныЕАЭС();
НоваяСтрока = СписокСтран.Добавить();
НоваяСтрока.Код = "203";
@@ -750,11 +750,29 @@
Процедура Освободить(Команда)
Если ЭтоНовый()
ИЛИ НЕ ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
ИЛИ ЭтотОбъект.Объект.Редактирует <> ТекущийПользователь Тогда
Или Не ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
Или ЭтотОбъект.Объект.Редактирует <> ТекущийПользователь Тогда
Возврат;
КонецЕсли;
ОсвободитьЗавершение = Новый ОписаниеОповещения("ОсвободитьЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
ПоказатьВопрос(ОсвободитьЗавершение,
НСтр("ru = 'При отмене редактирования внесенные изменения будут утеряны. Продолжить?'"),
РежимДиалогаВопрос.ДаНет);
Иначе
ВыполнитьОбработкуОповещения(ОсвободитьЗавершение, КодВозвратаДиалога.Да);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОсвободитьЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ОсвободитьФайл();
ОповеститьОбИзменении(ЭтотОбъект.Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура("Событие", "РедактированиеОтменено"), ЭтотОбъект.Объект.Ссылка);
@@ -22,9 +22,15 @@
// Проверка входных параметров.
Если Не ЗначениеЗаполнено(Параметры.ИсточникДанных) Тогда
ОбщегоНазначенияКлиентСервер.Проверить(ТипЗнч(Параметры.ПараметрКоманды) = Тип("Массив") Или ОбщегоНазначения.ЗначениеСсылочногоТипа(Параметры.ПараметрКоманды),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Недопустимое значение параметра ПараметрКоманды при вызове метода УправлениеПечатьюКлиент.ВыполнитьКомандуПечати.
|Ожидалось: Массив, ЛюбаяСсылка.
|Передано: %1'"), ТипЗнч(Параметры.ПараметрКоманды)));
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Недопустимое значение параметра %1 при вызове метода %2.
|Ожидалось: %3, %4.
|Передано: %5'"),
"ПараметрКоманды",
"УправлениеПечатьюКлиент.ВыполнитьКомандуПечати",
"Массив",
"ЛюбаяСсылка",
ТипЗнч(Параметры.ПараметрКоманды)));
КонецЕсли;
// Поддержка обратной совместимости с 2.1.3.
@@ -2402,8 +2402,9 @@
УсловиеНормализованное = НРег(СтрЗаменить(Условие, "<", "&lt;"));
ШаблонФрагментаУсловия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1<span style=""color: СкрытыйВариантОтчетаЦвет"">%2</span>%3'"),
НСтр("ru = '%1<span style=""color: %2"">%3</span>%4'"),
ОтступДоУсловия,
"СкрытыйВариантОтчетаЦвет",
УсловиеНормализованное,
ОтступПослеУсловия);
@@ -2421,7 +2422,10 @@
Функция ФрагментСтрокиПоиска(СтрокаПоиска)
ШаблонФрагментаСтрокиПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '<span style=""color: МоиВариантыОтчетовЦвет; font: ВажнаяНадписьШрифт"">%1</span>'"), СтрокаПоиска);
НСтр("ru = '<span style=""color: %1; font: %2"">%3</span>'"),
"МоиВариантыОтчетовЦвет",
"ВажнаяНадписьШрифт",
СтрокаПоиска);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
ФрагментСтрокиПоиска = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска);
@@ -7801,8 +7801,8 @@
Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Дом, СтрокаПоиска) Тогда
ТекстПроДом = ОписаниеДома.НазваниеВладения + " " + ОписаниеДома.Дом;
Иначе
ТекстПроДом = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color: РезультатУспехЦвет; font: ВажнаяНадписьШрифт'>%2</span>%3",
ОписаниеДома.НазваниеВладения, СтрокаПоиска, Сред(ОписаниеДома.Дом, СтрДлина(СтрокаПоиска) + 1));
ТекстПроДом = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color:%2; font:%3'>%4</span>%5",
ОписаниеДома.НазваниеВладения, "РезультатУспехЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска, Сред(ОписаниеДома.Дом, СтрДлина(СтрокаПоиска) + 1));
КонецЕсли;
Иначе
@@ -7814,8 +7814,8 @@
Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Корпус, СтрокаПоиска) Тогда
ТекстПроСтроения = "корпус" + " " + ОписаниеДома.Корпус;
Иначе
ТекстПроСтроения = СтроковыеФункции.ФорматированнаяСтрока("корпус <span style='color: РезультатУспехЦвет; font: ВажнаяНадписьШрифт'>%1</span>%2",
СтрокаПоиска, Сред(ОписаниеДома.Корпус, СтрДлина(СтрокаПоиска) + 1));
ТекстПроСтроения = СтроковыеФункции.ФорматированнаяСтрока("корпус <span style='color:%1; font:%2'>%3</span>%4",
"РезультатУспехЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска, Сред(ОписаниеДома.Корпус, СтрДлина(СтрокаПоиска) + 1));
КонецЕсли;
@@ -7835,8 +7835,8 @@
Разделитель = ?(ПустаяСтрока(ТекстПроСтроения), "", ", ");
Если ЗначениеЗаполнено(СтрокаПоиска) И СтрНачинаетсяС(ОписаниеДома.Строение, СтрокаПоиска) Тогда
НайденныйФрагментСтроения = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color: РезультатУспехЦвет; font: ВажнаяНадписьШрифт'>%2</span>%3",
Разделитель + НазваниеСтроения, СтрокаПоиска, Сред(ОписаниеДома.Строение, СтрДлина(СтрокаПоиска) + 1));
НайденныйФрагментСтроения = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color:%2; font:%3'>%4</span>%5",
Разделитель + НазваниеСтроения, "РезультатУспехЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска, Сред(ОписаниеДома.Строение, СтрДлина(СтрокаПоиска) + 1));
Иначе
НайденныйФрагментСтроения = Разделитель + НазваниеСтроения + " " + ОписаниеДома.Строение;
КонецЕсли;
@@ -87,7 +87,6 @@
ГраницыРазделов = ГраницыРазделовОтчета(РезультатОтчета, РазрезСвойствЗаголовков);
ИндексСтруктурыОтчета = ИндексСтруктурыОтчета(Форма);
ДополнитьСвойстваЗаголовковОтчета(Форма, РезультатОтчета, Заголовки, РазрезСвойствЗаголовков, ИндексСтруктурыОтчета, ГраницыРазделов);
Ячейка = Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть;
@@ -192,15 +191,10 @@
Для Каждого Элемент Из Поля.Элементы Цикл
Если Не Элемент.Использование Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
Если Не Элемент.Использование
Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
ПредставлениеПолей.Добавить(НСтр("ru = 'Авто'"));
Продолжить;
КонецЕсли;
ОписаниеПоля = Поля.ДоступныеПоляПолейГруппировок.НайтиПоле(Элемент.Поле);
@@ -357,24 +351,9 @@
Функция ИндексСтруктурыОтчета(Форма) Экспорт
НастройкиОтчета = Форма.НастройкиОтчета;
АдресИндексаСтруктурыОтчета = НастройкиОтчета.СвойстваРезультата.АдресИндексаСтруктурыОтчета;
ИндексСтруктурыОтчета = Неопределено;
Если ЭтоАдресВременногоХранилища(АдресИндексаСтруктурыОтчета) Тогда
ИндексСтруктурыОтчета = ПолучитьИзВременногоХранилища(АдресИндексаСтруктурыОтчета);
КонецЕсли;
Если ИндексСтруктурыОтчета <> Неопределено И Не Форма.ВариантМодифицирован Тогда
Возврат ИндексСтруктурыОтчета;
КонецЕсли;
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата;
КомпоновщикНастроекОтчета = Форма.Отчет.КомпоновщикНастроек;
КомпоновщикНастроекОтчета.РазвернутьАвтоПоля();
ИтоговыеНастройки = КомпоновщикНастроекОтчета.ПолучитьНастройки();
ИтоговыеНастройки = Форма.Отчет.КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, НастройкиОтчета.АдресСхемы);
@@ -386,14 +365,25 @@
СвойстваРезультата.КомпоновщикНастроек = КомпоновщикНастроек;
СвойстваРезультата.РолиПолей = РолиПолейОтчета(НастройкиОтчета.АдресСхемы);
ИндексСтруктурыОтчета = ИндексСтруктурыОтчетаБезКонтекста(КомпоновщикНастроекОтчета, ИтоговыеНастройки);
ИндексСтруктурыОтчета = Неопределено;
ОпределитьРолиПолей(ИндексСтруктурыОтчета, СвойстваРезультата.РолиПолей);
УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета);
ОпределитьДоступныеДействияПолейОтчета(ИндексСтруктурыОтчета);
Если ЭтоАдресВременногоХранилища(СвойстваРезультата.АдресИндексаСтруктурыОтчета) Тогда
ИндексСтруктурыОтчета = ПолучитьИзВременногоХранилища(СвойстваРезультата.АдресИндексаСтруктурыОтчета);
КонецЕсли;
СвойстваРезультата.АдресИндексаСтруктурыОтчета = ПоместитьВоВременноеХранилище(
ИндексСтруктурыОтчета, Форма.УникальныйИдентификатор);
Если ИндексСтруктурыОтчета = Неопределено
Или Форма.ВариантМодифицирован Тогда
ИндексСтруктурыОтчета = ИндексСтруктурыОтчетаБезКонтекста(КомпоновщикНастроек, ИтоговыеНастройки);
ОпределитьРолиПолей(ИндексСтруктурыОтчета, СвойстваРезультата.РолиПолей);
ОпределитьПоляФормулы(НастройкиОтчета.АдресСхемы, ИтоговыеНастройки, ИндексСтруктурыОтчета);
УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета);
ОпределитьДоступныеДействияПолейОтчета(ИндексСтруктурыОтчета);
СвойстваРезультата.АдресИндексаСтруктурыОтчета = ПоместитьВоВременноеХранилище(
ИндексСтруктурыОтчета, Форма.УникальныйИдентификатор);
КонецЕсли;
СвойстваРезультата.ИндексПолей = ИндексПолейСтруктурыОтчета(ИндексСтруктурыОтчета);
СвойстваРезультата.ОсновныеПоля = ОсновныеПоляОтчета(Форма);
@@ -486,10 +476,11 @@
ПорядокГруппировки = 0;
ПорядокПоля = 0;
ПоляСортировки = Новый Соответствие;
ПоляСортировки(Настройки, Настройки, ПоляСортировки);
Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда
ПоляСортировки = Новый Соответствие;
ИндексироватьГруппировкиРазделаОтчета(
ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел.Строки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки);
@@ -589,8 +580,16 @@
Продолжить;
КонецЕсли;
Если Замещать Или ПоляСортировки[Элемент.Поле] = Неопределено Тогда
Если ТипЗнч(Элемент) = Тип("АвтоЭлементПорядкаКомпоновкиДанных")
И ТипГруппировки <> Тип("НастройкиКомпоновкиДанных") Тогда
ПоляСортировки(Настройки, Настройки, ПоляСортировки, Ложь);
ИначеЕсли ТипЗнч(Элемент) <> Тип("АвтоЭлементПорядкаКомпоновкиДанных")
И (Замещать Или ПоляСортировки[Элемент.Поле] = Неопределено) Тогда
ПоляСортировки.Вставить(Элемент.Поле, Элемент.ТипУпорядочивания);
КонецЕсли;
КонецЦикла;
@@ -653,6 +652,7 @@
ИспользуемыеПоляГруппировки = Новый Соответствие;
ИспользуетсяАвтоПоле = ИспользуетсяАвтоПоле(Группировка.Выбор);
ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировкиОтчета(Настройки, Группировка);
ПоляГруппировки = Группировка.ПоляГруппировки;
@@ -667,7 +667,8 @@
ИспользуемыеПоляГруппировки.Вставить(Элемент.Поле, Элемент);
Если Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле)
Если ИспользуетсяАвтоПоле
И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле)
И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(ИспользуемыеНастройки.Выбор, Элемент.Поле) Тогда
ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, ПоляГруппировки,
@@ -682,6 +683,22 @@
КонецПроцедуры
Функция ИспользуетсяАвтоПоле(Поля)
Для Каждого Элемент Из Поля.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных")
Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
Возврат Элемент.Использование;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
Процедура ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки,
Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Поля = Неопределено, Родитель = Неопределено) // АПК:134 реализация сложной логики для формирования индекса структуры отчета.
@@ -695,7 +712,18 @@
Для Каждого Элемент Из Поля.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда
ИндексироватьВыбранныеПоляНастроекОтчета(
ИндексСтруктурыОтчета,
ИндексГруппировки,
Настройки,
Группировка,
ПорядокПоля,
ПоляСортировки,
ИспользуемыеПоляГруппировки);
ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки,
Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель);
@@ -740,8 +768,9 @@
ИндексироватьВыбранныеПоляНастроекОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки,
Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель);
ИначеЕсли РазрешеноИспользоватьПолеВГруппировке(Группировка, Элемент.Поле)
ИначеЕсли ТипЭлемента <> Тип("АвтоВыбранноеПолеКомпоновкиДанных")
И РазрешеноИспользоватьПолеВГруппировке(Группировка, Элемент.Поле)
И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле, Ложь) Тогда
ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, Родитель, Элемент, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки);
@@ -989,6 +1018,45 @@
КонецФункции
Процедура ОпределитьПоляФормулы(АдресСхемы, Настройки, ИндексСтруктурыОтчета)
Для Каждого Запись Из ИндексСтруктурыОтчета Цикл
Запись.ЭтоФормула = ЭтоПользовательскоеПоле(Настройки.ПользовательскиеПоля, Запись.Поле);
КонецЦикла;
Если Не ЭтоАдресВременногоХранилища(АдресСхемы) Тогда
Возврат;
КонецЕсли;
Схема = ПолучитьИзВременногоХранилища(АдресСхемы);
Если ТипЗнч(Схема) <> Тип("СхемаКомпоновкиДанных") Тогда
Возврат;
КонецЕсли;
НайденныеЗаписи = ИндексСтруктурыОтчета.НайтиСтроки(Новый Структура("ЭтоФормула", Ложь));
ВычисляемыеПоля = Схема.ВычисляемыеПоля;
Для Каждого Запись Из НайденныеЗаписи Цикл
Запись.ЭтоФормула = ВычисляемыеПоля.Найти(Строка(Запись.Поле)) <> Неопределено;
КонецЦикла;
КонецПроцедуры
Функция ЭтоПользовательскоеПоле(ПользовательскиеПоля, Поле)
Для Каждого Элемент Из ПользовательскиеПоля.Элементы Цикл
Если Элемент.ПутьКДанным = Строка(Поле) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
Процедура УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета)
Для Каждого Индекс Из ИндексСтруктурыОтчета Цикл
@@ -1192,6 +1260,7 @@
Индекс.Колонки.Добавить("Период", ОписаниеПризнака);
Индекс.Колонки.Добавить("Измерение", ОписаниеПризнака);
Индекс.Колонки.Добавить("Ресурс", ОписаниеПризнака);
Индекс.Колонки.Добавить("ЭтоФормула", ОписаниеПризнака);
Индекс.Колонки.Добавить("ТипЗначения", ОписаниеТипов);
Индекс.Колонки.Добавить("ПолеСортируется", ОписаниеПризнака);
@@ -1644,6 +1713,7 @@
Свойства.Вставить("Период", Ложь);
Свойства.Вставить("Измерение", Ложь);
Свойства.Вставить("Ресурс", Ложь);
Свойства.Вставить("ЭтоФормула", Ложь);
Свойства.Вставить("ТипЗначения", Неопределено);
Свойства.Вставить("ТипПоля", Неопределено);
@@ -1703,7 +1773,12 @@
Данные = ПолучитьИзВременногоХранилища(Форма.ОтчетДанныеРасшифровки);
ЭлементРасшифровки = Данные.Элементы.Получить(Расшифровка);
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
Родители = ЭлементРасшифровки.ПолучитьРодителей();
Родитель = ?(Родители.Количество() = 0, Неопределено, Родители[0]);
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка")
Или ТипЗнч(Родитель) <> Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
ТипЭлементаРасшифровки = ВариантыОтчетовСлужебныйКлиентСервер.ТипЭлементаРасшифровкиГруппировка();
Иначе
ТипЭлементаРасшифровки = ТипРеквизит();
@@ -156,7 +156,7 @@
НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
Элементы = Форма.Элементы;
ПолеОтчета = Элементы.ОтчетТабличныйДокумент; // ПолеТабличногоДокумента
ПолеОтчета = Элементы.ОтчетТабличныйДокумент; // ПолеФормы, РасширениеПоляФормыДляПоляТабличногоДокумента
СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя];
ЭтоРасшифровка = Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник
@@ -1451,6 +1451,7 @@
Или ТипЭлемента = Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда
УдалитьЭлементыСортировки(Элемент.Порядок.Элементы);
СброситьСортировку(Настройки, СвойстваЗаголовка, Элемент.Структура);
КонецЕсли;
@@ -194,6 +194,7 @@
КонецЕсли;
Если ЭтоГруппировка
Или СвойстваЗаголовка.ЭтоФормула
Или СвойстваЗаголовка.КоличествоРазделов > 1 Тогда
Раздел = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
@@ -612,6 +612,93 @@
КонецПроцедуры
Процедура ТекстЗапросаСпискаПредупрежденияВерсий(СписокТекстЗапроса) Экспорт
СписокТекстЗапроса =
"ВЫБРАТЬ
| НепринятаяВерсия.АвторВерсии,
| НепринятаяВерсия.Объект,
| НЕОПРЕДЕЛЕНО,
| НепринятаяВерсия.ТипВерсииОбъекта,
| ВЫБОР
| КОГДА
| НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
| ТОГДА &НепринятыйСуществующий
| КОГДА
| НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе)
| ТОГДА &НепринятыйНовый
| КОНЕЦ,
| НепринятаяВерсия.ДатаВерсии,
| НепринятаяВерсия.ПредупреждениеСинхронизации,
| НЕОПРЕДЕЛЕНО,
| НепринятаяВерсия.ВерсияПроигнорирована,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(НепринятаяВерсия.Комментарий КАК СТРОКА(1000))) = """"
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ,
| НепринятаяВерсия.Комментарий,
| ЕСТЬNULL(НепринятаяВерсия.НомерВерсии, 0),
| ЕСТЬNULL(ТекущаяВерсия.НомерВерсии, 0),
| НЕОПРЕДЕЛЕНО,
| ВЫБОР
| КОГДА
| НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК НепринятаяВерсия
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ТекущаяВерсия
| ПО НепринятаяВерсия.Объект = ТекущаяВерсия.Объект
| И (НепринятаяВерсия.НомерВерсии = ТекущаяВерсия.НомерВерсии + 1)
|ГДЕ
| НепринятаяВерсия.ТипВерсииОбъекта В
| (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе),
| ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВерсииДругойПрограммы.АвторВерсии,
| ВерсииДругойПрограммы.Объект,
| НЕОПРЕДЕЛЕНО,
| ВерсииДругойПрограммы.ТипВерсииОбъекта,
| ВЫБОР
| КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
| ТОГДА &ПринятыеДанныеКоллизии
| КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии)
| ТОГДА &НепринятыеДанныеКоллизии
| КОНЕЦ,
| ВерсииДругойПрограммы.ДатаВерсии,
| ВерсииДругойПрограммы.ПредупреждениеСинхронизации,
| НЕОПРЕДЕЛЕНО,
| ВерсииДругойПрограммы.ВерсияПроигнорирована,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(ВерсииДругойПрограммы.Комментарий КАК СТРОКА(1024))) = """"
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ,
| ВерсииДругойПрограммы.Комментарий,
| ЕСТЬNULL(ВерсииДругойПрограммы.НомерВерсии, 0),
| ЕСТЬNULL(ВерсииЭтойПрограммы.НомерВерсии, 0),
| ВЫБОР
| КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| НЕОПРЕДЕЛЕНО
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК ВерсииДругойПрограммы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ВерсииЭтойПрограммы
| ПО ВерсииДругойПрограммы.Объект = ВерсииЭтойПрограммы.Объект
| И (ВерсииДругойПрограммы.НомерВерсии = ВерсииЭтойПрограммы.НомерВерсии + 1)
|ГДЕ
| ВерсииДругойПрограммы.ТипВерсииОбъекта В (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии),
| ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии))";
КонецПроцедуры
// Возвращает описание команды для добавления в отчете "Результаты проверки учета".
//
// Параметры:
@@ -8517,14 +8517,16 @@
Если ВключеноРегламентноеЗаданиеПолученияИОтправкиПисем() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда
Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию. <a href = ""ПерейтиКНастройкеРегламентныхЗаданий"">Подробнее</a>'"));
"ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию. <a href = ""%1"">Подробнее</a>'"),
"ПерейтиКНастройкеРегламентныхЗаданий");
Иначе
Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию.'"));
КонецЕсли;
Иначе
Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Регламентное задание <b>Получение и отправка писем</b> отключено, доставка писем не выполняется. <a href = ""ВключитьПолучениеИОтправкуПисем"">Включить</a>'"));
"ru = 'Регламентное задание <b>Получение и отправка писем</b> отключено, доставка писем не выполняется. <a href = ""%1"">Включить</a>'"),
"ВключитьПолучениеИОтправкуПисем");
КонецЕсли;
КонецФункции
@@ -4007,6 +4007,7 @@
ЗарегистрироватьПакетДанных(ПараметрыРегистрации, ПараметрыРегистрации.ДанныеДляРегистрации);
Иначе
ПланыОбмена.ЗарегистрироватьИзменения(ПараметрыРегистрации.Узел, Данные);
ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыРегистрации);
КонецЕсли;
УвеличитьКоличествоЗарегистрированныхДанных(ПараметрыРегистрации.Параметры,
@@ -4041,9 +4042,7 @@
ПланыОбмена.ЗарегистрироватьИзменения(ПараметрыРегистрации.Узел, Данные);
Данные.Очистить();
Если ПараметрыРегистрации.Свойство("ПереиспользуемыеНаборы") Тогда
ОсвободитьПереиспользуемыеНаборы(ПараметрыРегистрации.ПереиспользуемыеНаборы);
КонецЕсли;
ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыРегистрации);
КонецЕсли;
КонецПроцедуры
@@ -4184,9 +4183,7 @@
ПланыОбмена.УдалитьРегистрациюИзменений(ПараметрыУдаления.Узел, Данные);
Данные.Очистить();
Если ПараметрыУдаления.Свойство("ПереиспользуемыеНаборы") Тогда
ОсвободитьПереиспользуемыеНаборы(ПараметрыУдаления.ПереиспользуемыеНаборы);
КонецЕсли;
ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыУдаления);
КонецЕсли;
КонецПроцедуры
@@ -4208,6 +4205,7 @@
УдалитьРегистрациюИзмененийПакетаДанных(ПараметрыУдаления, ПараметрыУдаления.ДанныеДляУдаления);
Иначе
ПланыОбмена.УдалитьРегистрациюИзменений(ПараметрыУдаления.Узел, Данные);
ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыУдаления);
КонецЕсли;
КонецПроцедуры
@@ -4230,7 +4228,7 @@
// Возвращаемое значение:
// Булево - Истина - быстрая пакетная регистрация доступна.
//
Функция ДоступнаПакетнаяРегистрация()
Функция ДоступнаПакетнаяРегистрация() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
@@ -4461,6 +4459,20 @@
КонецПроцедуры
// Освободить ранее занятые переиспользуемые наборы на основе параметров.
//
// Параметры:
// Параметры - см. НовыеПараметрыРегистрации
// - см. НовыеПараметрыУдаленияРегистрации.
//
Процедура ОсвободитьПереиспользуемыеНаборыВПараметрах(Параметры)
Если Параметры.Свойство("ПереиспользуемыеНаборы") Тогда
ОсвободитьПереиспользуемыеНаборы(Параметры.ПереиспользуемыеНаборы);
КонецЕсли;
КонецПроцедуры
Функция УзлыМеньшейОчереди(Очередь)
Возврат ПланыОбмена.ОбновлениеИнформационнойБазы.УзлыМеньшейОчереди(Очередь);
КонецФункции
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.5.180";
Описание.Версия = "3.1.5.192";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -902,6 +902,9 @@
ЗаписатьИнформацию(Сообщение);
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика);
Если Обработчик.Многопоточный Тогда
ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыОбработчикаСтруктура.ПараметрыВыборки);
КонецЕсли;
Исключение
ЗаписатьОшибку(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При вызове процедуры заполнения данных
@@ -2246,11 +2249,14 @@
//
Функция ВесВерсии(Знач Версия) Экспорт
Если Версия = ""
Или СтрНачинаетсяС(Версия, "ОтладкаОбработчика") Тогда
Если Версия = "" Тогда
Возврат 0;
КонецЕсли;
Если СтрНачинаетсяС(Версия, "ОтладкаОбработчика") Тогда
Возврат 99000000000;
КонецЕсли;
Возврат ВесВерсииИзМассиваСтрок(СтрРазделить(Версия, "."));
КонецФункции
@@ -3134,7 +3140,9 @@
|ГДЕ
| ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения
| И (ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОбработчика
| ИЛИ &БезФильтра)";
| ИЛИ &БезФильтра)
|УПОРЯДОЧИТЬ ПО
| ОбработчикиОбновления.ОчередьОтложеннойОбработки";
Обработчики = Запрос.Выполнить().Выгрузить();
Возврат Обработчики;
@@ -3890,6 +3898,10 @@
ЗаполнитьЗначенияСвойств(ОписаниеОбрабатываемыхДанных, Результат);
ОписаниеОбрабатываемыхДанных.Статус = "Выполнено";
Если ЭтоОписаниеДанныхМногопоточногоОбработчика(ОписаниеОбрабатываемыхДанных) Тогда
ИсправитьПолныеИменаВПараметрахВыборки(ОписаниеОбрабатываемыхДанных.ПараметрыВыборки);
КонецЕсли;
ОбрабатываемыеДанные = Новый ХранилищеЗначения(ОписаниеОбрабатываемыхДанных, Новый СжатиеДанных(9));
УстановитьСвойствоОбработчика(ОписаниеОбрабатываемыхДанных.ИмяОбработчика, "ОбрабатываемыеДанные", ОбрабатываемыеДанные);
@@ -7938,6 +7950,10 @@
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика);
Если Обработчик.Многопоточный Тогда
ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыОбработчикаСтруктура.ПараметрыВыборки);
КонецЕсли;
// Запись прогресса обновления.
Если Параметры.ВФоне Тогда
ХодВыполненияОбработчиков = Параметры.ХодВыполненияОбработчиков;
@@ -7997,7 +8013,17 @@
УдалитьВсеПотокиОбновления();
Попытка
ДоступнаПакетнаяРегистрация = ОбновлениеИнформационнойБазы.ДоступнаПакетнаяРегистрация();
Если ДоступнаПакетнаяРегистрация Тогда
ТекущаяОчередь = ?(Обработчики.Количество() > 0, Обработчики[0].ОчередьОтложеннойОбработки, 0);
КонецЕсли;
Для Каждого Обработчик Из Обработчики Цикл
Если ДоступнаПакетнаяРегистрация И Обработчик.ОчередьОтложеннойОбработки > ТекущаяОчередь Тогда
ОжидатьЗавершениеВсехПотоков(Группы);
ТекущаяОчередь = Обработчик.ОчередьОтложеннойОбработки;
КонецЕсли;
ОписаниеОбрабатываемыхДанных = Обработчик.ОбрабатываемыеДанные.Получить();
Поток = ДобавитьПотокРегистрацииДанныхОтложенногоОбновления(ОписаниеОбрабатываемыхДанных);
@@ -8419,4 +8445,52 @@
КонецФункции
// Исправить перечисленные через запятую полные имена объектов и регистров
// с помощью УникальныеЗначенияЧерезЗапятую, чтобы не сбивалась курсорная выборка данных.
//
// Параметры:
// ПараметрыВыборки - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляМногопоточнойОбработки
//
Процедура ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыВыборки)
ПараметрыВыборки.ПолныеИменаОбъектов = УникальныеЗначенияЧерезЗапятую(ПараметрыВыборки.ПолныеИменаОбъектов);
ПараметрыВыборки.ПолныеИменаРегистров = УникальныеЗначенияЧерезЗапятую(ПараметрыВыборки.ПолныеИменаРегистров);
КонецПроцедуры
// Оставить только уникальные значения, перечисленные через запятую и упорядочить их.
//
// Параметры:
// Строка - Строка - значения, перечисленные через запятую.
//
// Возвращаемое значение:
// Строка - только уникальные упорядоченные значения через запятую.
//
Функция УникальныеЗначенияЧерезЗапятую(Строка)
Если Строка = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Значения = СтрРазделить(Строка, ",");
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Значение");
Для Каждого Значение Из Значения Цикл
ТочноеЗначение = СокрЛП(Значение);
Если Не ПустаяСтрока(ТочноеЗначение) Тогда
СтрокаТаблицы = Таблица.Добавить();
СтрокаТаблицы.Значение = ТочноеЗначение;
КонецЕсли;
КонецЦикла;
Таблица.Свернуть("Значение");
Таблица.Сортировать("Значение");
Значения = Таблица.ВыгрузитьКолонку("Значение");
Возврат СтрСоединить(Значения, ",");
КонецФункции
#КонецОбласти
@@ -264,7 +264,8 @@
Возврат Результат;
КонецЕсли;
Если Тип("Структура") = ТипЗнч(Реквизиты) Тогда
Если Тип("Структура") = ТипЗнч(Реквизиты)
Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
Реквизиты = Новый Массив;
Для Каждого КлючИЗначение Из СтруктураПолей Цикл
ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
@@ -331,7 +332,8 @@
// Если реквизиты - массив, оставляем без изменений.
// Если реквизиты - структура - конвертируем в массив.
// В остальных случаях уже было бы выброшено исключение.
Если Тип("Структура") = ТипЗнч(Реквизиты) Тогда
Если Тип("Структура") = ТипЗнч(Реквизиты)
Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
Реквизиты = Новый Массив;
Для каждого КлючИЗначение Из СтруктураПолей Цикл
ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
@@ -2166,6 +2166,8 @@
// ПолеТабличногоДокумента - ПолеФормы
// - ПолеТабличногоДокумента - элемент формы,
// данными которого является параметр ТабличныйДокумент.
// ПараметрыРасчета - Неопределено
// - см. ПараметрыРасчетаПоказателейЯчеек
//
// Возвращаемое значение:
// Структура - результаты расчета выделенных ячеек:
@@ -2176,9 +2178,11 @@
// * Минимум - Число - сумма выделенных ячеек с числами.
// * Максимум - Число - максимум выделенных ячеек с числами.
//
Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, Знач ПолеТабличногоДокумента) Экспорт
Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, Знач ПолеТабличногоДокумента, ПараметрыРасчета = Неопределено) Экспорт
ПараметрыРасчета = ОбщегоНазначенияСлужебныйКлиентСервер.ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента);
Если ПараметрыРасчета = Неопределено Тогда
ПараметрыРасчета = ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента);
КонецЕсли;
Если ПараметрыРасчета.РассчитатьНаСервере Тогда
Возврат СтандартныеПодсистемыВызовСервера.РасчетныеПоказателиЯчеек(
@@ -2190,6 +2194,75 @@
КонецФункции
// Формирует описание выделенных областей табличного документа.
//
// Параметры:
// ПолеТабличногоДокумента - ПолеФормы
// - ПолеТабличногоДокумента - Документ
// значения ячеек которого участвуют в расчете.
//
// Возвращаемое значение:
// Структура:
// * ВыделенныеОбласти - Массив - содержит структуры со свойствами:
// * Верх - Число - номер строки верхней границы области.
// * Низ - Число - номер строки нижней границы области.
// * Лево - Число - номер колонки верхней границы области.
// * Право - Число - номер колонки нижней границы области.
// * ТипОбласти - ТипОбластиЯчеекТабличногоДокумента - Колонки, Прямоугольник, Строки, Таблица.
// * РассчитатьНаСервере - Булево - признак того, что расчет должен выполняться на сервере, если
// количество выбранных ячеек более или равно 1000,
// либо количество выделенных областей более или равно 100,
// либо выделено поле табличного документа целиком.
// В таких случаях расчет показателей на клиенте очень затратный.
//
Функция ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента) Экспорт
ПараметрыРасчетаПоказателей = Новый Структура;
ПараметрыРасчетаПоказателей.Вставить("ВыделенныеОбласти", Новый Массив);
ПараметрыРасчетаПоказателей.Вставить("РассчитатьНаСервере", Ложь);
ВыделенныеОбласти = ПараметрыРасчетаПоказателей.ВыделенныеОбласти;
ВыделенныеОбластиДокумента = ПолеТабличногоДокумента.ПолучитьВыделенныеОбласти();
КоличествоВыделенныхЯчеек = 0;
Для Каждого ВыделеннаяОбласть Из ВыделенныеОбластиДокумента Цикл
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Продолжить;
КонецЕсли;
ГраницыОбласти = Новый Структура("Верх, Низ, Лево, Право, ТипОбласти");
ЗаполнитьЗначенияСвойств(ГраницыОбласти, ВыделеннаяОбласть);
ВыделенныеОбласти.Добавить(ГраницыОбласти);
КоличествоВыделенныхЯчеек = КоличествоВыделенныхЯчеек
+ (ВыделеннаяОбласть.Право - ВыделеннаяОбласть.Лево + 1)
* (ВыделеннаяОбласть.Низ - ВыделеннаяОбласть.Верх + 1);
КонецЦикла;
ВыделеноВсе = Ложь;
Если ВыделенныеОбласти.Количество() = 1 Тогда
ВыделеннаяОбласть = ВыделенныеОбласти[0];
ВыделеноВсе = Не Булево(
ВыделеннаяОбласть.Верх
+ ВыделеннаяОбласть.Низ
+ ВыделеннаяОбласть.Лево
+ ВыделеннаяОбласть.Право);
КонецЕсли;
ПараметрыРасчетаПоказателей.РассчитатьНаСервере = (ВыделеноВсе
Или ВыделенныеОбласти.Количество() >= 100
Или КоличествоВыделенныхЯчеек >= 1000);
Возврат ПараметрыРасчетаПоказателей;
КонецФункции
#КонецОбласти
#Область РегламентныеЗадания
@@ -219,7 +219,7 @@
// ИмяТабличногоДокумента - Строка - имя реквизита формы типа ТабличныйДокумент, показатели которого рассчитываются.
// ТекущаяКоманда - Строка - имя команды расчета показателя, например, "РассчитатьСумму".
// Определяет, какой показатель является основным.
// МинимальноеКоличество - Число
// МинимальноеКоличество - Число
//
Процедура РассчитатьПоказатели(Форма, ИмяТабличногоДокумента, ТекущаяКоманда = "", МинимальноеКоличество = 0) Экспорт
@@ -231,43 +231,38 @@
ТекущаяКоманда = ТекущаяКомандаРасчетаПоказателей(Элементы);
КонецЕсли;
// Расчет показателей.
РасчетныеПоказатели = ОбщегоНазначенияКлиентСервер.РасчетныеПоказателиЯчеек(
ТабличныйДокумент, ПолеТабличногоДокумента);
ПараметрыРасчета = ОбщегоНазначенияКлиентСервер.ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента);
// Установка значений показателей.
ЗаполнитьЗначенияСвойств(Форма, РасчетныеПоказатели);
// Переключение и форматирование показателей.
КомандыПоказателей = КомандыПоказателей();
Для Каждого Команда Из КомандыПоказателей Цикл
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, Команда.Ключ, "Пометка", Ложь);
Если ПараметрыРасчета.РассчитатьНаСервере Тогда
ДлительнаяОперация = СтандартныеПодсистемыВызовСервера.РасчетныеПоказателиЯчеек(
ТабличныйДокумент, ПараметрыРасчета.ВыделенныеОбласти, Форма.УникальныйИдентификатор);
Если ДлительнаяОперация = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
ПараметрыОжидания.ФормаВладелец = Форма;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", Форма);
ДополнительныеПараметры.Вставить("ТекущаяКоманда", ТекущаяКоманда);
ДополнительныеПараметры.Вставить("МинимальноеКоличество", МинимальноеКоличество);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПродолжитьРасчетПоказателей", ЭтотОбъект, ДополнительныеПараметры);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
Иначе
РасчетныеПоказатели = ОбщегоНазначенияКлиентСервер.РасчетныеПоказателиЯчеек(
ТабличныйДокумент, ПолеТабличногоДокумента, ПараметрыРасчета);
ЗавершитьРасчетПоказателей(Форма, ТекущаяКоманда, МинимальноеКоличество, РасчетныеПоказатели);
ЗначениеПоказателя = РасчетныеПоказатели[Команда.Значение];
Элементы[Команда.Значение].ФорматРедактирования = ФорматРедактированияПоказателя(ЗначениеПоказателя);
КонецЦикла;
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, ТекущаяКоманда, "Пометка", Истина);
// Вывод основного показателя.
ТекущийПоказатель = КомандыПоказателей[ТекущаяКоманда];
Если РасчетныеПоказатели.Количество >= МинимальноеКоличество Тогда
Форма.Показатель = Форма[ТекущийПоказатель];
Элементы.Показатель.ФорматРедактирования = Элементы[ТекущийПоказатель].ФорматРедактирования;
КонецЕсли;
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "КомандыВидовПоказателей", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "ВыбратьПоказатель", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
// Кэширование состояния выбора показателей.
Форма.ОсновнойПоказатель = ТекущаяКоманда;
Форма.РазвернутьОбластьПоказателей = Элементы.РассчитатьВсеПоказатели.Пометка;
КонецПроцедуры
// Управляет признаком видимости панели расчетных показателей.
@@ -994,6 +989,65 @@
#Область ТабличныйДокумент
Процедура ПродолжитьРасчетПоказателей(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
Если Результат.Статус <> "Выполнено" Тогда
Возврат;
КонецЕсли;
РасчетныеПоказатели = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ЗавершитьРасчетПоказателей(
ДополнительныеПараметры.Форма,
ДополнительныеПараметры.ТекущаяКоманда,
ДополнительныеПараметры.МинимальноеКоличество,
РасчетныеПоказатели);
КонецПроцедуры
Процедура ЗавершитьРасчетПоказателей(Форма, ТекущаяКоманда, МинимальноеКоличество, РасчетныеПоказатели)
Элементы = Форма.Элементы;
ЗаполнитьЗначенияСвойств(Форма, РасчетныеПоказатели);
КомандыПоказателей = КомандыПоказателей();
Для Каждого Команда Из КомандыПоказателей Цикл
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, Команда.Ключ, "Пометка", Ложь);
ЗначениеПоказателя = РасчетныеПоказатели[Команда.Значение];
Элементы[Команда.Значение].ФорматРедактирования = ФорматРедактированияПоказателя(ЗначениеПоказателя);
КонецЦикла;
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, ТекущаяКоманда, "Пометка", Истина);
ТекущийПоказатель = КомандыПоказателей[ТекущаяКоманда];
Если РасчетныеПоказатели.Количество >= МинимальноеКоличество Тогда
Форма.Показатель = Форма[ТекущийПоказатель];
Элементы.Показатель.ФорматРедактирования = Элементы[ТекущийПоказатель].ФорматРедактирования;
КонецЕсли;
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "КомандыВидовПоказателей", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "ВыбратьПоказатель", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
Форма.ОсновнойПоказатель = ТекущаяКоманда;
Форма.РазвернутьОбластьПоказателей = Элементы.РассчитатьВсеПоказатели.Пометка;
КонецПроцедуры
Функция ТекущаяКомандаРасчетаПоказателей(ЭлементыФормы)
Перем ТекущаяКоманда;
@@ -714,63 +714,6 @@
#Область ТабличныйДокумент
// Формирует описание выделенных областей табличного документа.
//
// Параметры:
// ПолеТабличногоДокумента - ПолеФормы
// - ПолеТабличногоДокумента - Документ
// значения ячеек которого участвуют в расчете.
//
// Возвращаемое значение:
// Структура:
// * ВыделенныеОбласти - Массив - содержит структуры со свойствами:
// * Верх - Число - номер строки верхней границы области.
// * Низ - Число - номер строки нижней границы области.
// * Лево - Число - номер колонки верхней границы области.
// * Право - Число - номер колонки нижней границы области.
// * ТипОбласти - ТипОбластиЯчеекТабличногоДокумента - Колонки, Прямоугольник, Строки, Таблица.
// * РассчитатьНаСервере - Булево - признак того, что расчет должен выполняться на сервере.
//
Функция ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента) Экспорт
ПараметрыРасчетаПоказателей = Новый Структура;
ПараметрыРасчетаПоказателей.Вставить("ВыделенныеОбласти", Новый Массив);
ПараметрыРасчетаПоказателей.Вставить("РассчитатьНаСервере", Ложь);
ВыделенныеОбласти = ПараметрыРасчетаПоказателей.ВыделенныеОбласти;
ВыделенныеОбластиДокумента = ПолеТабличногоДокумента.ПолучитьВыделенныеОбласти();
Для Каждого ВыделеннаяОбласть Из ВыделенныеОбластиДокумента Цикл
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Продолжить;
КонецЕсли;
ГраницыОбласти = Новый Структура("Верх, Низ, Лево, Право, ТипОбласти");
ЗаполнитьЗначенияСвойств(ГраницыОбласти, ВыделеннаяОбласть);
ВыделенныеОбласти.Добавить(ГраницыОбласти);
КонецЦикла;
ВыделеноВсе = Ложь;
Если ВыделенныеОбласти.Количество() = 1 Тогда
ВыделеннаяОбласть = ВыделенныеОбласти[0];
ВыделеноВсе = Не Булево(
ВыделеннаяОбласть.Верх
+ ВыделеннаяОбласть.Низ
+ ВыделеннаяОбласть.Лево
+ ВыделеннаяОбласть.Право);
КонецЕсли;
ПараметрыРасчетаПоказателей.РассчитатьНаСервере = (ВыделеноВсе Или ВыделенныеОбласти.Количество() >= 100);
Возврат ПараметрыРасчетаПоказателей;
КонецФункции
// Возвращает признак соответствия текста ячейки формату экспоненциальной записи.
// Это позволяет принять решение, рассчитывать ли данное значение методом ПривестиЗначение
// или отказаться от расчета, поскольку приведение к числу может потребовать значительных
@@ -1576,6 +1576,7 @@
ЭлементыНастроек = ПалитраКоллекцииЭлементовНастроек();
НайтиЭлементыФормыНастроек(Форма, Элементы.Временная, ЭлементыНастроек, ОписаниеНастроек);
УдалитьЭлементыЗначенийФлажков(ЭлементыНастроек);
СводныеСведения = ЭлементыНастроек.Скопировать();
СводныеСведения.Свернуть("ИндексНастройки", "КонтрольнаяСумма");
@@ -1600,7 +1601,12 @@
ГруппаЭлемента = Элемент.Поле.Родитель;
Если Элементы.Найти(ИмяДополнительногоЭлемента) <> Неопределено
Или ГруппаЭлемента.ПодчиненныеЭлементы.Найти(ИмяДополнительногоЭлемента) <> Неопределено Тогда
Продолжить;
Если Элемент.ЭтоФлажок Тогда
ИмяДополнительногоЭлемента = ИмяДополнительногоЭлемента + "Дополнительное";
Иначе
Продолжить;
КонецЕсли;
КонецЕсли;
ДополнительныйЭлемент = Элементы.Добавить(ИмяДополнительногоЭлемента, Тип("ДекорацияФормы"), ГруппаЭлемента);
@@ -1718,6 +1724,15 @@
КонецЦикла;
КонецПроцедуры
Процедура УдалитьЭлементыЗначенийФлажков(ЭлементыНастроек)
Поиск = Новый Структура("СвойствоНастройки, ЭтоФлажок", "Значение", Истина);
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Поиск);
Для Каждого Элемент Из НайденныеЭлементы Цикл
ЭлементыНастроек.Удалить(Элемент);
КонецЦикла;
КонецПроцедуры
Процедура НайтиЗначенияКакФлажки(Форма, ЭлементыНастроек, ИменаРеквизитов)
Поиск = Новый Структура;
Поиск.Вставить("ТипЗначения", Новый ОписаниеТипов("Булево"));
@@ -830,16 +830,13 @@
И ЗначениеЗаполнено(КомандаФормы.Картинка) Тогда
КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
КонецЕсли;
КомандаФормы.ИзменяетСохраняемыеДанные = Команда.ИзменяетВыбранныеОбъекты И ПараметрыРазмещения.ЭтоФормаОбъекта;
КнопкаФормы = Элементы.Добавить(Команда.ИмяВФорме, Тип("КнопкаФормы"), ГруппаФормы);
КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
КнопкаФормы.ИмяКоманды = Команда.ИмяВФорме;
КнопкаФормы.ТолькоВоВсехДействиях = Команда.ТолькоВоВсехДействиях;
Если Команда.ИзменяетВыбранныеОбъекты И Форма.ТолькоПросмотр Тогда
КнопкаФормы.Доступность = Ложь;
КонецЕсли;
Если ЗначениеЗаполнено(Команда.ЗначениеПометки) И ЭтоПутьДоРеквизита(Команда.ЗначениеПометки) Тогда
Команда.ЗначениеПометки = ВыражениеВычислениеПометки(Команда.ЗначениеПометки);
ПодключенныеКоманды.КомандыСПометкой.Добавить(ОписаниеКомандыНаКлиенте(Команда, КнопкаФормы));
@@ -2345,24 +2345,26 @@
Если ДляВнешнихПользователей Тогда
Если ЕстьРазделАдминистрирование Тогда
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа внешних пользователей</a> в разделе Администрирование,
|См. <a href = ""%1"">Настройки входа внешних пользователей</a> в разделе Администрирование,
|пункт Настройки пользователей и прав.'");
Иначе
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа внешних пользователей</a>.'");
|См. <a href = ""%1"">Настройки входа внешних пользователей</a>.'");
КонецЕсли;
Иначе
Если ЕстьРазделАдминистрирование Тогда
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа пользователей</a> в разделе Администрирование,
|См. <a href = ""%1"">Настройки входа пользователей</a> в разделе Администрирование,
|пункт Настройки пользователей и прав.'");
Иначе
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа пользователей</a>.'");
|См. <a href = ""%1"">Настройки входа пользователей</a>.'");
КонецЕсли;
КонецЕсли;
Возврат СтроковыеФункции.ФорматированнаяСтрока(Подсказка);
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
СтроковыеФункции.ФорматированнаяСтрока(Подсказка),
"НастройкиВходаПользователей");
КонецФункции
@@ -7583,10 +7585,14 @@
Идентификатор = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Идентификатор);
АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
Недействителен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвторизованныйПользователь, "Недействителен");
Если ПользовательИБ = Неопределено
Или Пользователи.ВходВПрограммуРазрешен(ПользовательИБ) Тогда
Возврат;
Или Пользователи.ВходВПрограммуРазрешен(ПользовательИБ)
И (РолиАдминистратораДоступны(ПользовательИБ)
Или Недействителен <> Истина) Тогда
Возврат;
КонецЕсли;
ОшибкаАвторизации = ЗаголовокСообщенияАвторизацияНеВыполненаСПереводомСтроки()
@@ -2040,32 +2040,17 @@
Для Каждого Настройка Из НастройкиОчисткиФайлов Цикл
Если Настройка.Действие = Перечисления.ВариантыОчисткиФайлов.НеОчищать Тогда
Продолжить;;
КонецЕсли;
МассивИсключений = Новый Массив;
ДетализированныеНастройки = НастройкиОчистки.НайтиСтроки(Новый Структура(
"ИдентификаторВладельца, ЭтоНастройкаДляЭлементаСправочника",
Настройка.ВладелецФайла,
Истина));
Если ДетализированныеНастройки.Количество() > 0 Тогда
Для Каждого ЭлементИсключение Из ДетализированныеНастройки Цикл
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
МассивИсключений.Добавить(ЭлементИсключение.ВладелецФайла);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев);
КонецЦикла;
КонецЕсли;
Для Каждого ЭлементИсключение Из ДетализированныеНастройки Цикл
ОчиститьФайлыПоНастройке(ЭлементИсключение, МассивИсключений);
КонецЦикла;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев);
ОчиститьФайлыПоНастройке(Настройка, МассивИсключений);
КонецЦикла;
КонецЕсли;
@@ -2734,6 +2719,19 @@
#Область СлужебныеПроцедурыИФункции
Процедура ОчиститьФайлыПоНастройке(Настройка, МассивИсключений)
Если Настройка.Действие = Перечисления.ВариантыОчисткиФайлов.НеОчищать Тогда
Возврат;
КонецЕсли;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
МассивИсключений.Добавить(Настройка.ВладелецФайла);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев);
КонецПроцедуры
Функция ТекстЗапросаДляОчисткиФайлов(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение)
ПолноеИмяСправочникаФайлов = Настройка.ТипВладельцаФайла.ПолноеИмя;
@@ -5613,7 +5611,14 @@
Перем Результат;
Попытка
ЗаблокироватьДанныеДляРедактирования(ПрисоединенныйФайл);
ПрисоединенныйФайл.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("Редактирует", ФайлОбъект.Метаданные())
И ЗначениеЗаполнено(ФайлОбъект.Редактирует) Тогда
Возврат Результат;
КонецЕсли;
ФайлОбъект.УстановитьПометкуУдаления(Истина);
Результат = ПрисоединенныйФайл;
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
@@ -5653,26 +5658,31 @@
Для Каждого ПрисоединенныйФайл Из УдаляемыеПрисоединенныеФайлы Цикл
ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТипХраненияФайла");
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(ПрисоединенныйФайл);
УдаляемыеФайлы.Добавить(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла));
КонецЕсли;
НачатьТранзакцию();
Попытка
ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТипХраненияФайла");
Если ТипХраненияФайла= Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(ПрисоединенныйФайл);
УдаляемыеФайлы.Добавить(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла));
КонецЕсли;
УдалитьФайл(ПрисоединенныйФайл);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске
И УдаляемыеФайлы.Количество() > 0 Тогда
УдаляемыеФайлы.Удалить(УдаляемыеФайлы.ВГраница());
КонецЕсли;
ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(НСтр("ru='РаботаСФайлами.Удаление файла'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
ПрисоединенныйФайл.Метаданные(),
ПрисоединенныйФайл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПопытки;
Продолжить;
КонецПопытки;
КонецЦикла;
Для Каждого Файл Из УдаляемыеФайлы Цикл
@@ -5689,7 +5699,7 @@
// Параметры:
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл
//
Процедура УдалитьФайл(ПрисоединенныйФайл)
Функция УдалитьФайл(ПрисоединенныйФайл)
Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить(ПрисоединенныйФайл.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ПрисоединенныйФайл);
@@ -5698,6 +5708,11 @@
ПрисоединенныйФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
Если ТипЗнч(ПрисоединенныйФайл) <> Тип("СправочникСсылка.ВерсииФайлов")
И ЗначениеЗаполнено(ПрисоединенныйФайлОбъект.Редактирует) Тогда
Возврат Ложь;
КонецЕсли;
Том = ПрисоединенныйФайлОбъект.Том;
Если ЗначениеЗаполнено(Том) Тогда
ТомОбъект = Том.ПолучитьОбъект();
@@ -5706,7 +5721,9 @@
КонецЕсли;
ПрисоединенныйФайлОбъект.Удалить();
КонецПроцедуры
Возврат Истина;
КонецФункции
Функция ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода) Экспорт
@@ -210,10 +210,18 @@
Функция ОсвободитьФайлы(Знач Файлы) Экспорт
ВерсииФайлов = Новый Соответствие;
Для Каждого ПрисоединенныйФайл Из Файлы Цикл
РаботаСФайламиСлужебный.ОсвободитьФайл(ПрисоединенныйФайл);
ДанныеФайла = ДанныеФайла(ПрисоединенныйФайл);
ВерсииФайлов.Вставить(ПрисоединенныйФайл, ДанныеФайла.ТекущаяВерсия);
КонецЦикла;
Возврат РаботаСФайламиСлужебный.КоличествоЗанятыхФайлов();
Результат = Новый Структура;
Результат.Вставить("КоличествоЗанятыхФайлов", РаботаСФайламиСлужебный.КоличествоЗанятыхФайлов());
Результат.Вставить("ВерсииФайлов", ВерсииФайлов);
Возврат Результат;
КонецФункции
@@ -1737,8 +1737,17 @@
Возврат;
КонецЕсли;
КоличествоЗанятыхФайлов = РаботаСФайламиСлужебныйВызовСервера.ОсвободитьФайлы(МассивФайлов);
СтандартныеПодсистемыКлиент.УстановитьПараметрКлиента("КоличествоЗанятыхФайлов", КоличествоЗанятыхФайлов);
ДанныеФайлов = РаботаСФайламиСлужебныйВызовСервера.ОсвободитьФайлы(МассивФайлов);
// Удаляем файлы из рабочего каталога, чтобы не подхватить измененные файлы при новом редактировании.
Обработчик = Новый ОписаниеОповещения;
Для Каждого Файл Из МассивФайлов Цикл
ВерсияФайла = ДанныеФайлов.ВерсииФайлов.Получить(Файл);
УдалитьФайлИзРабочегоКаталога(Обработчик, ВерсияФайла, Истина);
КонецЦикла;
СтандартныеПодсистемыКлиент.УстановитьПараметрКлиента("КоличествоЗанятыхФайлов",
ДанныеФайлов.КоличествоЗанятыхФайлов);
Если МассивФайлов.Количество() > 1 Тогда
ОповеститьОбИзменении(ТипЗнч(МассивФайлов[0]));
Оповестить("Запись_Файл", Новый Структура, Неопределено);
@@ -1148,19 +1148,30 @@
Результат = "";
Если ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_СМС") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СодержаниеПредставленияТелефона(НастройкиПользователя, КодЯзыка));
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СодержаниеПредставленияТелефона(НастройкиПользователя, КодЯзыка));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ЭлектроннаяПочта") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СодержаниеПредставленияПочты(НастройкиПользователя, КодЯзыка));
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СодержаниеПредставленияПочты(НастройкиПользователя, КодЯзыка));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_МобильноеПриложение") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='Мобильное приложение <span style=""font: ВыделенныйЗаголовокПодтвержденияШрифт"">КриптоПро myDSS</span>'", КодЯзыка));
ТекстСообщения = НСтр("ru = 'Мобильное приложение'") + " " +
"<span style=""font: %1"">" + НСтр("ru = 'КриптоПро'") + " myDSS</span>";
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
"ВыделенныйЗаголовокПодтвержденияШрифт"));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_AirKeyLite") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='Мобильное приложение <span style=""font: ВыделенныйЗаголовокПодтвержденияШрифт"">AirKey DSS</span>'", КодЯзыка));
ТекстСообщения = НСтр("ru = 'Мобильное приложение'") + " " +
"<span style=""font: %1"">" + "AirKey DSS</span>";
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
"ВыделенныйЗаголовокПодтвержденияШрифт"));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ОфлайнПодтверждение") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru = 'Офлайн-подтверждение через приложение'", КодЯзыка));
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Офлайн-подтверждение через приложение'", КодЯзыка));
КонецЕсли;
@@ -3463,11 +3463,15 @@
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
РегистрЗаписи = РегистрыСведений.СертификатыПользователяDSS.СоздатьНаборЗаписей();
РегистрЗаписи.Отбор.УчетнаяЗаписьDSS.Установить(СсылкаУчетнойЗаписи);
РегистрЗаписи.Очистить();
РегистрЗаписи.Записать(Истина);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
// Возвращает сведения о сертификате зарегистрированный на сервере DSS.
@@ -80,9 +80,20 @@
КонецПроцедуры
// См. ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек.
Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, ВыделенныеОбласти) Экспорт
Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, ВыделенныеОбласти, УникальныйИдентификатор = Неопределено) Экспорт
Возврат ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек(ТабличныйДокумент, ВыделенныеОбласти);
Если УникальныйИдентификатор = Неопределено Тогда
Возврат ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек(ТабличныйДокумент, ВыделенныеОбласти);
КонецЕсли;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Расчет показателей ячеек'");
Возврат ДлительныеОперации.ВыполнитьФункцию(
ПараметрыВыполнения,
"ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек",
ТабличныйДокумент,
ВыделенныеОбласти);
КонецФункции
@@ -24,7 +24,7 @@
// ПоставляемыйПрофиль - Строка - строка идентификатора поставляемого профиля.
// - СправочникСсылка.ПрофилиГруппДоступа - ссылка на профиль, который
// создан по описанию в модуле УправлениеДоступомПереопределяемый
// в процедуре ЗаполнитьПоставляемыеПрофилиГруппДоступа.
// в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа.
// Профили с непустым списком видов доступа не поддерживаются.
// Профиль групп доступа Администратор не поддерживается.
//
@@ -3352,7 +3352,7 @@
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами;
Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() И НЕ ТолькоКэшРеквизиты Тогда
Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() И НЕ ТолькоКэшРеквизиты Тогда
// Заполнение групп значений доступа в регистре сведений ГруппыЗначенийДоступа.
Для Каждого ИмяТаблицы Из ЗначенияДоступаСГруппами.ИменаТаблицДляОбновления Цикл
@@ -3816,7 +3816,8 @@
УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра();
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра(, Истина);
РегистрыСведений.ИспользуемыеВидыДоступа.ПриИзмененииИспользованияВидовДоступа();
Если ОграничениеДоступаНаУровнеЗаписейВключено Тогда
ЗаписьЖурналаРегистрации(
@@ -11497,7 +11498,7 @@
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра();
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра(, Истина);
ДатаОбновленияВерсииРасширений = Справочники.ВерсииРасширений.ПоследняяВерсияРасширений().ДатаОбновления;
@@ -11522,11 +11523,16 @@
ДатаАктуальностиПараметровОграниченияДоступа = ДатаСозданияПараметровОграниченияДоступа;
КонецЕсли;
ИспользованиеВидовДоступаИзменено = ИспользованиеВидовДоступаИзменено(ДействующиеПараметры);
Если ДатаОбновленияВерсииРасширений > ДатаАктуальностиПараметровОграниченияДоступа
Или ДатаОбновленияВсехПараметровРаботыПрограммы > ДатаАктуальностиПараметровОграниченияДоступа
Или ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений > ДатаАктуальностиПараметровОграниченияДоступа
Или ИспользованиеВидовДоступаИзменено(ДействующиеПараметры) Тогда
Или ИспользованиеВидовДоступаИзменено Тогда
Если ИспользованиеВидовДоступаИзменено Тогда
РегистрыСведений.ИспользуемыеВидыДоступа.ПриИзмененииИспользованияВидовДоступа();
КонецЕсли;
ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений();
Если ПараметрыСеанса.ПараметрыОграниченияДоступа.Версия > 100000000000000 Тогда
УменьшитьНомераВерсийПараметровОграниченияДоступа();
@@ -20982,32 +20988,34 @@
Результат = "Ложь";
ИначеЕсли Контекст.РассчитыватьПраваПользователей Тогда
Если Условие.Узел = "ЧтениеОбъектаРазрешено" Тогда
Результат = Новый Соответствие;
Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл
Если ТипЗнч(КлючИЗначение.Ключ) <> Контекст.ТипГруппыДоступа Тогда
Результат.Вставить(КлючИЗначение.Ключ, Истина);
ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа
Или КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда
Результат.Вставить(Контекст.ГруппаДоступа, Истина);
КонецЕсли;
КонецЦикла;
Если Условие.Узел = "ЧтениеОбъектаРазрешено"
Или Условие.Узел = "ИзменениеОбъектаРазрешено" Тогда
ИначеЕсли Условие.Узел = "ИзменениеОбъектаРазрешено" Тогда
Результат = Новый Соответствие;
ПроверятьПравоИзменение = Условие.Узел <> "ЧтениеОбъектаРазрешено";
Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл
Если Не КлючИЗначение.Значение Тогда
Если ПроверятьПравоИзменение И Не КлючИЗначение.Значение Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(КлючИЗначение.Ключ) <> Контекст.ТипГруппыДоступа Тогда
Результат.Вставить(КлючИЗначение.Ключ, Истина);
ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа
Или КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда
Результат.Вставить(Контекст.ГруппаДоступа, Истина);
ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа Тогда
УчастникиГруппыДоступа = Контекст.УчастникиГруппДоступа.Получить(
Контекст.ГруппаДоступа);
Если УчастникиГруппыДоступа <> Неопределено Тогда
Если Результат.Количество() = 0 Тогда
Результат = Новый Соответствие(
Новый ФиксированноеСоответствие(УчастникиГруппыДоступа));
Иначе
Для Каждого ОписаниеУчастника Из УчастникиГруппыДоступа Цикл
Результат.Вставить(ОписаниеУчастника.Ключ, Истина);
КонецЦикла;
КонецЕсли;
КонецЕсли;
ИначеЕсли КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда
Результат = "Истина";
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
@@ -21155,7 +21163,7 @@
Возврат;
КонецЕсли;
Если УчастникиГруппыДоступа.Получить(ГруппаПользователей) = Неопределено Тогда
Если УчастникиГруппыДоступа.Получить(ГруппаПользователей) <> Неопределено Тогда
Результат = Новый Соответствие;
Результат.Вставить(ГруппаПользователей, Истина);
Возврат;
@@ -21163,7 +21171,7 @@
ГруппыПользователейГруппыДоступа = Контекст.ГруппыПользователейГруппДоступа.Получить(Контекст.ГруппаДоступа);
Если ГруппыПользователейГруппыДоступа = Неопределено Тогда
Возврат;
ГруппыПользователейГруппыДоступа = Новый Соответствие;
КонецЕсли;
ПользователиГруппы = Контекст.ПользователиГруппПользователей.Получить(ГруппаПользователей);
@@ -22692,31 +22700,33 @@
Возврат ИспользуемыеТипыЗначений;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
|УПОРЯДОЧИТЬ ПО
| ТипЗначенийДоступа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица КАК Таблица,
| ИспользуемыеВидыДоступаПоТаблицам.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступаПоТаблицам КАК ИспользуемыеВидыДоступаПоТаблицам
|ГДЕ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица
|
|УПОРЯДОЧИТЬ ПО
| Таблица,
| ТипЗначенийДоступа";
Если ВсеВидыДоступаИспользуются <> Истина Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|ГДЕ
| &ОграничиватьДоступНаУровнеЗаписей
|
|УПОРЯДОЧИТЬ ПО
| ТипЗначенийДоступа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица КАК Таблица,
| ИспользуемыеВидыДоступаПоТаблицам.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступаПоТаблицам КАК ИспользуемыеВидыДоступаПоТаблицам
|ГДЕ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица
|
|УПОРЯДОЧИТЬ ПО
| Таблица,
| ТипЗначенийДоступа";
Если ПолноеИмя <> Неопределено Тогда
Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмя, Ложь);
Если Идентификатор <> Null Тогда
@@ -22727,11 +22737,17 @@
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица", "ИСТИНА");
КонецЕсли;
СтрокаОграничениеДоступаВключено =
?(Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(), "ИСТИНА", "ЛОЖЬ");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОграничиватьДоступНаУровнеЗаписей",
СтрокаОграничениеДоступаВключено);
РезультатыЗапроса = Запрос.ВыполнитьПакет();
Используемые = РезультатыЗапроса[0].Выгрузить();
ИспользуемыеПоТаблицам = РезультатыЗапроса[1].Выгрузить();
Если ПолноеИмя = Неопределено Тогда
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256);
Хеширование.Добавить(СтрокаОграничениеДоступаВключено);
Хеширование.Добавить(СтрокаДанныхДляХеширования(Используемые));
Хеширование.Добавить(СтрокаДанныхДляХеширования(ИспользуемыеПоТаблицам));
ИспользуемыеТипыЗначений.ХешСумма = Base64Строка(Хеширование.ХешСумма);
@@ -29723,11 +29739,8 @@
ИспользуемыеТипыЗначений = Контекст.ИспользуемыеТипыЗначений.ПоТаблицам.Получить(Контекст.Список);
Если ИспользуемыеТипыЗначений = Неопределено Тогда
ИспользуемыеТипыЗначений = Контекст.ИспользуемыеТипыЗначений.ДляИБ;
КонецЕсли;
Возврат ИспользуемыеТипыЗначений.Получить(ТипЗначений) <> Неопределено;
Возврат ИспользуемыеТипыЗначений <> Неопределено
И ИспользуемыеТипыЗначений.Получить(ТипЗначений) <> Неопределено;
КонецФункции
@@ -30240,7 +30253,9 @@
Если СвойстваВидовДоступа.ПоТипамЗначений.Получить(Тип) = Неопределено Тогда
// Тип группы значений доступа.
Если Контекст.Список = Метаданные.НайтиПоТипу(Тип).ПолноеИмя() Тогда
Если Контекст.Список = Метаданные.НайтиПоТипу(Тип).ПолноеИмя()
Или Контекст.ТипыПользователя.Найти(Тип) <> Неопределено Тогда
Свойства.ТипыСохраненияЗначений.Добавить(Тип);
Иначе
Свойства.ТипыСохраненияТипаРазрешенный.Добавить(Тип);
@@ -31322,17 +31337,35 @@
КонецЕсли;
СписокНедостающихТипов.СортироватьПоЗначению();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для списка %1
|не удалось подготовить параметры ограничения доступа к работе, так как
|в определяемом типе ПолеРегистраКлючейДоступаКРегистрам не хватает типов:
| - %2,
|имеющихся у полей (%3) в ограничении доступа:
| %4'"),
Контекст.Список,
СтрСоединить(СписокНедостающихТипов.ВыгрузитьЗначения(), "," + Символы.ПС + " - "),
СтрСоединить(СписокПолей.ВыгрузитьЗначения(), ", "),
ТекстСОтступом(Контекст.ОписанияОграничений.Получить(Контекст.Список).Текст, " "));
Если ЗначениеЗаполнено(Контекст.ИмяОтдельногоРегистраКлючей) Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для списка %1
|не удалось подготовить параметры ограничения доступа к работе,
|так как в измерениях регистра сведений
| %2
|не хватает типов:
| - %3,
|имеющихся у полей (%4) в ограничении доступа:
| %5'"),
Контекст.Список,
Контекст.ИмяОтдельногоРегистраКлючей,
СтрСоединить(СписокНедостающихТипов.ВыгрузитьЗначения(), "," + Символы.ПС + " - "),
СтрСоединить(СписокПолей.ВыгрузитьЗначения(), ", "),
ТекстСОтступом(Контекст.ОписанияОграничений.Получить(Контекст.Список).Текст, " "));
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для списка %1
|не удалось подготовить параметры ограничения доступа к работе, так как
|в определяемом типе ПолеРегистраКлючейДоступаКРегистрам не хватает типов:
| - %2,
|имеющихся у полей (%3) в ограничении доступа:
| %4'"),
Контекст.Список,
СтрСоединить(СписокНедостающихТипов.ВыгрузитьЗначения(), "," + Символы.ПС + " - "),
СтрСоединить(СписокПолей.ВыгрузитьЗначения(), ", "),
ТекстСОтступом(Контекст.ОписанияОграничений.Получить(Контекст.Список).Текст, " "));
КонецЕсли;
ВызватьИсключение ТекстОшибки;
@@ -32884,7 +32917,9 @@
ИначеЕсли Не Контекст.ЭтоСсылочныйТип Тогда
Если Свойства.ОграничениеВШаблонахЧерезКлючиДоступаПользователей Тогда
Если Свойства.ОграничениеВШаблонахЧерезКлючиДоступаПользователейИГруппДоступа
Или Свойства.ОграничениеВШаблонахЧерезКлючиДоступаПользователей Тогда
Если Контекст.ДляВнешнихПользователей Тогда
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
@@ -1578,6 +1578,8 @@
КонецФункции
// Возвращает список стран Евразийского экономического союза (ЕАЭС).
// Вызов функции может инициировать http-запрос к веб-сервису по работе с классификаторами
// для получения актуального списка всех стран участников ЕАЭС.
//
// Возвращаемое значение:
// - ТаблицаЗначений - список стран Евразийского экономического союза (ЕАЭС):
@@ -1591,22 +1593,7 @@
//
Функция СтраныУчастникиЕАЭС() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтраныМира.Ссылка КАК Ссылка,
| СтраныМира.Наименование КАК Наименование,
| СтраныМира.Код КАК Код,
| СтраныМира.НаименованиеПолное КАК НаименованиеПолное,
| СтраныМира.КодАльфа2 КАК КодАльфа2,
| СтраныМира.МеждународноеНаименование КАК МеждународноеНаименование,
| СтраныМира.КодАльфа3 КАК КодАльфа3
|ИЗ
| Справочник.СтраныМира КАК СтраныМира
|ГДЕ
| СтраныМира.УчастникЕАЭС = ИСТИНА";
СтраныЕАЭС = Запрос.Выполнить().Выгрузить();
СтраныЕАЭС = ПользовательскиеСтраныЕАЭС();
Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") = Неопределено Тогда
Возврат СтраныЕАЭС;
@@ -5855,6 +5842,34 @@
Возврат Результат
КонецФункции
// Страны ЕАЭС добавленные пользователем в справочник СтраныМира.
//
// Возвращаемое значение:
// см. СтраныУчастникиЕАЭС
//
Функция ПользовательскиеСтраныЕАЭС() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтраныМира.Ссылка КАК Ссылка,
| СтраныМира.Наименование КАК Наименование,
| СтраныМира.Код КАК Код,
| СтраныМира.НаименованиеПолное КАК НаименованиеПолное,
| СтраныМира.КодАльфа2 КАК КодАльфа2,
| СтраныМира.МеждународноеНаименование КАК МеждународноеНаименование,
| СтраныМира.КодАльфа3 КАК КодАльфа3
|ИЗ
| Справочник.СтраныМира КАК СтраныМира
|ГДЕ
| СтраныМира.УчастникЕАЭС = ИСТИНА";
СтраныЕАЭС = Запрос.Выполнить().Выгрузить();
Возврат СтраныЕАЭС;
КонецФункции
Функция СформироватьТекстЗапроса(Знач ЕстьКолонкаИдентификаторСтрокиТабличнойЧасти, Знач ТекстЗапросаИсторическаяИнформация, Знач ЭтоОсновнойЯзык)
Если ЭтоОсновнойЯзык Тогда
@@ -71,6 +71,10 @@
//
Функция ИнициализироватьПечатнуюФорму(Макет) Экспорт
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
ИмяВременногоКаталога = ФайловаяСистема.СоздатьВременныйКаталог();
КопироватьСодержимоеКаталога(Макет.ИмяКаталога, ИмяВременногоКаталога);
@@ -98,13 +102,18 @@
//
Функция МакетИзДвоичныхДанных(ДвоичныеДанныеМакета) Экспорт
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
Расширение = ОпределитьРасширениеФайлаДанныхПоСигнатуре(ДвоичныеДанныеМакета);
Если НЕ Расширение = "docx" Тогда
ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", НСтр("ru = 'Макет шаблона офисного документа имеет не верный формат.'"));
ВызватьИсключение(НСтр("ru = 'Ошибка анализа макета шаблона. Макет шаблона офисного документа имеет не верный формат.'"));
КонецЕсли;
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("docx");
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("docx");
ИмяВременногоКаталога = ФайловаяСистема.СоздатьВременныйКаталог();
ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);
@@ -132,6 +141,10 @@
Процедура ЗакрытьСоединение(ПечатнаяФорма) Экспорт
Попытка
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
ФайловаяСистема.УдалитьВременныйКаталог(ПечатнаяФорма.ИмяКаталога);
Исключение
ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
@@ -152,6 +165,10 @@
//
Функция СформироватьДокумент(ПечатнаяФорма) Экспорт
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
КоличествоОбластей = ПечатнаяФорма.СтруктураДокумента.ПрисоединенныеОбласти.Количество();
Если КоличествоОбластей = 0 Тогда
@@ -3100,9 +3117,9 @@
КонецЕсли;
Если ДвоичныеДанныеМакета = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Неопределено;
КонецЕсли;
ПотокДанных = ДвоичныеДанныеМакета.ОткрытьПотокДляЧтения();
ЧтениеДанных = Новый ЧтениеДанных(ПотокДанных);
@@ -1698,14 +1698,7 @@
Функция ХешСуммаПочтовогоСообщения(Сообщение)
МассивСтрок = Новый Массив;
Если ТипЗнч(Сообщение.Отправитель) = Тип("ИнтернетПочтовыйАдрес") Тогда
МассивСтрок.Добавить(Сообщение.Отправитель.Адрес);
КонецЕсли;
МассивСтрок.Добавить(Сообщение.ДатаОтправления);
МассивСтрок.Добавить(Сообщение.Тема);
Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(СтрСоединить(МассивСтрок));
Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(СокрЛП(Сообщение.Заголовок), ХешФункция.CRC32);
КонецФункции
@@ -734,7 +734,21 @@
КонецЕсли;
Для Каждого КлючИЗначение Из ДополнительныеПараметры Цикл
ОбновитьЗначение(СертификатОбъект[КлючИЗначение.Ключ], КлючИЗначение.Значение);
Если КлючИЗначение.Ключ = "Пользователь" Тогда
Если ЗначениеЗаполнено(КлючИЗначение.Значение) Тогда
Если ЗначениеЗаполнено(СертификатОбъект.Пользователь) И СертификатОбъект.Пользователь <> КлючИЗначение.Значение Тогда
ДобавитьПользователяВСертификат(СертификатОбъект.Пользователь, СертификатОбъект.Пользователи);
ДобавитьПользователяВСертификат(КлючИЗначение.Значение, СертификатОбъект.Пользователи);
СертификатОбъект.Пользователь = Неопределено;
ИначеЕсли СертификатОбъект.Пользователи.Количество() > 0 Тогда
ДобавитьПользователяВСертификат(КлючИЗначение.Значение, СертификатОбъект.Пользователи);
Иначе
ОбновитьЗначение(СертификатОбъект[КлючИЗначение.Ключ], КлючИЗначение.Значение);
КонецЕсли;
КонецЕсли;
Иначе
ОбновитьЗначение(СертификатОбъект[КлючИЗначение.Ключ], КлючИЗначение.Значение);
КонецЕсли;
КонецЦикла;
Если СертификатОбъект.Модифицированность() Тогда
@@ -1532,7 +1546,7 @@
ЗаявлениеДоступно = ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно;
Возврат Новый Структура("ДляОрганизаций, ДляФизическихЛиц",
ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) < '20211201',
ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) < '20220101',
ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) >= '20210401');
КонецФункции
@@ -1845,6 +1859,20 @@
КонецПроцедуры
// Для процедуры ЗаписатьСертификатВСправочник.
//
// Параметры:
// Пользователь - СправочникСсылка.Пользователи - пользователь
// Пользователи - СправочникТабличнаяЧасть.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи - пользователи
//
Процедура ДобавитьПользователяВСертификат(Пользователь, Пользователи)
Если Пользователи.Найти(Пользователь, "Пользователь") = Неопределено Тогда
Пользователи.Добавить().Пользователь = Пользователь;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьПараметрОбъект(Объект, ИмяПроцедуры, ТолькоСсылки = Ложь)
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Объект", Объект,
@@ -287,6 +287,7 @@
НастройкиПодсистемы = Новый Структура;
НастройкиПодсистемы.Вставить("ПерсональныеНастройки", ЭлектроннаяПодпись.ПерсональныеНастройки());
НастройкиПодсистемы.Вставить("ОбщиеНастройки", ЭлектроннаяПодпись.ОбщиеНастройки());
НастройкиПодсистемы.Вставить("ОписаниеКомпоненты", ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеКомпоненты());
НастройкиПодсистемы = Новый ФиксированнаяСтруктура(НастройкиПодсистемы);
Параметры.Вставить("ЭлектроннаяПодпись", НастройкиПодсистемы);
КонецЕсли;
@@ -2009,7 +2010,7 @@
Функция ОбъектВнешнейКомпонентыXMLDSig()
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеКомпоненты();
ОбъектКомпоненты = ОбщегоНазначения.ПодключитьКомпонентуИзМакета(ОписаниеКомпоненты.ИмяОбъекта,
ОписаниеКомпоненты.ПолноеИмяМакета);
@@ -78,7 +78,7 @@
Запрос.УстановитьПараметр("Отпечатки", ТаблицаСвойствСертификатов.Скопировать(, "Отпечаток"));
Запрос.Текст =
"ВЫБРАТЬ
| Отпечатки.Отпечаток
| Отпечатки.Отпечаток КАК Отпечаток
|ПОМЕСТИТЬ Отпечатки
|ИЗ
| &Отпечатки КАК Отпечатки
@@ -86,31 +86,85 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Сертификаты.Отпечаток,
| Отпечатки.Отпечаток КАК Отпечаток,
| Сертификаты.Наименование КАК Наименование,
| Сертификаты.Организация,
| Сертификаты.Ссылка,
| Сертификаты.ДанныеСертификата
| Сертификаты.Организация КАК Организация,
| Сертификаты.Пользователь КАК Пользователь,
| Сертификаты.Ссылка КАК Ссылка,
| Сертификаты.ДанныеСертификата КАК ДанныеСертификата
|ПОМЕСТИТЬ ВсеСертификаты
|ИЗ
| Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Отпечатки КАК Отпечатки
| ПО Сертификаты.Отпечаток = Отпечатки.Отпечаток
|ГДЕ
| НЕ Сертификаты.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)
| И НЕ Сертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| И Сертификаты.Организация = &Организация";
| И Сертификаты.Организация = &Организация
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Сертификаты.Отпечаток КАК Отпечаток,
| Сертификаты.Наименование КАК Наименование,
| Сертификаты.Организация КАК Организация,
| Сертификаты.Ссылка КАК Ссылка,
| Сертификаты.ДанныеСертификата КАК ДанныеСертификата
|ИЗ
| ВсеСертификаты КАК Сертификаты
|ГДЕ
| Сертификаты.Ссылка В
| (ВЫБРАТЬ
| ВсеСертификаты.Ссылка КАК Ссылка
| ИЗ
| ВсеСертификаты КАК ВсеСертификаты
| ГДЕ
| ВсеСертификаты.Пользователь = &Пользователь
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВсеСертификаты.Ссылка
| ИЗ
| ВсеСертификаты КАК ВсеСертификаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи
| ПО
| ВсеСертификаты.Ссылка = СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка
| ГДЕ
| СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь = &Пользователь)";
Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
Если Не Отбор.ТолькоСертификатыСЗаполненнойПрограммой Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ Сертификаты.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИСТИНА");
КонецЕсли;
Если Отбор.ВключатьСертификатыСПустымПользователем Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ Сертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)", "ИСТИНА");
Запрос.Текст = Запрос.Текст + "
|ОБЪЕДИНИТЬ ВСЕ
|" +
"ВЫБРАТЬ
| ВсеСертификаты.Отпечаток КАК Отпечаток,
| ВсеСертификаты.Наименование КАК Наименование,
| ВсеСертификаты.Организация КАК Организация,
| ВсеСертификаты.Ссылка КАК Ссылка,
| ВсеСертификаты.ДанныеСертификата КАК ДанныеСертификата
|ИЗ
| ВсеСертификаты КАК ВсеСертификаты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи
| ПО ВсеСертификаты.Ссылка = СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка
|ГДЕ
| ВсеСертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| И СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка ЕСТЬ NULL";
КонецЕсли;
Если ЗначениеЗаполнено(Отбор.Организация) Тогда
Запрос.УстановитьПараметр("Организация", Отбор.Организация);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Сертификаты.Организация = &Организация", "ИСТИНА");
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
МассивЛичныхСертификатов = Новый Массив;
@@ -3166,6 +3166,13 @@
КонецПроцедуры
// См. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеКомпоненты
Функция ОписаниеКомпоненты() Экспорт
Возврат СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭлектроннаяПодпись.ОписаниеКомпоненты;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Общие процедуры и функции управляемых форм.
@@ -4618,7 +4625,7 @@
ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты();
ПараметрыПодключения.ТекстПояснения = ТекстПояснения;
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
ОписаниеКомпоненты = ОписаниеКомпоненты();
ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета(
Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст),
@@ -1322,24 +1322,6 @@
КонецФункции
// Описание подключения внешней компоненты (XMLDSIG).
//
// Возвращаемое значение:
// Структура:
// * ПолноеИмяМакета - Строка
// * ИмяОбъекта - Строка
//
Функция ОписаниеКомпоненты() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "XMLDSignAddIn");
Параметры.Вставить("ПолноеИмяМакета",
"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig");
Возврат Параметры;
КонецФункции
Функция ИдентификаторыАлгоритмовХешированияИОткрытогоКлюча() Экспорт
Идентификаторы = Новый Массив;
@@ -123,6 +123,71 @@
КонецФункции
// Возвращаемое значение:
// ФиксированнаяСтруктура:
// * ИмяОбъекта - Строка
// * ПолноеИмяМакета - Строка
//
Функция ОписаниеКомпоненты() Экспорт
ИменаМакетовБезВерсии = Новый Массив;
ИменаМакетовБезВерсии.Добавить("КомпонентаExtraCryptoAPI");
ИменаМакетовБезВерсии.Добавить("КомпонентаXMLDSig");
ВерсииМакетов = Новый Соответствие;
Для Каждого Макет Из Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.Макеты Цикл
Если Макет.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.ВнешняяКомпонента Тогда
Продолжить;
КонецЕсли;
ИмяМакета = Макет.Имя;
Для Каждого ИмяМакетаБезВерсии Из ИменаМакетовБезВерсии Цикл
Если СтрНачинаетсяС(ВРег(ИмяМакета), ВРег(ИмяМакетаБезВерсии)) Тогда
Версия = Сред(ИмяМакета, СтрДлина(ИмяМакетаБезВерсии) + 1);
ЧастиВерсии = СтрРазделить(Версия, "_", Ложь);
РасширенныеЧастиВерсии = Новый Массив;
Для Каждого ЧастьВерсии Из ЧастиВерсии Цикл
РасширенныеЧастиВерсии.Добавить(ВРег(Прав("0000" + ЧастьВерсии, 5)));
КонецЦикла;
РасширеннаяВерсия = СтрСоединить(РасширенныеЧастиВерсии, "_");
ВерсииМакета = ВерсииМакетов.Получить(ИмяМакетаБезВерсии);
Если ВерсииМакета = Неопределено Тогда
ВерсииМакета = Новый СписокЗначений;
ВерсииМакетов.Вставить(ИмяМакетаБезВерсии, ВерсииМакета);
КонецЕсли;
ВерсииМакета.Добавить(РасширеннаяВерсия, ИмяМакета);
КонецЕсли;
КонецЦикла;
КонецЦикла;
ВерсииМакета = Неопределено;
Для Каждого ИмяМакетаБезВерсии Из ИменаМакетовБезВерсии Цикл
ВерсииМакета = ВерсииМакетов.Получить(ИмяМакетаБезВерсии);
Если ВерсииМакета <> Неопределено Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если ВерсииМакета = Неопределено Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось найти макет внешней компоненты в метаданных справочника
|%1.'"),
"СертификатыКлючейЭлектроннойПодписиИШифрования");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
ВерсииМакета.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
ПолноеИмяМакета = "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет."
+ ВерсииМакета[0].Представление;
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "XMLDSignAddIn");
Параметры.Вставить("ПолноеИмяМакета", ПолноеИмяМакета);
Возврат Новый ФиксированнаяСтруктура(Параметры);
КонецФункции
// Возвращаемое значение:
// Структура:
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
+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="bcd40b64-0cf0-11ec-d08f-0242ac110002">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4a72826e-16d5-11ec-e398-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="bcd40b65-0cf0-11ec-d08f-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="bcd40b96-0cf0-11ec-d08f-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="bcd40b97-0cf0-11ec-d08f-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="bcd40ba0-0cf0-11ec-d08f-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="bcd40ba1-0cf0-11ec-d08f-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="bcd40baa-0cf0-11ec-d08f-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="73ddf94f-5b41-42e9-b7b6-91ee67097b59"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="4a728278-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4a7282aa-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="4a7282b4-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="4a7282b5-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="4a7282be-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4a7282c8-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="ef1f8629-e2de-4040-b221-53ef4cd3cdf3"/>
<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.5.180</version>
<version>3.1.5.192</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,1e8813be-0cf1-11ec-9d8d-0242ac110002,1,058a5bec-0cf1-11ec-319a-0242ac110002,"3.1.5.180","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6466,1,0,bcd40b64-0cf0-11ec-d08f-0242ac110002,bcd40b64-0cf0-11ec-d08f-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
{6,1,1,ad0e7d92-16d5-11ec-6794-0242ac110002,1,94040bb4-16d5-11ec-059c-0242ac110002,"3.1.5.192","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6466,1,0,4a72826e-16d5-11ec-e398-0242ac110002,4a72826e-16d5-11ec-e398-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
@@ -41,8 +41,14 @@
КонецЕсли;
Если ОграничениеДоступаНаУровнеЗаписейИзменено Тогда
УправлениеДоступомСлужебный.ПриИзмененииОграниченияДоступаНаУровнеЗаписей(
ОграничениеДоступаНаУровнеЗаписейВключено);
ОбновитьПовторноИспользуемыеЗначения();
Попытка
УправлениеДоступомСлужебный.ПриИзмененииОграниченияДоступаНаУровнеЗаписей(
ОграничениеДоступаНаУровнеЗаписейВключено);
Исключение
ОбновитьПовторноИспользуемыеЗначения();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
@@ -18,8 +18,9 @@
Если Параметры.СостояниеЗаявления <> Перечисления.СостоянияЗаявленияНаВыпускСертификата.Исполнено Тогда
Элементы.ДекорацияСертификаты.Видимость = Ложь;
Элементы.ДекорацияИнформацияДляПоддержки.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru = 'В случае ошибки обратитесь в службу поддержки фирмы ""1С"", предоставив <a href = ""ИнформацияДляПоддержки"">техническую информацию о возникшей проблеме</a>.'"));
Элементы.ДекорацияИнформацияДляПоддержки.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В случае ошибки обратитесь в службу поддержки фирмы ""1С"", предоставив <a href = ""%1"">техническую информацию о возникшей проблеме</a>.'"),
"ИнформацияДляПоддержки"));
КонецЕсли;
КонецПроцедуры
@@ -576,16 +576,17 @@
|4. Копия документа, удостоверяющего личность владельца сертификата.
|5. Копия страхового свидетельства обязательного пенсионного страхования (СНИЛС) владельца сертификата или уведомления о регистрации в системе персонифицированного учета (Форма АДИ-РЕГ).'");
Иначе
ТекстПредупреждения = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
ТекстПредупреждения = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Комплект документов:
|1. Заявление на выпуск сертификата (подготовленное на предыдущем шаге).
|2. Копия* свидетельства о постановке на учет в налоговом органе (ИНН).
|3. Копия* свидетельства о государственной регистрации юридического лица (ОГРН) или лист записи ЕГРЮЛ (Форма № Р50007).
|4. Копия* документа, удостоверяющего личность представителя организации, указанного для выпуска сертификата.
|5. Копия* страхового свидетельства обязательного пенсионного страхования (СНИЛС) представителя организации, указанного для выпуска сертификата.
|6. Копия* документа, подтверждающего полномочия представителя организации, указанного для выпуска сертификата (решение собственника, протокол собрания учредителей, выписка ЕГРЮЛ или <a href=""http://ca.1c.ru/doc/doverennost_p3.rtf"">доверенность</a>).
|6. Копия* документа, подтверждающего полномочия представителя организации, указанного для выпуска сертификата (решение собственника, протокол собрания учредителей, выписка ЕГРЮЛ или <a href=""%1"">доверенность</a>).
|
|* Копии документов заверяются подписью руководителя и печатью организации.'"));
|* Копии документов заверяются подписью руководителя и печатью организации.'"),
"http://ca.1c.ru/doc/doverennost_p3.rtf"));
КонецЕсли;
ПоказатьПредупреждение(, ТекстПредупреждения);
@@ -4705,7 +4706,7 @@
&НаКлиенте
Процедура УстановитьПараметрыКомпоненты(ПолноеИмяМакета, ПараметрыПодключения)
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиент.ОписаниеКомпоненты();
ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета;
ПараметрыПодключения.ИдентификаторыСозданияОбъектов.Добавить(ОписаниеКомпоненты.ИмяОбъекта);
@@ -4745,7 +4746,7 @@
&НаКлиенте
Процедура УстановитьПодключенныеМодули(РаботаСДвоичнымиДанными, Криптография, РезультатПодключения)
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиент.ОписаниеКомпоненты();
ОбъектКомпоненты = РезультатПодключения.ПодключаемыйМодуль.Получить(ОписаниеКомпоненты.ИмяОбъекта);
РаботаСДвоичнымиДанными = ОбъектКомпоненты;
Криптография = ОбъектКомпоненты;
@@ -3880,6 +3880,11 @@
<items xsi:type="form:FormField">
<name>БИПДлительностьОперацииПлатежнойСистемы</name>
<id>1945</id>
<title>
<key>ru</key>
<value>Длительность
операции</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -3888,12 +3893,7 @@
<dataPath xsi:type="form:DataPath">
<segments>БИПДлительностьОперацииПлатежнойСистемы</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Длительность ожидания подтверждения
оплаты покупателем. (количество секунд)</value>
</toolTip>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<toolTipRepresentation>Button</toolTipRepresentation>
<handlers>
<event>OnChange</event>
<name>БИПДлительностьОперацииПлатежнойСистемыПриИзменении</name>
@@ -3919,7 +3919,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>14</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -3929,6 +3928,46 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>БИПДекорацияЕдинициИзмерения</name>
<id>1955</id>
<title>
<key>ru</key>
<value>секунд</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<toolTip>
<key>ru</key>
<value>Длительность ожидания подтверждения
оплаты покупателем.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>БИПДекорацияЕдинициИзмеренияРасширеннаяПодсказка</name>
<id>1957</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>БИПДекорацияЕдинициИзмеренияКонтекстноеМеню</name>
<id>1956</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -3950,7 +3989,7 @@
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
@@ -3872,7 +3872,8 @@
Уровни = СопоставлениеУровняАдресаИНаименования(Адрес.AddressType, ВключатьУлицу);
Для каждого Уровень Из Уровни Цикл
УровеньКлюч = ?(Уровень.Ключ < 10, Уровень.Ключ * 10, Уровень.Ключ);
УровеньКлюч = УровеньАдреса(Уровень.Ключ, Адрес.AddressType);
Если УровеньКлюч > МаксимальныйУровень
И Адрес.Свойство(Уровень.Значение + "Id")
И ЗначениеЗаполнено(Адрес[Уровень.Значение + "Id"]) Тогда
@@ -3886,6 +3887,20 @@
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция УровеньАдреса(Знач Уровень, Знач ТипАдреса)
Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса)
И Уровень = 4 Тогда
Возврат 45; // В мун. адресах город следует после поселений (уровень 41)
КонецЕсли;
Уровень = ?(Уровень < 10, Уровень * 10, Уровень);
Возврат Уровень;
КонецФункции
&НаСервереБезКонтекста
Функция НайтиИндексУДома(АдресныйОбъект, Дом)
@@ -81,6 +81,7 @@
НастройкиОтбора = Настройки["ОтборМетаданных"];
Если ЗначениеЗаполнено(НастройкиОтбора) Тогда
ОтборМетаданных = ОтборМетаданныхТолькоСуществующие(НастройкиОтбора);
Элементы.НастроитьОтбор.Заголовок = ПредставлениеОтбораМетаданных(НастройкиОтбора);
ИначеЕсли ЗначениеЗаполнено(Параметры.ОтборМетаданных) Тогда
ОтборМетаданных = Параметры.ОтборМетаданных;
@@ -1004,6 +1005,21 @@
#Область СобытияФормы
&НаСервереБезКонтекста
Функция ОтборМетаданныхТолькоСуществующие(ОтборМетаданных)
Результат = Новый СписокЗначений;
Для каждого ВыбранныеМетаданные Из ОтборМетаданных Цикл
Если Метаданные.НайтиПоПолномуИмени(ВыбранныеМетаданные.Значение) = Неопределено Тогда
Продолжить;
КонецЕсли;
Результат.Добавить(ВыбранныеМетаданные.Значение, ВыбранныеМетаданные.Представление);
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере
Процедура УстановитьПереданныйОтборМетаданных()
Перем Элемент;
@@ -229,6 +229,7 @@
<key>ru</key>
<value>Макет файла обновления конфигурации</value>
</synonym>
<comment>АПК:450 Для читабельности журнала обновления конфигурации.</comment>
<templateType>TextDocument</templateType>
</templates>
<templates uuid="45d79e4d-8c2a-432b-abb8-fb9046abea40">
@@ -11,6 +11,8 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();
ОтправлятьПисьмаВФорматеHTML = ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML");
НастройкиХранилище = Взаимодействия.ПолучитьНастройкуРаботаСПочтой();
@@ -44,9 +46,9 @@
ВключатьТелоИсходногоПисьма = ?(НастройкиХранилище.Свойство("ВключатьТелоИсходногоПисьма"),
НастройкиХранилище.ВключатьТелоИсходногоПисьма,Ложь);
ОтправлятьСообщенияСразу = ?(НастройкиХранилище.Свойство("ОтправлятьСообщенияСразу"),
НастройкиХранилище.ОтправлятьСообщенияСразу,Ложь);
НастройкиХранилище.ОтправлятьСообщенияСразу,Ложь) И ИнформационнаяБазаФайловая;
Элементы.ОтправлятьСообщенияСразу.Видимость = ОбщегоНазначения.ИнформационнаяБазаФайловая();
Элементы.ОтправлятьСообщенияСразу.Видимость = ИнформационнаяБазаФайловая;
Элементы.ПодписьПриОтвете.Картинка = Взаимодействия.КартинкаСтраницыПодписи(ВключатьПодписьПриОтветеПересылке);
Элементы.ПодписьДляНового.Картинка = Взаимодействия.КартинкаСтраницыПодписи(ВключатьПодписьДляНовыхСообщений);
@@ -4226,9 +4226,11 @@
Процедура СФормироватьДекорациюТолькоЗначимыеКонтакты()
Если ТолькоЗначимыеКонтакты Тогда
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Контакты с взаимодействиями по отбору, <a href = ""ИзменитьТолькоЗначимыеКонтакты"">изменить</a>'"));
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Контакты с взаимодействиями по отбору, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеКонтакты");
Иначе
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все контакты, <a href = ""ИзменитьТолькоЗначимыеКонтакты"">изменить</a>'"));
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все контакты, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеКонтакты");
КонецЕсли;
Элементы.ДекорацияТолькоЗначимыеКонтакты.Заголовок = ТекстЗаголовка;
@@ -4239,9 +4241,11 @@
Процедура СФормироватьДекорациюТолькоЗначимыеПредметы()
Если ТолькоЗначимыеПредметы Тогда
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Предметы с взаимодействиями по отбору, <a href = ""ИзменитьТолькоЗначимыеПредметы"">изменить</a>'"));
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Предметы с взаимодействиями по отбору, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеПредметы");
Иначе
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все предметы, <a href = ""ИзменитьТолькоЗначимыеПредметы"">изменить</a>'"));
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все предметы, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеПредметы");
КонецЕсли;
Элементы.ДекорацияТолькоЗначимыеПредметы.Заголовок = ТекстЗаголовка;
@@ -353,14 +353,14 @@
Иначе
Если ФорматСообщения = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML
И ДокументHTMLТекущегоПисьмаПодготовлен Тогда
Если ФорматСообщения = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
ТекущийОбъект.ТекстHTML = Взаимодействия.ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML);
ТекущийОбъект.Текст = Взаимодействия.ПолучитьОбычныйТекстИзHTML(ТекущийОбъект.ТекстHTML);
Иначе
Если ДокументHTMLТекущегоПисьмаПодготовлен Тогда
ТекущийОбъект.ТекстHTML = Взаимодействия.ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML);
КонецЕсли;
ТекущийОбъект.Текст = Взаимодействия.ПолучитьОбычныйТекстИзHTML(ТекущийОбъект.ТекстHTML);
КонецЕсли;
@@ -658,7 +658,7 @@
// Подготовка новых записей для обновления.
НовыеЗаписи = СоздатьНаборЗаписей().Выгрузить();
Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() Тогда
// Добавление групп значений.
Если СвойстваВидаДоступа.ТипГруппЗначений = Тип("Неопределено") Тогда
@@ -80,11 +80,14 @@
ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаПользователи", Новый ОписаниеТипов("Булево"));
ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаВнешниеПользователи", Новый ОписаниеТипов("Булево"));
ОграничениеДоступаВключено = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить();
Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() <> ОграничениеДоступаВключено Тогда
ОбновитьПовторноИспользуемыеЗначения();
КонецЕсли;
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
Для Каждого СвойстваВидаДоступа Из СвойстваВидовДоступа.Массив Цикл
Если Не УправлениеДоступомСлужебный.ВидДоступаИспользуется(СвойстваВидаДоступа.Ссылка)
И Не СвойстваВидаДоступа.Имя = "ДополнительныеОтчетыИОбработки" Тогда
Если Не УправлениеДоступомСлужебный.ВидДоступаИспользуется(СвойстваВидаДоступа.Ссылка) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ИспользуемыеВидыДоступа.Добавить();
@@ -16,7 +16,11 @@
// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись,
// устанавливается Истина, иначе не изменяется.
//
Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено) Экспорт
// БезОбновленияЗависимыхДанных - Булево - если Истина, тогда
// не вызвать процедуру ПриИзмененииИспользованияВидовДоступа и
// не планировать обновление параметров ограничения доступа.
//
Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено, БезОбновленияЗависимыхДанных = Ложь) Экспорт
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
ИспользуемыеВидыДоступа = СоздатьНаборЗаписей().Выгрузить();
@@ -83,7 +87,9 @@
Если ЕстьТекущиеИзменения Тогда
ЕстьИзменения = Истина;
ПриИзмененииИспользованияВидовДоступа();
Если Не БезОбновленияЗависимыхДанных Тогда
ПриИзмененииИспользованияВидовДоступа(Истина);
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
@@ -144,20 +150,22 @@
Возврат;
КонецЕсли;
ПриИзмененииИспользованияВидовДоступа();
ПриИзмененииИспользованияВидовДоступа(Истина);
Справочники.ГруппыДоступа.ЗарегистрироватьСсылки("ИспользуемыеВидыДоступа", Null);
КонецПроцедуры
// Для процедур ОбновитьДанныеРегистра, ОбработатьИзменениеЗарегистрированноеПриЗагрузке.
Процедура ПриИзмененииИспользованияВидовДоступа()
Процедура ПриИзмененииИспользованияВидовДоступа(ПланироватьОбновлениеПараметровОграниченияДоступа = Ложь) Экспорт
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра();
РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ОбновитьДанныеРегистра();
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа(
"ПриИзмененииИспользованияВидовДоступа");
Если ПланироватьОбновлениеПараметровОграниченияДоступа Тогда
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа(
"ПриИзмененииИспользованияВидовДоступа");
КонецЕсли;
КонецПроцедуры
@@ -35,12 +35,9 @@
| &ПодстановкаПоляВидИзмененияСтроки
|ИЗ
| РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияГруппДоступаПоУмолчанию
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
| ПО (ИспользуемыеВидыДоступа.ТипЗначенийДоступа = ЗначенияГруппДоступаПоУмолчанию.ТипЗначенийДоступа)
| И (НЕ ЗначенияГруппДоступаПоУмолчанию.ВсеРазрешеныБезИсключений)
| И (&УсловиеОтбораТиповЗначений1)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа
| ПО (ТаблицыГруппДоступа.ГруппаДоступа = ЗначенияГруппДоступаПоУмолчанию.ГруппаДоступа)
| И (НЕ ЗначенияГруппДоступаПоУмолчанию.ВсеРазрешеныБезИсключений)
| И (ВЫБОР
| КОГДА ТаблицыГруппДоступа.ПравоДобавление
| ТОГДА НЕ ТаблицыГруппДоступа.ПравоДобавлениеБезОграничения
@@ -48,6 +45,7 @@
| ТОГДА НЕ ТаблицыГруппДоступа.ПравоИзменениеБезОграничения
| ИНАЧЕ НЕ ТаблицыГруппДоступа.ПравоЧтениеБезОграничения
| КОНЕЦ)
| И (&УсловиеОтбораТиповЗначений1)
| И (&УсловиеОтбораТаблиц1)";
// Подготовка выбираемых полей с необязательным отбором.
@@ -34,9 +34,9 @@
ОписаниеРасчетаИтогов = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах");
РежимОчисткиФайлов = РаботаСФайламиСлужебный.РежимОчисткиФайлов();
ИспользоватьТома = РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомахНаДиске();
НастроитьРежимОчисткиФайлов();
ОтобразитьИзмененияРежимОчисткиФайлов(ЭтотОбъект);
ИспользоватьТома = РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомахНаДиске();
КонецПроцедуры
@@ -28,8 +28,9 @@
НадписьИмяУзла = НСтр("ru = 'Не удалось установить обновление программы, полученное из
|""%1"".
|Техническую информацию см. в <a href = ""ЖурналРегистрации"">Журнале регистрации</a>.'");
Элементы.ИнформационнаяНадписьИмяУзла.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(НадписьИмяУзла, УзелИнформационнойБазы.Наименование);
|Техническую информацию см. в <a href = ""%2"">Журнале регистрации</a>.'");
Элементы.ИнформационнаяНадписьИмяУзла.Заголовок =
СтроковыеФункции.ФорматированнаяСтрока(НадписьИмяУзла, УзелИнформационнойБазы.Наименование, "ЖурналРегистрации");
УстановитьОтображениеЭлементовФормы();
@@ -66,8 +66,12 @@
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.2.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.2.249") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.4") < 0 Тогда
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.4") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.376") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.188") < 0 Тогда
ЕстьТекущиеИзменения = Истина;
КонецЕсли;
@@ -166,6 +170,15 @@
ЗапланироватьОбновление_00_00263154("ПереходНаВерсиюБСП_3.0.3.190");
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.376") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.188") < 0 Тогда
РегистрыСведений.ИспользуемыеВидыДоступа.ПриИзмененииИспользованияВидовДоступа();
ЗапланироватьОбновление(Ложь, Истина, "ПереходНаВерсиюБСП_3.1.4.376");
КонецЕсли;
КонецПроцедуры
// Для процедуры ОбновитьДанныеРегистраПоИзменениямКонфигурации.
@@ -185,7 +185,6 @@
<items xsi:type="form:FormField">
<name>НепринятыеДанныеПоКоллизии</name>
<id>7</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -219,7 +218,6 @@
<items xsi:type="form:FormField">
<name>ПринятыеДанныеПоКоллизии</name>
<id>37</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -253,7 +251,6 @@
<items xsi:type="form:FormField">
<name>НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе</name>
<id>10</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -287,7 +284,6 @@
<items xsi:type="form:FormField">
<name>НепринятыйПоДатеЗапретаОбъектСуществуетВБазе</name>
<id>40</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -648,7 +644,7 @@
<name>ОшибкаПроверкиПередОтправкойXTDO</name>
<title>
<key>ru</key>
<value>Ошибка проверки перед отправкой (XTDO)</value>
<value>Ошибка проверки перед отправкой (XDTO)</value>
</title>
<id>7</id>
<valueType>
@@ -30,6 +30,11 @@
КэшЗначений.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе = МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе;
КэшЗначений.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе = МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе;
Элементы.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе.Видимость = Истина;
Элементы.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе.Видимость = Истина;
Элементы.ПринятыеДанныеПоКоллизии.Видимость = Истина;
Элементы.НепринятыеДанныеПоКоллизии.Видимость = Истина;
КонецЕсли;
Параметры.Свойство("ОтборТипыПредупреждений", ОтборТипыПредупреждений);
@@ -837,7 +837,6 @@
<items xsi:type="form:Button">
<name>СписокКоллизии</name>
<id>238</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -863,7 +862,6 @@
<items xsi:type="form:Button">
<name>СписокЗапретЗагрузкиПоДате</name>
<id>240</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -1880,116 +1878,45 @@
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
РегистрСведенийРезультатыОбменаДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
РегистрСведенийРезультатыОбменаДанными.ПроблемныйОбъект КАК ПроблемныйОбъект,
РегистрСведенийРезультатыОбменаДанными.ОбъектМетаданных КАК ОбъектМетаданных,
РегистрСведенийРезультатыОбменаДанными.ТипПроблемы КАК ТипПредупреждения,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ПроблемныйОбъект КАК ПроблемныйОбъект,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ОбъектМетаданных КАК ОбъектМетаданных,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы КАК ТипПредупреждения,
ВЫБОР
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НепроведенныйДокумент)
КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НепроведенныйДокумент)
ТОГДА &amp;НепроведенныйДокумент
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты)
КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты)
ТОГДА &amp;ПустыеРеквизиты
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта)
КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта)
ТОГДА &amp;ПроверкаПередОтправкой
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных)
КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных)
ТОГДА &amp;ТехническаяОшибкаОтправка
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных)
КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных)
ТОГДА &amp;ТехническаяОшибкаПолучение
КОНЕЦ КАК ПредставлениеТипаПредупреждения,
РегистрСведенийРезультатыОбменаДанными.ДатаВозникновения КАК ДатаВозникновения,
ВЫРАЗИТЬ(РегистрСведенийРезультатыОбменаДанными.Причина КАК СТРОКА(1000)) КАК Описание,
РегистрСведенийРезультатыОбменаДанными.КлючУникальности КАК КлючУникальности,
РегистрСведенийРезультатыОбменаДанными.Пропущена КАК СкрытьПредупреждение,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ДатаВозникновения КАК ДатаВозникновения,
ВЫРАЗИТЬ(РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Причина КАК СТРОКА(1000)) КАК Описание,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.КлючУникальности КАК КлючУникальности,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Пропущена КАК СкрытьПредупреждение,
ВЫБОР
КОГДА РегистрСведенийРезультатыОбменаДанными.Комментарий = &quot;&quot;
КОГДА РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Комментарий = &quot;&quot;
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ КАК ЕстьКомментарий,
РегистрСведенийРезультатыОбменаДанными.Комментарий КАК КомментарийПредупреждения,
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Комментарий КАК КомментарийПредупреждения,
НЕОПРЕДЕЛЕНО КАК ВерсияИзДругойПрограммы,
НЕОПРЕДЕЛЕНО КАК ВерсияЭтойПрограммы,
НЕОПРЕДЕЛЕНО КАК ВерсияИзДругойПрограммыПринята,
НЕОПРЕДЕЛЕНО КАК ЭтоНовыйОбъект
ИЗ
РегистрСведений.РезультатыОбменаДанными КАК РегистрСведенийРезультатыОбменаДанными
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
НепринятаяВерсия.АвторВерсии,
НепринятаяВерсия.Объект,
НЕОПРЕДЕЛЕНО,
НепринятаяВерсия.ТипВерсииОбъекта,
ВЫБОР
КОГДА НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
ТОГДА &amp;НепринятыйСуществующий
КОГДА НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе)
ТОГДА &amp;НепринятыйНовый
КОНЕЦ,
НепринятаяВерсия.ДатаВерсии,
НепринятаяВерсия.ПредупреждениеСинхронизации,
НЕОПРЕДЕЛЕНО,
НепринятаяВерсия.ВерсияПроигнорирована,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(НепринятаяВерсия.Комментарий КАК СТРОКА(1000))) = &quot;&quot;
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ,
НепринятаяВерсия.Комментарий,
ЕСТЬNULL(НепринятаяВерсия.НомерВерсии, 0),
ЕСТЬNULL(ТекущаяВерсия.НомерВерсии, 0),
НЕОПРЕДЕЛЕНО,
ВЫБОР
КОГДА НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ
ИЗ
РегистрСведений.ВерсииОбъектов КАК НепринятаяВерсия
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ТекущаяВерсия
ПО НепринятаяВерсия.Объект = ТекущаяВерсия.Объект
И (НепринятаяВерсия.НомерВерсии = ТекущаяВерсия.НомерВерсии + 1)
ГДЕ
НепринятаяВерсия.ТипВерсииОбъекта В (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе), ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе))
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВерсииДругойПрограммы.АвторВерсии,
ВерсииДругойПрограммы.Объект,
НЕОПРЕДЕЛЕНО,
ВерсииДругойПрограммы.ТипВерсииОбъекта,
ВЫБОР
КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
ТОГДА &amp;ПринятыеДанныеКоллизии
КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии)
ТОГДА &amp;НепринятыеДанныеКоллизии
КОНЕЦ,
ВерсииДругойПрограммы.ДатаВерсии,
ВерсииДругойПрограммы.ПредупреждениеСинхронизации,
НЕОПРЕДЕЛЕНО,
ВерсииДругойПрограммы.ВерсияПроигнорирована,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(ВерсииДругойПрограммы.Комментарий КАК СТРОКА(1024))) = &quot;&quot;
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ,
ВерсииДругойПрограммы.Комментарий,
ЕСТЬNULL(ВерсииДругойПрограммы.НомерВерсии, 0),
ЕСТЬNULL(ВерсииЭтойПрограммы.НомерВерсии, 0),
ВЫБОР
КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ,
НЕОПРЕДЕЛЕНО
ИЗ
РегистрСведений.ВерсииОбъектов КАК ВерсииДругойПрограммы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ВерсииЭтойПрограммы
ПО ВерсииДругойПрограммы.Объект = ВерсииЭтойПрограммы.Объект
И (ВерсииДругойПрограммы.НомерВерсии = ВерсииЭтойПрограммы.НомерВерсии + 1)
ГДЕ
ВерсииДругойПрограммы.ТипВерсииОбъекта В (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии), ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии))</queryText>
РегистрСведений.РезультатыОбменаДанными КАК РегистрСведенийРезультатыОбменаДаннымиПереопределяемый</queryText>
<mainTable>InformationRegister.РезультатыОбменаДанными</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
@@ -20,7 +20,8 @@
КэшЗначений.Вставить("НепринятыеДанныеПоКоллизии", Неопределено);
КэшЗначений.Вставить("ПринятыеДанныеПоКоллизии", Неопределено);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда
ПодсистемаВерсионированияСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов");
Если ПодсистемаВерсионированияСуществует Тогда
МенеджерПеречисления = Перечисления["ТипыВерсийОбъекта"];
КэшЗначений.Вставить("НепринятыйПоДатеЗапретаОбъектСуществуетВБазе", МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе);
@@ -28,6 +29,11 @@
КэшЗначений.Вставить("НепринятыеДанныеПоКоллизии", МенеджерПеречисления.НепринятыеДанныеПоКоллизии);
КэшЗначений.Вставить("ПринятыеДанныеПоКоллизии", МенеджерПеречисления.ПринятыеДанныеПоКоллизии);
ДинамическийСписокСПредупреждениямиВерсионирования();
Элементы.СписокКоллизии.Видимость = Истина;
Элементы.СписокЗапретЗагрузкиПоДате.Видимость = Истина;
КонецЕсли;
ОтборыПоПереданнымПараметрам();
@@ -44,10 +50,15 @@
Список.Параметры.УстановитьЗначениеПараметра("ПроверкаПередОтправкой", НСтр("ru ='Проверка перед отправкой'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ТехническаяОшибкаОтправка", НСтр("ru ='Тех. ошибка (отправка)'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ТехническаяОшибкаПолучение", НСтр("ru ='Тех. ошибка (получение)'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйСуществующий", НСтр("ru ='Непринятый, существующий'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйНовый", НСтр("ru ='Непринятый, новый'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ПринятыеДанныеКоллизии", НСтр("ru ='Приняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыеДанныеКоллизии", НСтр("ru ='Неприняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
Если ПодсистемаВерсионированияСуществует Тогда
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйСуществующий", НСтр("ru ='Непринятый, существующий'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйНовый", НСтр("ru ='Непринятый, новый'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ПринятыеДанныеКоллизии", НСтр("ru ='Приняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыеДанныеКоллизии", НСтр("ru ='Неприняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
КонецЕсли;
КонецПроцедуры
@@ -597,6 +608,22 @@
КонецПроцедуры
&НаСервере
Процедура ДинамическийСписокСПредупреждениямиВерсионирования()
ТекстЗапроса = "";
МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов");
МодульВерсионированиеОбъектов.ТекстЗапросаСпискаПредупрежденияВерсий(ТекстЗапроса);
// ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка() нельзя использовать из-за того,
// что метод не умеет очищать свойство динамического списка "ОсновнаяТаблица"
Список.ТекстЗапроса = Список.ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + ТекстЗапроса;
Список.ОсновнаяТаблица = "";
Список.ДинамическоеСчитываниеДанных = Ложь;
КонецПроцедуры
&НаСервере
Процедура ДобавитьПоляОформления(ЭлементУсловногоОформления, ИменаПолейОформления)
@@ -89,9 +89,9 @@
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
НенужныеФайлы = РаботаСФайламиСлужебный.ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода);
Для Каждого Стр Из НенужныеФайлы Цикл
Для Каждого НенужныйФайл Из НенужныеФайлы Цикл
НоваяСтрока = ТаблицаНенужныхФайлов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр);
ЗаполнитьЗначенияСвойств(НоваяСтрока, НенужныйФайл);
КонецЦикла;
КонецПроцедуры
@@ -1653,6 +1653,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ПричиныИзмененияАдресныхСведений</name>
<right>
@@ -3852,93 +3939,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
<right>
@@ -21,6 +21,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.РассылкиОтчетов.Command.ВыполнитьСейчас</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>// ДляОбъекта(ПолеОбъекта = "")
@@ -12,6 +12,15 @@
<right>
<name>Insert</name>
<value>true</value>
<restrictionByCondition>
<condition>#Если &amp;ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.УчетныеЗаписиDSS", "","",
"Условие", "Т.Автор = &amp;ТекущийПользователь",
"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","")
#КонецЕсли</condition>
</restrictionByCondition>
</right>
<right>
<name>Update</name>
@@ -2288,6 +2288,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>
@@ -5407,45 +5446,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>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
<right>