diff --git a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl
index 13498810f..a307c5edb 100644
--- a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl
+++ b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -43,7 +43,7 @@
//
// Параметры:
// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача.
-// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка - точка маршрута.
+// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание - точка маршрута.
//
// Возвращаемое значение:
// Структура - структуру с описанием формы выполнения задачи.
@@ -123,7 +123,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl
index 61e947060..9ab26cfd7 100644
--- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl
+++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl
@@ -14,8 +14,6 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа.
-//
// Параметры:
// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа
//
diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Form.form b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Form.form
new file mode 100644
index 000000000..9a6960a83
--- /dev/null
+++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Form.form
@@ -0,0 +1,797 @@
+
+
+
+ ЦелаяЧасть
+ 100
+
+ ЦелаяЧастьЕдинственноеЧисло
+ 104
+
+ ru
+ Один
+
+ true
+ true
+
+ true
+
+
+ ЦелаяЧастьЕдинственноеЧисло
+
+
+ OnChange
+ ПолеВводаПриИзменении
+
+
+ ЦелаяЧастьЕдинственноеЧислоРасширеннаяПодсказка
+ 106
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЦелаяЧастьЕдинственноеЧислоКонтекстноеМеню
+ 105
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+
+ EditTextChange
+ ПолеВводаИзменениеТекстаРедактирования
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ЦелаяЧастьМножественноеЧисло
+ 107
+
+ ru
+ Два
+
+ true
+ true
+
+ true
+
+
+ ЦелаяЧастьМножественноеЧисло
+
+
+ OnChange
+ ПолеВводаПриИзменении
+
+
+ ЦелаяЧастьМножественноеЧислоРасширеннаяПодсказка
+ 109
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЦелаяЧастьМножественноеЧислоКонтекстноеМеню
+ 108
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+
+ EditTextChange
+ ПолеВводаИзменениеТекстаРедактирования
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Целая часть
+
+
+ ЦелаяЧастьРасширеннаяПодсказка
+ 101
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ ДробнаяЧасть
+ 102
+
+ ДробнаяЧастьЕдинственноеЧисло
+ 110
+
+ ru
+ Один
+
+ true
+ true
+
+ true
+
+
+ ДробнаяЧастьЕдинственноеЧисло
+
+
+ OnChange
+ ПолеВводаПриИзменении
+
+
+ ДробнаяЧастьЕдинственноеЧислоРасширеннаяПодсказка
+ 112
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДробнаяЧастьЕдинственноеЧислоКонтекстноеМеню
+ 111
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+
+ EditTextChange
+ ПолеВводаИзменениеТекстаРедактирования
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ДробнаяЧастьМножественноеЧисло
+ 113
+
+ ru
+ Два
+
+ true
+ true
+
+ true
+
+
+ ДробнаяЧастьМножественноеЧисло
+
+
+ OnChange
+ ПолеВводаПриИзменении
+
+
+ ДробнаяЧастьМножественноеЧислоРасширеннаяПодсказка
+ 115
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДробнаяЧастьМножественноеЧислоКонтекстноеМеню
+ 114
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+
+ EditTextChange
+ ПолеВводаИзменениеТекстаРедактирования
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Дробная часть
+
+
+ ДробнаяЧастьРасширеннаяПодсказка
+ 103
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+
+ ГруппаЧислоРазрядовДробнойЧасти
+ 56
+
+ ДлинаДробнойЧасти
+ 20
+ true
+ true
+
+ true
+
+
+ ДлинаДробнойЧасти
+
+
+ OnChange
+ ПолеВводаПриИзменении
+
+
+ ДлинаДробнойЧастиExtendedTooltip
+ 96
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДлинаДробнойЧастиКонтекстноеМеню
+ 33
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+ Left
+
+ 15
+ true
+ true
+ false
+ true
+
+
+ ru
+ 2 знака
+
+
+ 2
+
+
+
+
+ ru
+ 1 знак
+
+
+ 1
+
+
+
+
+ ru
+ 3 знака
+
+
+ 3
+
+
+
+ Style.BorderColor
+
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ГруппаЧислоРазрядовДробнойЧастиExtendedTooltip
+ 95
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ NormalSeparation
+ true
+ true
+ Auto
+ Auto
+
+
+
+ ГруппаПримерПрописи
+ 61
+
+ СуммаЧисло
+ 59
+
+ ru
+ Сумма
+
+ true
+ true
+
+ true
+
+
+ СуммаЧисло
+
+
+ OnChange
+ ПолеВводаПриИзменении
+
+
+ СуммаЧислоExtendedTooltip
+ 98
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СуммаЧислоКонтекстноеМеню
+ 60
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ СуммаПрописью
+ 62
+ true
+ true
+
+ true
+
+
+ СуммаПрописью
+
+
+ СуммаПрописьюExtendedTooltip
+ 99
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СуммаПрописьюКонтекстноеМеню
+ 63
+ true
+
+ InputField
+ true
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Пример прописи суммы
+
+
+ ГруппаПримерПрописиExtendedTooltip
+ 97
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ WeakSeparation
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+ None
+ false
+
+ ФормаКоманднаяПанель
+ -1
+
+ ФормаЗаписатьИЗакрыть
+ 116
+ true
+ true
+
+ true
+
+
+ ФормаЗаписатьИЗакрытьРасширеннаяПодсказка
+ 117
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ЗаписатьИЗакрыть
+ Auto
+ true
+ true
+ true
+ UserCmds
+ Auto
+
+
+ ФормаЗаписать
+ 118
+ true
+ true
+
+ true
+
+
+ ФормаЗаписатьРасширеннаяПодсказка
+ 119
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.Записать
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ Left
+ true
+
+
+ OnOpen
+ ПриОткрытии
+
+
+ OnCreateAtServer
+ ПриСозданииНаСервере
+
+ Abort
+ Close
+ CustomizeForm
+ Ignore
+ No
+ OK
+ RestoreValues
+ Retry
+ SaveValues
+ Yes
+ LockOwner
+ true
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ ДлинаДробнойЧасти
+
+ ru
+ Число разрядов дробной части
+
+ 11
+
+ String
+
+
+
+ true
+
+
+ true
+
+ true
+
+
+ СуммаЧисло
+
+ ru
+ Сумма число
+
+ 12
+
+ Number
+
+ 10
+ 2
+ true
+
+
+
+ true
+
+
+ true
+
+
+
+ СуммаПрописью
+
+ ru
+ Сумма прописью
+
+ 13
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ЦелаяЧастьЕдинственноеЧисло
+
+ ru
+ Целая часть единственное число
+
+ 1
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ЦелаяЧастьМножественноеЧисло
+
+ ru
+ Целая часть единственное число
+
+ 2
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ДробнаяЧастьЕдинственноеЧисло
+
+ ru
+ Дробная часть единственное число
+
+ 3
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ДробнаяЧастьМножественноеЧисло
+
+ ru
+ Дробная часть множественное число
+
+ 4
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ Записать
+
+ ru
+ Записать
+
+ 1
+
+ ru
+ Записать
+
+
+
+
+ Записать
+
+
+ Auto
+ Auto
+
+
+ ЗаписатьИЗакрыть
+
+ ru
+ Записать и закрыть
+
+ 2
+
+ ru
+ Записать и закрыть
+
+
+
+
+ ЗаписатьИЗакрыть
+
+
+ Auto
+ Auto
+
+
+ ПараметрыПрописи
+
+ String
+
+
+
+
+ КодЯзыка
+
+ String
+
+
+ true
+
+
+
+
+
+
diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Help/ru.html
similarity index 100%
rename from SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html
rename to SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Help/ru.html
diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl
new file mode 100644
index 000000000..82e2b52a6
--- /dev/null
+++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl
@@ -0,0 +1,138 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ ПрочитатьПараметрыПрописи();
+
+ Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
+ Элементы.ГруппаПримерПрописи.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево;
+ Элементы.СуммаПрописью.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх;
+ Элементы.СуммаПрописью.Высота = 2;
+ Элементы.СуммаПрописью.МногострочныйРежим = Истина;
+ ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+
+ СуммаЧисло = 123.45;
+ УстановитьСуммуПрописью();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытийЭлементовШапкиФормы
+
+&НаКлиенте
+Процедура ПолеВводаПриИзменении(Элемент)
+
+ Модифицированность = Истина;
+ УстановитьСуммуПрописью();
+ ОповеститьВладельца();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
+
+ Модифицированность = Истина;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура ЗаписатьИЗакрыть(Команда)
+
+ ОповеститьВладельца(Истина, Истина);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Записать(Команда)
+
+ ОповеститьВладельца(Истина);
+ Модифицированность = ВладелецФормы.Модифицированность;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+&НаКлиентеНаСервереБезКонтекста
+Функция ПараметрыПрописи(Форма)
+
+ ПараметрыПрописи = Новый Массив;
+ ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьЕдинственноеЧисло);
+ ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьМножественноеЧисло);
+ ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьЕдинственноеЧисло);
+ ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьМножественноеЧисло);
+ ПараметрыПрописи.Добавить(Форма.ДлинаДробнойЧасти);
+
+ Возврат СтрСоединить(ПараметрыПрописи, ", ");;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УстановитьСуммуПрописью()
+
+ Если ЗначениеЗаполнено(Параметры.КодЯзыка) Тогда
+ СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + Параметры.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи(ЭтотОбъект)); // АПК:1357
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПрочитатьПараметрыПрописи()
+
+ ПараметрыПрописи = СтрРазделить(Параметры.ПараметрыПрописи, ",", Истина);
+ Если ПараметрыПрописи.Количество() <> 5 Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЦелаяЧастьЕдинственноеЧисло = СокрЛП(ПараметрыПрописи[0]);
+ ЦелаяЧастьМножественноеЧисло = СокрЛП(ПараметрыПрописи[1]);
+ ДробнаяЧастьЕдинственноеЧисло = СокрЛП(ПараметрыПрописи[2]);
+ ДробнаяЧастьМножественноеЧисло = СокрЛП(ПараметрыПрописи[3]);
+ ДлинаДробнойЧасти = ОчиститьСтрокуСЧисломОтПостороннихСимволов(ПараметрыПрописи[4]);
+
+КонецПроцедуры
+
+&НаСервере
+Функция ОчиститьСтрокуСЧисломОтПостороннихСимволов(СтрокаСЧислом)
+
+ ПосторонниеСимволы = СтрСоединить(СтрРазделить(СтрокаСЧислом, "0123456789", Ложь), "");
+ Возврат СтрСоединить(СтрРазделить(СтрокаСЧислом, ПосторонниеСимволы, Ложь), "");
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь)
+
+ ПараметрыПрописи = Новый Структура;
+ ПараметрыПрописи.Вставить("КодЯзыка", Параметры.КодЯзыка);
+ ПараметрыПрописи.Вставить("ПараметрыПрописи", ПараметрыПрописи(ЭтотОбъект));
+ ПараметрыПрописи.Вставить("Записать", Записать);
+ ПараметрыПрописи.Вставить("Закрыть", Закрыть);
+
+ Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы);
+
+КонецПроцедуры
+
+#КонецОбласти
+
diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Form.form b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Form.form
new file mode 100644
index 000000000..bea48a229
--- /dev/null
+++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Form.form
@@ -0,0 +1,512 @@
+
+
+
+ ru
+ Параметры прописи
+
+
+ ГруппаЯзыки
+ 5
+ true
+ true
+
+ true
+
+
+ ru
+ Языки
+
+
+ ГруппаЯзыкиРасширеннаяПодсказка
+ 6
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+
+
+ Страницы
+ 17
+ true
+ true
+
+ true
+
+
+ ru
+ Страницы
+
+
+ СтраницыРасширеннаяПодсказка
+ 18
+ Label
+ true
+ true
+
+ Left
+
+
+ Pages
+
+
+ OnCurrentPageChange
+ СтраницыПриСменеСтраницы
+
+ TabsOnLeftHorizontal
+ Auto
+
+
+
+ ГруппаПримерПрописи
+ 19
+
+ СуммаЧисло
+ 21
+
+ ru
+ Сумма
+
+ true
+ true
+
+ true
+
+
+ СуммаЧисло
+
+
+ OnChange
+ СуммаЧислоПриИзменении
+
+
+ СуммаЧислоExtendedTooltip
+ 23
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СуммаЧислоКонтекстноеМеню
+ 22
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ СуммаПрописью
+ 24
+ true
+ true
+
+ true
+
+
+ СуммаПрописью
+
+ Left
+
+ СуммаПрописьюExtendedTooltip
+ 26
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СуммаПрописьюКонтекстноеМеню
+ 25
+ true
+
+ InputField
+ true
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Пример прописи суммы
+
+
+ ГруппаПримерПрописиExtendedTooltip
+ 20
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ NormalSeparation
+ true
+ true
+ auto
+ Auto
+ Auto
+
+
+ None
+ false
+
+ ФормаКоманднаяПанель
+ -1
+
+ ФормаЗаписатьИЗакрыть
+ 27
+ true
+ true
+
+ true
+
+
+ ФормаЗаписатьИЗакрытьРасширеннаяПодсказка
+ 28
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ЗаписатьИЗакрыть
+ Auto
+ true
+ true
+ true
+ UserCmds
+ Auto
+
+
+ ФормаЗаписать
+ 29
+ true
+ true
+
+ true
+
+
+ ФормаЗаписатьРасширеннаяПодсказка
+ 30
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.Записать
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ Left
+
+
+ OnOpen
+ ПриОткрытии
+
+
+ OnCreateAtServer
+ ПриСозданииНаСервере
+
+ 15
+ LockOwner
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ ОсновнойЯзык
+ 1
+
+
+ true
+
+
+ true
+
+
+
+ Языки
+ 3
+
+ ValueTable
+
+
+ true
+
+
+ true
+
+
+ КодЯзыка
+ 1
+
+ String
+
+ 10
+
+
+
+ true
+
+
+ true
+
+
+
+ Представление
+ 2
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ Имя
+ 3
+
+ String
+
+ 32
+
+
+
+ true
+
+
+ true
+
+
+
+ Суффикс
+ 4
+
+ String
+
+ 10
+
+
+
+ true
+
+
+ true
+
+
+
+ ФормаРедактирования
+ 5
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ Страница
+ 6
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+
+ МультиязычныеСтрокиВРеквизитах
+ 2
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ СуммаПрописью
+
+ ru
+ Сумма прописью
+
+ 4
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ СуммаЧисло
+
+ ru
+ Сумма число
+
+ 5
+
+ Number
+
+ 10
+ 2
+ true
+
+
+
+ true
+
+
+ true
+
+
+
+ Записать
+
+ ru
+ Записать
+
+ 2
+
+ ru
+ Записать
+
+
+
+
+ Записать
+
+
+ Auto
+ Auto
+
+
+ ЗаписатьИЗакрыть
+
+ ru
+ Записать и закрыть
+
+ 3
+
+ ru
+ Записать и закрыть
+
+
+
+
+ ЗаписатьИЗакрыть
+
+
+ Auto
+ Auto
+
+
+ ИмяРеквизита
+
+ String
+
+
+
+
+ Представления
+
+
+
+ ТекущееЗначение
+
+ String
+
+
+
+
+ ТолькоПросмотр
+
+ Boolean
+
+
+
+
+
+
+
diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl
new file mode 100644
index 000000000..25193dde8
--- /dev/null
+++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl
@@ -0,0 +1,530 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ НаборЯзыков = Новый ТаблицаЗначений;
+ НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10));
+ НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150));
+
+ ДоступныеЯзыки = Новый Массив;
+ Для Каждого Язык Из Метаданные.Языки Цикл
+ ДоступныеЯзыки.Добавить(Язык.КодЯзыка);
+ КонецЦикла;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда
+ МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность");
+ ДоступныеЯзыки = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки();
+ КонецЕсли;
+
+ Для Каждого КодЯзыка Из ДоступныеЯзыки Цикл
+ НовыйЯзык = НаборЯзыков.Добавить();
+ НовыйЯзык.КодЯзыка = КодЯзыка;
+ НовыйЯзык.Представление = РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка);
+ КонецЦикла;
+
+ ИмеющиесяЯзыкиВводаПрописей = ИмеющиесяЯзыкиВводаПрописей();
+
+ Для Каждого ЯзыкКонфигурации Из НаборЯзыков Цикл
+ Если ИмеющиесяЯзыкиВводаПрописей.Найти(ЯзыкКонфигурации.КодЯзыка) <> Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+ НоваяСтрока = Языки.Добавить();
+ ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации);
+ НоваяСтрока.Имя = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
+ КонецЦикла;
+
+ СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр);
+
+ ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка);
+ Если ОписаниеЯзыка <> Неопределено Тогда
+ ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение;
+ КонецЕсли;
+
+ ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
+
+ Для каждого Представление Из Параметры.Представления Цикл
+
+ ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка);
+ Если ОписаниеЯзыка <> Неопределено Тогда
+ Если СтрСравнить(ОписаниеЯзыка.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 Тогда
+ ЭтотОбъект[ОписаниеЯзыка.Имя] = ?(ЗначениеЗаполнено(Параметры.ТекущееЗначение), Параметры.ТекущееЗначение, Представление[Параметры.ИмяРеквизита]);
+ Иначе
+ ЭтотОбъект[ОписаниеЯзыка.Имя] = Представление[Параметры.ИмяРеквизита];
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+
+ СуммаЧисло = 123.45;
+ УстановитьСуммуПрописью();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиЭлементовШапкиФормы
+
+&НаКлиенте
+Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
+
+ УстановитьСуммуПрописью();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СуммаЧислоПриИзменении(Элемент)
+
+ УстановитьСуммуПрописью();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ПолеВводаПриИзменении(Элемент)
+
+ Модифицированность = Истина;
+ УстановитьСуммуПрописью();
+ ОповеститьВладельца();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
+
+ Модифицированность = Истина;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура ЗаписатьИЗакрыть(Команда)
+
+ ОповеститьВладельца(Истина, Истина);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Записать(Команда)
+
+ ОповеститьВладельца(Истина);
+ Модифицированность = ВладелецФормы.Модифицированность;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+&НаСервере
+Процедура СформироватьПоляВводаНаРазныхЯзыках(МногострочныйРежим, ТолькоПросмотр)
+
+ Добавлять = Новый Массив;
+ ТипСтрока = Новый ОписаниеТипов("Строка");
+ Для Каждого ЯзыкКонфигурации Из Языки Цикл
+ Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока,, ЯзыкКонфигурации.Представление));
+ Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока,,
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"), ЯзыкКонфигурации.Представление)));
+ КонецЦикла;
+
+ ИзменитьРеквизиты(Добавлять);
+ РодительЭлементов = Элементы.Страницы;
+
+ Для Каждого ЯзыкКонфигурации Из Языки Цикл
+
+ Если СтрСравнить(ЯзыкКонфигурации.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 И РодительЭлементов.ПодчиненныеЭлементы.Количество() > 0 Тогда
+ Страница = Элементы.Вставить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов,
+ РодительЭлементов.ПодчиненныеЭлементы.Получить(0));
+ Иначе
+ Страница = Элементы.Добавить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов);
+ КонецЕсли;
+
+ ЯзыкКонфигурации.Страница = Страница.Имя;
+
+ Страница.Вид = ВидГруппыФормы.Страница;
+ Страница.Заголовок = ЯзыкКонфигурации.Представление;
+
+ ПолеВвода = Элементы.Добавить(ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница);
+ ПолеВвода.ПутьКДанным = ЯзыкКонфигурации.Имя;
+
+ Если ЗначениеЗаполнено(ЯзыкКонфигурации.ФормаРедактирования) Тогда
+ ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи;
+ ПолеВвода.Гиперссылка = Истина;
+ ПолеВвода.УстановитьДействие("Нажатие", "Подключаемый_Нажатие");
+ Иначе
+ ПолеВвода.Вид = ВидПоляФормы.ПолеВвода;
+ ПолеВвода.Ширина = 40;
+ ПолеВвода.МногострочныйРежим = МногострочныйРежим;
+ ПолеВвода.ТолькоПросмотр = ТолькоПросмотр;
+ ПолеВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
+ ПолеВвода.УстановитьДействие("ПриИзменении", "Подключаемый_ПолеВводаПриИзменении");
+ ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования", "Подключаемый_ПолеВводаИзменениеТекстаРедактирования");
+
+ Подсказка = ПодсказкаЗаполненияПараметровПрописей(ЯзыкКонфигурации.КодЯзыка);
+ ПолеВвода.ПодсказкаВвода = Подсказка.ПодсказкаВвода;
+
+ ПодсказкаВвода = Элементы.Добавить("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница);
+ ПодсказкаВвода.ПутьКДанным = "ПодсказкаВвода" + ЯзыкКонфигурации.Имя;
+ ПодсказкаВвода.Вид = ВидПоляФормы.ПолеВвода;
+ ПодсказкаВвода.ТолькоПросмотр = Истина;
+ ПодсказкаВвода.ЦветТекста = ЦветаСтиля.ПоясняющийТекст;
+ ПодсказкаВвода.РастягиватьПоВертикали = Истина;
+ ПодсказкаВвода.АвтоМаксимальнаяВысота = Ложь;
+ ПодсказкаВвода.МногострочныйРежим = Истина;
+ ПодсказкаВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
+ ПодсказкаВвода.ЦветРамки = ЦветаСтиля.ЦветФонаФормы;
+
+ Если Не ЗначениеЗаполнено(Подсказка.Инструкция) Тогда
+ Подсказка.Инструкция = НСтр("ru = 'Для данного языка настройка прописи не предусмотрена.'")
+ КонецЕсли;
+ ЭтотОбъект["ПодсказкаВвода" + ЯзыкКонфигурации.Имя] = Подсказка.Инструкция;
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаСервере
+Функция ОписаниеЯзыка(КодЯзыка)
+
+ Отбор = Новый Структура("КодЯзыка", КодЯзыка);
+ НайденныеЭлементы = Языки.НайтиСтроки(Отбор);
+ Если НайденныеЭлементы.Количество() > 0 Тогда
+ Возврат НайденныеЭлементы[0];
+ КонецЕсли;
+
+ Возврат Неопределено;
+
+КонецФункции
+
+&НаКлиенте
+Процедура УстановитьСуммуПрописью()
+
+ ТекущийЯзык = ОписаниеТекущегоЯзыка();
+ Если ТекущийЯзык = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПараметрыПрописи = ЭтотОбъект[ТекущийЯзык.Имя];
+ СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + ТекущийЯзык.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи); // АПК:1357
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ОписаниеТекущегоЯзыка()
+
+ ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница;
+ Если ТекущаяСтраница = Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Возврат Языки.НайтиСтроки(Новый Структура("Страница", ТекущаяСтраница.Имя))[0];
+
+КонецФункции
+
+&НаКлиенте
+Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь)
+
+ ТекущийЯзык = ОписаниеТекущегоЯзыка();
+
+ ПараметрыПрописи = Новый Структура;
+ ПараметрыПрописи.Вставить("КодЯзыка", ТекущийЯзык.КодЯзыка);
+ ПараметрыПрописи.Вставить("ПараметрыПрописи", ЭтотОбъект[ТекущийЯзык.Имя]);
+ ПараметрыПрописи.Вставить("Записать", Записать);
+ ПараметрыПрописи.Вставить("Закрыть", Закрыть);
+
+ Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы);
+
+КонецПроцедуры
+
+&НаСервере
+Функция ИмеющиесяЯзыкиВводаПрописей()
+
+ Возврат РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей().ВыгрузитьЗначения();
+
+КонецФункции
+
+&НаСервере
+Функция ПодсказкаЗаполненияПараметровПрописей(Знач КодЯзыка)
+
+ Результат = Новый Структура;
+ Результат.Вставить("Инструкция", "");
+ Результат.Вставить("ПодсказкаВвода", "");
+
+ Если Не ЗначениеЗаполнено(КодЯзыка) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0];
+
+ Если КодЯзыка = "ru" Или КодЯзыка = "be" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для русского и белорусского языков (ru_RU, be_BY):
+ |
+ |рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2
+ |
+ |""рубль, рубля, рублей, м"" – предмет исчисления:
+ |рубль – единственное число именительный падеж;
+ |рубля – единственное число родительный падеж;
+ |рублей – множественное число родительный падеж;
+ |м – мужской род (ж – женский род, с - средний род);
+ |""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
+ |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2'");
+
+ ИначеЕсли КодЯзыка = "uk" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для украинского языка (uk_UA):
+ |
+ |гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2
+ |
+ |""гривна, гривны, гривен, м"" – предмет исчисления:
+ |""гривна – единственное число именительный падеж;
+ |гривны – единственное число родительный падеж;
+ |гривен – множественное число родительный падеж;
+ |м – мужской род (ж – женский род, с - средний род);
+ |""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
+ |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2'");
+
+ ИначеЕсли КодЯзыка = "pl" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для польского языка (pl_PL):
+ |
+ |złoty, złote, złotych, m, grosz, grosze, groszy, m, 2
+ |
+ |""złoty, złote, złotych, m "" - предмет исчисления (m - мужской род, ż - женский род, ń - средний род, mo – личностный мужской род).
+ |złoty - единственное число именительный падеж;
+ |złote - единственное число винительный падеж;
+ |złotych - множественное число винительный падеж;
+ |m - мужской род (ż - женский род, ń - средний род, mo – личностный мужской род);
+ |""grosz, grosze, groszy, m "" - дробная часть (может отсутствовать) (аналогично целой части);
+ |2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'złoty, złote, złotych, m, grosz, grosze, groszy, m, 2'");
+
+ ИначеЕсли КодЯзыка = "en" Или КодЯзыка = "fr" Или КодЯзыка = "fi" Или КодЯзыка = "kk" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для английского, французского, финского и казахского языков (en_US, fr_CA,fi_FI, kk_KZ):
+ |
+ |dollar, dollars, cent, cents, 2
+ |
+ |""dollar, dollars"" – предмет исчисления в единственном и множественном числе;
+ |""cent, cents"" – дробная часть в единственном и множественном числе (может отсутствовать);
+ |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'dollar, dollars, cent, cents, 2'");
+
+ ИначеЕсли КодЯзыка = "de" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для немецкого языка (de_DE):
+ |
+ |EURO, EURO, М, Cent, Cent, M, 2
+ |
+ |""EURO, EURO, М"" – предмет исчисления:
+ |EURO, EURO – предмет исчисления в единственном и множественном числе;
+ |М – мужской род (F – женский род, N - средний род);
+ |""Cent, Cent, M"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
+ |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'EURO, EURO, М, Cent, Cent, M, 2'");
+
+ ИначеЕсли КодЯзыка = "lv" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для латышского языка (lv_LV):
+ |
+ |lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J
+ |
+ |""lats, lati, latu, v"" – предмет исчисления:
+ |lats – для чисел заканчивающихся на 1, кроме 11;
+ |lati – для чисел заканчивающихся на 2-9 и 11;
+ |latu – множественное число (родительный падеж) используется после числительных 0, 10, 20,..., 90, 100, 200, ..., 1000, ..., 100000;
+ |v – мужской род (s – женский род);
+ |""santīms, santīmi, santīmu, V"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
+ |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2);
+ |""J"" - число 100 выводится как ""Одна сотня"" для предмета исчисления (N - как ""Сто"");
+ |может отсутствовать, по умолчанию равно ""J"";
+ |""J"" - число 100 выводится как ""Одна сотня"" для дробной части (N - как ""Сто"");
+ |может отсутствовать, по умолчанию равно ""J"".'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J'");
+
+ ИначеЕсли КодЯзыка = "lt" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для литовского языка (lt_LT):
+ |
+ |litas, litai, litų, М, centas, centai, centų, М, 2
+ |
+ |""litas, litai, litų, М"" – предмет исчисления:
+ |litas - единственное число целой части;
+ |litai - множественное число целой части от 2 до 9;
+ |litų - множественное число целой части прочие;
+ |m - род целой части (f - женский род),
+ |""centas, centai, centų, М"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
+ |""2"" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'litas, litai, litų, М, centas, centai, centų, М, 2'");
+
+ ИначеЕсли КодЯзыка = "et" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для эстонского языка (et_EE):
+ |
+ |kroon, krooni, sent, senti, 2
+ |
+ |""kroon, krooni"" – – предмет исчисления в единственном и множественном числе;
+ |""sent, senti"" – дробная часть в единственном и множественном числе (может отсутствовать);
+ |2 – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'kroon, krooni, sent, senti, 2'");
+
+ ИначеЕсли КодЯзыка = "bg" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для болгарского языка (bg_BG):
+ |
+ |лев, лева, м, стотинка, стотинки, ж, 2
+ |
+ |""лев, лева, м"" – предмет исчисления:
+ |лев - единственное число целой части;
+ |лева - множественное число целой части;
+ |м - род целой части,
+ |""стотинка, стотинки, ж"" - дробная часть:
+ |стотинка - единственное число дробной части;
+ |стотинки - множественное число дробной части;
+ |ж - род дробной части,
+ |""2"" - количество разрядов дробной части.'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'лев, лева, м, стотинка, стотинки, ж, 2'");
+
+ ИначеЕсли КодЯзыка = "ro" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для румынского языка (ro_RO):
+ |
+ |leu, lei, M, ban, bani, W, 2
+ |
+ |""leu, lei, M"" – предмет исчисления:
+ |leu - единственное число целой части;
+ |lei - множественное число целой части;
+ |M - род целой части;
+ |""ban, bani, W"" - дробная часть:
+ |ban - единственное число дробной части;
+ |bani - множественное число дробной части;
+ |W - род дробной части;
+ |""2"" - количество разрядов дробной части.'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'leu, lei, M, ban, bani, W, 2'");
+
+ ИначеЕсли КодЯзыка = "ka" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для грузинского языка (ka_GE):
+ |
+ |ლარი, თეთრი, 2
+ |
+ |ლარი - целая часть;
+ |თეთრი - дробная часть;
+ |""2"" - количество разрядов дробной части.'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'ლარი, თეთრი, 2'");
+
+ ИначеЕсли КодЯзыка = "az" Или КодЯзыка = "tk" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для азербайджанского(az) и туркменского языков(tk):
+ |
+ |TL,Kr,2
+ |
+ |""TL"" - предмет исчисления;
+ |""Kr"" - дробная часть (может отсутствовать);
+ |2 - количество разрядов дробной части (может отсутствовать, по умолчанию - 2)'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2'");
+
+ ИначеЕсли КодЯзыка = "vi" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для вьетнамского языка (vi_VN):
+ |
+ |dong, xu, 2
+ |
+ |dong, - целая часть;
+ |xu, - дробная часть;
+ |2 - количество разрядов дробной части.'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'dong, xu, 2'");
+
+ ИначеЕсли КодЯзыка = "tr" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для турецкого языка (tr_TR):
+ |
+ |TL,Kr,2,Separate
+ |
+ |TL - целая часть;
+ |Kr - дробная часть (может отсутствовать);
+ |2 - количество разрядов дробной части (может отсутствовать, значение по умолчанию - 2);
+ |""Separate"" - признак написания прописи раздельно, ""Solid"" - слитно (может отсутствовать, по умолчанию слитно).'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2,Separate'");
+
+ ИначеЕсли КодЯзыка = "hu" Тогда
+
+ Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
+ "ru = 'Параметры прописи необходимо перечислить через запятую.
+ |Образец заполнения для венгерского языка (hu):
+ |
+ |Forint, fillér, 2
+ |
+ |Forint - целая часть;
+ |fillér - дробная часть;
+ |""2"" - количество разрядов дробной части.'"));
+
+ Результат.ПодсказкаВвода = НСтр("ru = 'Forint, fillér, 2'");
+
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form
index 64b5ed1b2..963f22b37 100644
--- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form
@@ -785,7 +785,7 @@
- ПараметрыПрописиВалюты
+ ГиперссылкаПараметрыПрописиВалюты145ru
@@ -797,7 +797,7 @@
true
- ПараметрыПрописиВалютыРасширеннаяПодсказка
+ ГиперссылкаПараметрыПрописиВалютыРасширеннаяПодсказка147Labeltrue
@@ -807,7 +807,7 @@
- ПараметрыПрописиВалютыКонтекстноеМеню
+ ГиперссылкаПараметрыПрописиВалютыКонтекстноеМеню146true
@@ -823,14 +823,44 @@
Left
- Top
- trueФормаКоманднаяПанель-1
+
+ ГруппаПараметрыПрописиВалюты
+ 154
+ true
+ true
+
+ true
+
+
+ ru
+ Параметры прописи
+
+
+ ГруппаПараметрыПрописиВалютыРасширеннаяПодсказка
+ 155
+ Label
+ true
+ true
+
+ Left
+
+
+ Popup
+
+ Auto
+ Normal
+
+ Lefttrue
+
+ NotificationProcessing
+ ОбработкаОповещения
+ OnCreateAtServerПриСозданииНаСервере
@@ -861,13 +891,10 @@
true
- ПолеПрописи1наРусском
- 2
+ ФормыВводаПрописей
+ 14
- String
-
- 25
-
+ ValueListtrue
@@ -875,201 +902,47 @@
true
- true
+
+
+
-
- ПолеПрописи2наРусском
- 3
-
- String
-
- 25
-
-
-
+
+ ПараметрыПрописиВалютыНаДругихЯзыках
+
+ ru
+ На других языках...
+
+ 1
+
+ ru
+ Параметры прописи валюты на других языках
+
+
-
- true
-
- true
-
-
- ПолеПрописи3наРусском
- 4
-
- String
-
- 25
-
-
-
- true
-
-
- true
-
- true
-
-
- ПолеПрописи4наРусском
- 5
-
- String
-
-
-
- true
-
-
- true
-
- true
-
-
- ПолеПрописи5наРусском
- 6
-
- String
-
- 25
-
-
-
- true
-
-
- true
-
- true
-
-
- ПолеПрописи6наРусском
- 7
-
- String
-
- 25
-
-
-
- true
-
-
- true
-
- true
-
-
- ПолеПрописи7наРусском
- 8
-
- String
-
- 25
-
-
-
- true
-
-
- true
-
- true
-
-
- ПолеПрописи8наРусском
- 9
-
- String
-
- 25
-
-
-
- true
-
-
- true
-
- true
-
-
- ДлинаДробнойЧасти
- 11
-
- String
-
-
-
- true
-
-
- true
-
- true
-
-
- ЗависимыйКурсВалют
- 10
-
- Boolean
-
-
- true
-
-
- true
-
- true
-
-
- СуммаЧисло
- 12
-
- Number
-
- 10
- 2
- true
-
-
-
- true
-
-
- true
-
-
-
- СуммаПрописью
- 13
-
- String
-
-
-
- true
-
-
- true
-
-
-
- ЕстьФормаПараметрыПрописиВалюты
- 16
-
- Boolean
-
-
- true
-
-
- true
-
-
+
+
+
+ ПараметрыПрописиВалютыНаДругихЯзыках
+
+
+ Auto
+ Auto
+
-
+
+
+ 0
+
+
+
+ 0
+
+
+
+ 0
+
+
+
diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl
index a8aa82cc0..f02d601f1 100644
--- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl
@@ -38,13 +38,13 @@
КонецЕсли;
ОбработкаЗагрузкаКурсовВалют = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют");
- Если ОбработкаЗагрузкаКурсовВалют <> Неопределено Тогда
- ЕстьФормаПараметрыПрописиВалюты = ОбработкаЗагрузкаКурсовВалют.Формы.Найти("ПараметрыПрописиВалюты") <> Неопределено;
- КонецЕсли;
-
Элементы.КурсВалютыЗагружаетсяИзИнтернета.Видимость = ОбработкаЗагрузкаКурсовВалют <> Неопределено;
УстановитьДоступностьЭлементов(ЭтотОбъект);
+ ЗаполнитьПодменюПараметрыПрописиВалюты();
+ Элементы.ГиперссылкаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() = 1;
+ Элементы.ГруппаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() > 1;
+
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ФормулаРасчетаКурса.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу;
Элементы.ОсновнаяВалюта.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
@@ -54,6 +54,23 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
+
+ Если Источник = ЭтотОбъект И ИмяСобытия = "ПараметрыПрописиВалюты" Тогда
+ УстановитьПрописиНаЯзыке(Параметр.ПараметрыПрописи, Параметр.КодЯзыка);
+ Если Параметр.Записать Тогда
+ Записать();
+ Иначе
+ Модифицированность = Истина;
+ КонецЕсли;
+ Если Параметр.Закрыть Тогда
+ Закрыть();
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
@@ -77,16 +94,7 @@
&НаКлиенте
Процедура ПараметрыПрописиВалютыНажатие(Элемент)
- ОписаниеОповещения = Новый ОписаниеОповещения("ПриИзмененииПараметровПрописиВалюты", ЭтотОбъект);
- Если ЕстьФормаПараметрыПрописиВалюты Тогда
- ПараметрыОткрытия = Новый Структура;
- ПараметрыОткрытия.Вставить("ТолькоПросмотр", ТолькоПросмотр);
- ПараметрыОткрытия.Вставить("ПараметрыПрописи", Объект.ПараметрыПрописи);
- ИмяФормыРедактированияПрописей = "Обработка.ЗагрузкаКурсовВалют.Форма.ПараметрыПрописиВалюты";
- ОткрытьФорму(ИмяФормыРедактированияПрописей, ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения);
- Иначе
- ПоказатьВводСтроки(ОписаниеОповещения, Объект.ПараметрыПрописи, НСтр("ru = 'Параметры прописи валюты'"));
- КонецЕсли;
+ ОткрытьПараметрыПрописиВалюты(0);
КонецПроцедуры
@@ -137,13 +145,128 @@
КонецПроцедуры
&НаКлиенте
-Процедура ПриИзмененииПараметровПрописиВалюты(Результат, ДополнительныеПараметры) Экспорт
- Если Результат = Неопределено Или Результат = КодВозвратаДиалога.Отмена Тогда
+Процедура УстановитьПрописиНаЯзыке(ПараметрыПрописи, КодЯзыка)
+
+ Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда
+ Объект.ПараметрыПрописи = ПараметрыПрописи;
Возврат;
КонецЕсли;
- Объект.ПараметрыПрописи = Результат;
- Модифицированность = Истина;
+ НайденнаяСтрока = Неопределено;
+ Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
+ Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда
+ НайденнаяСтрока = СтрокаТаблицы;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если НайденнаяСтрока = Неопределено Тогда
+ НайденнаяСтрока = Объект.Представления.Добавить();
+ НайденнаяСтрока.КодЯзыка = КодЯзыка;
+ КонецЕсли;
+
+ НайденнаяСтрока.ПараметрыПрописи = ПараметрыПрописи;
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ПараметрыПрописиВалютыНаЯзыке(КодЯзыка)
+
+ Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда
+ Возврат Объект.ПараметрыПрописи;
+ КонецЕсли;
+
+ НайденнаяСтрока = Неопределено;
+ Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
+ Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда
+ НайденнаяСтрока = СтрокаТаблицы;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если НайденнаяСтрока = Неопределено Тогда
+ Возврат "";
+ КонецЕсли;
+
+ Возврат НайденнаяСтрока.ПараметрыПрописи;
+
+КонецФункции
+
+&НаСервере
+Процедура ЗаполнитьПодменюПараметрыПрописиВалюты()
+
+ Кнопка = Неопределено;
+ ФормыВводаПрописей = РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей();
+ Для Индекс = 0 По ФормыВводаПрописей.Количество() - 1 Цикл
+ ИмяКоманды = "ПараметрыПрописиВалюты_" + XMLСтрока(Индекс);
+
+ КодЯзыка = ФормыВводаПрописей[Индекс].Значение;
+ Команда = Команды.Добавить(ИмяКоманды);
+ Если ЗначениеЗаполнено(КодЯзыка) Тогда
+ Команда.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = '%1...'"),
+ РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка));;
+ Иначе
+ Команда.Заголовок = НСтр("ru = 'На других языках...'");
+ КонецЕсли;
+
+ Команда.Действие = "Подключаемый_ОткрытьФормуПараметрыПрописиВалюты";
+
+ Кнопка = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаПараметрыПрописиВалюты);
+ Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
+ Кнопка.ИмяКоманды = ИмяКоманды;
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Параметры:
+// Команда - КомандаФормы
+//
+&НаКлиенте
+Процедура Подключаемый_ОткрытьФормуПараметрыПрописиВалюты(Команда)
+
+ Индекс = Число(Сред(Команда.Имя, СтрДлина("ПараметрыПрописиВалюты_") + 1));
+ ОткрытьПараметрыПрописиВалюты(Индекс);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОткрытьПараметрыПрописиВалюты(Индекс)
+
+ ИмяФормыПрописей = ФормыВводаПрописей[Индекс].Представление;
+ КодЯзыка = ФормыВводаПрописей[Индекс].Значение;
+
+ Если ИмяФормыПрописей = "ПараметрыПрописиВалютыНаДругихЯзыках" Тогда
+ ПараметрыПрописиВалютыНаДругихЯзыках();
+ Иначе
+ ПараметрыФормы = Новый Структура;
+ ПараметрыФормы.Вставить("ПараметрыПрописи", ПараметрыПрописиВалютыНаЯзыке(КодЯзыка));
+ ПараметрыФормы.Вставить("КодЯзыка", КодЯзыка);
+
+ ОткрытьФорму(ИмяФормыПрописей, ПараметрыФормы, ЭтотОбъект, , , НавигационнаяСсылка);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ПараметрыПрописиВалютыНаДругихЯзыках(Команда)
+
+ ПараметрыПрописиВалютыНаДругихЯзыках();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПараметрыПрописиВалютыНаДругихЯзыках()
+
+ ИмяРеквизита = "ПараметрыПрописи";
+
+ ПараметрыФормы = Новый Структура;
+ ПараметрыФормы.Вставить("ИмяРеквизита", ИмяРеквизита);
+ ПараметрыФормы.Вставить("ТекущееЗначение", Объект.ПараметрыПрописи);
+ ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр);
+ ПараметрыФормы.Вставить("Представления", Объект.Представления);
+
+ ОткрытьФорму("Справочник.Валюты.Форма.ПараметрыПрописиВалютыНаДругихЯзыках", ПараметрыФормы, ЭтотОбъект, , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/Валюты/ManagerModule.bsl b/SSL/src/Catalogs/Валюты/ManagerModule.bsl
index 37800e1d8..3f1d6d737 100644
--- a/SSL/src/Catalogs/Валюты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Валюты/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/Валюты/Валюты.mdo b/SSL/src/Catalogs/Валюты/Валюты.mdo
index 5a1c43cf9..84275885f 100644
--- a/SSL/src/Catalogs/Валюты/Валюты.mdo
+++ b/SSL/src/Catalogs/Валюты/Валюты.mdo
@@ -302,6 +302,64 @@
UseUse
+
+
+
+
+
+ Представления
+
+ ru
+ Представления
+
+
+ Use
+ LineNumber
+
+ Use
+
+
+
+
+ КодЯзыка
+
+ ru
+ Код языка
+
+
+ String
+
+ 10
+
+
+
+
+ Use
+ Index
+ Use
+
+
+ ПараметрыПрописи
+
+ ru
+ Параметры прописи
+
+
+ String
+
+ 200
+
+
+
+ ru
+ Настройки представления суммы прописью
+
+
+
+ Use
+ Use
+
+ ФормаСписка
@@ -325,4 +383,28 @@
PersonalComputerMobileDevice
+
+ ПараметрыПрописиВалюты_en
+
+ ru
+ Параметры прописи валюты на английском языке
+
+ АПК:58
+
+
+ ru
+
+
+ PersonalComputer
+ MobileDevice
+
+
+ ПараметрыПрописиВалютыНаДругихЯзыках
+
+ ru
+ Параметры прописи
+
+ PersonalComputer
+ MobileDevice
+
diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl
index 4ba53c400..153f6ef3e 100644
--- a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl
index d5d235720..c41644bf6 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl
@@ -347,8 +347,7 @@
// Добавляет рекурсивно строку в дерево подсистем.
//
// Параметры:
-// ПриемникРодитель - СтрокаДереваЗначений
-// - ДеревоЗначений:
+// ПриемникРодитель - ДеревоЗначений:
// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * Имя - Строка
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl
index 6a3fd1469..a41f763b0 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl
@@ -94,7 +94,7 @@
Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя());
Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()));
- Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ВариантыОтчетов.ЭтоОсновнойЯзык());
+ Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка);
Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl
index 79f51c909..24abf915e 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl
@@ -59,7 +59,10 @@
ПерезаполнитьДерево(Ложь);
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ КонецЕсли;
ВариантыОтчетов.ОпределитьПоведениеСпискаПользователейВариантаОтчета(ЭтотОбъект);
@@ -95,7 +98,11 @@
Если ЭтоПредопределенный Тогда
ПредопределенныйВариант = ТекущийОбъект.ПредопределенныйВариант.ПолучитьОбъект();
- МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
+ КонецЕсли;
ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание) И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание));
Если Не ОписаниеИзменено Тогда
@@ -115,7 +122,11 @@
КонецЕсли;
ВариантыОтчетов.ДеревоПодсистемЗаписать(ТекущийОбъект, ИзмененныеРазделы);
- МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ КонецЕсли;
+
Если ЭтоПредопределенный И Не ОписаниеИзменено Тогда
ТекущийОбъект.Представления.Очистить();
КонецЕсли;
@@ -126,17 +137,22 @@
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
-
+
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
-
+
ПерезаполнитьДерево(Ложь);
ЗаполнитьИзПредопределенного(ТекущийОбъект);
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
@@ -156,7 +172,11 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЗаполнитьИзПредопределенного(ТекущийОбъект);
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
РегистрыСведений.НастройкиВариантовОтчетов.ПрочитатьНастройкиДоступностиВариантаОтчета(
ТекущийОбъект.Ссылка, ПользователиВарианта, ИспользоватьГруппыПользователей, ИспользоватьВнешнихПользователей);
@@ -183,7 +203,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
- МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
+ МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl
index 4037d5e13..26676adfe 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -132,7 +134,17 @@
Данные.Ссылка = Данные.ПредопределенныйВариант;
КонецЕсли;
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl
index acdb0c002..babbd5c53 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl
@@ -193,7 +193,10 @@
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
- МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
index 30ba26869..7eb035085 100644
--- a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
@@ -379,7 +379,8 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Возвращаемое значение:
-// РасширениеКонфигурации, Неопределено
+// РасширениеКонфигурации
+// Неопределено
//
Функция НайтиРасширение(ИдентификаторРасширения) Экспорт
@@ -511,7 +512,7 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Возвращаемое значение:
-// Массив Из УникальныйИдентификатор
+// Массив из УникальныйИдентификатор
//
Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений) Экспорт
diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl
index db5f0ca3f..53f2ca34f 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl
@@ -317,7 +317,7 @@
| ВерсииФайлов.Расширение КАК Расширение,
| ВерсииФайлов.НомерВерсии КАК НомерВерсии
|ИЗ
- | Справочник." + ИмяСправочникаХранилищаВерсийФайлов + " КАК ВерсииФайлов
+ | &ИмяСправочника КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Владелец = &Владелец";
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
index a4f097806..9b16e6517 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -33,7 +33,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
index e990daf40..11c1a5cb7 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
@@ -51,10 +51,12 @@
"ВЫБРАТЬ
| ВерсииФайлов.Ссылка КАК Ссылка
|ИЗ
- | Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя + " КАК ВерсииФайлов
+ | &ИмяСправочникаВерсииФайлов КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.РодительскаяВерсия = &РодительскаяВерсия";
+ ИмяСправочникаВерсииФайлов = "Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя;
+ Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяСправочникаВерсииФайлов", ИмяСправочникаВерсииФайлов);
Запрос.УстановитьПараметр("РодительскаяВерсия", Ссылка);
Результат = Запрос.Выполнить();
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl
index 357ba3a26..7f243b8fc 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl
@@ -83,7 +83,10 @@
ДоступныДополнительныеНастройкиАдреса = (Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено
И Метаданные.Обработки["РасширенныйВводКонтактнойИнформации"].Формы.Найти("НастройкиАдреса") <> Неопределено);
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ КонецЕсли;
Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
@@ -102,7 +105,10 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
КонецПроцедуры
@@ -135,9 +141,7 @@
Новый ОписаниеОповещения("ПослеОтветаНаВопросКогдаИдентификаторДляФормулУжеИспользуется", ЭтотОбъект, ПараметрыЗаписи),
ТекстВопроса, Кнопки, , "ПродолжитьЗапись");
- ОтказПриЗаписи = Истина;
Отказ = Истина;
- Возврат;
Иначе
ПараметрыЗаписи.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
@@ -166,7 +170,10 @@
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
КонецЕсли;
- МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ КонецЕсли;
КонецПроцедуры
@@ -183,7 +190,10 @@
Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
КонецПроцедуры
@@ -271,7 +281,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
- МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
+ МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
@@ -427,7 +442,7 @@
&НаСервереБезКонтекста
Функция НаименованиеДляФормированияИдентификатора(Знач Наименование, Знач Представления)
- Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
+ Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl
index 9ad692ec0..14c87bb12 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -32,7 +32,9 @@
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
-// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами.
+// Возвращаемое значение:
+// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты.
+//
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
БлокируемыеРеквизиты = Новый Массив;
@@ -54,7 +56,9 @@
// Проверки на запрет замены групп и ссылок разных типов производятся автоматически при начале замены.
//
// Параметры:
-// ПарыЗамен - Соответствие - Ключ - что будет заменено, значение - на что будет заменено.
+// ПарыЗамен - Соответствие из КлючИЗначение:
+// * Ключ - ЛюбаяСсылка - что будет заменено
+// * Значение - ЛюбаяСсылка - на что будет заменено
// Параметры - Структура - набор флагов, описывающих действие с заменяемыми элементами.
// Содержит необязательные реквизиты:
// * СпособУдаления - Строка - может принимать значения:
@@ -65,8 +69,9 @@
// Любые другие значения говорят о том, что заменяемая ссылка не будет изменена.
//
// Возвращаемое значение:
-// Соответствие - Ключ - исходная ссылка, значение - строка - описание, почему замена недопустима.
-// Если все замены допустимы, то возвращается пустое соответствие;
+// Соответствие из КлючИЗначение:
+// * Ключ - ЛюбаяСсылка - исходная ссылка
+// * Значение - Строка - описание, почему замена недопустима. Если все замены допустимы, то возвращается пустое соответствие
//
Функция ВозможностьЗаменыЭлементов(Знач ПарыЗамен, Знач Параметры = Неопределено) Экспорт
@@ -173,7 +178,17 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
#КонецОбласти
@@ -188,10 +203,10 @@
// информации (родитель) а также соответствие идентификатора правилам написания.
//
// Параметры:
-// ИдентификаторДляФормул - Строка - идентификатор для формул.
-// Ссылка - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий объект.
-// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта.
-// Отказ - Булево - флаг отказа при наличии ошибки.
+// ИдентификаторДляФормул - Строка - идентификатор для формул.
+// Ссылка - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий объект.
+// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта.
+// Отказ - Булево - флаг отказа при наличии ошибки.
//
Процедура ПроверитьУникальностьИдентификатора(ИдентификаторДляФормул, Ссылка, Родитель, Отказ) Экспорт
@@ -276,11 +291,11 @@
// Возвращает уникальный идентификатора для формул (после проверки на уникальность)
//
// Параметры:
-// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул.
-// СсылкаНаТекущийОбъект - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий элемент.
-// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта.
+// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул.
+// СсылкаНаТекущийОбъект - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий элемент.
+// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта.
// Возвращаемое значение:
-// Строка - уникальное значение идентификатора для формул.
+// Строка - уникальное значение идентификатора для формул.
//
Функция УникальныйИдентификаторДляФормул(ПредставлениеОбъекта, СсылкаНаТекущийОбъект, Родитель) Экспорт
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl
index 736b13b77..52295a7fa 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl
@@ -90,7 +90,7 @@
Функция НаименованиеДляФормированияИдентификатора()
НаименованиеДляИдентификатора = Наименование;
- Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
+ Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
@@ -104,7 +104,10 @@
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
- МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl b/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl
index 3de8f8906..9974d705d 100644
--- a/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -32,7 +32,9 @@
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
-// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами.
+// Возвращаемое значение:
+// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты.
+//
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
БлокируемыеРеквизиты = Новый Массив;
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form
index 6c875138e..622e13405 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form
@@ -41,7 +41,7 @@
false
- CommonPicture.Предупреждение32
+ CommonPicture.Вопрос32
@@ -53,7 +53,7 @@
%1
-Проверить обновление компоненты?
+Проверить и загрузить обновление компоненты?
truetrue
@@ -91,10 +91,6 @@
true
-
- ru
- Шапка
- ШапкаРасширеннаяПодсказка12
@@ -127,10 +123,6 @@
ПодключитьИнтернетПоддержкуРасширеннаяПодсказка23
-
- ru
- Для использования веб-сервиса 1С и загрузки внешних компонент необходимо выполнить подключение к Интернет-поддержке пользователей.
- Labeltruetrue
@@ -145,7 +137,6 @@
truetrueUserCmds
- ButtonAutotrue
@@ -482,10 +473,6 @@
true
-
- ru
- Страницы
- СтраницыРасширеннаяПодсказка2
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl
index c1716a58a..b9d035790 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl
@@ -39,7 +39,7 @@
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
- |Проверить обновление компоненты?'"),
+ |Проверить и загрузить обновление компоненты?'"),
ТекстПояснения);
Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены;
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form
index 165265ca0..c4b74ec4f 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form
@@ -92,10 +92,6 @@
true
-
- ru
- Шапка
- ШапкаРасширеннаяПодсказка12
@@ -381,10 +377,6 @@
true
-
- ru
- Страницы
- СтраницыРасширеннаяПодсказка2
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl
index a06b13796..79697d09b 100644
--- a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -39,7 +39,7 @@
//
// Параметры:
// Идентификатор - Строка - идентификатор объекта внешнего компонента.
-// Версия - Строка - (необязательный) версия компоненты.
+// Версия - Строка - версия компоненты.
//
// Возвращаемое значение:
// СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе.
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl
index 7efbf83ec..ac9fddff1 100644
--- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl
@@ -661,14 +661,14 @@
#Область СлужебныеПроцедурыИФункции
// Возвращаемое значение:
-// Структура:
-// * ВыборГруппВнешнихПользователей - Булево
-// * ОтборОбъектАвторизации - ОпределяемыйТип.ВнешнийПользователь
-// * РасширенныйПодбор - Булево
-// * ГруппаВсеПользователи - СправочникСсылка.ГруппыВнешнихПользователей
-// * ТекущаяСтрока - Число
-// * ЗаголовокФормыПодбора - Строка
-// * ИспользоватьГруппы - Булево
+// Структура:
+// * ВыборГруппВнешнихПользователей - Булево
+// * ОтборОбъектАвторизации - ОпределяемыйТип.ВнешнийПользователь
+// * РасширенныйПодбор - Булево
+// * ГруппаВсеПользователи - СправочникСсылка.ГруппыВнешнихПользователей
+// * ТекущаяСтрока - Число
+// * ЗаголовокФормыПодбора - Строка
+// * ИспользоватьГруппы - Булево
//
&НаСервере
Функция НовыйХранимыеПараметры()
@@ -1180,7 +1180,7 @@
// Параметры:
// Ответ - КодВозвратаДиалога
// ДополнительныеПараметры - Структура:
-// * ПараметрыПеретаскивания - ПараметрыПеретаскивания
+// * ПараметрыПеретаскивания - Массив из СправочникСсылка.ВнешниеПользователи
// * Строка - СправочникСсылка.ГруппыВнешнихПользователей
// * Перемещение - ДействиеПеретаскивания
//
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form
index 936228c91..b30b11622 100644
--- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form
@@ -1025,6 +1025,40 @@
true
+
+ ПользовательИБЗапрещеноВосстанавливатьПароль
+ 361
+ true
+ true
+
+ true
+
+
+ ПользовательИБЗапрещеноВосстанавливатьПароль
+
+ Right
+
+ ПользовательИБЗапрещеноВосстанавливатьПарольРасширеннаяПодсказка
+ 363
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПользовательИБЗапрещеноВосстанавливатьПарольКонтекстноеМеню
+ 362
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+ truetrue
@@ -1846,6 +1880,68 @@
false
+
+ СтраницаКонтактнаяИнформация
+ 357
+
+ ГруппаКонтактнаяИнформация
+ 359
+ true
+ true
+
+ true
+
+
+ ru
+ Контактная информация
+
+
+ ГруппаКонтактнаяИнформацияРасширеннаяПодсказка
+ 360
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Адреса, телефоны
+
+
+ СтраницаКонтактнаяИнформацияРасширеннаяПодсказка
+ 358
+ Label
+ true
+ true
+
+ Left
+
+
+ Page
+
+ Vertical
+ auto
+ false
+
+ СтраницаДополнительныеРеквизиты300
@@ -2759,6 +2855,65 @@
true
+
+ ПользовательИБАдресЭлектроннойПочты
+ 4
+
+ String
+
+ 256
+
+
+
+ true
+
+
+ true
+
+
+
+ ИмяРеквизитаСПочтойДляВосстановленияПароля
+ 7
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ПарольДляПодтвержденияИзмененияПочты
+ 32
+
+
+ true
+
+
+ true
+
+
+
+ ПользовательИБЗапрещеноВосстанавливатьПароль
+
+ ru
+ Пользователю запрещено восстанавливать пароль
+
+ 41
+
+ Boolean
+
+
+ true
+
+
+ true
+
+ true
+ ПоказатьТолькоВыбранныеРоли
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl
index fa0c6c3a0..43cd0b846 100644
--- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl
@@ -48,6 +48,7 @@
ЗначениеКопирования = Параметры.ЗначениеКопирования;
Объект.Наименование = "";
Объект.ОбъектАвторизации = Неопределено;
+ ПользовательИБАдресЭлектроннойПочты = "";
Если Не ПользователиСлужебный.УровеньДоступаПользователяВыше(ЗначениеКопирования, УровеньДоступа) Тогда
ПрочитатьПользователяИБ(ЗначениеЗаполнено(ЗначениеКопирования.ИдентификаторПользователяИБ));
@@ -131,10 +132,44 @@
МодульУправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
КонецЕсли;
+ ПарольДляПодтвержденияИзмененияПочты = Неопределено;
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+
+ Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
+
+ МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
+
+ Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
+
+ Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда
+ ПарольДляПодтвержденияИзмененияПочты = "";
+ КонецЕсли;
+
+ ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
+ ЭтотОбъект,
+ ПользовательИБАдресЭлектроннойПочты,
+ ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект),
+ Истина);
+
+ КонецЕсли;
+
+ Элементы.ГруппаКонтактнаяИнформация.Доступность = Пользователи.ЭтоПолноправныйПользователь();
+
+ КонецЕсли;
+ КонецЕсли;
+
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
Элементы.ГруппаИзменитьОграничение.Видимость = Ложь;
КонецЕсли;
+ Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей()
+ Или ОбщегоНазначения.РазделениеВключено() Тогда
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь;
+ КонецЕсли;
+
Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок =
ПользователиСлужебный.ПодсказкаПотребоватьСменуПароляПриВходе(Истина);
@@ -185,86 +220,24 @@
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект = Неопределено)
- Если ТекущийОбъект = Неопределено Тогда
- ТекущийОбъект = Объект;
+ // СтандартныеПодсистемы.КонтактнаяИнформация
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+ Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
+ МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
+
+ Если ТипЗнч(УровеньДоступа) = Тип("Структура") И ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
+ ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
+ ЭтотОбъект,
+ ПользовательИБАдресЭлектроннойПочты,
+ ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект.ОбъектАвторизации), Истина);
+ КонецЕсли;
+
+ КонецЕсли;
КонецЕсли;
-
- ОбработатьИнтерфейсРолей("УстановитьТолькоПросмотрРолей",
- ЗапретРедактированияРолей
- Или ДействияВФорме.Роли <> "Редактирование"
- Или Не УровеньДоступа.НастройкиДляВхода
- Или Не ТекущийОбъект.УстановитьРолиНепосредственно);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено)
-
- Если НачальноеОписаниеПользователяИБ = Неопределено Тогда
- Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере.
- КонецЕсли;
-
- Если Не ПриСозданииНаСервере Тогда
- ПрочитатьПользователяИБ();
- КонецЕсли;
-
- УстановитьПривилегированныйРежим(Истина);
- ПользователиСлужебный.ПрочитатьСведенияОПользователе(ЭтотОбъект);
- УстановитьПривилегированныйРежим(Ложь);
-
- УровеньДоступа = ПользователиСлужебный.УровеньДоступаКСвойствамПользователя(ТекущийОбъект);
-
- ОпределитьДействияВФорме();
-
- ОпределитьНесоответствияПользователяСПользователемИБ(ПараметрыЗаписи);
-
- ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект);
-
- // Установка постоянной доступности свойств.
- Элементы.СвойстваПользователяИБ.Видимость =
- ЗначениеЗаполнено(ДействияВФорме.СвойстваПользователяИБ);
-
- Элементы.ОтображениеРолей.Видимость =
- ЗначениеЗаполнено(ДействияВФорме.Роли);
-
- Элементы.УстановитьРолиНепосредственно.Видимость =
- ЗначениеЗаполнено(ДействияВФорме.Роли) И НЕ ПользователиСлужебный.ЗапретРедактированияРолей();
-
- ОбновитьОтображаемыйТипПользователя();
-
- ТолькоПросмотр = ТолькоПросмотр
- ИЛИ ДействияВФорме.Роли <> "Редактирование"
- И ДействияВФорме.СвойстваЭлемента <> "Редактирование"
- И ДействияВФорме.СвойстваПользователяИБ <> "Редактирование";
-
-
- ДоступностьКнопки = Не ТолькоПросмотр И ПравоДоступа("Редактирование",
- Метаданные.Справочники.ВнешниеПользователи);
-
- Если Элементы.ФормаЗаписатьИЗакрыть.Доступность <> ДоступностьКнопки Тогда
- Элементы.ФормаЗаписатьИЗакрыть.Доступность = ДоступностьКнопки;
- КонецЕсли;
-
- Если Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность <> ДоступностьКнопки Тогда
- Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность = ДоступностьКнопки;
- КонецЕсли;
-
- Если Элементы.СменитьПароль.Доступность <> ДоступностьКнопки Тогда
- Элементы.СменитьПароль.Доступность = ДоступностьКнопки;
- КонецЕсли;
-
- Элементы.РекомендуетсяПроверитьНастройкиДляВхода.Видимость =
- УровеньДоступа.ИзменениеРазрешенияНаВход
- И ТекущийОбъект.Подготовлен
- И Не ПриЧтенииВходВПрограммуРазрешен;
-
- УстановитьДоступностьСвойств(ЭтотОбъект);
+ // Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры
@@ -310,6 +283,26 @@
КонецЕсли;
КонецЕсли;
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
+ И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
+
+ Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда
+
+ Отказ = Истина;
+
+ ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи);
+ Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры);
+ ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
+
+ Возврат;
+
+ КонецЕсли;
+
+ КонецЕсли;
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -327,6 +320,52 @@
Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда
+ Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
+
+ Если ПользовательИБЗапрещеноИзменятьПароль Тогда
+ ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
+ КонецЕсли;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ Если ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Тогда
+
+ Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
+ И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
+
+ Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда
+ Подготовлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.Ссылка, "Подготовлен");
+ Иначе
+ Подготовлен = УровеньДоступа.УправлениеСписком;
+ КонецЕсли;
+
+ ИзменятьПочтуБезПодтвержденияПаролем = Пользователи.ЭтоПолноправныйПользователь() Или Подготовлен;
+
+ Если Не ИзменятьПочтуБезПодтвержденияПаролем Тогда
+
+ ПарольСовпадаетССохраненным = Ложь;
+
+ Если ТипЗнч(ПарольДляПодтвержденияИзмененияПочты) = Тип("Строка") Тогда
+ УстановитьПривилегированныйРежим(Истина);
+ ПарольСовпадаетССохраненным = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным(
+ ПарольДляПодтвержденияИзмененияПочты, Объект.ИдентификаторПользователяИБ);
+ УстановитьПривилегированныйРежим(Ложь);
+ КонецЕсли;
+
+ // проверка пароля
+ Если Не ПарольСовпадаетССохраненным Тогда
+ ПарольДляПодтвержденияИзмененияПочты = Неопределено;
+ ВызватьИсключение НСтр("ru = 'Пароль указан неверно'");
+ КонецЕсли;
+ КонецЕсли;
+
+ ПользовательИБАдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля];
+
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
ОписаниеПользователяИБ = ОписаниеПользователяИБ();
Если ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) Тогда
@@ -350,11 +389,33 @@
МодульУправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
+ // СтандартныеПодсистемы.КонтактнаяИнформация
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+ МодульУправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
+ КонецЕсли;
+ // Конец СтандартныеПодсистемы.КонтактнаяИнформация
+
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
+ // СтандартныеПодсистемы.КонтактнаяИнформация
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация")
+ И Пользователи.ЭтоПолноправныйПользователь() Тогда
+
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
+
+ ОбъектАвторизацииОбъект = РеквизитФормыВЗначение(ИмяРеквизитаОбъектАвторизации);
+ Если Не ОбъектАвторизацииОбъект.Ссылка.Пустая() Тогда
+ ОбъектАвторизацииОбъект.Записать();
+ ЗначениеВРеквизитФормы(ОбъектАвторизацииОбъект, ИмяРеквизитаОбъектАвторизации);
+ КонецЕсли;
+ КонецЕсли;
+ // Конец СтандартныеПодсистемы.КонтактнаяИнформация
+
УстановитьПривилегированныйРежим(Истина);
ПользователиСлужебный.ЗаписатьСведенияОПользователе(ЭтотОбъект, ТекущийОбъект);
@@ -490,6 +551,17 @@
МодульУправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
+ // СтандартныеПодсистемы.КонтактнаяИнформация
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+ Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
+ ОбъектАвторизацииОбъект = РеквизитФормыВЗначение(ИмяРеквизитаОбъектАвторизации);
+ МодульУправлениеКонтактнойИнформацией.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, ОбъектАвторизацииОбъект, Отказ);
+ КонецЕсли;
+ КонецЕсли;
+ // Конец СтандартныеПодсистемы.КонтактнаяИнформация
+
КонецПроцедуры
&НаСервере
@@ -507,6 +579,7 @@
Процедура ОбъектАвторизацииПриИзменении(Элемент)
ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект);
+ ИзменитьРеквизитОбъектАвторизации();
КонецПроцедуры
@@ -614,6 +687,7 @@
Если ПользовательИБЗапрещеноИзменятьПароль Тогда
ПотребоватьСменуПароляПриВходе = Ложь;
+ ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -670,6 +744,93 @@
ОткрытьФорму("ОбщаяФорма.НастройкиВходаПользователей", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
+// СтандартныеПодсистемы.КонтактнаяИнформация
+
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
+КонецПроцедуры
+
+// Параметры:
+// Элемент - ПолеФормы
+// СтандартнаяОбработка - Булево
+//
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя);
+КонецПроцедуры
+
+// Параметры:
+// Команда - КомандаФормы
+//
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда.Имя);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
+
+КонецПроцедуры
+
+// Параметры:
+// Элемент - ПолеФормы
+// ВыбранноеЗначение - Произвольный
+// СтандартнаяОбработка -Булево
+//
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
+
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
+ МодульУправлениеКонтактнойИнформациейКлиент =
+ ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
+ МодульУправлениеКонтактнойИнформациейКлиент.НачатьОбработкуНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ПродолжитьОбновлениеКонтактнойИнформации(Результат, ДополнительныеПараметры) Экспорт
+ ОбновитьКонтактнуюИнформацию(Результат);
+КонецПроцедуры
+
+&НаСервере
+Процедура ОбновитьКонтактнуюИнформацию(Результат)
+ МодульУправлениеКонтактнойИнформацией =
+ ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+ МодульУправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
+КонецПроцедуры
+
+// Конец СтандартныеПодсистемы.КонтактнаяИнформация
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРоли
@@ -761,6 +922,200 @@
#Область СлужебныеПроцедурыИФункции
+&НаСервере
+Процедура СоздатьРеквизитОбъектАвторизации()
+
+ ЗначениеОбъектаАвторизации = ОбъектАвторизации("ОбъектАвторизации");
+
+ Если ЗначениеОбъектаАвторизации = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТекущийТипОбъектАвторизации = ТипЗнч(ЗначениеОбъектаАвторизации);
+
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТекущийТипОбъектАвторизации);
+
+ ОписаниеТипаНаФорме = Неопределено;
+ РеквизитыФормы = ПолучитьРеквизиты();
+ Для каждого РеквизитФормы Из РеквизитыФормы Цикл
+ Если РеквизитФормы.Имя = ИмяРеквизитаОбъектАвторизации Тогда
+ ОписаниеТипаНаФорме = РеквизитФормы.ТипЗначения.Типы()[0];
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если ТекущийТипОбъектАвторизации <> ОписаниеТипаНаФорме Тогда
+
+ ДобавляемыеРеквизиты = Новый Массив;
+
+ МассивТипов = Новый Массив;
+ МассивТипов.Добавить(ТекущийТипОбъектАвторизации);
+
+ ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
+ ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяРеквизитаОбъектАвторизации, ОписаниеТипа));
+ ИзменитьРеквизиты(ДобавляемыеРеквизиты);
+ КонецЕсли;
+
+ ЗначениеВРеквизитФормы(ЗначениеОбъектаАвторизации, ИмяРеквизитаОбъектАвторизации);
+
+КонецПроцедуры
+
+&НаСервере
+Функция ОбъектАвторизации(ИмяРеквизитаОбъектАвторизации)
+
+ Если ТипЗнч(Объект[ИмяРеквизитаОбъектАвторизации])= Тип("Строка")
+ Или Не ЗначениеЗаполнено(Объект[ИмяРеквизитаОбъектАвторизации]) Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ ЗначениеОбъектаАвторизации = Объект[ИмяРеквизитаОбъектАвторизации].ПолучитьОбъект();
+
+ Возврат ЗначениеОбъектаАвторизации;
+
+КонецФункции
+
+&НаСервереБезКонтекста
+Функция ИмяРеквизитаОбъектАвторизации(ТипОбъектАвторизации)
+ Префикс = Метаданные.НайтиПоТипу(ТипОбъектАвторизации).Имя;
+ Возврат "ОбъектАвторизацииВнешнегоПользователя" + Префикс;
+КонецФункции
+
+&НаСервере
+Процедура ИзменитьРеквизитОбъектАвторизации()
+
+ // СтандартныеПодсистемы.КонтактнаяИнформация
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ СоздатьРеквизитОбъектАвторизации();
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+
+ Если Не ЗначениеЗаполнено(Объект.ОбъектАвторизации)
+ Или Не МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
+
+ Если Элементы.ГруппаКонтактнаяИнформация.ПодчиненныеЭлементы.Количество() = 0 Тогда
+
+ Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
+ МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
+ КонецЕсли;
+
+ Иначе
+
+ МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
+
+ КонецЕсли;
+
+ ПарольДляПодтвержденияИзмененияПочты = Неопределено;
+ Если Пользователи.ЭтоПолноправныйПользователь() Тогда
+
+ Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда
+ ПарольДляПодтвержденияИзмененияПочты = "";
+ КонецЕсли;
+
+ ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
+ ЭтотОбъект,
+ ПользовательИБАдресЭлектроннойПочты,
+ ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект),
+ Истина);
+
+ Элементы.ГруппаКонтактнаяИнформация.Доступность = Истина;
+
+ Иначе
+
+ Элементы.ГруппаКонтактнаяИнформация.Доступность = Ложь;
+
+ КонецЕсли;
+
+
+ КонецЕсли;
+ // Конец СтандартныеПодсистемы.КонтактнаяИнформация
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект = Неопределено)
+
+ Если ТекущийОбъект = Неопределено Тогда
+ ТекущийОбъект = Объект;
+ КонецЕсли;
+
+ ОбработатьИнтерфейсРолей("УстановитьТолькоПросмотрРолей",
+ ЗапретРедактированияРолей
+ Или ДействияВФорме.Роли <> "Редактирование"
+ Или Не УровеньДоступа.НастройкиДляВхода
+ Или Не ТекущийОбъект.УстановитьРолиНепосредственно);
+
+КонецПроцедуры
+
+&НаСервере
+Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено)
+
+ СоздатьРеквизитОбъектАвторизации();
+
+ Если НачальноеОписаниеПользователяИБ = Неопределено Тогда
+ Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере.
+ КонецЕсли;
+
+ Если Не ПриСозданииНаСервере Тогда
+ ПрочитатьПользователяИБ();
+ КонецЕсли;
+
+ УстановитьПривилегированныйРежим(Истина);
+ ПользователиСлужебный.ПрочитатьСведенияОПользователе(ЭтотОбъект);
+ УстановитьПривилегированныйРежим(Ложь);
+
+ УровеньДоступа = ПользователиСлужебный.УровеньДоступаКСвойствамПользователя(ТекущийОбъект);
+
+ ОпределитьДействияВФорме();
+
+ ОпределитьНесоответствияПользователяСПользователемИБ(ПараметрыЗаписи);
+
+ ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект);
+
+ // Установка постоянной доступности свойств.
+ Элементы.СвойстваПользователяИБ.Видимость =
+ ЗначениеЗаполнено(ДействияВФорме.СвойстваПользователяИБ);
+
+ Элементы.ОтображениеРолей.Видимость =
+ ЗначениеЗаполнено(ДействияВФорме.Роли);
+
+ Элементы.УстановитьРолиНепосредственно.Видимость =
+ ЗначениеЗаполнено(ДействияВФорме.Роли) И НЕ ПользователиСлужебный.ЗапретРедактированияРолей();
+
+ ОбновитьОтображаемыйТипПользователя();
+
+ ТолькоПросмотр = ТолькоПросмотр
+ ИЛИ ДействияВФорме.Роли <> "Редактирование"
+ И ДействияВФорме.СвойстваЭлемента <> "Редактирование"
+ И ДействияВФорме.СвойстваПользователяИБ <> "Редактирование";
+
+
+ ДоступностьКнопки = Не ТолькоПросмотр И ПравоДоступа("Редактирование",
+ Метаданные.Справочники.ВнешниеПользователи);
+
+ Если Элементы.ФормаЗаписатьИЗакрыть.Доступность <> ДоступностьКнопки Тогда
+ Элементы.ФормаЗаписатьИЗакрыть.Доступность = ДоступностьКнопки;
+ КонецЕсли;
+
+ Если Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность <> ДоступностьКнопки Тогда
+ Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность = ДоступностьКнопки;
+ КонецЕсли;
+
+ Если Элементы.СменитьПароль.Доступность <> ДоступностьКнопки Тогда
+ Элементы.СменитьПароль.Доступность = ДоступностьКнопки;
+ КонецЕсли;
+
+ Элементы.РекомендуетсяПроверитьНастройкиДляВхода.Видимость =
+ УровеньДоступа.ИзменениеРазрешенияНаВход
+ И ТекущийОбъект.Подготовлен
+ И Не ПриЧтенииВходВПрограммуРазрешен;
+
+ УстановитьДоступностьСвойств(ЭтотОбъект);
+
+КонецПроцедуры
+
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьИмяДляВхода(Форма, ПриИзмененииНаименования = Ложь)
@@ -1072,6 +1427,17 @@
КонецПроцедуры
+// Продолжение обработчика события ПередЗаписью.
+&НаКлиенте
+Процедура ПослеЗапросаПароляДляИзмененияПочты(Результат, ДополнительныеПараметры) Экспорт
+
+ Если ТипЗнч(Результат) = Тип("Строка") Тогда
+ ПарольДляПодтвержденияИзмененияПочты = Результат;
+ Записать(ДополнительныеПараметры.ПараметрыЗаписи);
+ КонецЕсли;
+
+КонецПроцедуры
+
////////////////////////////////////////////////////////////////////////////////
// Обработка пользователя ИБ
@@ -1192,7 +1558,7 @@
|ОсновнойИнтерфейс,
|РежимЗапуска" + ?(Не Элементы.ПользовательИБЯзык.Видимость, "", ",
|Язык") + ?(ПользователиСлужебный.ЗапретРедактированияРолей(), "", ",
- |Роли"));
+ |Роли") + ПользователиСлужебный.ПоляВосстановленияПаролей());
КонецЕсли;
Если ПрочитанныеСвойства = Неопределено Тогда
@@ -1393,8 +1759,11 @@
Элементы.ПользовательИБАутентификацияOpenID.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода;
Элементы.УстановитьРолиНепосредственно.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода;
- Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
- Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Доступность = Не Форма.ПользовательИБЗапрещеноИзменятьПароль;
Элементы.СменитьПароль.Доступность =
( УровеньДоступа.НастройкиДляВхода
@@ -1480,4 +1849,4 @@
КонецПроцедуры
-#КонецОбласти
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl
index 684fdb9e0..6d1d36ca5 100644
--- a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -37,7 +37,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.ТекстДляВнешнихПользователей =
@@ -104,4 +106,66 @@
#КонецОбласти
+#Область СлужебныеПроцедурыИФункции
+
+Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
+
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СписокВнешнихПользователей = ПользователиСлужебный.ВнешниеПользователиДляВключенияВосстановленияПароля();
+
+ Если СписокВнешнихПользователей.Количество() > 0 Тогда
+ ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, СписокВнешнихПользователей);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
+
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ Параметры.ОбработкаЗавершена = Истина;
+ Возврат;
+ КонецЕсли;
+
+ ВнешнийПользовательСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВнешниеПользователи");
+
+ ПроблемныхОбъектов = 0;
+ ОбъектовОбработано = 0;
+
+ Пока ВнешнийПользовательСсылка.Следующий() Цикл
+
+ ОбъектАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВнешнийПользовательСсылка.Ссылка, "ОбъектАвторизации");
+ Результат = ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля(ВнешнийПользовательСсылка.Ссылка, ОбъектАвторизации);
+
+ Если Результат = "Ошибка" Тогда
+ ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
+ Иначе
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВнешнийПользовательСсылка.Ссылка);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВнешниеПользователи");
+
+ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых внешних пользователей (пропущены): %1'"),
+ ПроблемныхОбъектов);
+ ВызватьИсключение ТекстСообщения;
+ Иначе
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
+ Метаданные.Справочники.ВнешниеПользователи,,
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию внешних пользователей: %1'"),
+ ОбъектовОбработано));
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+
#КонецЕсли
diff --git a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl
index cf29d1f39..3be988703 100644
--- a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl
index ec189d0e3..595f7cf7b 100644
--- a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl
index 7e7761afd..994b663cc 100644
--- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.ТекстДляВнешнихПользователей =
@@ -50,4 +52,43 @@
#КонецОбласти
+#Область СлужебныеПроцедурыИФункции
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
+Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
+
+ Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
+
+КонецПроцедуры
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
+// Параметры:
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
+//
+Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "ВсеВнешниеПользователи";
+ Элемент.Наименование = НСтр("ru = 'Все внешние пользователи'", ОбщегоНазначения.КодОсновногоЯзыка());
+
+ ПустыеСсылки = ПользователиСлужебныйПовтИсп.ПустыеСсылкиТиповОбъектовАвторизации();
+ Для Каждого ПустаяСсылка Из ПустыеСсылки Цикл
+ ТаблицаНазначение = ТабличныеЧасти.Назначение; // ТаблицаЗначений
+ НоваяСтрока = ТаблицаНазначение.Добавить();
+ НоваяСтрока.ТипПользователей = ПустаяСсылка;
+ КонецЦикла;
+ Элемент.Назначение = ТабличныеЧасти.Назначение;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+
#КонецЕсли
diff --git a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl
index 7b04475eb..f81aa3eac 100644
--- a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -37,7 +37,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -53,7 +55,30 @@
// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
-// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
+// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
+//
+// Параметры:
+// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера
+// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы
+// Сериализатор - СериализаторXDTO
+// Объект - КонстантаМенеджерЗначения
+// - СправочникОбъект
+// - ДокументОбъект
+// - БизнесПроцессОбъект
+// - ЗадачаОбъект
+// - ПланСчетовОбъект
+// - ПланОбменаОбъект
+// - ПланВидовХарактеристикОбъект
+// - ПланВидовРасчетаОбъект
+// - РегистрСведенийНаборЗаписей
+// - РегистрНакопленияНаборЗаписей
+// - РегистрБухгалтерииНаборЗаписей
+// - РегистрРасчетаНаборЗаписей
+// - ПоследовательностьНаборЗаписей
+// - ПерерасчетНаборЗаписей
+// Артефакты - Массив из ОбъектXDTO
+// Отказ - Булево
+//
Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт
УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ);
@@ -818,6 +843,37 @@
КонецПроцедуры
+////////////////////////////////////////////////////////////////////////////////
+// Начальное заполнение
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
+Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
+
+ Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
+
+КонецПроцедуры
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
+// Параметры:
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
+//
+Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "Администраторы";
+ Элемент.Наименование = НСтр("ru = 'Администраторы'", ОбщегоНазначения.КодОсновногоЯзыка());
+ Элемент.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
+
+КонецПроцедуры
+
+
////////////////////////////////////////////////////////////////////////////////
// Обновление информационной базы.
diff --git a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl
index 363a488fa..944d95552 100644
--- a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl
index e69de29bb..95407273d 100644
--- a/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl
@@ -0,0 +1,42 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
+#Область СлужебныеПроцедурыИФункции
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
+Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
+
+ Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
+
+КонецПроцедуры
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
+// Параметры:
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
+//
+Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "ВсеПользователи";
+ Элемент.Наименование = НСтр("ru = 'Все пользователи'", ОбщегоНазначения.КодОсновногоЯзыка());
+
+КонецПроцедуры
+
+#КонецОбласти
+
+
+#КонецЕсли
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl
index 5b7ec54fb..1461780ad 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl
@@ -904,8 +904,8 @@
КонецПроцедуры
// Параметры:
-// Ответ - КодВозвратаДиалога
-// ДополнительныеПараметры - Структура
+// Ответ - КодВозвратаДиалога
+// ДополнительныеПараметры - Структура
//
&НаКлиенте
Процедура ВариантыДополнительногоОтчетаПередУдалениемЗавершение(Ответ, ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl
index d7d199fe3..83badec4b 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -36,7 +36,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl
index a7705d0b2..5d753878d 100644
--- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/Заметки/ManagerModule.bsl b/SSL/src/Catalogs/Заметки/ManagerModule.bsl
index 4b6443cd6..b162462ed 100644
--- a/SSL/src/Catalogs/Заметки/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Заметки/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl
index ec189d0e3..595f7cf7b 100644
--- a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl
index f8e4c6df8..a9a44b7d0 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl
@@ -23,13 +23,21 @@
УстановитьЗаголовок();
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -43,7 +51,12 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -55,7 +68,11 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -64,7 +81,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
- МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
+ МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl
index 2ebc4596d..f185db816 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl
@@ -38,7 +38,10 @@
УстановитьЗаголовок();
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ КонецЕсли;
КонецПроцедуры
@@ -60,7 +63,12 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -74,7 +82,11 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
КонецПроцедуры
@@ -88,6 +100,7 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
+
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
@@ -95,7 +108,11 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -104,7 +121,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
- МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
+ МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl
index 9369a691d..59893edd0 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -56,7 +58,17 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl
index ae1aa847b..bc0439833 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl
@@ -42,7 +42,12 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
- МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl
index c4b718e43..90928f100 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl
@@ -38,7 +38,10 @@
УстановитьЗаголовок();
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ КонецЕсли;
КонецПроцедуры
@@ -60,7 +63,12 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -74,7 +82,11 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
КонецПроцедуры
@@ -88,6 +100,7 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
+
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
@@ -95,7 +108,11 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -104,7 +121,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
- МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
+ МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl
index 012483383..4c811dfd0 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -56,7 +58,17 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl
index ae1aa847b..bc0439833 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl
@@ -42,7 +42,12 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
- МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl
index f2aa4a103..d21b871fc 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,7 @@
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
// Возвращаемое значение:
-// Массив Из Строка - массив имен реквизитов, образующих естественный ключ.
+// Массив из Строка - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl
index 3ae5bb329..1eadd4cd0 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -33,7 +33,7 @@
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
// Возвращаемое значение:
-// Массив Из Строка - массив имен реквизитов, образующих естественный ключ.
+// Массив из Строка - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
diff --git a/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl b/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl
index b2d9209ea..7a58c3706 100644
--- a/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl
+++ b/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl
index 2a8b91a62..20e53ae82 100644
--- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl
@@ -134,8 +134,6 @@
&НаСервереБезКонтекста
Процедура НаборыСвойствПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
- ЭтоОсновнойЯзык = (ТекущийЯзык() = Метаданные.ОсновнойЯзык);
-
Для Каждого СтрокаДинамическогоСписка Из Строки Цикл
Данные = СтрокаДинамическогоСписка.Значение.Данные;
Если Данные.ЭтоГруппа Тогда
diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl
index 1b5f0d2af..dc472f217 100644
--- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -53,7 +53,17 @@
КонецЕсли;
Если ЗначениеЗаполнено(Данные.Родитель) Тогда
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
Возврат;
КонецЕсли;
@@ -300,7 +310,7 @@
// * Используется - Булево
// * Ссылка - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений
// * Родитель - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений
-// * ДочерниеНаборы - Соответствие:
+// * ДочерниеНаборы - Соответствие из КлючИЗначение:
// ** Ключ - Строка
// ** Значение - см. СвойстваНабора
// * Наименование - Строка
diff --git a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl
index 7fb0b0a9c..3e28cfbad 100644
--- a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -39,7 +39,7 @@
//
// Параметры:
// Идентификатор - Строка - идентификатор объекта внешнего компонента.
-// Версия - Строка - (необязательный) версия компоненты.
+// Версия - Строка - версия компоненты.
//
// Возвращаемое значение:
// СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе.
diff --git a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl
index 1cd9b7f0c..a001f3de4 100644
--- a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -75,27 +77,23 @@
#Область СлужебныйПрограммныйИнтерфейс
-// Начальное заполнение
-
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
-// Вызывается при начальном заполнении справочника ПапкиФайлов.
-//
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
// Параметры:
-// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
-// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
-// справочника ПапкиФайлов.
-// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
-// * Ключ - Строка - имя табличной части;
-// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
-// необходимо скопировать перед заполнением. Например:
-// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
-// ЭлементТЧ = Элемент.Ключи.Добавить();
-// ЭлементТЧ.ИмяКлюча = "Первичный";
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl
index fb8bffac9..1aa7c2862 100644
--- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl
@@ -41,13 +41,10 @@
&НаСервере
Процедура ОбработатьПереданныеПараметры()
-
- УчетнаяЗаписьУказана = Ложь;
Если Параметры.Отбор.Свойство("Владелец")
И ЗначениеЗаполнено(Параметры.Отбор.Владелец) Тогда
- УчетнаяЗаписьУказана = Истина;
Владелец = Параметры.Отбор.Владелец;
Элементы.Владелец.Видимость = Ложь;
diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl
index 326ce048a..44c39bb79 100644
--- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Form.form
new file mode 100644
index 000000000..7fca219c1
--- /dev/null
+++ b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Form.form
@@ -0,0 +1,197 @@
+
+
+
+ ПояснениеПриВходе
+ 10
+
+ ru
+ Для изменения электронной почты, используемой для восстановления пароля, необходимо ввести пароль
+
+ true
+ true
+
+ true
+
+
+ ПояснениеПриВходеРасширеннаяПодсказка
+ 12
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПояснениеПриВходеКонтекстноеМеню
+ 11
+ true
+
+ Label
+ true
+
+ Left
+ 2
+
+
+
+ Пароль
+ 1
+
+ ru
+ Пароль
+
+ true
+ true
+
+ true
+
+
+ Пароль
+
+ None
+
+ ПарольРасширеннаяПодсказка
+ 3
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПарольКонтекстноеМеню
+ 2
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+ Bottom
+ true
+
+ ФормаКоманднаяПанель
+ -1
+
+ ФормаОК
+ 8
+ true
+ true
+
+ true
+
+ true
+
+ ФормаОКРасширеннаяПодсказка
+ 9
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ОК
+ Auto
+ true
+ true
+ true
+ UserCmds
+ Auto
+
+
+ ФормаОтмена
+ 6
+ true
+ true
+
+ true
+
+
+ ФормаОтменаРасширеннаяПодсказка
+ 7
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.StandardCommand.Cancel
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ Right
+
+
+ OnCreateAtServer
+ ПриСозданииНаСервере
+
+ DontBlock
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ Пароль
+ 1
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ОК
+
+ ru
+ ОК
+
+ 1
+
+ ru
+ ОК
+
+
+
+
+ ОК
+
+
+ Auto
+ Auto
+
+
+
+
+
+
diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl
new file mode 100644
index 000000000..6678cc38f
--- /dev/null
+++ b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl
@@ -0,0 +1,27 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+ Заголовок = НСтр("ru='Введите текущий пароль'");
+ АвтоЗаголовок = Ложь;
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура ОК(Команда)
+ Закрыть(Пароль);
+КонецПроцедуры
+
+#КонецОбласти
+
diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form
index 8d5e6077f..5fd60f950 100644
--- a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form
@@ -35,6 +35,90 @@
КоманднаяПанель158
+
+ ПодменюСоздать
+ 299
+
+ СоздатьПользователя
+ 54
+
+ ru
+ Создать
+
+ true
+ true
+
+ true
+
+ false
+
+ СоздатьПользователяExtendedTooltip
+ 101
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Item.ПользователиСписок.StandardCommand.Create
+ Normal
+ PictureAndText
+ true
+ true
+ UserCmds
+ Auto
+
+
+ СоздатьГруппуПользователей
+ 55
+ true
+ true
+
+ true
+
+ false
+
+ СоздатьГруппуПользователейExtendedTooltip
+ 102
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.СоздатьГруппуПользователей
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ true
+ true
+
+ true
+
+
+ ru
+ Создать
+
+
+ ПодменюСоздатьРасширеннаяПодсказка
+ 300
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Compact
+
+ ЗавершитьИЗакрыть95
@@ -131,60 +215,6 @@
UserCmdsAuto
-
- СоздатьПользователя
- 54
- true
- true
-
- true
-
- false
-
- СоздатьПользователяExtendedTooltip
- 101
- Label
- true
- true
-
- Left
-
-
- Form.Item.ПользователиСписок.StandardCommand.Create
- Normal
- Auto
- true
- true
- UserCmds
- Auto
-
-
- СоздатьГруппуПользователей
- 55
- true
- true
-
- true
-
- false
-
- СоздатьГруппуПользователейExtendedTooltip
- 102
- Label
- true
- true
-
- Left
-
-
- Form.Command.СоздатьГруппуПользователей
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- НазначитьГруппы72
@@ -264,7 +294,7 @@
truetrueUserCmds
- Auto
+ OnlyInContextMenuФормаИзменить
@@ -292,33 +322,6 @@
UserCmdsAuto
-
- ФормаУстановитьПароль
- 198
- true
- true
-
- true
-
-
- ФормаУстановитьПарольРасширеннаяПодсказка
- 199
- Label
- true
- true
-
- Left
-
-
- Form.Command.УстановитьПароль
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- InAdditionalSubmenu
- ПользователиСтандартныеКоманды210
@@ -345,17 +348,21 @@
Form
-
- СведенияОПользователях
- 132
+
+ ПодменюСоздатьНаОсновании
+ 311truetruetrue
+
+ ru
+ Создать на основании
+
- СведенияОПользователяхРасширеннаяПодсказка
- 133
+ ПодменюСоздатьНаОснованииРасширеннаяПодсказка
+ 312Labeltruetrue
@@ -363,26 +370,137 @@
Left
- Form.Command.СведенияОПользователях
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- InAdditionalSubmenu
+ Popup
+
+
+ StdPicture.InputOnBasis
+
+ Picture
+ Normal
+
-
- ПользователиИБ
- 6
+
+ ПодменюОтчеты
+ 303
+
+ ПодменюОтчетыВажное
+ 305
+ true
+ true
+
+ true
+
+
+ ru
+ Подменю отчеты важное
+
+
+ ПодменюОтчетыВажноеРасширеннаяПодсказка
+ 306
+ Label
+ true
+ true
+
+ Left
+
+
+
+
+
+ ПодменюОтчетыПерейти
+ 307
+ true
+ true
+
+ true
+
+
+ ru
+ Подменю отчеты перейти
+
+
+ ru
+ Подменю отчеты важное
+
+
+ ПодменюОтчетыПерейтиРасширеннаяПодсказка
+ 308
+ Label
+ true
+ true
+
+ Left
+
+
+
+
+
+ ПодменюОтчетыСмТакже
+ 309
+
+ СведенияОПользователях
+ 132
+ true
+ true
+
+ true
+
+
+ СведенияОПользователяхРасширеннаяПодсказка
+ 133
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.СведенияОПользователях
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ InAdditionalSubmenu
+
+ true
+ true
+
+ true
+
+
+ ru
+ Подменю отчеты см также
+
+
+ ru
+ Подменю отчеты важное
+
+
+ ПодменюОтчетыСмТакжеРасширеннаяПодсказка
+ 310
+ Label
+ true
+ true
+
+ Left
+
+
+
+ truetruetrue
+
+ ru
+ Отчеты
+
- ПользователиИБExtendedTooltip
- 106
+ ПодменюОтчетыРасширеннаяПодсказка
+ 304Labeltruetrue
@@ -390,51 +508,136 @@
Left
- Catalog.Пользователи.Command.ПользователиИнформационнойБазы
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- InAdditionalSubmenu
+ Popup
+
+
+ CommonPicture.Отчеты
+
+ PictureAndText
+ Normal
+
-
- ФормаИзменитьВыделенные
- 196
- true
- true
-
- true
-
-
- ФормаИзменитьВыделенныеРасширеннаяПодсказка
- 197
- Label
- true
- true
-
- Left
-
-
- Form.Command.ИзменитьВыделенные
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- InAdditionalSubmenu
-
-
- ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий
+
+ ПодменюДополнительно297
+
+ ФормаИзменитьВыделенные
+ 196
+ true
+ true
+
+ true
+
+
+ ФормаИзменитьВыделенныеРасширеннаяПодсказка
+ 197
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ИзменитьВыделенные
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ InAdditionalSubmenu
+
+
+ ПользователиИБ
+ 6
+ true
+ true
+
+ true
+
+
+ ПользователиИБExtendedTooltip
+ 106
+ Label
+ true
+ true
+
+ Left
+
+
+ Catalog.Пользователи.Command.ПользователиИнформационнойБазы
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ InAdditionalSubmenu
+
+
+ ФормаУстановитьПароль
+ 198
+ true
+ true
+
+ true
+
+
+ ФормаУстановитьПарольРасширеннаяПодсказка
+ 199
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.УстановитьПароль
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ InAdditionalSubmenu
+
+
+ ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий
+ 301
+ true
+
+ true
+
+
+ ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействийРасширеннаяПодсказка
+ 302
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ InAdditionalSubmenu
+
+ truetruetrue
+
+ ru
+ Дополнительно
+
- ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействийРасширеннаяПодсказка
+ ПодменюДополнительноРасширеннаяПодсказка298Labeltrue
@@ -443,13 +646,11 @@
Left
- Form.Command.ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий
- Normal
- Auto
- true
- true
- UserCmds
- Auto
+ Popup
+
+ Auto
+ Normal
+ truetrue
@@ -3263,7 +3464,9 @@
BeforeLoadDataFromSettingsAtServerПередЗагрузкеДанныхИзНастроекНаСервере
+ CloseCreate
+ DeleteDontBlockUsetrue
diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form
index 80e4f4eb0..4a4e52649 100644
--- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form
@@ -1395,6 +1395,40 @@
true
+
+ ПользовательИБЗапрещеноВосстанавливатьПароль
+ 366
+ true
+ true
+
+ true
+
+
+ ПользовательИБЗапрещеноВосстанавливатьПароль
+
+ Right
+
+ ПользовательИБЗапрещеноВосстанавливатьПарольРасширеннаяПодсказка
+ 368
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПользовательИБЗапрещеноВосстанавливатьПарольКонтекстноеМеню
+ 367
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+ ПользовательИБПоказыватьВСпискеВыбора25
@@ -2668,6 +2702,117 @@
AutoInAdditionalSubmenu
+
+ ПодменюОтчеты
+ 358
+
+ ПодменюОтчетыВажное
+ 360
+ true
+ true
+
+ true
+
+
+ ru
+ Подменю отчеты важное
+
+
+ ПодменюОтчетыВажноеРасширеннаяПодсказка
+ 361
+ Label
+ true
+ true
+
+ Left
+
+
+
+
+
+ ПодменюОтчетыПерейти
+ 362
+ true
+ true
+
+ true
+
+
+ ru
+ Подменю отчеты перейти
+
+
+ ru
+ Подменю отчеты важное
+
+
+ ПодменюОтчетыПерейтиРасширеннаяПодсказка
+ 363
+ Label
+ true
+ true
+
+ Left
+
+
+
+
+
+ ПодменюОтчетыСмТакже
+ 364
+ true
+ true
+
+ true
+
+
+ ru
+ Подменю отчеты см также
+
+
+ ru
+ Подменю отчеты важное
+
+
+ ПодменюОтчетыСмТакжеРасширеннаяПодсказка
+ 365
+ Label
+ true
+ true
+
+ Left
+
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Отчеты
+
+
+ ПодменюОтчетыРасширеннаяПодсказка
+ 359
+ Label
+ true
+ true
+
+ Left
+
+
+ Popup
+
+
+ CommonPicture.Отчеты
+
+ PictureAndText
+ Normal
+
+ Left
@@ -3465,6 +3610,67 @@
true
+
+ ПользовательИБАдресЭлектроннойПочты
+ 34
+
+ String
+
+ 256
+
+
+
+ true
+
+
+ true
+
+ FunctionalOption.ИспользоватьВнешнихПользователей
+ true
+
+
+ ПарольДляПодтвержденияИзмененияПочты
+ 45
+
+
+ true
+
+
+ true
+
+
+
+ ИмяРеквизитаСПочтойДляВосстановленияПароля
+ 46
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+
+ ПользовательИБЗапрещеноВосстанавливатьПароль
+
+ ru
+ Пользователю запрещено восстанавливать пароль
+
+ 47
+
+ Boolean
+
+
+ true
+
+
+ true
+
+ true
+ ПоказатьТолькоВыбранныеРоли
diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl
index b1ab06b30..748846008 100644
--- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl
@@ -53,6 +53,7 @@
Элементы.ПользовательИБАутентификацияСтандартная.Видимость = Ложь;
Элементы.ПотребоватьСменуПароляПриВходе.Видимость = Ложь;
Элементы.ПользовательИБЗапрещеноИзменятьПароль.Видимость = Ложь;
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь;
Элементы.СвойстваАутентификацииОС.Видимость = Ложь;
Элементы.ПользовательИБРежимЗапуска.Видимость = Ложь;
КонецЕсли;
@@ -107,6 +108,8 @@
ВходВПрограммуРазрешен = Ложь;
ВходВПрограммуРазрешенЗначениеПрямогоИзменения = Ложь;
КонецЕсли;
+
+ ПользовательИБАдресЭлектроннойПочты = "";
Иначе
// Добавление элемента.
@@ -138,9 +141,28 @@
НачальноеОписаниеПользователяИБ = НачальноеОписаниеПользователяИБ();
ТребуетсяСинхронизацияССервисом = Объект.Ссылка.Пустая();
+ ПарольДляПодтвержденияИзмененияПочты = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
- МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, "КонтактнаяИнформация");
+ ДополнительныеПараметры = МодульУправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации();
+ ДополнительныеПараметры.ИмяЭлементаДляРазмещения = "КонтактнаяИнформация";
+
+ МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, ДополнительныеПараметры);
+
+ Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
+
+ Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда
+ ПарольДляПодтвержденияИзмененияПочты = "";
+ КонецЕсли;
+
+ ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
+ ЭтотОбъект,
+ ПользовательИБАдресЭлектроннойПочты,
+ ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект));
+
+ КонецЕсли;
+
ПереопределитьРедактированиеКонтактнойИнформацииВСервисе();
КонецЕсли;
@@ -193,6 +215,10 @@
АдресФотографии = ПоместитьВоВременноеХранилище(БиблиотекаКартинок.ПользовательБезФотографии, УникальныйИдентификатор);
КонецЕсли;
+ Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь;
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
@@ -246,6 +272,14 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, "КонтактнаяИнформация");
+
+ Если ТипЗнч(УровеньДоступа) = Тип("Структура") И ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
+ ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
+ ЭтотОбъект,
+ ПользовательИБАдресЭлектроннойПочты,
+ ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, ТекущийОбъект));
+ КонецЕсли;
+
КонецЕсли;
НастроитьФорму(ТекущийОбъект);
@@ -276,6 +310,26 @@
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ОчиститьСообщения();
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
+ И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
+
+ Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда
+
+ Отказ = Истина;
+
+ ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи);
+ Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры);
+ ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
+ Возврат;
+
+ КонецЕсли;
+
+ КонецЕсли;
+ КонецЕсли;
+
ЗаголовокВопросов = НСтр("ru = 'Запись пользователя информационной базы'");
// Копирование прав пользователя.
@@ -347,6 +401,53 @@
Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда
+ Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
+
+ Если ПользовательИБЗапрещеноИзменятьПароль Тогда
+ ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
+ КонецЕсли;
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ Если ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Тогда
+
+ Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
+ И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
+
+ Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда
+ Подготовлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.Ссылка, "Подготовлен");
+ Иначе
+ Подготовлен = УровеньДоступа.УправлениеСписком;
+ КонецЕсли;
+
+ ИзменятьПочтуБезПодтвержденияПаролем = Пользователи.ЭтоПолноправныйПользователь() Или Подготовлен;
+
+ Если Не ИзменятьПочтуБезПодтвержденияПаролем Тогда
+
+ ПарольСовпадаетССохраненным = Ложь;
+
+ Если ТипЗнч(ПарольДляПодтвержденияИзмененияПочты) = Тип("Строка") Тогда
+ УстановитьПривилегированныйРежим(Истина);
+ ПарольСовпадаетССохраненным = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным(
+ ПарольДляПодтвержденияИзмененияПочты, Объект.ИдентификаторПользователяИБ);
+ УстановитьПривилегированныйРежим(Ложь);
+ КонецЕсли;
+
+ // проверка пароля
+ Если Не ПарольСовпадаетССохраненным Тогда
+ ПарольДляПодтвержденияИзмененияПочты = Неопределено;
+ ВызватьИсключение НСтр("ru = 'Пароль указан неверно'");
+ КонецЕсли;
+
+ КонецЕсли;
+
+ ПользовательИБАдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля];
+
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
ОписаниеПользователяИБ = ОписаниеПользователяИБ();
Если ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) Тогда
@@ -470,6 +571,8 @@
Возврат;
КонецЕсли;
+ ПарольДляПодтвержденияИзмененияПочты = Неопределено;
+
ПослеЗаписиЗавершение(Неопределено, ПараметрыЗаписи);
КонецПроцедуры
@@ -480,7 +583,14 @@
Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда
ОписаниеПользователяИБ = ОписаниеПользователяИБ();
ОписаниеПользователяИБ.Вставить("ИдентификаторПользователяИБ", Объект.ИдентификаторПользователяИБ);
+
+ Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей()
+ И ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) Тогда
+ ОписаниеПользователяИБ.АдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля];
+ КонецЕсли;
+
ПользователиСлужебный.ПроверитьОписаниеПользователяИБ(ОписаниеПользователяИБ, Отказ, Ложь);
+
КонецЕсли;
Если ВходВПрограммуРазрешен
@@ -680,7 +790,8 @@
Процедура ПользовательИБЗапрещеноИзменятьПарольПриИзменении(Элемент)
Если ПользовательИБЗапрещеноИзменятьПароль Тогда
- ПотребоватьСменуПароляПриВходе = Ложь;
+ ПотребоватьСменуПароляПриВходе = Ложь;
+ ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -1274,10 +1385,11 @@
Элементы.ПользовательИБАутентификацияОС.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода;
Элементы.ПользовательИБПользовательОС.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода;
- Элементы.ПользовательИБПоказыватьВСпискеВыбора.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
- Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
- Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
- Элементы.ПользовательИБРежимЗапуска.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПользовательИБПоказыватьВСпискеВыбора.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
+ Элементы.ПользовательИБРежимЗапуска.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.Комментарий.ТолькоПросмотр =
Не (ДействияВФорме.СвойстваЭлемента = "Редактирование" И УровеньДоступа.УправлениеСписком);
@@ -1331,6 +1443,17 @@
КонецПроцедуры
+// Продолжение обработчика события ПередЗаписью.
+&НаКлиенте
+Процедура ПослеЗапросаПароляДляИзмененияПочты(Результат, ДополнительныеПараметры) Экспорт
+
+ Если ТипЗнч(Результат) = Тип("Строка") Тогда
+ ПарольДляПодтвержденияИзмененияПочты = Результат;
+ Записать(ДополнительныеПараметры.ПараметрыЗаписи);
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьИмяДляВхода(Форма, ПриИзмененииНаименования = Ложь)
@@ -1378,10 +1501,17 @@
И НЕ ПользовательИБАутентификацияСтандартная
И НЕ ПользовательИБАутентификацияОС Тогда
- ВходВПрограммуРазрешен = Ложь;
+ ВходВПрограммуРазрешен = Ложь;
+ ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
ИначеЕсли Не ВходВПрограммуРазрешен Тогда
ВходВПрограммуРазрешен = ВходВПрограммуРазрешенЗначениеПрямогоИзменения;
+
+ Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
+ И ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]) Тогда
+ ПользовательИБЗапрещеноВосстанавливатьПароль = Ложь;
+ КонецЕсли;
+
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -1564,17 +1694,25 @@
Результат = Новый Структура;
Если УровеньДоступа.ИзменениеТекущего Тогда
- Результат.Вставить("Пароль", ПользовательИБПароль);
- Результат.Вставить("Язык", ПользовательИБЯзык);
+ Результат.Вставить("Пароль", ПользовательИБПароль);
+ Результат.Вставить("Язык", ПользовательИБЯзык);
+ Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда
+ Результат.Вставить("АдресЭлектроннойПочты", ПользовательИБАдресЭлектроннойПочты);
+ КонецЕсли;
КонецЕсли;
Если УровеньДоступа.УправлениеСписком Тогда
- Результат.Вставить("ВходВПрограммуРазрешен", ВходВПрограммуРазрешен);
- Результат.Вставить("ПоказыватьВСпискеВыбора", ПользовательИБПоказыватьВСпискеВыбора
+ Результат.Вставить("ВходВПрограммуРазрешен", ВходВПрограммуРазрешен);
+ Результат.Вставить("ПоказыватьВСпискеВыбора", ПользовательИБПоказыватьВСпискеВыбора
И Не ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей"));
- Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБЗапрещеноИзменятьПароль);
- Результат.Вставить("Язык", ПользовательИБЯзык);
- Результат.Вставить("РежимЗапуска", ПользовательИБРежимЗапуска);
+ Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБЗапрещеноИзменятьПароль);
+
+ Результат.Вставить("Язык", ПользовательИБЯзык);
+ Результат.Вставить("РежимЗапуска", ПользовательИБРежимЗапуска);
+ Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда
+ Результат.Вставить("ЗапрещеноВосстанавливатьПароль", ПользовательИБЗапрещеноВосстанавливатьПароль);
+ Результат.Вставить("АдресЭлектроннойПочты", ПользовательИБАдресЭлектроннойПочты);
+ КонецЕсли;
Если ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда
Результат.Вставить("ПолноеИмя", ПользовательИБПолноеИмя);
@@ -1961,7 +2099,7 @@
|ОсновнойИнтерфейс,
|РежимЗапуска" + ?(Не Элементы.ПользовательИБЯзык.Видимость, "", ",
|Язык") + ?(ПользователиСлужебный.ЗапретРедактированияРолей(), "", ",
- |Роли"));
+ |Роли") + ПользователиСлужебный.ПоляВосстановленияПаролей());
КонецЕсли;
Если ПрочитанныеСвойства = Неопределено Тогда
@@ -2028,6 +2166,28 @@
УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Полное имя ""%1""'"),
ПользовательИБПолноеИмя));
КонецЕсли;
+
+ // Проверка на соответствие почты
+ Если УровеньДоступа.ИзменениеТекущего Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+
+ ВидEmailПользователя = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя");
+
+ СтрокаОписания = МодульУправлениеКонтактнойИнформацией.СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы(
+ ЭтотОбъект, ВидEmailПользователя, ПользовательИБАдресЭлектроннойПочты);
+
+ Если СтрокаОписания = Неопределено Тогда
+ ПоказатьКомандыУстраненияРазличий =
+ ПоказатьКомандыУстраненияРазличий
+ Или ДействияВФорме.СвойстваЭлемента = "Редактирование";
+
+ УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Почта для восстановления пароля ""%1""'"),
+ ПользовательИБАдресЭлектроннойПочты));
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
Если УточнениеСвойств.Количество() > 0 Тогда
СтрокаУточненияСвойств = "";
@@ -2111,6 +2271,8 @@
И ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда
Объект.Наименование = ПользовательИБПолноеИмя;
+ ЗаполнитьПолеПочтыДляВосстановленияПароляИзИБ();
+
КонецЕсли;
ОпределитьНесоответствияПользователяСПользователемИБ();
@@ -2121,6 +2283,33 @@
КонецПроцедуры
+&НаСервере
+Процедура ЗаполнитьПолеПочтыДляВосстановленияПароляИзИБ()
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+
+ Если ПустаяСтрока(ИмяРеквизитаСПочтойДляВосстановленияПароля)
+ Или ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] <> ПользовательИБАдресЭлектроннойПочты Тогда
+
+ ВидEmailПользователя = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя");
+ ОписаниеПочты = МодульУправлениеКонтактнойИнформацией.СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы(ЭтотОбъект, ВидEmailПользователя, ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]);
+
+ Если ОписаниеПочты <> Неопределено Тогда
+ ОписаниеПочты.Представление = ПользовательИБАдресЭлектроннойПочты;
+ ОписаниеПочты.Значение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(
+ ПользовательИБАдресЭлектроннойПочты, ВидEmailПользователя);
+
+ ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] = ПользовательИБАдресЭлектроннойПочты;
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
////////////////////////////////////////////////////////////////////////////////
// Начальное заполнение, проверка заполнения, доступность свойств.
@@ -2155,6 +2344,8 @@
Элементы.ПараметрыАутентификации1СПредприятия.Доступность = Форма.ПользовательИБАутентификацияСтандартная;
Элементы.ПользовательИБПользовательОС.Доступность = Форма.ПользовательИБАутентификацияОС;
+ Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Доступность = Не Форма.ПользовательИБЗапрещеноИзменятьПароль;
+
// Уточнение настроек в модели сервиса.
Если ДействияСПользователемСервиса <> Неопределено Тогда
@@ -2202,7 +2393,7 @@
Функция ОпределитьДоступностьЭлементовКонтактнойИнформации()
Результат = Новый Соответствие;
- Для Каждого СтрокаКонтактнойИнформации Из ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл
+ Для Каждого СтрокаКонтактнойИнформации Из ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл // СтрокаТаблицыЗначений: см. УправлениеКонтактнойИнформацией.НоваяКонтактнаяИнформация
ДействияВидаКонтактнойИнформации = ДействияСПользователемСервиса.КонтактнаяИнформация.Получить(СтрокаКонтактнойИнформации.Вид);
Если ДействияВидаКонтактнойИнформации = Неопределено Тогда
// Возможность редактирования этого вида КИ не регулируется менеджером сервиса.
@@ -2247,21 +2438,27 @@
Если Форма.ПользовательИБСуществует
ИЛИ Форма.ВходВПрограммуРазрешен
- ИЛИ Форма.ПользовательИБИмя <> ТекущееИмя
- ИЛИ Форма.ПользовательИБАутентификацияСтандартная <> Шаблон.АутентификацияСтандартная
- ИЛИ Форма.ПользовательИБПоказыватьВСпискеВыбора <> Шаблон.ПоказыватьВСпискеВыбора
- ИЛИ Форма.ПользовательИБЗапрещеноИзменятьПароль <> Шаблон.ЗапрещеноИзменятьПароль
- ИЛИ Форма.ПользовательИБПароль <> Неопределено
- ИЛИ Форма.ПользовательИБАутентификацияОС <> Шаблон.АутентификацияОС
- ИЛИ Форма.ПользовательИБПользовательОС <> ""
- ИЛИ Форма.ПользовательИБАутентификацияOpenID <> Шаблон.АутентификацияOpenID
- ИЛИ Форма.ПользовательИБРежимЗапуска <> Шаблон.РежимЗапуска
- ИЛИ Форма.ПользовательИБЯзык <> Шаблон.Язык
- ИЛИ Форма.ПользовательИБРоли.Количество() <> 0 Тогда
+ ИЛИ Форма.ПользовательИБИмя <> ТекущееИмя
+ ИЛИ Форма.ПользовательИБАутентификацияСтандартная <> Шаблон.АутентификацияСтандартная
+ ИЛИ Форма.ПользовательИБПоказыватьВСпискеВыбора <> Шаблон.ПоказыватьВСпискеВыбора
+ ИЛИ Форма.ПользовательИБЗапрещеноИзменятьПароль <> Шаблон.ЗапрещеноИзменятьПароль
+ ИЛИ Форма.ПользовательИБПароль <> Неопределено
+ ИЛИ Форма.ПользовательИБАутентификацияОС <> Шаблон.АутентификацияОС
+ ИЛИ Форма.ПользовательИБПользовательОС <> ""
+ ИЛИ Форма.ПользовательИБАутентификацияOpenID <> Шаблон.АутентификацияOpenID
+ ИЛИ Форма.ПользовательИБРежимЗапуска <> Шаблон.РежимЗапуска
+ ИЛИ Форма.ПользовательИБЯзык <> Шаблон.Язык
+ ИЛИ Форма.ПользовательИБРоли.Количество() <> 0 Тогда
Возврат Истина;
КонецЕсли;
+ // Поддерживается в новых версиях платформы
+ Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей()
+ И Форма.ПользовательИБЗапрещеноВосстанавливатьПароль <> Шаблон.ЗапрещеноВосстанавливатьПароль Тогда
+ Возврат Истина;
+ КонецЕсли;
+
Возврат Ложь;
КонецФункции
@@ -2321,4 +2518,4 @@
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
-#КонецОбласти
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl
index c1f8cdfa9..299b55971 100644
--- a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -36,7 +36,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -118,4 +120,76 @@
#КонецОбласти
+#Область СлужебныеПроцедурыИФункции
+
+Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
+
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СписокПользователей = ПользователиСлужебный.ПользователиДляВключенияВосстановленияПароля();
+
+ Если СписокПользователей.Количество() > 0 Тогда
+ ВключитьСтандартныеНастройкиВосстановленияПароля();
+ ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, СписокПользователей);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
+
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ Параметры.ОбработкаЗавершена = Истина;
+ Возврат;
+ КонецЕсли;
+
+ ПользовательСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.Пользователи");
+
+ ПроблемныхОбъектов = 0;
+ ОбъектовОбработано = 0;
+
+ Пока ПользовательСсылка.Следующий() Цикл
+ Результат = ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка.Ссылка);
+
+ Если Результат = "Ошибка" Тогда
+ ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
+ Иначе
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ПользовательСсылка.Ссылка);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.Пользователи");
+
+ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых пользователей (пропущены): %1'"),
+ ПроблемныхОбъектов);
+ ВызватьИсключение ТекстСообщения;
+ Иначе
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
+ Метаданные.Справочники.Пользователи,,
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию пользователей: %1'"),
+ ОбъектовОбработано));
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ВключитьСтандартныеНастройкиВосстановленияПароля()
+
+ Настройки = ПользователиСлужебный.НастройкиВосстановленияПароля();
+
+ Если Настройки = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Настройки.СпособВосстановленияПароля = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияЧерезСтандартныйСервис");
+ ПользователиСлужебный.УстановитьНастройкиВосстановленияПароля(Настройки);
+
+КонецПроцедуры
+
+#КонецОбласти
+
#КонецЕсли
diff --git a/SSL/src/Catalogs/Пользователи/ObjectModule.bsl b/SSL/src/Catalogs/Пользователи/ObjectModule.bsl
index 8be786e04..0b119891e 100644
--- a/SSL/src/Catalogs/Пользователи/ObjectModule.bsl
+++ b/SSL/src/Catalogs/Пользователи/ObjectModule.bsl
@@ -102,7 +102,7 @@
Блокировка.Добавить("Справочник.ГруппыПользователей");
Блокировка.Заблокировать();
- ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоПользователя.ПолучитьОбъект();
+ ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоПользователя.ПолучитьОбъект(); // СправочникОбъект.ГруппыПользователей
ОбъектГруппы.Состав.Добавить().Пользователь = Ссылка;
ОбъектГруппы.Записать();
КонецЕсли;
diff --git a/SSL/src/Catalogs/Пользователи/Пользователи.mdo b/SSL/src/Catalogs/Пользователи/Пользователи.mdo
index e975e3b28..3f03cab78 100644
--- a/SSL/src/Catalogs/Пользователи/Пользователи.mdo
+++ b/SSL/src/Catalogs/Пользователи/Пользователи.mdo
@@ -820,6 +820,15 @@
PersonalComputerMobileDevice
+
+ ВводПароля
+
+ ru
+ Ввод пароля
+
+ PersonalComputer
+ MobileDevice
+ ПользователиИнформационнойБазы
diff --git a/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl
index 79c06de94..fa1f51769 100644
--- a/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -32,7 +32,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl
index 893de0a52..7a2c8d289 100644
--- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl
+++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl
@@ -185,7 +185,7 @@
КонецПроцедуры
&НаСервере
-Функция ЗагрузитьРезультат(АдресРезультата)
+Процедура ЗагрузитьРезультат(АдресРезультата)
Результат = ПолучитьИзВременногоХранилища(АдресРезультата);
Если ТипЗнч(Результат) = Тип("Строка")
@@ -193,6 +193,6 @@
ТекстСообщенияПользователю = Результат;
КонецЕсли;
-КонецФункции
+КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl
index d218ebdfe..ff14bd217 100644
--- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -37,7 +37,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl
index e9de914b7..7f5136b95 100644
--- a/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl
@@ -72,6 +72,8 @@
КонецЦикла;
+ Возврат Ложь;
+
КонецФункции
#КонецОбласти
diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl
index 0ac162e5a..930021d8c 100644
--- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl
@@ -17,7 +17,7 @@
// Имена реквизитов справочника, значения которых разрешено изменять массово.
//
// Возвращаемое значение:
-// Массив Из Строка - имена реквизитов справочника.
+// Массив из Строка - имена реквизитов справочника.
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,7 @@
// Имена реквизитов справочника, в разрезе которых контролируется уникальность элементов.
//
// Возвращаемое значение:
-// Массив Из Строка - имена реквизитов справочника.
+// Массив из Строка - имена реквизитов справочника.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -59,7 +59,17 @@
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl
index 0ac162e5a..930021d8c 100644
--- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl
@@ -17,7 +17,7 @@
// Имена реквизитов справочника, значения которых разрешено изменять массово.
//
// Возвращаемое значение:
-// Массив Из Строка - имена реквизитов справочника.
+// Массив из Строка - имена реквизитов справочника.
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,7 @@
// Имена реквизитов справочника, в разрезе которых контролируется уникальность элементов.
//
// Возвращаемое значение:
-// Массив Из Строка - имена реквизитов справочника.
+// Массив из Строка - имена реквизитов справочника.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -59,7 +59,17 @@
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl
index e97a43458..7d53b268b 100644
--- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl
+++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl
@@ -235,9 +235,9 @@
КонецПроцедуры
// Параметры:
-// ОписаниеОшибки - ДанныеФормыКоллекция:
-// * Ошибки - Массив из Структура
-// ОшибкаНаСервере - Булево
+// ОписаниеОшибки - ДанныеФормыКоллекция:
+// * Ошибки - Массив из Структура
+// ОшибкаНаСервере - Булево
//
&НаСервере
Процедура ДобавитьОшибки(ОписаниеОшибок, ОшибкаНаСервере = Ложь)
diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form
index e1c2bd44a..58277e43a 100644
--- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form
@@ -5,7 +5,7 @@
55ru
- Настройка программы электронной подписи и шифрования выполнена в главном узле
+ Настройка программы электронной подписи и шифрования выполнена в корневом узлеtruetrue
diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl
index d2e579d06..aab5d8391 100644
--- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl
index 371d840b7..08e9a8e82 100644
--- a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl
@@ -70,11 +70,10 @@
#Область СлужебныйПрограммныйИнтерфейс
-// Функция выявляет последний день, за который заполнены данные
-// указанного производственного календаря.
+// Выявляет последний день, за который заполнены данные указанного производственного календаря.
//
// Параметры:
-// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь.
+// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь.
//
// Возвращаемое значение:
// Дата - дата, по которую заполнен производственный календарь, Неопределено, если календарь не заполнен.
@@ -103,14 +102,14 @@
КонецФункции
-// Функция читает данные производственного календаря из регистра.
+// Возвращает сведения о виде дня на каждую дату производственного календаря.
//
// Параметры:
-// ПроизводственныйКалендарь - ссылка на текущий элемент справочника.
-// НомерГода - номер года, за который необходимо прочитать производственный календарь.
+// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника.
+// НомерГода - Число - номер года, за который необходимо прочитать производственный календарь.
//
-// Возвращаемое значение
-// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря.
+// Возвращаемое значение:
+// ТаблицаЗначений
//
Функция ДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода) Экспорт
@@ -469,8 +468,8 @@
// Преобразовывает данные производственных календарей, поставляемые в виде макета в конфигурации.
//
// Параметры:
-// КодыКалендарей - необязательный, массив, если не задан, то будут получены все имеющиеся данные из макета.
-// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
+// КодыКалендарей - Массив - если не задан, то будут получены все имеющиеся данные из макета.
+// ФормироватьПолныйНабор - Булево - если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
//
// Возвращаемое значение:
// см. ДанныеПроизводственныхКалендарейИзXML.
@@ -481,8 +480,8 @@
Возврат НовыеДанныеПроизводственныхКалендарей();
КонецЕсли;
- МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
- ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ДанныеПроизводственныхКалендарей");
+ МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
+ ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ДанныеПроизводственныхКалендарей");
ДанныеXML = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
@@ -495,18 +494,18 @@
// Преобразовывает данные производственных календарей, представленные в виде XML.
//
// Параметры:
-// ДанныеXML - структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу.
-// ТаблицаКалендарей - таблица значений, список производственных календарей, поддерживаемых в конфигурации.
-// КодыКалендарей - необязательный, массив, если не задан, то отбор не будет установлен.
-// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
+// ДанныеXML - Структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу.
+// ТаблицаКалендарей - ТаблицаЗначений - список производственных календарей, поддерживаемых в конфигурации.
+// КодыКалендарей - Массив - если не задан, то отбор не будет установлен.
+// ФормироватьПолныйНабор - Булево - если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
//
// Возвращаемое значение:
// ТаблицаЗначений:
-// * КодПроизводственногоКалендаря
-// * ВидДня
-// * Год
-// * Дата
-// * ДатаПереноса.
+// * КодПроизводственногоКалендаря
+// * ВидДня
+// * Год
+// * Дата
+// * ДатаПереноса.
//
Функция ДанныеПроизводственныхКалендарейИзXML(Знач ДанныеXML, ТаблицаКалендарей, КодыКалендарей = Неопределено, ФормироватьПолныйНабор = Истина) Экспорт
@@ -601,8 +600,8 @@
Возврат Новый ТаблицаЗначений;
КонецЕсли;
- МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
- ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПериодыНерабочихДней");
+ МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
+ ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ПериодыНерабочихДней");
ТаблицаПериодов = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
ТаблицаКалендарей = ПроизводственныеКалендариИзМакета();
@@ -613,7 +612,7 @@
// Получает таблицу поставляемых в составе программы производственных календарей.
//
// Возвращаемое значение:
-// ТаблицаЗначений
+// ТаблицаЗначений
//
Функция ПроизводственныеКалендариИзМакета() Экспорт
@@ -621,8 +620,8 @@
Возврат Новый ТаблицаЗначений;
КонецЕсли;
- МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
- ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПроизводственныеКалендари");
+ МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
+ ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ПроизводственныеКалендари");
ТаблицаКалендарей = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст()).Данные;
Возврат ТаблицаКалендарей;
@@ -766,51 +765,59 @@
| И (ИзмененияЗависимыхКалендарей.Год = ИзмененияБазовыхКалендарей.Год)
|ГДЕ
| ИзмененияЗависимыхКалендарей.Год ЕСТЬ NULL";
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- Возврат;
- КонецЕсли;
+
+ Блокировка = Новый БлокировкаДанных();
+ Блокировка.Добавить(Метаданные.Справочники.ПроизводственныеКалендари.ПолноеИмя());
- КодыЗависимых = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Код");
- ДанныеИзМакета = ДанныеПроизводственныхКалендарейПоУмолчанию(КодыЗависимых);
-
- ОтборСтрок = Новый Структура(
- "КодПроизводственногоКалендаря,
- |Год");
-
- Выборка = РезультатЗапроса.Выбрать();
- Пока Выборка.Следующий() Цикл
- ОтборСтрок.КодПроизводственногоКалендаря = Выборка.Код;
- ОтборСтрок.Год = Выборка.Год;
- НайденныеСтроки = ДанныеИзМакета.НайтиСтроки(ОтборСтрок);
- Если НайденныеСтроки.Количество() > 0 Тогда
- // Если есть данные в макете, считаем, что перезаполнять не нужно.
- Продолжить;
+ НачатьТранзакцию();
+ Попытка
+ Блокировка.Заблокировать();
+ РезультатЗапроса = Запрос.Выполнить();
+ Если Не РезультатЗапроса.Пустой() Тогда
+ КодыЗависимых = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Код");
+ ДанныеИзМакета = ДанныеПроизводственныхКалендарейПоУмолчанию(КодыЗависимых);
+ ОтборСтрок = Новый Структура(
+ "КодПроизводственногоКалендаря,
+ |Год");
+ Выборка = РезультатЗапроса.Выбрать();
+ Пока Выборка.Следующий() Цикл
+ ОтборСтрок.КодПроизводственногоКалендаря = Выборка.Код;
+ ОтборСтрок.Год = Выборка.Год;
+ НайденныеСтроки = ДанныеИзМакета.НайтиСтроки(ОтборСтрок);
+ Если НайденныеСтроки.Количество() > 0 Тогда
+ // Если есть данные в макете, считаем, что перезаполнять не нужно.
+ Продолжить;
+ КонецЕсли;
+ ДанныеКалендаря = РезультатЗаполненияПроизводственногоКалендаряПоУмолчанию(Выборка.Код, Выборка.Год, Выборка.КодБазовогоКалендаря);
+ ДанныеКалендаря.Колонки.Добавить("ПроизводственныйКалендарь");
+ ДанныеКалендаря.ЗаполнитьЗначения(Выборка.ПроизводственныйКалендарь, "ПроизводственныйКалендарь");
+ НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей();
+ НаборЗаписей.Загрузить(ДанныеКалендаря);
+ НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
+ НаборЗаписей.Отбор.Год.Установить(Выборка.Год);
+ Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
+ ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
+ Иначе
+ НаборЗаписей.Записать();
+ КонецЕсли;
+ // Добавляем в таблицу изменений.
+ НоваяСтрока = ИзмененияКалендарей.Добавить();
+ НоваяСтрока.КодПроизводственногоКалендаря = Выборка.Код;
+ НоваяСтрока.Год = Выборка.Год;
+ КонецЦикла;
КонецЕсли;
- ДанныеКалендаря = РезультатЗаполненияПроизводственногоКалендаряПоУмолчанию(Выборка.Код, Выборка.Год, Выборка.КодБазовогоКалендаря);
- ДанныеКалендаря.Колонки.Добавить("ПроизводственныйКалендарь");
- ДанныеКалендаря.ЗаполнитьЗначения(Выборка.ПроизводственныйКалендарь, "ПроизводственныйКалендарь");
- НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей();
- НаборЗаписей.Загрузить(ДанныеКалендаря);
- НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
- НаборЗаписей.Отбор.Год.Установить(Выборка.Год);
- Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
- ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
- Иначе
- НаборЗаписей.Записать();
- КонецЕсли;
- // Добавляем в таблицу изменений.
- НоваяСтрока = ИзмененияКалендарей.Добавить();
- НоваяСтрока.КодПроизводственногоКалендаря = Выборка.Код;
- НоваяСтрока.Год = Выборка.Год;
- КонецЦикла;
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
КонецПроцедуры
// Определяет источник актуального перечня поддерживаемых производственных календарей (макет или поставка классификатора).
//
// Возвращаемое значение:
-// ТаблицаЗначений
+// ТаблицаЗначений
//
Функция ПроизводственныеКалендариПоУмолчанию() Экспорт
@@ -837,7 +844,7 @@
// Определяет источник актуальных данных производственного календаря (макет или поставка классификатора).
//
// Параметры:
-// КодыКалендарей - Массив.
+// КодыКалендарей - Массив.
//
// Возвращаемое значение:
// см. Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИзXML.
@@ -909,12 +916,9 @@
// Процедура записывает данные одного производственного календаря за 1 год.
//
// Параметры:
-// ПроизводственныйКалендарь - ссылка на текущий элемент справочника.
-// НомерГода - номер года, за который необходимо записать производственный календарь.
-// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря.
-//
-// Возвращаемое значение
-// Нет
+// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника.
+// НомерГода - Число - номер года, за который необходимо записать производственный календарь.
+// ДанныеПроизводственногоКалендаря - см. Справочник.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря.
//
Процедура ЗаписатьДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода, ДанныеПроизводственногоКалендаря) Экспорт
@@ -945,7 +949,7 @@
// этого дня в поле календаря.
//
// Возвращаемое значение
-// ЦветаОформления - соответствие видов дня и цветов оформления.
+// ЦветаОформления - соответствие видов дня и цветов оформления.
//
Функция ЦветаОформленияВидовДнейПроизводственногоКалендаря() Экспорт
@@ -965,7 +969,7 @@
// по метаданным перечисления ВидыДнейПроизводственногоКалендаря.
//
// Возвращаемое значение
-// СписокВидовДня - список значений, содержащий значение перечисления
+// СписокВидовДня - СписокЗначений - содержащий значение перечисления
// и его синоним в качестве представления.
//
Функция СписокВидовДня() Экспорт
@@ -1016,8 +1020,8 @@
ПраздничныеДни.Колонки.Добавить("ТолькоНерабочий", Новый ОписаниеТипов("Булево"));
Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") <> Неопределено Тогда
- МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
- МодульКалендарныеГрафики.ЗаполнитьПраздничныеДни(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни);
+ МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
+ МодульЗаполнениеКалендарныхГрафиков.ЗаполнитьПраздничныеДни(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни);
КонецЕсли;
Возврат ПраздничныеДни;
diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl
index 2ec713dc6..c66ef683e 100644
--- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -36,7 +36,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -58,7 +60,30 @@
// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
-// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
+// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
+//
+// Параметры:
+// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера
+// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы
+// Сериализатор - СериализаторXDTO
+// Объект - КонстантаМенеджерЗначения
+// - СправочникОбъект
+// - ДокументОбъект
+// - БизнесПроцессОбъект
+// - ЗадачаОбъект
+// - ПланСчетовОбъект
+// - ПланОбменаОбъект
+// - ПланВидовХарактеристикОбъект
+// - ПланВидовРасчетаОбъект
+// - РегистрСведенийНаборЗаписей
+// - РегистрНакопленияНаборЗаписей
+// - РегистрБухгалтерииНаборЗаписей
+// - РегистрРасчетаНаборЗаписей
+// - ПоследовательностьНаборЗаписей
+// - ПерерасчетНаборЗаписей
+// Артефакты - Массив из ОбъектXDTO
+// Отказ - Булево
+//
Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт
УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ);
@@ -291,10 +316,8 @@
КонецПроцедуры
-// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
-//
// Параметры:
-// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела
+// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела.
//
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
@@ -505,7 +528,8 @@
Для каждого ОписаниеЗначенияДоступа Из СвойстваПрофиля.ЗначенияДоступа Цикл
Отбор = Новый Структура;
- Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(%1) КАК Значение", "%1", ОписаниеЗначенияДоступа.ЗначениеДоступа));
+ Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(ЗначениеДоступа) КАК Значение",
+ "ЗначениеДоступа", ОписаниеЗначенияДоступа.ЗначениеДоступа));
Отбор.Вставить("ЗначениеДоступа", Запрос.Выполнить().Выгрузить()[0].Значение);
Если Профиль.ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
@@ -675,7 +699,7 @@
//
// Возвращаемое значение:
// ФиксированнаяСтруктура:
-// * ОписанияПрофилей - Соответствие:
+// * ОписанияПрофилей - Соответствие из КлючИЗначение:
// ** Ключ - Строка
// ** Значение - см. СвойстваПоставляемогоПрофиля
// * ОписанияПрофилейМассив - Массив из см. СвойстваПоставляемогоПрофиля
@@ -746,6 +770,35 @@
КонецФункции
+////////////////////////////////////////////////////////////////////////////////
+// Начальное заполнение
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
+Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
+
+ Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
+
+КонецПроцедуры
+
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
+// Параметры:
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
+//
+Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "Администратор";
+ Элемент.Наименование = НСтр("ru = 'Администратор'", ОбщегоНазначения.КодОсновногоЯзыка());
+
+КонецПроцедуры
+
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции для поддержки обмена данными в РИБ.
@@ -804,14 +857,32 @@
ЕстьИзменения = Ложь;
+ // АПК:1328-выкл. См. 648.1.1. Допустимо чтение без предварительной
+ // управляемой разделяемой блокировки, так как используется только
+ // для очистки и какой сеанс очистит первым не важно.
Выборка = Запрос.Выполнить().Выбрать();
+ // АПК:1328-вкл.
+
Пока Выборка.Следующий() Цикл
- ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект();
- УдалитьРолиРасширений(ПрофильОбъект);
- Если ПрофильОбъект.Модифицированность() Тогда
- ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект, Ложь);
- ЕстьИзменения = Истина;
- КонецЕсли;
+ Блокировка = Новый БлокировкаДанных;
+ ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
+ НачатьТранзакцию();
+ Попытка
+ Блокировка.Заблокировать();
+ ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект();
+ Если ПрофильОбъект <> Неопределено Тогда
+ УдалитьРолиРасширений(ПрофильОбъект);
+ Если ПрофильОбъект.Модифицированность() Тогда
+ ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект, Ложь);
+ ЕстьИзменения = Истина;
+ КонецЕсли;
+ КонецЕсли;
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
КонецЦикла;
Если ЕстьИзменения Тогда
@@ -938,6 +1009,10 @@
КонецФункции
// Для функции ЗаполненныеПоставляемыеПрофили.
+//
+// Параметры:
+// ОписаниеПрофиляАдминистратор - см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа
+//
Процедура ЗаполнитьПрофильАдминистратор(ОписаниеПрофиляАдминистратор, КромеОписания = Ложь)
Если КромеОписания Тогда
@@ -1297,7 +1372,7 @@
// * Наименование - Строка
// * Роли - ФиксированныйМассив из Строка
// * Назначение - ФиксированныйМассив из ОпределяемыйТип.Пользователь
-// * ВидыДоступа - ФиксированноеСоответствие:
+// * ВидыДоступа - ФиксированноеСоответствие из КлючИЗначение:
// * Ключ - Строка
// * Значение - Строка
// * ЗначенияДоступа - ФиксированныйМассив из Структура:
@@ -1315,7 +1390,7 @@
КонецФункции
// Возвращаемое значение:
-// ФиксированноеСоответствие:
+// ФиксированноеСоответствие из КлючИЗначение:
// * Ключ - Строка - строковый идентификатор поставляемого профиля
// * Значение - Строка - описание поставляемого профиля
//
@@ -1460,7 +1535,8 @@
СвойстваВидаДоступа = УправлениеДоступомСлужебный.СвойстваВидаДоступа(ОписаниеЗначенияДоступа.ВидДоступа);
СтрокаЗначения = ПрофильОбъект.ЗначенияДоступа.Добавить();
СтрокаЗначения.ВидДоступа = СвойстваВидаДоступа.Ссылка;
- Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(%1) КАК Значение", "%1", ОписаниеЗначенияДоступа.ЗначениеДоступа));
+ Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(ЗначениеДоступа) КАК Значение",
+ "ЗначениеДоступа", ОписаниеЗначенияДоступа.ЗначениеДоступа));
СтрокаЗначения.ЗначениеДоступа = Запрос.Выполнить().Выгрузить()[0].Значение;
КонецЦикла;
diff --git a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl
index 39dd22762..ac6c206d3 100644
--- a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl
@@ -207,10 +207,10 @@
&НаСервере
Процедура ЗагрузитьПрофильКлючевыхОперацийНаСервере(АдресХранилища)
- ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
+ ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища); // ДвоичныеДанные
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
- ДвоичныеДанные.Записать(ИмяВременногоФайла); // ДвоичныеДанные
+ ДвоичныеДанные.Записать(ИмяВременногоФайла);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяВременногоФайла);
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl
index a557dc441..8705a727e 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl
+++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl
@@ -243,9 +243,8 @@
&НаСервере
Процедура ЗаполнитьПочтовыеАдреса()
- НаборПараметров = "Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки";
- ПараметрыПолучателей = Новый Структура(НаборПараметров);
+ ПараметрыПолучателей = Новый Структура("Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки");
ЗаполнитьЗначенияСвойств(ПараметрыПолучателей, ЭтотОбъект);
ПараметрыПолучателей.Личная = Ложь;
ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных;
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form
index 643a84632..b49daf8bb 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form
+++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form
@@ -120,10 +120,6 @@
true
-
- ru
- Основное
- ОсновноеРасширеннаяПодсказка25
@@ -209,10 +205,6 @@
true
-
- ru
- Основные команды
- ОсновныеКомандыРасширеннаяПодсказка13
@@ -233,10 +225,6 @@
true
-
- ru
- Командная панель
- КоманднаяПанельРасширеннаяПодсказка11
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl
index e44af4388..64a1e621d 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl
+++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl
@@ -84,20 +84,27 @@
Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента"));
Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента"));
- // АПК:1299-выкл Строка текста добавляется фрагментами, чтобы для одного из них установить навигационную ссылку
-
- Текст.Добавить(НСтр("ru = 'Перейдите к '"), Тип("ТекстФорматированногоДокумента"));
- ЭлементСсылки = Текст.Добавить(НСтр("ru = 'настройкам учетной записи электронной почты'"), Тип("ТекстФорматированногоДокумента"));
- Текст.Добавить(НСтр("ru = ' для корректировки логина, пароля.'"), Тип("ТекстФорматированногоДокумента"));
-
- // АПК:1299-вкл Строка текста добавляется фрагментами, чтобы для одного из них установить навигационную ссылку
-
Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Ссылка");
Если ЗначениеЗаполнено(Ссылка) Тогда
- ЭлементСсылки.НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Ссылка);
+
+ ШаблонСтроки = НСтр("ru = 'Перейдите к настройкам учетной записи электронной почты для корректировки логина, пароля.'");
+ НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Ссылка);
+
+ Строка = СтроковыеФункции.ФорматированнаяСтрока(ШаблонСтроки, НавигационнаяСсылка);
+
+ Иначе
+
+ Строка = НСтр("ru = 'Перейдите к настройкам учетной записи электронной почты для корректировки логина, пароля.'");
+
КонецЕсли;
+ Строки = Новый Массив;
+ Строки.Добавить(Текст.ПолучитьФорматированнуюСтроку());
+ Строки.Добавить(Строка);
+
+ Текст.УстановитьФорматированнуюСтроку(Новый ФорматированнаяСтрока(Строки));
+
КонецПроцедуры
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form
index de1edccbd..9785ab2af 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form
@@ -40,8 +40,9 @@
Lefttrue
- 15
+ 12true
+ 15truetruetrue
@@ -118,7 +119,7 @@
Lefttrue
- 35
+ 25truetruetrue
@@ -170,7 +171,7 @@
Lefttrue
- 35
+ 25truetruetrue
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl
index 15ff5deee..555d9b54e 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -55,25 +57,23 @@
#Область СлужебныеПроцедурыИФункции
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
-// Вызывается при начальном заполнении справочника РолиИсполнителей.
-//
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
// Параметры:
-// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
-// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
-// справочника РолиИсполнителей.
-// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
-// * Ключ - Строка - имя табличной части;
-// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
-// необходимо скопировать перед заполнением. Например:
-// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
-// ЭлементТЧ = Элемент.Ключи.Добавить();
-// ЭлементТЧ.ИмяКлюча = "Первичный";
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
@@ -83,17 +83,6 @@
КонецПроцедуры
-// Вызывается РолиИсполнителей при начальном заполнении создаваемой роли исполнителя.
-//
-// Параметры:
-// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
-// Данные - СтрокаТаблицыЗначений - данные заполнения.
-// ДополнительныеПараметры - Структура
-//
-Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
-
-КонецПроцедуры
-
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl
index f58bf3466..e9eadaa8a 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl
@@ -40,7 +40,10 @@
СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса + СтрокаОтбораВТекстеЗапроса;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
- МультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект);
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl
index 8c8245eda..efc0e4898 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl
@@ -15,7 +15,10 @@
НастроитьОтображениеСпискаРолей();
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект);
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl
index 34c066ed4..77e656fae 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl
@@ -18,23 +18,41 @@
ОбновитьДоступность();
- МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+ КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
- МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
@@ -84,7 +102,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
- МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
+ МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
index 6134a254c..160c44b7d 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -58,17 +58,21 @@
КонецЕсли;
ТекстПоискаДляДополнительныхЯзыков = "";
- Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
- ТекстПоискаДляДополнительныхЯзыков = " ИЛИ РолиИсполнителей.НаименованиеЯзык1 ПОДОБНО &СтрокаПоиска";
- КонецЕсли;
- Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
- ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков
- + " ИЛИ РолиИсполнителей.НаименованиеЯзык2 ПОДОБНО &СтрокаПоиска";
- КонецЕсли;
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
- Если МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда
- СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
+ Если МодульМультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
+ ТекстПоискаДляДополнительныхЯзыков = "РолиИсполнителей.НаименованиеЯзык1 ПОДОБНО &СтрокаПоиска";
+ КонецЕсли;
+
+ Если МодульМультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда
+ Если Не ПустаяСтрока(ТекстПоискаДляДополнительныхЯзыков) Тогда
+ ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков + " " + "ИЛИ" + " ";
+ КонецЕсли;
+ ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков
+ + " ИЛИ РолиИсполнителей.НаименованиеЯзык2 ПОДОБНО &СтрокаПоиска";
+ КонецЕсли;
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 20
@@ -79,12 +83,17 @@
| ПО РолиИсполнителейНазначение.Ссылка = РолиИсполнителей.Ссылка
|ГДЕ
| РолиИсполнителейНазначение.ТипПользователей = &Тип
- | И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска " + ТекстПоискаДляДополнительныхЯзыков + "
+ | И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска
+ | ИЛИ &ПоискДляДополнительныхЯзыков
| ИЛИ РолиИсполнителей.Код ПОДОБНО &СтрокаПоиска)
| И НЕ РолиИсполнителей.Ссылка ЕСТЬ NULL";
+ Если ПустаяСтрока(ТекстПоискаДляДополнительныхЯзыков) Тогда
+ ТекстПоискаДляДополнительныхЯзыков = "ЛОЖЬ";
+ КонецЕсли;
+ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоискДляДополнительныхЯзыков", ТекстПоискаДляДополнительныхЯзыков);
+
Запрос = Новый Запрос(ТекстЗапроса);
-
Запрос.УстановитьПараметр("Тип", ОбъектАвторизации);
Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%");
РезультатЗапроса = Запрос.Выполнить().Выбрать();
@@ -100,13 +109,33 @@
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
- МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
+ КонецЕсли;
+ #Иначе
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
+ МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
+ КонецЕсли;
+#КонецЕсли
КонецПроцедуры
@@ -116,32 +145,35 @@
#Область СлужебныйПрограммныйИнтерфейс
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Истина;
КонецПроцедуры
-// Вызывается при начальном заполнении справочника РолиИсполнителей.
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
-// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
-// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
-// справочника РолиИсполнителей.
-// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
-// * Ключ - Строка - имя табличной части;
-// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
-// необходимо скопировать перед заполнением. Например:
-// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
-// ЭлементТЧ = Элемент.Ключи.Добавить();
-// ЭлементТЧ.ИмяКлюча = "Первичный";
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "ОтветственныйЗаКонтрольИсполнения";
- МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование",
- "ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование",
+ "ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр-2
+ КонецЕсли;
+
Элемент.ИспользуетсяБезОбъектовАдресации = Истина;
Элемент.ИспользуетсяСОбъектамиАдресации = Истина;
Элемент.ВнешняяРоль = Ложь;
@@ -157,12 +189,10 @@
КонецПроцедуры
-// Вызывается РолиИсполнителей при начальном заполнении создаваемой роли исполнителя.
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
-// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
-// Данные - СтрокаТаблицыЗначений - данные заполнения.
-// ДополнительныеПараметры - Структура
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl
index 20afc9314..773008ee3 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl
@@ -60,7 +60,10 @@
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
- МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl
index a0b67f03c..087ff95e4 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl
@@ -642,8 +642,8 @@
// Продолжение процедуры ПерейтиКВыборуТекущегоСертификата.
//
// Параметры:
-// РезультатПоиска - СертификатКриптографии
-// Контекст - Структура
+// РезультатПоиска - СертификатКриптографии
+// Контекст - Структура
//
&НаКлиенте
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификата(РезультатПоиска, Контекст) Экспорт
@@ -669,11 +669,11 @@
// Продолжение процедуры ПерейтиКВыборуТекущегоСертификата.
//
// Параметры:
-// РезультатПоиска - Структура:
-// * Выполнено - Булево
-// * ОписаниеОшибки - Структура:
-// ** Описание - Строка
-// Контекст - Структура
+// РезультатПоиска - Структура:
+// * Выполнено - Булево
+// * ОписаниеОшибки - Структура:
+// ** Описание - Строка
+// Контекст - Структура
//
&НаКлиенте
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачномСервисе(РезультатПоиска, Контекст) Экспорт
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
index 6f935fb5c..3d2a73841 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
@@ -284,10 +284,10 @@
// Продолжение процедуры Далее.
//
// Параметры:
-// Результат - Структура:
-// * ОписаниеОшибки - Структура:
-// ** Описание - Строка
-// Контекст - Структура
+// Результат - Структура:
+// * ОписаниеОшибки - Структура:
+// ** Описание - Строка
+// Контекст - Структура
//
&НаКлиенте
Процедура ДалееПослеПоискаСертификатаВОблачномСервисе(Результат, Контекст) Экспорт
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl
index 7cbc026de..badb1bc71 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl
@@ -1412,7 +1412,7 @@
Процедура УстановитьЭлемент(Форма, НачалоЭлемента, НаСервере,
ОписаниеОшибки = Неопределено, ЭтоОшибка = Ложь, ОбъединятьРезультаты = "НеОбъединять")
- ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // ДекорацияФормы, Надпись
+ ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // ДекорацияФормы, РасширениеДекорацииФормыДляНадписи
Если ОбъединятьРезультаты = "ОбъединятьПоИ"
Или ОбъединятьРезультаты = "ОбъединятьПоИли" Тогда
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl
index 123730941..71eb71925 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx
index 32920e00c..18c798aaa 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx
@@ -80,7 +80,6 @@
9
- ДатаПодписи
@@ -114,33 +113,6 @@
4
-
-
-
- 10
-
-
-
-
- 11
-
-
- ru
- Кем выдан:
-
-
-
-
-
-
- 12
- ВыдалСертификат
-
-
-
-
-
- 5
@@ -167,7 +139,7 @@
- 6
+ 5
@@ -194,7 +166,7 @@
- 7
+ 6
@@ -211,30 +183,20 @@
true18
- 12
- 12
+ 11
+ 11111
- 7
+ 611ВладелецСертификата
-
- Rectangle
- 5
- 5
- 2
- 2
-
-
-
- ВыдалСертификатRectangle4
@@ -268,27 +230,27 @@
Rows1
- 7
- 0
- 0
+ 6
+ -1
+ -1ОтступRows
- 10
- 10
- 0
- 0
+ 9
+ 9
+ -1
+ -1ОтступЛевRectangle
- 10
- 11
+ 9
+ 1011
@@ -297,8 +259,8 @@
ОтступПравRectangle
- 10
- 11
+ 9
+ 1022
@@ -308,7 +270,7 @@
Rectangle1
- 7
+ 600
@@ -317,8 +279,8 @@
СрокДействияRectangle
- 6
- 6
+ 5
+ 522
@@ -327,8 +289,8 @@
ТекстОтметкиRectangle
- 7
- 7
+ 6
+ 612
@@ -338,7 +300,7 @@
Rectangle1
- 7
+ 612
@@ -348,7 +310,7 @@
Rectangle1
- 6
+ 511
@@ -358,7 +320,7 @@
Rectangle1
- 6
+ 522
@@ -399,7 +361,7 @@
Texttrue1
- RealSize
+ ProportionallyCenterCenter
@@ -428,7 +390,6 @@
1219Center
- Parametertrue
diff --git a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl
index eb31279f0..595f7cf7b 100644
--- a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -45,6 +47,7 @@
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
+
#КонецОбласти
#КонецОбласти
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
index 12c642570..17c8aefb2 100644
--- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
@@ -35,6 +35,10 @@
#Область ОбработчикиКомандФормы
// СтандартныеПодсистемы.ПодключаемыеКоманды
+
+// Параметры:
+// Команда - КомандаФормы
+//
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
@@ -53,23 +57,31 @@
КонецЕсли;
Если Перемещать Тогда
- ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
+ ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
Иначе
ПоказатьПредупреждение(,НСтр("ru = 'Начальное и конечное состояние перемещать нельзя.'"));
КонецЕсли;
КонецЕсли;
Иначе
- ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
+ ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецЕсли;
КонецПроцедуры
-&НаСервере
-Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
- ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
+&НаКлиенте
+Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
+
+ ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
+
КонецПроцедуры
+&НаСервере
+Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
+
+ ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
+
+КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl
index 4d0facc23..b42219df0 100644
--- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl
@@ -10,18 +10,23 @@
#Область СлужебныйПрограммныйИнтерфейс
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
-// Вызывается при начальном заполнении справочника.
-//
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
// Параметры:
-// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
-// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
-// справочника РолиИсполнителей.
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
diff --git a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
index b6ae8fe58..32873bb4b 100644
--- a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -125,25 +125,23 @@
#Область СлужебныеПроцедурыИФункции
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
+//
+// Параметры:
+// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
+//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
-// Вызывается при начальном заполнении справочника СтраныМира.
-//
+// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
+//
// Параметры:
-// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
-// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
-// справочника СтраныМира.
-// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
-// * Ключ - Строка - имя табличной части;
-// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
-// необходимо скопировать перед заполнением. Например:
-// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
-// ЭлементТЧ = Элемент.Ключи.Добавить();
-// ЭлементТЧ.ИмяКлюча = "Первичный";
+// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
+// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
+// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
@@ -165,8 +163,15 @@
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
- // Если наименования были обновлены, то их следует обновить
- МультиязычностьСервер.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, Метаданные.Справочники.СтраныМира);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ // Обновление мультиязычных строк, если они были изменены.
+ ДополнительныеПараметры = Новый Структура;
+ ДополнительныеПараметры.Вставить("РежимОбновления", "МультиязычныеСтроки");
+
+ ОбновлениеИнформационнойБазы.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры,
+ Метаданные.Справочники.СтраныМира, ДополнительныеПараметры);
+
+ КонецЕсли;
СписокСтран = УправлениеКонтактнойИнформацией.СтраныУчастникиЕАЭС();
@@ -225,7 +230,11 @@
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
СтранаМираСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира");
- НастройкиОбновления = МультиязычностьСервер.НастройкиОбновлениеПредопределенныхДанных(Метаданные.Справочники.СтраныМира);
+ НастройкиОбновления = Неопределено;
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ НастройкиОбновления = МодульМультиязычностьСервер.НастройкиОбновлениеПредопределенныхДанных(Метаданные.Справочники.СтраныМира);
+ КонецЕсли;
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
@@ -244,8 +253,11 @@
КонецЕсли;
// Обновление наименований
- Если НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда
- МультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СтранаМираСсылка, НастройкиОбновления);
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
+ Если НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда
+ МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
+ МодульМультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СтранаМираСсылка, НастройкиОбновления);
+ КонецЕсли;
КонецЕсли;
ОбъектовОбработано = ОбъектовОбработано + 1;
diff --git a/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl b/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl
index 616369b34..6ec03b75c 100644
--- a/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl
+++ b/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl
@@ -11,21 +11,34 @@
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ)
+
Если ОбменДанными.Загрузка Или ДополнительныеСвойства.Свойство("НеПроверятьУникальность") Тогда
Возврат;
КонецЕсли;
+ Если Предопределенный И Не ЭтоНовый() Тогда
+
+ ПроверитьИзменениеПредопределенногоЭлемента();
+
+ КонецЕсли;
+
Если Не ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
+
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
- Существующий = СуществующийЭлемент();
- Если Существующий<>Неопределено Тогда
+ СписокОшибок = ПроверитьУникальностьЭлементов();
+
+ Если СписокОшибок.Количество() > 0 Тогда
+
Отказ = Истина;
- ОбщегоНазначения.СообщитьПользователю(Существующий.ОписаниеОшибки,, "Объект.Наименование");
+ Для каждого ОписаниеОшибки Из СписокОшибок Цикл
+ ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки.ТекстСообщения,, ОписаниеОшибки.ИмяПоля);
+ КонецЦикла;
+
КонецЕсли;
КонецПроцедуры
@@ -41,35 +54,26 @@
#Область СлужебныеПроцедурыИФункции
// Контролирует уникальность элемента в базе.
+// В случае выявления дублей кодов или наименование возвращает их список.
//
// Возвращаемое значение:
-// Неопределено - нет ошибок.
-// Структура - описание элемента, существующего в базе. Свойства:
-// * ОписаниеОшибки - Строка - текст ошибки.
-// * Код - Строка - реквизит уже существующего элемента.
-// * Наименование - Строка - реквизит уже существующего элемента.
-// * НаименованиеПолное - Строка - реквизит уже существующего элемента.
-// * КодАльфа2 - Строка - реквизит уже существующего элемента.
-// * КодАльфа3 - Строка - реквизит уже существующего элемента.
-// * Ссылка - СправочникаСсылка.СтраныМира - реквизит уже существующего элемента.
+// Массив из см. НовыйСообщениеОбОшибке - если в программе были найдены дубли, то содержит описание элементов
+// существующих в базе.
//
-Функция СуществующийЭлемент()
+Функция ПроверитьУникальностьЭлементов()
- Результат = Неопределено;
+ Результат = Новый Массив;
// Нецифровые коды пропускаем
ТипЧисло = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный));
- Если Код="0" Или Код="00" Или Код="000" Тогда
+ Если Код= "0" Или Код = "00" Или Код = "000" Тогда
КодПоиска = "000";
Иначе
КодПоиска = Формат(ТипЧисло.ПривестиЗначение(Код), "ЧЦ=3; ЧН=; ЧВН=");
- Если КодПоиска="000" Тогда
- Возврат Результат; // Не число
- КонецЕсли;
КонецЕсли;
Запрос = Новый Запрос("
- |ВЫБРАТЬ ПЕРВЫЕ 1
+ |ВЫБРАТЬ ПЕРВЫЕ 10
| Код КАК Код,
| Наименование КАК Наименование,
| НаименованиеПолное КАК НаименованиеПолное,
@@ -80,27 +84,110 @@
|ИЗ
| Справочник.СтраныМира
|ГДЕ
- | Код=&Код
+ | (Код = &Код
+ | ИЛИ Наименование = &Наименование
+ | ИЛИ КодАльфа2 = &КодАльфа2
+ | ИЛИ КодАльфа3 = &КодАльфа3
+ | ИЛИ НаименованиеПолное = &НаименованиеПолное)
| И Ссылка <> &Ссылка
|");
- Запрос.УстановитьПараметр("Ссылка", Ссылка);
- Запрос.УстановитьПараметр("Код", КодПоиска);
+ Запрос.УстановитьПараметр("Ссылка", Ссылка);
+ Запрос.УстановитьПараметр("Код", КодПоиска);
+ Запрос.УстановитьПараметр("Наименование", Наименование);
+ Запрос.УстановитьПараметр("НаименованиеПолное", НаименованиеПолное);
+ Запрос.УстановитьПараметр("КодАльфа2", КодАльфа2);
+ Запрос.УстановитьПараметр("КодАльфа3", КодАльфа3);
РезультатЗапроса = Запрос.Выполнить();
- Выборка = РезультатЗапроса.Выбрать();
- Если Выборка.Следующий() Тогда
- Результат = Новый Структура("ОписаниеОшибки",
- СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'С кодом %1 уже существует страна %2. Измените код или используйте уже существующие данные.'"),
- Код, Выборка.Наименование));
-
- Для Каждого Поле Из РезультатЗапроса.Колонки Цикл
- Результат.Вставить(Поле.Имя, Выборка[Поле.Имя]);
- КонецЦикла;
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат Результат;
КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Пока Выборка.Следующий() Цикл
+
+ Сообщение = НовыйСообщениеОбОшибке();
+ Если СтрСравнить(Выборка.Код, Код) = 0 Тогда
+
+ Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'С кодом %1 уже существует страна %2. Измените код или используйте уже существующие данные.'"),
+ Код, Выборка.Наименование);
+ Сообщение.ИмяПоля = "Объект.Код";
+
+ ИначеЕсли СтрСравнить(Выборка.Наименование, Наименование) = 0 Тогда
+
+ Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Страна с наименованием %1 уже существует. Измените наименование или используйте уже существующие данные.'"),
+ Выборка.Наименование);
+ Сообщение.ИмяПоля = "Объект.Наименование";
+
+ ИначеЕсли СтрСравнить(Выборка.НаименованиеПолное, НаименованиеПолное) = 0 Тогда
+
+ Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Уже существует страна %2 с полным наименованием %1. Измените полное наименование или используйте уже существующие данные.'"),
+ НаименованиеПолное, Выборка.Наименование);
+ Сообщение.ИмяПоля = "Объект.НаименованиеПолное";
+
+ ИначеЕсли СтрСравнить(Выборка.КодАльфа2, КодАльфа2) = 0 Тогда
+
+ Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'С кодом Альфа-2 %1 уже существует страна %2. Измените код Альфа-2 или используйте уже существующие данные.'"),
+ КодАльфа2, Выборка.Наименование);
+ Сообщение.ИмяПоля = "Объект.КодАльфа2";
+
+ ИначеЕсли СтрСравнить(Выборка.КодАльфа3, КодАльфа3) = 0 Тогда
+
+ Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'С кодом Альфа-3 %1 уже существует страна %2. Измените код Альфа-3 или используйте уже существующие данные.'"),
+ КодАльфа3, Выборка.Наименование);
+ Сообщение.ИмяПоля = "Объект.КодАльфа3";
+
+ КонецЕсли;
+
+ Результат.Добавить(Сообщение);
+
+ КонецЦикла;
+
Возврат Результат;
+
КонецФункции
+// Возвращаемое значение:
+// Структура:
+// ИмяПоля - Строка
+// ТекстСообщения - Строка
+//
+Функция НовыйСообщениеОбОшибке()
+
+ Результат = Новый Структура;
+ Результат.Вставить("ИмяПоля", "");
+ Результат.Вставить("ТекстСообщения", "");
+
+ Возврат Результат;
+
+КонецФункции
+
+Процедура ПроверитьИзменениеПредопределенногоЭлемента()
+
+ ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Код, Наименование");
+ Если СтрСравнить(ПредыдущиеЗначения.Наименование, Наименование) <> 0 Тогда
+
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не допускается изменение наименования для страны %1'"), ПредыдущиеЗначения.Наименование);
+ ВызватьИсключение ТекстСообщения;
+
+ КонецЕсли;
+
+ Если СтрСравнить(ПредыдущиеЗначения.Код, Код) <> 0 Тогда
+
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не допускается изменение кода для страны %1'"), ПредыдущиеЗначения.Наименование);
+ ВызватьИсключение ТекстСообщения;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
#Иначе
diff --git a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl
index 2548cb15d..3bddcdfa1 100644
--- a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl
index 068732bfd..76bc5aca0 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
diff --git a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl
index ec189d0e3..595f7cf7b 100644
--- a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка
+// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
-// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
+// Параметры:
+// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
+//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form
index 223babf5e..d74c10e97 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form
@@ -88,10 +88,6 @@
true
-
- ru
- Лишние файлы
- ГруппаЛишниеФайлыРасширеннаяПодсказка17
@@ -195,10 +191,6 @@
true
-
- ru
- Комментарий
- ГруппаКомментарийРасширеннаяПодсказка6
@@ -318,10 +310,6 @@
true
-
- ru
- Настройки удаления
- НастройкиУдаленияРасширеннаяПодсказка28
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl
index 693e0ff56..7819cc50f 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl
@@ -207,11 +207,10 @@
// Возвращаемое значение:
-// Структура:
+// Структура:
// * КаталогДляКопирования - Строка
// * ПоследняяИтерация - Булево
-// * ТекущийФайл - ОпределяемыйТип.ПрисоединенныйФайл:
-// ** Имя - Строка
+// * ТекущийФайл - Файл
// * ИтоговоеОповещение - ОписаниеОповещения
//
&НаКлиенте
@@ -240,8 +239,8 @@
КонецПроцедуры
// Параметры:
-// КаталогСуществует - Булево
-// ДополнительныеПараметры - см. ПараметрыТекущегоФайла
+// КаталогСуществует - Булево
+// ДополнительныеПараметры - см. ПараметрыТекущегоФайла
//
&НаКлиенте
Процедура КаталогДняСуществуетЗавершение(КаталогСуществует, ДополнительныеПараметры) Экспорт
@@ -257,8 +256,8 @@
КонецПроцедуры
// Параметры:
-// ИмяКаталога - Строка
-// ДополнительныеПараметры - см. ПараметрыТекущегоФайла
+// ИмяКаталога - Строка
+// ДополнительныеПараметры - см. ПараметрыТекущегоФайла
//
&НаКлиенте
Процедура СоздатьКаталогДняЗавершение(ИмяКаталога, ДополнительныеПараметры) Экспорт
@@ -348,7 +347,7 @@
КонецПроцедуры
// Возвращаемое значение:
-// Структура:
+// Структура:
// * Имя - Строка
// * Ошибка - Строка
//
@@ -506,8 +505,8 @@
КонецПроцедуры
// Параметры:
-// ОтчетОбОшибках - ТабличныйДокумент
-// МассивФайловСОшибками - Массив из см. СтруктураОшибки
+// ОтчетОбОшибках - ТабличныйДокумент
+// МассивФайловСОшибками - Массив из см. СтруктураОшибки
//
&НаСервере
Процедура СформироватьОтчетОбОшибках(ОтчетОбОшибках, МассивФайловСОшибками)
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form
index 0afd5e2de..ee25fc983 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form
@@ -129,7 +129,7 @@
5ru
- Полный путь для сервера 1С:Предприятия под управлением Microsoft Windows
+ Полный путь к общей папке на компьютере под управлением Microsoft Windowstruetrue
@@ -179,7 +179,7 @@
Normalru
- \\servername\resource
+ \\computername\foldername
@@ -188,7 +188,7 @@
23ru
- Полный путь для сервера 1С:Предприятия под управлением Linux
+ Полный путь к общей папке на компьютере под управлением Linuxtruetrue
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html
index a504ce4af..8cd7cfdff 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html
@@ -1,23 +1,34 @@
Описание свойств тома хранения файлов.
-
При создании нового тома автоматически проверяется доступ к указанному в поле Полный путь каталогу, в случае ошибки выводится соответствующее сообщение.Уже созданному тому нельзя поменять пути.
+
При создании нового тома автоматически проверяется доступ к указанному в поле Полный путь каталогу, в случае ошибки выводится соответствующее сообщение. Уже созданному тому нельзя поменять пути.
Для каждого тома необходимо указать:
Наименование - полное наименование тома для хранения файлов;
-
Код - заполняется автоматически;
-
Полный путь для сервера 1С:Предприятия под управлением Microsoft Windows - напишите путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC - \\Имя компьютера\Наименование папки\Наименование файла\;
или
-
Полный путь для сервера 1С:Предприятия под управлением Linux - напишите путь к каталогу для сервера под управлением Linux;
Порядок - введите целое число, по умолчанию равно 1. Заполнение томов осуществляется по порядку заполнения (по возрастанию) до полного заполнения тома. Эту особенность можно использовать, например, для временного отключения тома путем увеличения ему порядка заполнения.
-
Предел, МБ -можно указать максимальный размер всех файлов на томе (квота тома). Если суммарный размер файлов в томе превышает установленную квоту, то будет использован следующий по порядку том. Если ни на одном из доступных томов не будет достаточно места для размещения файла, то информация об этом будет записана в журнал регистрации и будет выдано сообщение об ошибке. Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется;
-
Текущий размер, МБ - проставляется программой автоматически по мере наполнения тома, показывает, насколько том заполнен;
-
На вкладке Комментарий напишите подробную информацию о томе.
Особенности заполнения поля Полный путь для Linux
-
Если сервер 1С:Предприятия работает под Linux, то путь к тому хранения файлов можно указать только локальный, например /home/path. Для того чтобы использовать UNC путь, нужно сделать на него ссылку.Для этого под правами администратора сделайте следующее:
+
+
Код - заполняется автоматически;
+
+
Полный путь к общей папке на компьютере под управлением Microsoft Windows - напишите путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC - \\Имя компьютера\Наименование папки;
или
+
Полный путь к общей папке на компьютере под управлением Linux - напишите путь к каталогу для сервера под управлением Linux;
Порядок - введите целое число, по умолчанию равно 1. Заполнение томов осуществляется по порядку заполнения (по возрастанию) до полного заполнения тома. Эту особенность можно использовать, например, для временного отключения тома путем увеличения ему порядка заполнения.
+
+
Предел, МБ -можно указать максимальный размер всех файлов на томе (квота тома). Если суммарный размер файлов в томе превышает установленную квоту, то будет использован следующий по порядку том. Если ни на одном из доступных томов не будет достаточно места для размещения файла, то информация об этом будет записана в журнал регистрации и будет выдано сообщение об ошибке. Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется;
+
+
Текущий размер, МБ - проставляется программой автоматически по мере наполнения тома, показывает, насколько том заполнен;
+
+
На вкладке Комментарий напишите подробную информацию о томе.
Особенности заполнения поля Полный путь для Linux
+
Если сервер 1С:Предприятия работает под Linux, то путь к тому хранения файлов можно указать только локальный, например /home/path. Для того чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора сделайте следующее:
выполните команду вида mkdir folder, где вместо "folder" напишите имя своего каталога. Например, в каталоге /home выполните команду mkdir shared - будет создан каталог shared с полным путем /home/shared.
-
выполните команду видаmount -t cifs //server/share folder -o //domain/user, password=pwd, где - где //server/share - UNC путь к другому компьютеру , folder - путь к каталогу на Linux компьютере, например \home\shared, //domain/user - имя домена/пользователя, если необходимо, pwd - пароль пользователя (если необходимо).
-
Если имя и пароль не нужны, команда выглядит так:mount -t cifs //server/share folder.
После этого в пути к тому указываем folder, например /home/shared.
Просмотр списка файлов в томе
+
+
выполните команду видаmount -t cifs //server/share folder -o //domain/user, password=pwd, где - где //server/share - UNC путь к другому компьютеру , folder - путь к каталогу на Linux компьютере, например \home\shared, //domain/user - имя домена/пользователя, если необходимо, pwd - пароль пользователя (если необходимо).
+
+
Если имя и пароль не нужны, команда выглядит так:mount -t cifs //server/share folder.
+
После этого в пути к тому указываем folder, например /home/shared.
Просмотр списка файлов в томе
В каждом томе файлы хранятся в подкаталогах. На каждую дату создания версии файла создается свой подкаталог. Все файлы хранятся с оригинальным именем и расширением, между ними добавляется номер версии, например "Приказ.2.txt".
-
Для того чтобы просмотреть список файлов в томе, выполните команду Файлы в томе на панели навигации тома.
См. также:
+
+
Для того чтобы просмотреть список файлов в томе, выполните команду Файлы в томе на панели навигации тома.
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html
index 54533d630..fef23b376 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html
@@ -3,28 +3,45 @@
Используется в том случае, если установлен режим хранения файлов В томах на диске. Для этого в разделе Администрирование - Настройки работы с файлами включите флажок Хранить файлы в томах на диске,после этого в разделах Администрирование - Настройки работы с файлами становится доступной команда Тома хранения файлов, по которой открывается список. При смене способа хранения файлов перенос файлов из программы в тома и обратно не происходит.
В списке выводится:
Наименование - наименование тома хранения файлов;
-
Порядок - целое число. Заполнение томов осуществляется по порядку заполнения по возрастанию до полного заполнения тома;
-
Полный путь Microsoft Windows - путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC: \\Имя компьютера\Наименование папки\Наименование файла\;
-
Комментарий - подробная информация о томе.
-
Предел, Мб - можно указать максимальный размер всех файлов в томе (квота тома). Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется. При установленном ненулевом значении Максимальный размер, если суммарный размер файлов в томе уже превышает установленную квоту, то будет использован следующий по порядку заполнения том. Если ни в одном из доступных томов не будет достаточно места для размещения файла, то информация об этом записывается в журнал регистрации и выводится сообщение об ошибке;
-
Полный путь Linux - путь к каталогу для сервера под управлением Linux.
Ввод тома хранения файлов
+
+
Порядок - целое число. Заполнение томов осуществляется по порядку заполнения по возрастанию до полного заполнения тома;
+
+
Полный путь Microsoft Windows - путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC: \\Имя компьютера\Наименование папки;
+
+
Комментарий - подробная информация о томе.
+
+
Предел, Мб - можно указать максимальный размер всех файлов в томе (квота тома). Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется. При установленном ненулевом значении Максимальный размер, если суммарный размер файлов в томе уже превышает установленную квоту, то будет использован следующий по порядку заполнения том. Если ни в одном из доступных томов не будет достаточно места для размещения файла, то информация об этом записывается в журнал регистрации и выводится сообщение об ошибке;
+
+
Полный путь Linux - путь к каталогу для сервера под управлением Linux.
Необходимо указать один или несколько каталогов на жестком диске сервера, на котором работает программа, или других серверов в сети, которые будут использоваться для хранения в них всех файлов.
Правила хранения файлов в томах
+
+
Необходимо указать один или несколько каталогов на жестком диске сервера, на котором работает программа, или других серверов в сети, которые будут использоваться для хранения в них всех файлов.
Правила хранения файлов в томах
Переключение флажка Хранить файлы в томах на диске обратной силы не имеет. Если хранение файлов в томах отключили, то новые файлы добавляются в саму ИБ, а старые остаются томах. При этом папка с томом будет продолжать использоваться до того, пока в базе есть хотя бы один файл. Файлы, ранее сохраненные в тома, открываются из этих томов.
-
+
+
Если сохранить файл в томе, а потом том удалить (внешними средствами), то файл будет не найден, даже если флажок Хранить файлы в томах на диске уже выключен. Включение и выключение флажка не вернет пропавшие файлы.
-
+
+
Поэтому если программа не находит файлы, которые хранились в томах, следует в сообщениях об ошибке (в журнале регистрации) посмотреть путь к папке с томом, проверить местонахождение этой папки, наличие в ней нужного файла, и при необходимости восстановить папку. Для осуществления такой возможности необходимо периодически проводить резервное копирование папок с томами файлов внешними средствами (например, средствами операционной системы).
Работа с томами хранения файлов
При создании нового тома автоматически проверяется доступ к указанному в поле Полный путь каталогу, в случае ошибки выводится соответствующее сообщение.
-
Заполнение томов осуществляется по порядку (по возрастанию) до полного заполнения тома. Эту особенность можно использовать для временного отключения тома путем увеличения ему порядка заполнения.
-
Уже созданному тому нельзя поменять пути.
-
Созданный том нельзя удалить до тех пор, пока на него ссылаются какие-либо версии файлов.
-
Ошибки доступа к томам помещаются в журнал регистрации и могут быть просмотрены администратором программы.
-
В каждом томе файлы хранятся в подкаталогах по дате так, что на каждый день создается свой подкаталог. Все файлы в томах хранятся с оригинальным именем и расширением, между которыми добавляется номер версии, например "Приказ.1.txt".
-
После переключения режима хранения файлов (например, в значение В томах на диске) все ранее накопленные файлы не перемещаются в тома - только вновь добавленные файлы будут размещаться в соответствии с настройкой. Для того чтобы перенести ранее накопленные файлы из информационной базы в тома, воспользуйтесь командой Перенос файлов в тома.
-
Если используется синхронизация данных между программой-источником и программой-приемником и при этом в программе-источнике используется хранение файлов в томах на дисках, то в процессе создания начального образа необходимо будет создать архивный файл с томами хранимых файлов.
-
В процессе получения начального образа в программу-приемник необходимо будет указать и расположение архивного файла с томами хранимых файлов. Для получения файлов в томах из архива выполните команду Разместить файлы начального образа.
+
+
Заполнение томов осуществляется по порядку (по возрастанию) до полного заполнения тома. Эту особенность можно использовать для временного отключения тома путем увеличения ему порядка заполнения.
+
+
Уже созданному тому нельзя поменять пути.
+
+
Созданный том нельзя удалить до тех пор, пока на него ссылаются какие-либо версии файлов.
+
+
Ошибки доступа к томам помещаются в журнал регистрации и могут быть просмотрены администратором программы.
+
+
В каждом томе файлы хранятся в подкаталогах по дате так, что на каждый день создается свой подкаталог. Все файлы в томах хранятся с оригинальным именем и расширением, между которыми добавляется номер версии, например "Приказ.1.txt".
+
+
После переключения режима хранения файлов (например, в значение В томах на диске) все ранее накопленные файлы не перемещаются в тома - только вновь добавленные файлы будут размещаться в соответствии с настройкой. Для того чтобы перенести ранее накопленные файлы из информационной базы в тома, воспользуйтесь командой Перенос файлов в тома.
+
+
Если используется синхронизация данных между программой-источником и программой-приемником и при этом в программе-источнике используется хранение файлов в томах на дисках, то в процессе создания начального образа необходимо будет создать архивный файл с томами хранимых файлов.
+
+
В процессе получения начального образа в программу-приемник необходимо будет указать и расположение архивного файла с томами хранимых файлов. Для получения файлов в томах из архива выполните команду Разместить файлы начального образа.
Примечание Для использования томов, расположенных на сетевых дисках, сервер 1С:Предприятия 8 нужно запускать от лица доменного пользователя вида domain1\user1, имеющего права доступа к тому, указанному в виде UNC пути. Этот пользователь должен входить в группу Users локального компьютера,иметь права "Run as service" и "Run as batch job" и права на каталоги, в которых сервер 1С:Предприятия 8 хранит служебные файлы - журнал регистрации, каталог временных файлов и пр.