diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form
index de8cc1f6f..937b7e1ce 100644
--- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form
+++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Form.form
@@ -128,6 +128,7 @@
ruСостояние
+ falseГруппаСостояниеExtendedTooltip107
diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl
index 336084322..40e19cd8c 100644
--- a/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl
+++ b/SSL/src/BusinessProcesses/Задание/Forms/ФормаБизнесПроцесса/Module.bsl
@@ -101,6 +101,10 @@
Отложен = (Параметр.Отложен И Параметр.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияПроцессовДляЗапуска.ГотовКСтарту"));
ДатаОтложенногоСтарта = Параметр.ДатаОтложенногоСтарта;
УстановитьСвойстваЭлементовФормы(ЭтотОбъект);
+ Если Элементы.ГруппаСостояние.Видимость Тогда
+ ИнфоНадписьЗаголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект));
+ Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1);
+ КонецЕсли;
КонецЕсли;
// СтандартныеПодсистемы.РаботаСФайлами
@@ -140,6 +144,10 @@
&НаКлиенте
Процедура ОбновитьФорму()
УстановитьСвойстваЭлементовФормы(ЭтотОбъект);
+ Если Элементы.ГруппаСостояние.Видимость Тогда
+ ИнфоНадписьЗаголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект));
+ Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1);
+ КонецЕсли;
ОбновитьДоступностьКомандОстановки();
КонецПроцедуры
@@ -500,6 +508,10 @@
КонецЕсли;
УстановитьСвойстваЭлементовФормы(ЭтотОбъект);
+ Если Элементы.ГруппаСостояние.Видимость Тогда
+ ИнфоНадписьЗаголовок = СтроковыеФункции.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект));
+ Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1);
+ КонецЕсли;
КонецПроцедуры
@@ -573,23 +585,15 @@
КонецЕсли;
КонецЕсли;
- УстановитьСвойстваГруппеСостояний(Форма);
+ Форма.Элементы.ГруппаСостояние.Видимость = Форма.Объект.Завершен Или ОбъектСтартован(Форма);
УстановитьДоступностьПроверяющего(Форма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
-Процедура УстановитьСвойстваГруппеСостояний(Форма)
-
- ОтображатьГруппу = Форма.Объект.Завершен Или ОбъектСтартован(Форма);
- Форма.Элементы.ГруппаСостояние.Видимость = ОтображатьГруппу;
+Функция СообщениеОСтатусеЗадания(Форма)
- Если НЕ ОтображатьГруппу Тогда
- Возврат;
- КонецЕсли;
-
- МассивСтрок = Новый Массив;
- Высота = 1;
+ ТекстСостояния = "";
Если Форма.Объект.Завершен Тогда
ДатаЗавершенияСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач,
@@ -598,34 +602,28 @@
НСтр("ru = 'Задание выполнено %1.'"),
НСтр("ru = 'Задание отменено %1.'"));
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаТекста, ДатаЗавершенияСтрокой);
- МассивСтрок.Добавить(ТекстСостояния);
Для каждого Элемент Из Форма.Элементы Цикл
Если ТипЗнч(Элемент) <> Тип("ПолеФормы") И ТипЗнч(Элемент) <> Тип("ГруппаФормы") Тогда
Продолжить;
КонецЕсли;
Элемент.ТолькоПросмотр = Истина;
- КонецЦикла;
+ КонецЦикла;
ИначеЕсли Форма.Объект.Стартован Тогда
ТекстСостояния = ?(Форма.ИзменятьЗаданияЗаднимЧислом,
- НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания вступят в силу немедленно для ранее выданной задачи.'"),
+ НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания вступят в силу немедленно для ранее выданной задачи.'"),
НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания не будут отражены в ранее выданной задаче.'"));
- МассивСтрок.Добавить(ТекстСостояния);
- Высота = 2;
-
ИначеЕсли Форма.Отложен Тогда
ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач,
Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D"));
- ТекстСостояния = НСтр("ru = 'Задание будет запущено'") + " ";
- МассивСтрок.Добавить(ТекстСостояния);
- МассивСтрок.Добавить(Новый ФорматированнаяСтрока(ДатаОтложенногоСтартаСтрокой,,,, "ОткрытьНастройкуОтложенногоСтарта"));
+ ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Задание будет запущено %1'"),
+ ДатаОтложенногоСтартаСтрокой);
КонецЕсли;
- Форма.ИнфоНадписьЗаголовок = Новый ФорматированнаяСтрока(МассивСтрок);
- Форма.Элементы.ИнфоНадписьЗаголовок.МаксимальнаяВысота = Высота;
+ Возврат ТекстСостояния;
-КонецПроцедуры
+КонецФункции
&НаСервере
Процедура ПроверитьДатуЗавершенияОтложенногоПроцесса(ПроверяемыйОбъект, Отказ)
diff --git a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl
index 892538960..13498810f 100644
--- a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl
+++ b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
@@ -211,9 +212,9 @@
// Устанавливает состояние элементов формы задачи.
//
// Параметры:
-// Форма - ФормаКлиентскогоПриложения - где:
-// * Элементы - ВсеЭлементыФормы - где:
-// ** Предмет - РасширениеПоляФормыДляПоляНадписи -
+// Форма - ФормаКлиентскогоПриложения:
+// * Элементы - ВсеЭлементыФормы:
+// ** Предмет - РасширениеПоляФормыДляПоляНадписи
//
Процедура УстановитьСостояниеЭлементовФормыЗадачи(Форма) Экспорт
diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl
index 161655318..61e947060 100644
--- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl
+++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl
@@ -127,9 +127,9 @@
// Обработчики событий элементов карты маршрута.
// Параметры:
-// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание -
-// ФормируемыеЗадачи - Массив из ЗадачаОбъект -
-// Отказ - Булево -
+// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание
+// ФормируемыеЗадачи - Массив из ЗадачаОбъект
+// Отказ - Булево
//
Процедура ВыполнитьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)
@@ -172,11 +172,10 @@
Записать();
КонецПроцедуры
-
// Параметры:
-// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание -
-// ФормируемыеЗадачи - Массив из ЗадачаОбъект -
-// Отказ - Булево -
+// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание
+// ФормируемыеЗадачи - Массив из ЗадачаОбъект
+// Отказ - Булево
//
Процедура ПроверитьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)
diff --git a/SSL/src/Catalogs/Валюты/ManagerModule.bsl b/SSL/src/Catalogs/Валюты/ManagerModule.bsl
index 8d5d5d145..fb7afe9ee 100644
--- a/SSL/src/Catalogs/Валюты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Валюты/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl
index 7fe56bea7..4ba53c400 100644
--- a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl
index 30bd35bed..d5d235720 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl
@@ -172,14 +172,14 @@
// Возвращает данные для заполнения дерева разделов.
//
// Возвращаемое значение:
-// Структура - где:
-// * ОтфильтрованныеВарианты - ТаблицаЗначений - где:
-// ** Ссылка - СправочникСсылка.ВариантыОтчетов -
-// ** Причина - Число -
-// * ВхожденияПодсистем - ТаблицаЗначений - где:
-// ** Ссылка - СправочникСсылка.ВариантыОтчетов -
-// ** Количество - Число -
-// ** Важность - Строка -
+// Структура:
+// * ОтфильтрованныеВарианты - ТаблицаЗначений:
+// ** Ссылка - СправочникСсылка.ВариантыОтчетов
+// ** Причина - Число
+// * ВхожденияПодсистем - ТаблицаЗначений:
+// ** Ссылка - СправочникСсылка.ВариантыОтчетов
+// ** Количество - Число
+// ** Важность - Строка
//
&НаСервере
Функция ДанныеЗаполненияРазделов()
@@ -347,36 +347,38 @@
// Добавляет рекурсивно строку в дерево подсистем.
//
// Параметры:
-// ПриемникРодитель - СтрокаДереваЗначений, ДеревоЗначений - где:
-// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений -
-// - СправочникСсылка.ИдентификаторыОбъектовМетаданных -
-// * Имя - Строка -
-// * ПолноеИмя - Строка -
-// * Представление - Строка -
-// * РазделСсылка - СправочникСсылка.ИдентификаторыОбъектовРасширений -
-// - СправочникСсылка.ИдентификаторыОбъектовМетаданных -
-// * РазделПолноеИмя - Строка -
-// * Приоритет - Строка -
-// * ПолноеПредставление - Строка -
-// * Важность - Строка -
-// * Модифицированность - Булево -
-// ИсточникРодитель - СтрокаДереваЗначений, ДеревоЗначений - где:
-// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений -
-// - СправочникСсылка.ИдентификаторыОбъектовМетаданных -
-// * Имя - Строка -
-// * ПолноеИмя - Строка -
-// * Представление - Строка -
-// * РазделСсылка - СправочникСсылка.ИдентификаторыОбъектовРасширений -
-// - СправочникСсылка.ИдентификаторыОбъектовМетаданных -
-// * РазделПолноеИмя - Строка -
-// * Приоритет - Строка -
-// * ПолноеПредставление - Строка -
-// * Важность - Строка -
-// * Модифицированность - Булево -
-// ВхожденияПодсистем - ТаблицаЗначений - где:
-// * Ссылка - СправочникСсылка.ВариантыОтчетов -
-// * Количество - Число -
-// * Важность - Строка -
+// ПриемникРодитель - СтрокаДереваЗначений
+// - ДеревоЗначений:
+// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// * Имя - Строка
+// * ПолноеИмя - Строка
+// * Представление - Строка
+// * РазделСсылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// * РазделПолноеИмя - Строка
+// * Приоритет - Строка
+// * ПолноеПредставление - Строка
+// * Важность - Строка
+// * Модифицированность - Булево
+// ИсточникРодитель - СтрокаДереваЗначений
+// - ДеревоЗначений:
+// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// * Имя - Строка
+// * ПолноеИмя - Строка
+// * Представление - Строка
+// * РазделСсылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// * РазделПолноеИмя - Строка
+// * Приоритет - Строка
+// * ПолноеПредставление - Строка
+// * Важность - Строка
+// * Модифицированность - Булево
+// ВхожденияПодсистем - ТаблицаЗначений:
+// * Ссылка - СправочникСсылка.ВариантыОтчетов
+// * Количество - Число
+// * Важность - Строка
//
&НаСервере
Процедура ДобавитьПодсистемыВДерево(ПриемникРодитель, ИсточникРодитель, ВхожденияПодсистем)
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl
index bc19ce692..c62c36222 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Module.bsl
@@ -10,14 +10,14 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если Не Параметры.Свойство("Варианты") Или ТипЗнч(Параметры.Варианты) <> Тип("Массив") Тогда
+ Варианты = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Варианты"); // Массив из СправочникСсылка.ВариантыОтчетов
+ Если ТипЗнч(Варианты) <> Тип("Массив") Тогда
ТекстОшибки = НСтр("ru = 'Не указаны варианты отчетов.'");
Возврат;
КонецЕсли;
ОпределитьПоведениеВМобильномКлиенте();
- ИзменяемыеВарианты.ЗагрузитьЗначения(Параметры.Варианты);
+ ИзменяемыеВарианты.ЗагрузитьЗначения(Варианты);
Отфильтровать();
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl
index 7171b403c..3ca568b8f 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросПользовательскихНастроек/Module.bsl
@@ -10,20 +10,20 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если Не Параметры.Свойство("Варианты") Или ТипЗнч(Параметры.Варианты) <> Тип("Массив") Тогда
+ Варианты = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Варианты"); // Массив из СправочникСсылка.ВариантыОтчетов
+ Если ТипЗнч(Варианты) <> Тип("Массив") Тогда
ТекстОшибки = НСтр("ru = 'Не указаны варианты отчетов.'");
Возврат;
КонецЕсли;
- Если Не ЕстьПользовательскиеНастройки(Параметры.Варианты) Тогда
+ Если Не ЕстьПользовательскиеНастройки(Варианты) Тогда
ТекстОшибки = НСтр("ru = 'Пользовательские настройки выбранных вариантов отчетов (%1 шт) не заданы или уже сброшены.'");
- ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Формат(Параметры.Варианты.Количество(), "ЧН=0; ЧГ=0"));
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Формат(Варианты.Количество(), "ЧН=0; ЧГ=0"));
Возврат;
КонецЕсли;
ОпределитьПоведениеВМобильномКлиенте();
- ИзменяемыеВарианты.ЗагрузитьЗначения(Параметры.Варианты);
+ ИзменяемыеВарианты.ЗагрузитьЗначения(Варианты);
КонецПроцедуры
&НаКлиенте
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl
index 7d82b4f81..7252b43b9 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl
@@ -31,15 +31,19 @@
РежимРаботыФормы = "ВсеОтчетыРаздела";
РодительскиеЭлементы = Новый Массив; // Массив из ДанныеФормыЭлементДерева
РодительскиеЭлементы.Добавить(ДеревоПодсистем.ПолучитьЭлементы()[0]);
+
Пока РодительскиеЭлементы.Количество() > 0 Цикл
- РодительскийЭлемент = РодительскиеЭлементы[0].ПолучитьЭлементы(); // ДанныеФормыКоллекцияЭлементовДерева
+ РодительскийЭлемент = ЭлементДереваПодсистем(РодительскиеЭлементы);
+ ДочерниеЭлементы = РодительскийЭлемент.ПолучитьЭлементы();
РодительскиеЭлементы.Удалить(0);
- Для Каждого ДочернийЭлемент Из РодительскийЭлемент Цикл
+
+ Для Каждого ДочернийЭлемент Из ДочерниеЭлементы Цикл
Если ДочернийЭлемент.Ссылка = Параметры.РазделСсылка Тогда
Элементы.ДеревоПодсистем.ТекущаяСтрока = ДочернийЭлемент.ПолучитьИдентификатор();
РодительскиеЭлементы.Очистить();
Прервать;
КонецЕсли;
+
РодительскиеЭлементы.Добавить(ДочернийЭлемент);
КонецЦикла;
КонецЦикла;
@@ -339,17 +343,17 @@
// Возвращает параметры перетаскивания.
//
// Параметры:
-// ПараметрыПеретаскивания - ПараметрыПеретаскивания -
-// Строка - Число -
+// ПараметрыПеретаскивания - ПараметрыПеретаскивания
+// Строка - Число
//
// Возвращаемое значение:
-// Неопределено -
-// Структура - где:
-// * Варианты - Структура - где:
-// ** Массив - Массив из ДанныеФормыЭлементДерева -
-// ** Всего - Число -
-// ** Представление - Строка -
-// * Действие - Строка -
+// Неопределено
+// Структура:
+// * Варианты - Структура:
+// ** Массив - Массив из ДанныеФормыЭлементДерева
+// ** Всего - Число
+// ** Представление - Строка
+// * Действие - Строка
// * Приемник - см. СвойстваДанныхСтроки
// * Источник - см. СвойстваДанныхСтроки
//
@@ -421,12 +425,12 @@
// Конструктор свойств данных строки.
//
// Возвращаемое значение:
-// Структура - где:
-// * Ссылка - Неопределено -
-// - СправочникСсылка.ИдентификаторыОбъектовРасширений -
-// - СправочникСсылка.ИдентификаторыОбъектовМетаданных -
-// * ПолноеПредставление - Строка -
-// * Идентификатор - Число -
+// Структура:
+// * Ссылка - Неопределено
+// - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// * ПолноеПредставление - Строка
+// * Идентификатор - Число
//
&НаКлиенте
Функция СвойстваДанныхСтроки()
@@ -443,15 +447,15 @@
// Обработчик завершения перетаскивания.
//
// Параметры:
-// Ответ - КодВозвратаДиалога -
-// ПараметрыРазмещения - Структура - где:
-// * Варианты - Структура - где:
-// ** Массив - Массив из ДанныеФормыЭлементДерева -
-// ** Всего - Число -
-// ** Представление - Строка -
-// * Действие - Строка -
-// * Приемник - ДанныеФормыЭлементДерева -
-// * Источник - ДанныеФормыЭлементДерева -
+// Ответ - КодВозвратаДиалога
+// ПараметрыРазмещения - Структура:
+// * Варианты - Структура:
+// ** Массив - Массив из ДанныеФормыЭлементДерева
+// ** Всего - Число
+// ** Представление - Строка
+// * Действие - Строка
+// * Приемник - ДанныеФормыЭлементДерева
+// * Источник - ДанныеФормыЭлементДерева
//
&НаКлиенте
Процедура ДеревоПодсистемПеретаскиваниеЗавершение(Ответ, ПараметрыРазмещения) Экспорт
@@ -638,10 +642,10 @@
// ПараметрыРазмещения - см. ПараметрыРазмещения
//
// Возвращаемое значение:
-// Структура - где:
-// * Размещено - Число -
-// * УжеРазмещены - Строка -
-// * НеМогутРазмещаться - Строка -
+// Структура:
+// * Размещено - Число
+// * УжеРазмещены - Строка
+// * НеМогутРазмещаться - Строка
//
&НаСервере
Функция РазместитьВариантыВПодсистеме(ПараметрыРазмещения)
@@ -806,4 +810,31 @@
КонецЕсли;
КонецПроцедуры
+// Параметры:
+// ЭлементыДерева - Массив из ДанныеФормыЭлементДерева:
+// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// * Представление - Строка
+// * Имя - Строка
+// * ПолноеИмя - Строка
+// * Приоритет - Строка
+// * ПолноеПредставление - Строка
+//
+// Возвращаемое значение:
+// ДанныеФормыЭлементДерева:
+// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+// - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// * Представление - Строка
+// * Имя - Строка
+// * ПолноеИмя - Строка
+// * Приоритет - Строка
+// * ПолноеПредставление - Строка
+//
+&НаСервере
+Функция ЭлементДереваПодсистем(ЭлементыДерева)
+
+ Возврат ЭлементыДерева[0];
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl
index 699afbaa6..79f51c909 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl
@@ -251,14 +251,16 @@
&НаКлиенте
Процедура ПодобратьПользователей(Команда)
- ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(ЭтотОбъект);
+ ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(
+ ЭтотОбъект, Элементы.ПользователиВариантаГруппаПодобрать.Видимость);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьГруппыВнешнихПользователей(Команда)
- ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(ЭтотОбъект, Истина);
+ ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(
+ ЭтотОбъект, Элементы.ПользователиВариантаГруппаПодобрать.Видимость, Истина);
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl
index b5f906a4f..4037d5e13 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl
index ce88ae88c..2172f5db9 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl
@@ -88,17 +88,7 @@
ИнтерактивнаяПометкаУдаления = ?(Пользовательский, ПометкаУдаления, Ложь);
КонецЕсли;
- // Удаление из табличной части подсистем, помеченных на удаление.
- УдаляемыеСтроки = Новый Массив;
- Для Каждого СтрокаРазмещения Из Размещение Цикл
- Если СтрокаРазмещения.Подсистема.ПометкаУдаления = Истина Тогда
- УдаляемыеСтроки.Добавить(СтрокаРазмещения);
- КонецЕсли;
- КонецЦикла;
- Для Каждого СтрокаРазмещения Из УдаляемыеСтроки Цикл
- Размещение.Удалить(СтрокаРазмещения);
- КонецЦикла;
-
+ ПроверитьРазмещение();
ЗаполнитьПоляДляПоиска();
КонецПроцедуры
@@ -205,6 +195,31 @@
КонецПроцедуры
+Процедура ПроверитьРазмещение()
+
+ Если ЗначениеЗаполнено(Контекст) Тогда
+
+ Размещение.Очистить();
+ Возврат;
+
+ КонецЕсли;
+
+ // Удаление из табличной части подсистем, помеченных на удаление.
+ УдаляемыеСтроки = Новый Массив;
+ Для Каждого СтрокаРазмещения Из Размещение Цикл
+
+ Если СтрокаРазмещения.Подсистема.ПометкаУдаления = Истина Тогда
+ УдаляемыеСтроки.Добавить(СтрокаРазмещения);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Для Каждого СтрокаРазмещения Из УдаляемыеСтроки Цикл
+ Размещение.Удалить(СтрокаРазмещения);
+ КонецЦикла;
+
+КонецПроцедуры
+
// Заполнение реквизитов НаименованияПолей и НаименованияПараметровИОтборов.
Процедура ЗаполнитьПоляДляПоиска()
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo b/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo
index fdaeda2de..c1d5394ad 100644
--- a/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo
+++ b/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo
@@ -261,6 +261,28 @@
UseUse
+
+ Контекст
+
+ ru
+ Контекст
+
+
+ String
+
+ 430
+
+
+
+ ru
+ Служебный реквизит. Полное имя объекта метаданных, в контексте которого формируется вариант отчета. Используется, как разделитель вариантов отчетов.
+
+
+
+
+ Use
+ Use
+ НаименованияПараметровИОтборов
diff --git a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
index 45f30f82b..d6fc0fc14 100644
--- a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
@@ -60,7 +60,7 @@
// расширений, независимо от установленных разделителей.
//
// Возвращаемое значение:
-// ФиксированнаяСтруктура - со свойствами:
+// ФиксированнаяСтруктура:
// * Основные - Строка - контрольная сумма всех расширений, кроме исправительных расширений.
// * Исправления - Строка - контрольная сумма всех исправительных расширений.
//
@@ -131,6 +131,15 @@
УстановленныеРасширения.Вставить("ОсновныеСостояние", КонтрольныеСуммыРасширений(Основные, "Все"));
УстановленныеРасширения.Вставить("ИсправленияСостояние", КонтрольныеСуммыРасширений(Исправления, "Все"));
+ Если ПриЗапуске
+ И АктивныеРасширения.Количество() = 0
+ И НеподключенныеРасширения.Количество() = 0
+ И РасширенияБазыДанных.Количество() <> 0
+ И СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Тогда
+
+ УстановленныеРасширения.Вставить("РасширенияНедоступны");
+ КонецЕсли;
+
Возврат Новый ФиксированнаяСтруктура(УстановленныеРасширения);
КонецФункции
@@ -138,12 +147,16 @@
// Возвращает признак изменения состава расширений после запуска сеанса.
//
// Возвращаемое значение:
-// Булево -
+// Булево
//
Функция РасширенияИзмененыДинамически() Экспорт
УстановитьПривилегированныйРежим(Истина);
+ Если ПараметрыСеанса.УстановленныеРасширения.Свойство("РасширенияНедоступны") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
УстановленныеРасширения = УстановленныеРасширения();
Возврат ПараметрыСеанса.УстановленныеРасширения.ОсновныеСостояние <> УстановленныеРасширения.ОсновныеСостояние
@@ -151,17 +164,16 @@
КонецФункции
-// Структура - со свойствами:
-// * Расширения - Структура со свойствами:
+// Возвращает информацию по измененным расширениям и исправлениям.
+//
+// Возвращаемое значение:
+// Структура:
+// * Расширения - Структура:
// * Добавлено - Число
// * Удалено - Число
-// * Изменено - Число
-// * СписокНовых - Массив из Строка
-// * Исправления - Структура со свойствами:
+// * Исправления - Структура:
// * Добавлено - Число
// * Удалено - Число
-// * Изменено - Число
-// * СписокНовых - Массив из Строка
//
Функция ДинамическиИзмененныеРасширения() Экспорт
@@ -506,7 +518,7 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Возвращаемое значение:
-// РасширениеКонфигурации, Неопределено -
+// РасширениеКонфигурации, Неопределено
//
Функция НайтиРасширение(ИдентификаторРасширения) Экспорт
@@ -527,7 +539,7 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Параметры:
-// Расширение - РасширениеКонфигурации -
+// Расширение - РасширениеКонфигурации
//
Процедура ОтключитьПредупрежденияБезопасности(Расширение) Экспорт
@@ -638,7 +650,7 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Возвращаемое значение:
-// Массив Из УникальныйИдентификатор -
+// Массив Из УникальныйИдентификатор
//
Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений) Экспорт
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
index ddd3aa33f..a4f097806 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo b/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo
index e5e24dfb5..a9cb87a2e 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo
+++ b/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo
@@ -121,6 +121,7 @@
ru
+ Catalog.ВерсииФайлов.StandardAttribute.OwnerManagedUse
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl
index 6025fd3f8..27c03e3ad 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ИсправлениеВидовКонтактнойИнформации/Module.bsl
@@ -14,6 +14,10 @@
ИдентификаторПроверки = Параметры.ИдентификаторПроверки;
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
+ Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
+ ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -79,7 +83,7 @@
Процедура ИсправитьПроблемуВФонеЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДлительнаяОперация = Неопределено;
-
+
Если Результат = Неопределено Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
Возврат;
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form
index 1f3230b7e..814f9b5f5 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Form.form
@@ -101,7 +101,7 @@
true
- Список.Ref
+ Список.СсылкаСсылкаExtendedTooltip
@@ -139,6 +139,10 @@
Lefttrue
+
+ Selection
+ СписокВыбор
+ BeforeAddRowСписокПередНачаломДобавления
@@ -227,6 +231,32 @@
СписокКонтекстноеМеню2
+
+ СписокКонтекстноеМенюПерейтиКСписку
+ 57
+ true
+ true
+
+ true
+
+
+ СписокКонтекстноеМенюПерейтиКСпискуРасширеннаяПодсказка
+ 58
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ПерейтиКСписку
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ trueTree
@@ -272,6 +302,33 @@
ФормаКоманднаяПанель-1
+
+ ФормаПерейтиКСписку
+ 55
+ true
+ true
+
+ true
+
+
+ ФормаПерейтиКСпискуРасширеннаяПодсказка
+ 56
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ПерейтиКСписку
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+ InAdditionalSubmenu
+ Lefttrue
@@ -302,15 +359,18 @@
true
-
- Список.Ref
- Список.ИндексПиктограммыСписок.РеквизитДопУпорядочивания
+
+ Список.Ссылка
+
+
+ Список.ЭтоГруппа
+ trueВЫБРАТЬ
@@ -361,22 +421,23 @@
ИНАЧЕ 3
КОНЕЦ
КОНЕЦ КАК ИндексПиктограммы,
- СправочникВидыКонтактнойИнформации.Ссылка,
+ СправочникВидыКонтактнойИнформации.Ссылка КАК Ссылка,
ВЫБОР
КОГДА &ЭтоОсновнойЯзык
- ТОГДА СправочникВидыКонтактнойИнформации.Наименование
+ ТОГДА СправочникВидыКонтактнойИнформации.Наименование
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ВидыКонтактнойИнформацииПредставления.Наименование, СправочникВидыКонтактнойИнформации.Наименование) КАК СТРОКА(150))
КОНЕЦ КАК Наименование,
- СправочникВидыКонтактнойИнформации.РеквизитДопУпорядочивания,
- СправочникВидыКонтактнойИнформации.Используется
+ СправочникВидыКонтактнойИнформации.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
+ СправочникВидыКонтактнойИнформации.Используется КАК Используется,
+ СправочникВидыКонтактнойИнформации.ЭтоГруппа КАК ЭтоГруппа
ИЗ
Справочник.ВидыКонтактнойИнформации КАК СправочникВидыКонтактнойИнформации
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыКонтактнойИнформации.Представления КАК ВидыКонтактнойИнформацииПредставления
ПО (ВидыКонтактнойИнформацииПредставления.Ссылка = СправочникВидыКонтактнойИнформации.Ссылка)
- И ВидыКонтактнойИнформацииПредставления.КодЯзыка = &КодЯзыка
+ И (ВидыКонтактнойИнформацииПредставления.КодЯзыка = &КодЯзыка)
ГДЕ
- СправочникВидыКонтактнойИнформации.Используется И ЕстьNULL(СправочникВидыКонтактнойИнформации.Родитель.Используется, Истина)
-
+ СправочникВидыКонтактнойИнформации.Используется
+ И ЕСТЬNULL(СправочникВидыКонтактнойИнформации.Родитель.Используется, ИСТИНА)
Catalog.ВидыКонтактнойИнформацииtruetrue
@@ -385,6 +446,28 @@
true
+
+ ПерейтиКСписку
+
+ ru
+ Перейти к списку...
+
+ 1
+
+ ru
+ Перейти к списку с контактной информацией
+
+
+
+
+ ПерейтиКСписку
+
+
+ Auto
+ Auto
+
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl
index bc8183e0c..2b77781fe 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаСписка/Module.bsl
@@ -40,8 +40,33 @@
#КонецОбласти
+#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
+
+&НаКлиенте
+Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
+ Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ ТекущиеДанные = Элементы.Список.ТекущиеДанные;
+ Если ТекущиеДанные.ЭтоГруппа Тогда
+ СтандартнаяОбработка = Ложь;
+ ПерейтиКСписку(Неопределено);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ОбработчикиКомандФормы
+&НаКлиенте
+Процедура ПерейтиКСписку(Команда)
+ Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+ ОткрытьФорму(ИмяФормыСписка(Элементы.Список.ТекущиеДанные.Ссылка));
+КонецПроцедуры
+
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
@@ -81,4 +106,46 @@
КонецПроцедуры
+&НаСервереБезКонтекста
+Функция ИмяФормыСписка(ВидКонтактнойИнформацииСсылка)
+
+ ЭтоГруппа = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВидКонтактнойИнформацииСсылка, "ЭтоГруппа,Родитель");
+ ГруппаВидаСсылка = ?(ЭтоГруппа.ЭтоГруппа, ВидКонтактнойИнформацииСсылка, ЭтоГруппа.Родитель);
+
+ Запрос = Новый Запрос(
+ "ВЫБРАТЬ
+ |ВЫБОР
+ | КОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида <> """"
+ | ТОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида
+ | ИНАЧЕ ВидыКонтактнойИнформации.ИмяПредопределенныхДанных
+ |КОНЕЦ КАК ИмяПредопределенногоВида
+ |ИЗ
+ | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
+ |ГДЕ
+ | ВидыКонтактнойИнформации.Ссылка = &ГруппаВидаСсылка");
+
+ Запрос.УстановитьПараметр("ГруппаВидаСсылка", ГруппаВидаСсылка);
+ ИмяПредопределенногоВида = ВРЕГ(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИмяПредопределенногоВида")[0]);
+
+ ИменаБазовыхТипов = Новый Массив;
+ ИменаБазовыхТипов.Добавить("Справочник");
+ ИменаБазовыхТипов.Добавить("Документ");
+ ИменаБазовыхТипов.Добавить("БизнесПроцесс");
+ ИменаБазовыхТипов.Добавить("Задача");
+ ИменаБазовыхТипов.Добавить("ПланСчетов");
+ ИменаБазовыхТипов.Добавить("ПланОбмена");
+ ИменаБазовыхТипов.Добавить("ПланВидовХарактеристик");
+ ИменаБазовыхТипов.Добавить("ПланВидовРасчета");
+ Для каждого ИмяБазовогоТипа Из ИменаБазовыхТипов Цикл
+ Если СтрНачинаетсяС(ИмяПредопределенногоВида, ВРег(ИмяБазовогоТипа)) Тогда
+ Возврат ИмяБазовогоТипа + "."
+ + Сред(ИмяПредопределенногоВида, СтрДлина(ИмяБазовогоТипа) + 1, СтрДлина(ИмяПредопределенногоВида))
+ + ".ФормаСписка";
+ КонецЕсли;
+ КонецЦикла;
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Невозможно перейти в списку для %1'"), ВидКонтактнойИнформацииСсылка);
+
+КонецФункции
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form
index 4a9653d91..22cc05e24 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Form.form
@@ -100,6 +100,10 @@
Объект.Descriptiontrue
+
+ OnChange
+ НаименованиеПриИзменении
+ НаименованиеExtendedTooltip87
@@ -771,6 +775,169 @@
true
+
+ МаскаПриВводеНомераТелефона
+ 178
+
+ ru
+ Вводить номер по маске:
+
+ true
+ true
+
+ true
+
+
+ Объект.ВводитьНомерПоМаске
+
+ Right
+
+ МаскаПриВводеНомераТелефонаРасширеннаяПодсказка
+ 180
+ Label
+ true
+ true
+
+ Left
+
+
+
+ МаскаПриВводеНомераТелефонаКонтекстноеМеню
+ 179
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
+
+ МаскаТелефона
+ 184
+
+ ДекорацияОтступМаскаТелефона
+ 186
+ true
+ true
+
+ true
+
+
+ ДекорацияОтступМаскаТелефонаРасширеннаяПодсказка
+ 188
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДекорацияОтступМаскаТелефонаКонтекстноеМеню
+ 187
+ true
+
+ Label
+ 1
+ true
+ true
+
+ Left
+
+
+
+ ШаблонМаскиНомераТелефона
+ 181
+ true
+ true
+
+ true
+
+
+ Объект.МаскаНомераТелефона
+
+ None
+ Button
+
+ ШаблонМаскиНомераТелефонаРасширеннаяПодсказка
+ 183
+
+ ru
+ <font Arial><fontsize 8><bgcolor #ffffff><color #333333>В строке маски допустимо использование следующих специальных символов:</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>! - любой введенный символ преобразуется в верхний регистр;</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>9 - допустимо ввести произвольный символ цифры;</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333># - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>X (латинского алфавита) - допустимо ввести произвольный символ;</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333>@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.</></></></>
+<font Arial><fontsize 8><bgcolor #ffffff><color #333333></></></></>
+
+ true
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ШаблонМаскиНомераТелефонаКонтекстноеМеню
+ 182
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ 20
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+ ru
+ +9 (999) 999-99-99
+
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Маска телефона
+
+
+ МаскаТелефонаРасширеннаяПодсказка
+ 185
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+ truetrue
@@ -1094,12 +1261,116 @@
Auto
+
+ ГруппаИдентификаторДляФормул
+ 171
+
+ ИдентификаторДляФормул
+ 173
+ true
+ true
+
+ true
+
+
+ Объект.ИдентификаторДляФормул
+
+
+ ИдентификаторДляФормулРасширеннаяПодсказка
+ 175
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ИдентификаторДляФормулКонтекстноеМеню
+ 174
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ЗаполнитьИдентификаторДляФормул
+ 176
+ true
+ true
+
+ true
+
+
+ ЗаполнитьИдентификаторДляФормулРасширеннаяПодсказка
+ 177
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualButton
+ Form.Command.ЗаполнитьИдентификаторДляФормул
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ true
+ true
+
+ true
+
+
+ ru
+ Идентификатор для формул
+
+
+ ГруппаИдентификаторДляФормулРасширеннаяПодсказка
+ 172
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ AlwaysHorizontal
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+ ФормаКоманднаяПанель-1Lefttrue
+
+ NotificationProcessing
+ ОбработкаОповещения
+ OnOpenПриОткрытии
@@ -1189,6 +1460,32 @@
DontUseAuto
+
+ ЗаполнитьИдентификаторДляФормул
+
+ ru
+ Заполнить идентификатор для формул
+
+ 2
+
+ ru
+ Заполнить идентификатор для формул
+
+
+
+ CommonPicture.ЗаполнитьФорму
+
+
+
+ ЗаполнитьИдентификаторДляФормул
+
+
+ Picture
+ Auto
+ Auto
+
@@ -1202,6 +1499,10 @@
OnReadAtServerПриЧтенииНаСервере
+
+ BeforeWrite
+ ПередЗаписью
+ BeforeWriteAtServerПередЗаписьюНаСервере
diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Help/ru.html
index dcc7c808d..34caa4068 100644
--- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Help/ru.html
+++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Help/ru.html
@@ -30,7 +30,8 @@
Введите Наименование, с которым поле контактной информации появится в списке или документе.
-
Выберите Группу, если она не введена по умолчанию. Группа соответствует документу или списку программы, в который добавляется новое поле контактной информации.
Настройки полей контактной информации
+
Выберите Группу, если она не введена по умолчанию. Группа соответствует документу или списку программы, в который добавляется новое поле контактной информации.
+
Поле Идентификатор для формул заполняется автоматически по специальным правилам. Не рекомендуется его изменять. Если автоматического заполнения не произошло, можно нажать кнопку Заполнить. Данный реквизит будет использоваться для построения и выполнения формул пользователями с разными языками интерфейса.
Настройки полей контактной информации
Включите флажок Обязательное заполнение, для того чтобы программа проверяла заполнение поля контактной информации при вводе документов или списков. Сохранение данных без заполнения этого поля будет невозможно.
@@ -49,7 +50,8 @@
Включите флажок Только российский адрес, для того чтобы запретить выбор другой страны при заполнении адреса. Используйте эту возможность, если у сотрудников Вашей организации только российские адреса, это ускорит ввод информации. При этом становятся доступными дополнительные настройки:
Запрещать ввод некорректного адреса - если флажок включен, то при некорректном вводе российского адреса невозможно будет ввести данные в программу (имеет смысл только при использовании шаблонов ввода и адресного классификатора - для использования этой возможности включите флажок Редактировать только в диалоге). Адрес проверяется по ФИАС.
-
Указывать ОКТМО - включите флажок, для того чтобы автоматически заполнялось поле ОКТМО. При необходимости поле можно отредактировать.
Особенности настройки поля Телефон и факс
+
Указывать ОКТМО - включите флажок, для того чтобы автоматически заполнялось поле ОКТМО. При необходимости поле можно отредактировать.
+
Автоматически исправлять устаревшие адреса - можно включить автоматическую проверку и исправление адресов. В этом случае регламентное задание 1 раз в неделю проверяет и исправляет адреса, ставшие устаревшими.
Особенности настройки поля Телефон и факс
Для того чтобы использовать Телефон с добавочным номером, включите соответствующий флажок.
@@ -62,7 +64,14 @@
Однострочное широкое - длинная строка;
-
Однострочное узкое - если вид контактной информации Другое используется для ввода текстовых данных небольшой длины, то размер поля ввода можно уменьшить.
См. также:
+
Однострочное узкое - если вид контактной информации Другое используется для ввода текстовых данных небольшой длины, то размер поля ввода можно уменьшить.
Разрешение редактирования реквизитов
+
Для того чтобы не допустить рассогласование данных в программе, следующие реквизиты не доступны для редактирования:
+
+
Тип;
+
Группа;
+
Идентификатор формул.
+
Перед тем, как разрешить их редактирование, рекомендуется оценить последствия, проверив все места использования в программе.
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl
index d8e42e816..56592cabb 100644
--- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl
@@ -20,6 +20,8 @@
Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
ТолькоПросмотр = Истина;
+ Иначе
+ Элементы.НадписьНастройкаВЦентральномУзле.Видимость = Ложь;
КонецЕсли;
ПоставляемыеНастройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм();
diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl
index 0c9006158..92467c78c 100644
--- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
@@ -205,6 +206,9 @@
КонецПроцедуры
+// Параметры:
+// Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
+//
Процедура ОбновитьПредставлениеПрограммыОтложенно(Программа, ОбъектовОбработано, ПроблемныхОбъектов, ПоставляемыеНастройки)
Блокировка = Новый БлокировкаДанных;
diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl
index 247c153d2..43e792168 100644
--- a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl
@@ -109,8 +109,8 @@
// Функция читает данные производственного календаря из регистра.
//
// Параметры:
-// ПроизводственныйКалендарь - Ссылка на текущий элемент справочника.
-// НомерГода - Номер года, за который необходимо прочитать производственный календарь.
+// ПроизводственныйКалендарь - ссылка на текущий элемент справочника.
+// НомерГода - номер года, за который необходимо прочитать производственный календарь.
//
// Возвращаемое значение
// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря.
@@ -498,13 +498,13 @@
// Преобразовывает данные производственных календарей, представленные в виде XML.
//
// Параметры:
-// ДанныеXML - структура, извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу.
+// ДанныеXML - структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу.
// ТаблицаКалендарей - таблица значений, список производственных календарей, поддерживаемых в конфигурации.
// КодыКалендарей - необязательный, массив, если не задан, то отбор не будет установлен.
// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
//
// Возвращаемое значение:
-// ТаблицаЗначений - таблица с колонками:
+// ТаблицаЗначений:
// * КодПроизводственногоКалендаря
// * ВидДня
// * Год
@@ -616,7 +616,7 @@
// Получает таблицу поставляемых в составе программы производственных календарей.
//
// Возвращаемое значение:
-// ТаблицаЗначений - .
+// ТаблицаЗначений
//
Функция ПроизводственныеКалендариИзМакета() Экспорт
@@ -697,35 +697,38 @@
| ИзмененияКалендарей.ПроизводственныйКалендарь,
| Год";
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- Возврат;
- КонецЕсли;
-
- НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей();
-
- КлючиРегистра = Новый Массив;
- КлючиРегистра.Добавить("ПроизводственныйКалендарь");
- КлючиРегистра.Добавить("Год");
-
- Выборка = РезультатЗапроса.Выбрать();
- Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл
- Пока Выборка.СледующийПоЗначениюПоля("Год") Цикл
- НаборЗаписей.Очистить();
- Пока Выборка.Следующий() Цикл
- ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
+ Блокировка = Новый БлокировкаДанных();
+ Блокировка.Добавить("РегистрСведений.ДанныеПроизводственногоКалендаря");
+ НачатьТранзакцию();
+ Попытка
+ Блокировка.Заблокировать();
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ ОтменитьТранзакцию();
+ Возврат;
+ КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл
+ Пока Выборка.СледующийПоЗначениюПоля("Год") Цикл
+ НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей();
+ Пока Выборка.Следующий() Цикл
+ ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
+ КонецЦикла;
+ ЗаполнитьЗначенияСвойств(ИзмененияКалендарей.Добавить(), Выборка);
+ НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
+ НаборЗаписей.Отбор.Год.Установить(Выборка.Год);
+ Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
+ ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
+ Продолжить;
+ КонецЕсли;
+ НаборЗаписей.Записать();
КонецЦикла;
- ЗаполнитьЗначенияСвойств(ИзмененияКалендарей.Добавить(), Выборка);
- Для Каждого Ключ Из КлючиРегистра Цикл
- НаборЗаписей.Отбор[Ключ].Установить(Выборка[Ключ]);
- КонецЦикла;
- Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
- ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
- Продолжить;
- КонецЕсли;
- НаборЗаписей.Записать();
КонецЦикла;
- КонецЦикла;
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
ИзмененияКалендарей.Свернуть("КодПроизводственногоКалендаря, Год");
@@ -810,7 +813,7 @@
// Определяет источник актуального перечня поддерживаемых производственных календарей (макет или поставка классификатора).
//
// Возвращаемое значение:
-// ТаблицаЗначений - .
+// ТаблицаЗначений
//
Функция ПроизводственныеКалендариПоУмолчанию() Экспорт
@@ -909,8 +912,8 @@
// Процедура записывает данные одного производственного календаря за 1 год.
//
// Параметры:
-// ПроизводственныйКалендарь - Ссылка на текущий элемент справочника.
-// НомерГода - Номер года, за который необходимо записать производственный календарь.
+// ПроизводственныйКалендарь - ссылка на текущий элемент справочника.
+// НомерГода - номер года, за который необходимо записать производственный календарь.
// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря.
//
// Возвращаемое значение
diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx b/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx
index dbd8fb0c5..888811dfd 100644
--- a/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx
+++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx
@@ -453,7 +453,7 @@
Picture
- 2
+ 131206
@@ -562,7 +562,7 @@
-
+
19
@@ -701,7 +701,7 @@
41
- 96
+ 132
3
diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl
index 36415c23f..2ec713dc6 100644
--- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
НеРедактируемыеРеквизиты = Новый Массив;
@@ -84,7 +85,7 @@
УстановитьПривилегированныйРежим(Истина);
ПоставляемыеПрофили = ПоставляемыеПрофили();
-
+
НачатьТранзакцию();
Попытка
ЕстьТекущиеИзменения = Ложь;
@@ -201,27 +202,13 @@
//
Процедура ОбновитьПоставляемыеПрофили(ЕстьИзменения = Неопределено) Экспорт
- ПоставляемыеПрофили = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей();
+ ПоставляемыеПрофили = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей(); // См. ОписаниеПоставляемыхПрофилей
ОписанияПрофилей = ПоставляемыеПрофили.ОписанияПрофилейМассив;
ПараметрыОбновления = ПоставляемыеПрофили.ПараметрыОбновления;
ОбновленныеПрофили = Новый Массив;
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("ПустойУникальныйИдентификатор",
- ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор());
- Запрос.Текст =
- "ВЫБРАТЬ
- | ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен,
- | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных,
- | ПрофилиГруппДоступа.Ссылка КАК Ссылка,
- | ЛОЖЬ КАК Найден
- |ИЗ
- | Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа
- |ГДЕ
- | НЕ ПрофилиГруппДоступа.ЭтоГруппа
- | И ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных <> &ПустойУникальныйИдентификатор";
- ТекущиеПрофили = Запрос.Выполнить().Выгрузить();
+ ТекущиеПрофили = ТекущиеПрофили();
Для Каждого СвойстваПрофиля Из ОписанияПрофилей Цикл
@@ -354,15 +341,12 @@
// Возвращает строку уникального идентификатора
// поставляемого и предопределенного профиля Администратор.
//
-Функция ИдентификаторПрофиляАдминистратор(Строка = Истина) Экспорт
+// Возвращаемое значение:
+// Строка - строка уникального идентификатора.
+//
+Функция ИдентификаторПрофиляАдминистратор() Экспорт
- Идентификатор = "6c4b0307-43a4-4141-9c35-3dd7e9586d41";
-
- Если Строка Тогда
- Возврат Идентификатор;
- КонецЕсли;
-
- Возврат Новый УникальныйИдентификатор(Идентификатор);
+ Возврат "6c4b0307-43a4-4141-9c35-3dd7e9586d41";
КонецФункции
@@ -370,13 +354,18 @@
//
// Параметры:
// Идентификатор - Строка - имя или уникальный идентификатор поставляемого профиля.
+// ВызыватьИсключениеЕслиНетВБазеДанных - Булево
+//
+// Возвращаемое значение:
+// СправочникСсылка.ПрофилиГруппДоступа
+// Неопределено
//
Функция ПоставляемыйПрофильПоИдентификатору(Идентификатор, ВызыватьИсключениеЕслиНетВБазеДанных = Ложь) Экспорт
УстановитьПривилегированныйРежим(Истина);
ПоставляемыеПрофили = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей();
- СвойстваПрофиля = ПоставляемыеПрофили.ОписанияПрофилей.Получить(Строка(Идентификатор));
+ СвойстваПрофиля = ПоставляемыеПрофили.ОписанияПрофилей.Получить(Строка(Идентификатор)); // См. СвойстваПоставляемогоПрофиля
Если СвойстваПрофиля = Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -406,7 +395,7 @@
Если ВызыватьИсключениеЕслиНетВБазеДанных Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Поставляемый профиль с идентификатором ""%1""
- |не найден в информационной базе.'"),
+ |не существует в программе.'"),
Строка(Идентификатор));
КонецЕсли;
@@ -417,6 +406,10 @@
// Возвращает строку уникального идентификатора
// данных поставляемого профиля.
//
+// Возвращаемое значение:
+// Строка
+// Неопределено
+//
Функция ИдентификаторПоставляемогоПрофиля(Профиль) Экспорт
УстановитьПривилегированныйРежим(Истина);
@@ -456,7 +449,7 @@
// с описанием в переопределяемом общем модуле).
//
// Возвращаемое значение:
-// Булево -
+// Булево
//
Функция ПоставляемыйПрофильИзменен(Профиль) Экспорт
@@ -465,7 +458,7 @@
КонецЕсли;
ОписанияПрофилей = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей().ОписанияПрофилей;
- СвойстваПрофиля = ОписанияПрофилей.Получить(Строка(Профиль.ИдентификаторПоставляемыхДанных));
+ СвойстваПрофиля = ОписанияПрофилей.Получить(Строка(Профиль.ИдентификаторПоставляемыхДанных)); // См. СвойстваПоставляемогоПрофиля
Если СвойстваПрофиля = Неопределено Тогда
Возврат Ложь;
@@ -488,8 +481,8 @@
МетаданныеРоли = Метаданные.Роли.Найти(Роль);
Если МетаданныеРоли = Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'При проверке поставляемого профиля ""%1""
- |роль ""%2"" не найдена в метаданных.'"),
+ НСтр("ru = 'В поставляемом профиле ""%1""
+ |указана несуществующая роль ""%2"".'"),
СвойстваПрофиля.Наименование,
Роль);
КонецЕсли;
@@ -537,7 +530,7 @@
// Профиль - СправочникСсылка.ПрофилиГруппДоступа.
//
// Возвращаемое значение:
-// Булево -
+// Булево
//
Функция ЕстьНачальноеЗаполнениеПрофиля(Знач Профиль) Экспорт
@@ -559,7 +552,7 @@
// ДанныеФормыСтруктура созданные по объекту.
//
// Возвращаемое значение:
-// Булево -
+// Булево
//
Функция ЗапретИзмененияПрофиля(Знач Профиль) Экспорт
@@ -608,7 +601,7 @@
// Если для указанного профиля описание начального заполнения найдено,
// содержимое профиля полностью замещается.
//
-// ОбновитьГруппыДоступа - Булево, если Истина, виды доступа групп доступа профиля будут обновлены.
+// ОбновитьГруппыДоступа - Булево - если Истина, виды доступа групп доступа профиля будут обновлены.
//
Процедура ЗаполнитьПоставляемыйПрофиль(Знач Профиль, Знач ОбновитьГруппыДоступа) Экспорт
@@ -636,20 +629,7 @@
//
Функция НесовместимыеПрофилиГруппДоступа() Экспорт
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | Профили.Ссылка КАК Ссылка,
- | Профили.Назначение.(
- | ТипПользователей КАК ТипПользователей
- | ) КАК Назначение,
- | Профили.Роли.(
- | Роль КАК Роль
- | ) КАК Роли
- |ИЗ
- | Справочник.ПрофилиГруппДоступа КАК Профили";
-
- Выгрузка = Запрос.Выполнить().Выгрузить();
+ Выгрузка = НазначениеИРолиПрофилейГруппаДоступа();
НесовместимыеПрофили = Новый Массив;
НедоступныеРолиПоНазначению = Новый Соответствие;
@@ -671,14 +651,15 @@
ОписаниеПрофиля.Роли.ВыгрузитьКолонку("Роль"), Ложь);
Для Каждого ОписаниеРоли Из ОписаниеРолей Цикл
- Если ОписаниеРоли.Значение = Неопределено Тогда
+ ОбъектМетаданных = ОписаниеРоли.Значение; // ОбъектМетаданных
+ Если ОбъектМетаданных = Неопределено Тогда
// Роль, недоступная до перезапуска, не является проблемой.
Продолжить;
КонецЕсли;
- Если ОписаниеРоли.Значение = Null
- Или НедоступныеРоли.Получить(ОписаниеРоли.Значение.Имя) <> Неопределено
- Или ВРег(Лев(ОписаниеРоли.Значение.Имя, СтрДлина("Удалить"))) = ВРег("Удалить") Тогда
+ Если ОбъектМетаданных = Null
+ Или НедоступныеРоли.Получить(ОбъектМетаданных.Имя) <> Неопределено
+ Или ВРег(Лев(ОбъектМетаданных.Имя, СтрДлина("Удалить"))) = ВРег("Удалить") Тогда
НесовместимыеПрофили.Добавить(ОписаниеПрофиля.Ссылка);
Прервать;
@@ -690,7 +671,20 @@
КонецФункции
-// См. Справочники.ПрофилиГруппДоступа.ПоставляемыеПрофили.
+// См. ПоставляемыеПрофили.
+//
+// Возвращаемое значение:
+// ФиксированнаяСтруктура:
+// * ОписанияПрофилей - Соответствие:
+// ** Ключ - Строка
+// ** Значение - см. СвойстваПоставляемогоПрофиля
+// * ОписанияПрофилейМассив - Массив из см. СвойстваПоставляемогоПрофиля
+// * ПараметрыОбновления - ФиксированнаяСтруктура:
+// ** ОбновлятьИзмененныеПрофили - Булево
+// ** ЗапретитьИзменениеПрофилей - Булево
+// ** ОбновлятьГруппыДоступа - Булево
+// ** ОбновлятьГруппыДоступаСУстаревшимиНастройками - Булево
+//
Функция ОписаниеПоставляемыхПрофилей() Экспорт
ПоставляемыеПрофили = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(
@@ -756,6 +750,10 @@
// Процедуры и функции для поддержки обмена данными в РИБ.
// Только для внутреннего использования.
+//
+// Параметры:
+// ЭлементДанных - СправочникОбъект.ПрофилиГруппДоступа
+//
Процедура ВосстановитьСоставРолейРасширений(ЭлементДанных) Экспорт
УдалитьРолиРасширений(ЭлементДанных);
@@ -823,6 +821,10 @@
КонецПроцедуры
// Только для внутреннего использования.
+//
+// Параметры:
+// ЭлементДанных - СправочникОбъект.ПрофилиГруппДоступа
+//
Процедура ЗарегистрироватьПрофильИзмененныйПриЗагрузке(ЭлементДанных) Экспорт
// Регистрация профилей, для групп доступа которых нужно обновить регистры сведений
@@ -963,6 +965,9 @@
КонецПроцедуры
+// Возвращаемое значение:
+// см. ОписаниеПоставляемыхПрофилей
+//
Функция ПоставляемыеПрофили()
ЗаполненныеПоставляемыеПрофили = ЗаполненныеПоставляемыеПрофили();
@@ -1008,6 +1013,13 @@
ОписаниеПрофиля.Идентификатор);
КонецЕсли;
+ СвойстваПрофиля = Новый Структура;
+ СвойстваПрофиля.Вставить("Имя", "");
+ СвойстваПрофиля.Вставить("Идентификатор", "");
+ СвойстваПрофиля.Вставить("Наименование", "");
+ СвойстваПрофиля.Вставить("Роли", Новый Массив);
+ ЗаполнитьЗначенияСвойств(СвойстваПрофиля, ОписаниеПрофиля);
+
// Назначение профиля.
Если ОписаниеПрофиля.Назначение.Количество() = 0 Тогда
ОписаниеПрофиля.Назначение.Добавить(Тип("СправочникСсылка.Пользователи"));
@@ -1042,10 +1054,10 @@
МассивНазначений.Добавить(Значение);
КонецЦикла;
КонецЦикла;
- ОписаниеПрофиля.Назначение = МассивНазначений;
+ СвойстваПрофиля.Вставить("Назначение", МассивНазначений);
// Проверка ролей.
- НазначениеПрофиля = УправлениеДоступомСлужебныйКлиентСервер.НазначениеПрофиля(ОписаниеПрофиля);
+ НазначениеПрофиля = УправлениеДоступомСлужебныйКлиентСервер.НазначениеПрофиля(СвойстваПрофиля);
НедоступныеРоли = ПользователиСлужебныйПовтИсп.НедоступныеРоли(НазначениеПрофиля, Ложь);
ПроверенныеРоли = Новый Соответствие;
ИндексРоли = ОписаниеПрофиля.Роли.Количество();
@@ -1056,7 +1068,7 @@
Если ВсеРоли.Получить(Роль) = Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В описании профиля ""%1 (%2)""
- |роль ""%3"" не найдена в метаданных.'"),
+ |указана несуществующая роль ""%3"".'"),
ОписаниеПрофиля.Имя,
ОписаниеПрофиля.Идентификатор,
Роль);
@@ -1083,24 +1095,24 @@
Если ОбщегоНазначения.РазделениеВключено() Тогда
// Заполнение списка недоступных ролей в модели сервиса
// для определения необходимости обновления поставляемых профилей.
- ОписаниеПрофиля.Вставить("РолиНедоступныеВСервисе",
+ СвойстваПрофиля.Вставить("РолиНедоступныеВСервисе",
РолиПрофиляНедоступныеВСервисе(ОписаниеПрофиля, НазначениеПрофиля));
КонецЕсли;
- Если СвойстваПрофилей.Получить(ОписаниеПрофиля.Идентификатор) <> Неопределено Тогда
+ Если СвойстваПрофилей.Получить(СвойстваПрофиля.Идентификатор) <> Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Профиль с идентификатором ""%1"" уже существует.'"),
- ОписаниеПрофиля.Идентификатор);
+ СвойстваПрофиля.Идентификатор);
КонецЕсли;
- СвойстваПрофилей.Вставить(ОписаниеПрофиля.Идентификатор, ОписаниеПрофиля);
- ОписанияПрофилейМассив.Добавить(ОписаниеПрофиля);
- Если ЗначениеЗаполнено(ОписаниеПрофиля.Имя) Тогда
- Если СвойстваПрофилей.Получить(ОписаниеПрофиля.Имя) <> Неопределено Тогда
+ СвойстваПрофилей.Вставить(СвойстваПрофиля.Идентификатор, СвойстваПрофиля);
+ ОписанияПрофилейМассив.Добавить(СвойстваПрофиля);
+ Если ЗначениеЗаполнено(СвойстваПрофиля.Имя) Тогда
+ Если СвойстваПрофилей.Получить(СвойстваПрофиля.Имя) <> Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Профиль с именем ""%1"" уже существует.'"),
- ОписаниеПрофиля.Имя);
+ СвойстваПрофиля.Имя);
КонецЕсли;
- СвойстваПрофилей.Вставить(ОписаниеПрофиля.Имя, ОписаниеПрофиля);
+ СвойстваПрофилей.Вставить(СвойстваПрофиля.Имя, СвойстваПрофиля);
КонецЕсли;
// Преобразование СпискаЗначений к Соответствию для фиксации.
ВидыДоступа = Новый Соответствие;
@@ -1154,7 +1166,7 @@
КонецЕсли;
ВидыДоступа.Вставить(ИмяВидаДоступа, УточнениеВидаДоступа);
КонецЦикла;
- ОписаниеПрофиля.ВидыДоступа = ВидыДоступа;
+ СвойстваПрофиля.Вставить("ВидыДоступа", ВидыДоступа);
// Удаление повторяющихся значений.
ЗначенияДоступа = Новый Массив;
@@ -1230,7 +1242,7 @@
КонецЕсли;
ТипЗначенияДоступа = ТипЗнч(ПустаяСсылкаЗначенияДоступа);
- СвойстваВидаДоступаПоТипу = СвойстваВидовДоступа.ПоТипамЗначений.Получить(ТипЗначенияДоступа);
+ СвойстваВидаДоступаПоТипу = СвойстваВидовДоступа.ПоТипамЗначений.Получить(ТипЗначенияДоступа); // См. УправлениеДоступомСлужебный.СвойстваВидаДоступа
Если СвойстваВидаДоступаПоТипу = Неопределено
ИЛИ СвойстваВидаДоступаПоТипу.Имя <> ВидДоступа Тогда
@@ -1259,7 +1271,7 @@
КонецЕсли;
ЗначенияДоступа.Добавить(Отбор);
КонецЦикла;
- ОписаниеПрофиля.ЗначенияДоступа = ЗначенияДоступа;
+ СвойстваПрофиля.Вставить("ЗначенияДоступа", ЗначенияДоступа);
КонецЦикла;
ПоставляемыеПрофили = Новый Структура;
@@ -1271,6 +1283,42 @@
КонецФункции
+// Возвращает свойства профиля, указанные в переопределяемом модуле,
+// преобразованные в фиксированный формат сохранения в базе данных.
+// Подробное описание свойств см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа.
+//
+// Параметры:
+// Идентификатор - Строка - имя или идентификатор поставляемого профиля.
+//
+// Возвращаемое значение:
+// ФиксированнаяСтруктура:
+// * Имя - Строка
+// * Идентификатор - Строка
+// * Наименование - Строка
+// * Роли - ФиксированныйМассив из Строка
+// * Назначение - ФиксированныйМассив из ОпределяемыйТип.Пользователь
+// * ВидыДоступа - ФиксированноеСоответствие:
+// * Ключ - Строка
+// * Значение - Строка
+// * ЗначенияДоступа - ФиксированныйМассив из Структура:
+// * ВидДоступа - Строка
+// * ЗначениеДоступа - Строка
+//
+// Неопределено - профиль не существует.
+//
+Функция СвойстваПоставляемогоПрофиля(Идентификатор) Экспорт
+
+ ПоставляемыеПрофили = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей();
+
+ Возврат ПоставляемыеПрофили.ОписанияПрофилей.Получить(Идентификатор);
+
+КонецФункции
+
+// Возвращаемое значение:
+// ФиксированноеСоответствие:
+// * Ключ - Строка - строковый идентификатор поставляемого профиля
+// * Значение - Строка - описание поставляемого профиля
+//
Функция ПояснениеПоставляемыхПрофилей() Экспорт
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили().ОписанияПрофилей;
@@ -1324,8 +1372,7 @@
// Замещает имеющийся или создает новый поставляемый профиль групп доступа по его описанию.
//
// Параметры:
-// СвойстваПрофиля - ФиксированнаяСтруктура - свойства профиля, как в структуре возвращаемой
-// функцией НовоеОписаниеПрофиляГруппДоступа общего модуля УправлениеДоступом.
+// СвойстваПрофиля - см. СвойстваПоставляемогоПрофиля
//
// Возвращаемое значение:
// Булево - Истина - профиль изменен.
@@ -1359,7 +1406,7 @@
КонецЕсли;
Если ПрофильСсылка = Неопределено Тогда
- // Поставляемый профиль не найден, нужно создать новый.
+ // Поставляемый профиль не существует, нужно создать новый.
ПрофильОбъект = СоздатьЭлемент();
Иначе
// Поставляемый профиль связан с предопределенным элементом.
@@ -1391,7 +1438,7 @@
Если МетаданныеРоли = Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При обновлении поставляемого профиля ""%1""
- |роль ""%2"" не найдена в метаданных.'"),
+ |обнаружена несуществующая роль ""%2"".'"),
СвойстваПрофиля.Наименование,
Роль);
КонецЕсли;
@@ -1477,6 +1524,62 @@
КонецФункции
+// Возвращаемое значение:
+// ТаблицаЗначений:
+// * ПоставляемыйПрофильИзменен - Булево
+// * ИдентификаторПоставляемыхДанных - УникальныйИдентификатор
+// * Ссылка - СправочникСсылка.ПрофилиГруппДоступа
+//
+Функция ТекущиеПрофили()
+
+ Запрос = Новый Запрос;
+ Запрос.УстановитьПараметр("ПустойУникальныйИдентификатор",
+ ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор());
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен,
+ | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных,
+ | ПрофилиГруппДоступа.Ссылка КАК Ссылка,
+ | ЛОЖЬ КАК Найден
+ |ИЗ
+ | Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа
+ |ГДЕ
+ | НЕ ПрофилиГруппДоступа.ЭтоГруппа
+ | И ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных <> &ПустойУникальныйИдентификатор";
+ ТекущиеПрофили = Запрос.Выполнить().Выгрузить();
+
+ Возврат ТекущиеПрофили;
+
+КонецФункции
+
+// Возвращаемое значение:
+// ТаблицаЗначений:
+// * Ссылка - СправочникСсылка.ПрофилиГруппДоступа
+// * Назначение - ТаблицаЗначений:
+// ** ТипПользователей - ОпределяемыйТип.Пользователь
+// * Роли - ТаблицаЗначений:
+// ** Роль - СправочникСсылка.ИдентификаторыОбъектовРасширений
+// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
+//
+Функция НазначениеИРолиПрофилейГруппаДоступа()
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Профили.Ссылка КАК Ссылка,
+ | Профили.Назначение.(
+ | ТипПользователей КАК ТипПользователей
+ | ) КАК Назначение,
+ | Профили.Роли.(
+ | Роль КАК Роль
+ | ) КАК Роли
+ |ИЗ
+ | Справочник.ПрофилиГруппДоступа КАК Профили";
+
+ Возврат Запрос.Выполнить().Выгрузить();
+
+КонецФункции
+
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl
index 4131a5ca1..177e6945c 100644
--- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ObjectModule.bsl
@@ -10,8 +10,7 @@
#Область ОписаниеПеременных
-Перем СтарыеЗначения; // Значения некоторых реквизитов и табличных частей профиля
- // до его изменения для использования в обработчике события ПриЗаписи.
+Перем СтарыеЗначения; // см. СтарыеЗначения
#КонецОбласти
@@ -29,9 +28,8 @@
СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
-
- СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
- "Ссылка, ПометкаУдаления, Роли, Назначение, ВидыДоступа, ЗначенияДоступа");
+
+ СтарыеЗначения = СтарыеЗначения();
// Проверка ролей.
РолиАдминистратора = Новый Массив;
@@ -84,7 +82,7 @@
НачатьТранзакцию();
Попытка
- ИзмененныеГруппыДоступа = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
+ ИзмененныеГруппыДоступа = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); // Массив из СправочникСсылка.ПрофилиГруппДоступа
Если ИзмененныеГруппыДоступа.Количество() > 0 Тогда
Блокировка = Новый БлокировкаДанных;
@@ -412,6 +410,25 @@
КонецПроцедуры
+// Значения некоторых реквизитов и табличных частей профиля
+// до его изменения для использования в обработчике события ПриЗаписи.
+//
+// Возвращаемое значение:
+// Структура:
+// * Ссылка - СправочникСсылка.ПрофилиГруппДоступа
+// * ПометкаУдаления - Булево
+// * Роли - РезультатЗапроса
+// * Назначение - РезультатЗапроса
+// * ВидыДоступа - РезультатЗапроса
+// * ЗначенияДоступа - РезультатЗапроса
+//
+Функция СтарыеЗначения()
+
+ Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
+ "Ссылка, ПометкаУдаления, Роли, Назначение, ВидыДоступа, ЗначенияДоступа");
+
+КонецФункции
+
#КонецОбласти
#Иначе
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl
index ebadbf44b..7c9813a17 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl
@@ -1351,13 +1351,13 @@
НайденныеИдентификаторыОбъектовМетаданных = ТаблицаТиповПолучателей.НайтиСтроки(Новый Структура("ТипПолучателей", ТипПолучателейРассылки));
Если НайденныеИдентификаторыОбъектовМетаданных.Количество() <> 1 Тогда
- ПоказатьПредупреждение(, НСтр("ru = 'Тип получателей не найден'"));
+ ПоказатьПредупреждение(, НСтр("ru = 'Некорректный тип получателей.'"));
Возврат;
КонецЕсли;
МассивТипов = НайденныеИдентификаторыОбъектовМетаданных[0].ОсновнойТип.Типы();
Если МассивТипов.Количество() <> 1 Тогда
- ПоказатьПредупреждение(, НСтр("ru = 'Тип получателей не найден'"));
+ ПоказатьПредупреждение(, НСтр("ru = 'Некорректный тип получателей.'"));
Возврат;
КонецЕсли;
@@ -1492,7 +1492,7 @@
ПолеКД = ОпределитьПолеИзКомпоновщика(ИдентификаторНастройки, ПользовательскиеНастройки.Элементы);
КонецЕсли;
Если ПолеКД = Неопределено Тогда
- ПоказатьПредупреждение(, НСтр("ru = 'Для настройки отчета не найдено описание доступного поля'"));
+ ПоказатьПредупреждение(, НСтр("ru = 'Для настройки отчета не существует описания доступного поля.'"));
Возврат Неопределено;
КонецЕсли;
@@ -1861,17 +1861,18 @@
// Обработчик закрытия формы ПолучателиРассылки.
//
// Параметры:
-// Результат - Структура - где:
-// * Получатели - ТаблицаЗначений - где:
+// Результат - Структура:
+// * Получатели - ТаблицаЗначений:
// * Получатель - СправочникСсылка.ГруппыПользователей,
// - СправочникСсылка._ДемоКонтрагенты,
// - СправочникСсылка._ДемоПартнеры,
-// - СправочникСсылка.Пользователи -
-// * Исключен - Булево -
-// * Адрес - Строка -
-// * ИндексКартинки - Число -
-// * ВидПочтовогоАдресаПолучателей - СправочникСсылка.ВидыКонтактнойИнформации -
-// Параметр - Структура, Неопределено -
+// - СправочникСсылка.Пользователи
+// * Исключен - Булево
+// * Адрес - Строка
+// * ИндексКартинки - Число
+// * ВидПочтовогоАдресаПолучателей - СправочникСсылка.ВидыКонтактнойИнформации
+// Параметр - Структура
+// - Неопределено
//
&НаКлиенте
Процедура ПолучателиРассылкиНажатиеЗавершение(Результат, Параметр) Экспорт
@@ -2025,8 +2026,8 @@
// Обработчик закрытия диалога форматной строки.
//
// Параметры:
-// СтрокаРезультат - Строка -
-// Переменные - Структура -
+// СтрокаРезультат - Строка
+// Переменные - Структура
//
&НаКлиенте
Процедура ДобавитьИзменитьШаблонДатыРассылкиЗавершение(СтрокаРезультат, Переменные) Экспорт
@@ -2653,10 +2654,10 @@
// Формирует представление расписания регламентного задания.
//
// Параметры:
-// Расписание - РасписаниеРегламентногоЗадания - Расписание.
+// Расписание - РасписаниеРегламентногоЗадания - расписание.
//
// Возвращаемое значение:
-// Строка - Представление расписания.
+// Строка - представление расписания.
//
&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеРасписания(Расписание)
@@ -3010,14 +3011,14 @@
// Выполняет проверку выбранного отчета.
//
// Параметры:
-// СтруктураВыбора - Структура - где:
-// * Выбрано - Структура - Строки, выбранные пользователем.
-// * Успешно - Структура - Строки, инициализированные и добавленные в список.
-// * СОшибками - Структура - Строки, не добавленные в список из-за ошибок, где:
-// ** МассивСтрок - Массив - Массив идентификаторов строк.
-// ** Количество - Число - Количество строк.
-// ** ПредставлениеОтчетов - Строка - Представление всех отчетов указанных строк.
-// ** Текст - Строка - Текст возникших ошибок.
+// СтруктураВыбора - Структура:
+// * Выбрано - Структура - строки, выбранные пользователем.
+// * Успешно - Структура - строки, инициализированные и добавленные в список.
+// * СОшибками - Структура - строки, не добавленные в список из-за ошибок, где:
+// ** МассивСтрок - Массив - массив идентификаторов строк.
+// ** Количество - Число - количество строк.
+// ** ПредставлениеОтчетов - Строка - представление всех отчетов указанных строк.
+// ** Текст - Строка - текст возникших ошибок.
//
&НаСервере
Процедура ПроверитьДобавленныеСтрокиОтчетов(СтруктураВыбора)
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl
index aa202ab1d..15ff5deee 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
@@ -87,7 +88,7 @@
// Параметры:
// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
// Данные - СтрокаТаблицыЗначений - данные заполнения.
-// ДополнительныеПараметры - Структура - Дополнительные параметры.
+// ДополнительныеПараметры - Структура
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo b/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo
index 7a6bd541f..451d2a564 100644
--- a/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo
+++ b/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo
@@ -344,25 +344,6 @@
UseUse
-
- ВключатьДатуВИмяФайла
-
- ru
- Включать дату в имя файла
-
-
- Boolean
-
-
- ru
- Признак добавления к имени файла отчета даты рассылки
-
-
-
-
- Use
- Use
- ВыполнятьПоРасписанию
@@ -840,6 +821,25 @@
Use
+
+ ВключатьДатуВИмяФайла
+
+ ru
+ Включать дату в имя файла
+
+
+ Boolean
+
+
+ ru
+ Признак добавления к имени файла отчета даты рассылки
+
+
+
+
+ Use
+ Use
+
diff --git a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
index cd08e2d75..3aa5e5630 100644
--- a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
+++ b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
@@ -145,7 +146,7 @@
Элемент.ИспользуетсяСОбъектамиАдресации = Истина;
Элемент.ВнешняяРоль = Ложь;
Элемент.Код = "000000001";
- Элемент.КраткоеПредставление = НСтр("ru = '000000001'");
+ Элемент.КраткоеПредставление = НСтр("ru = '000000001'", ОбщегоНазначения.КодОсновногоЯзыка());
Элемент.ТипыОсновногоОбъектаАдресации = ПланыВидовХарактеристик.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации;
Элемент.Назначение = ТабличныеЧасти.Назначение.Скопировать();
@@ -161,7 +162,7 @@
// Параметры:
// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
// Данные - СтрокаТаблицыЗначений - данные заполнения.
-// ДополнительныеПараметры - Структура - Дополнительные параметры.
+// ДополнительныеПараметры - Структура
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form
index 0631132fc..5ce594ad5 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Form.form
@@ -1449,21 +1449,34 @@
Normal
-
- ПарольПояснение
- 741
+
+ ЗапомнитьПароль
+ 820ru
- (для проверки)
+ Запомнить на время сеансаtruetruetrue
+
+ ЗапомнитьПароль
+
+ Right
+
+ ru
+ Запомнить пароль сертификата до закрытия программы. При снятии флажка пароль стирается из памяти, если запоминался ранее.
+
+ Button
+
+ OnChange
+ ЗапомнитьПарольПриИзменении
+
- ПарольПояснениеРасширеннаяПодсказка
- 743
+ ЗапомнитьПарольРасширеннаяПодсказка
+ 822Labeltruetrue
@@ -1472,18 +1485,16 @@
- ПарольПояснениеКонтекстноеМеню
- 742
+ ЗапомнитьПарольКонтекстноеМеню
+ 821true
- Label
- true
-
- Style.ПоясняющийТекст
-
-
- Left
-
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+ truetrue
@@ -1523,78 +1534,6 @@
Страницы816
-
- СтраницаЗапоминаниеПароля
- 818
-
- ЗапомнитьПароль
- 820
- true
- true
-
- true
-
-
- ЗапомнитьПароль
-
- Right
-
- ru
- Запомнить пароль сертификата до закрытия программы. При снятии флажка пароль стирается из памяти, если запоминался ранее.
-
- Button
-
- OnChange
- ЗапомнитьПарольПриИзменении
-
-
- ЗапомнитьПарольРасширеннаяПодсказка
- 822
- Label
- true
- true
-
- Left
-
-
-
- ЗапомнитьПарольКонтекстноеМеню
- 821
- true
-
- CheckBoxField
- Enter
- true
- Left
- true
-
-
- true
- true
-
- true
-
-
- ru
- Страница запоминание пароля
-
-
- СтраницаЗапоминаниеПароляРасширеннаяПодсказка
- 819
- Label
- true
- true
-
- Left
-
-
- Page
-
- Vertical
- auto
- false
-
- СтраницаПояснениеУсиленногоПароля823
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl
index db9140137..ff63c5338 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl
@@ -22,7 +22,7 @@
Элементы.СертификатУсиленнаяЗащитаЗакрытогоКлюча.Имя,
Элементы.ПояснениеУсиленногоПароля.Имя);
- СертификатПараметрыРеквизитов = Новый Структура;
+ СертификатПараметрыРеквизитов = СертификатПараметрыРеквизитов();
Если Параметры.Свойство("Организация") Тогда
СертификатПараметрыРеквизитов.Вставить("Организация", Параметры.Организация);
КонецЕсли;
@@ -93,6 +93,16 @@
КонецПроцедуры
+
+// Возвращаемое значение:
+// Структура:
+// * Наименование - Строка
+//
+&НаКлиентеНаСервереБезКонтекста
+Функция СертификатПараметрыРеквизитов()
+ Возврат Новый Структура;
+КонецФункции
+
&НаКлиенте
Процедура ПриОткрытии(Отказ)
@@ -637,6 +647,11 @@
КонецПроцедуры
// Продолжение процедуры ПерейтиКВыборуТекущегоСертификата.
+//
+// Параметры:
+// РезультатПоиска - СертификатКриптографии
+// Контекст
+//
&НаКлиенте
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификата(РезультатПоиска, Контекст) Экспорт
@@ -653,12 +668,20 @@
Контекст.Вставить("СертификатКриптографии", РезультатПоиска);
- Контекст.СертификатКриптографии.НачатьВыгрузку(Новый ОписаниеОповещения(
+ РезультатПоиска.НачатьВыгрузку(Новый ОписаниеОповещения(
"ПерейтиКВыборуТекущегоСертификатаПослеВыгрузкиСертификата", ЭтотОбъект, Контекст));
КонецПроцедуры
// Продолжение процедуры ПерейтиКВыборуТекущегоСертификата.
+//
+// Параметры:
+// РезультатПоиска - Структура:
+// * Выполнено - Булево
+// * ОписаниеОшибки - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачномСервисе(РезультатПоиска, Контекст) Экспорт
@@ -708,7 +731,8 @@
Процедура ПерейтиКВыборуТекущегоСертификатаПослеЗаполненияСвойствСертификата(Контекст)
Если СертификатПараметрыРеквизитов.Свойство("Наименование") Тогда
- Если СертификатПараметрыРеквизитов.Наименование.ТолькоПросмотр Тогда
+ ПараметрыРеквизитов = СертификатПараметрыРеквизитов; // см. СертификатПараметрыРеквизитов
+ Если ПараметрыРеквизитов.Наименование.ТолькоПросмотр Тогда
Элементы.СертификатНаименование.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЕсли;
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
index 3aef240a6..b01b2f53a 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl
@@ -11,7 +11,7 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
- СертификатПараметрыРеквизитов = Новый Структура;
+ СертификатПараметрыРеквизитов = СертификатПараметрыРеквизитов();
Если Параметры.Свойство("Организация") Тогда
СертификатПараметрыРеквизитов.Вставить("Организация", Параметры.Организация);
КонецЕсли;
@@ -55,6 +55,17 @@
КонецПроцедуры
+
+// Возвращаемое значение:
+// Структура:
+// * Организация
+//
+&НаКлиентеНаСервереБезКонтекста
+Функция СертификатПараметрыРеквизитов()
+ ПараметрыРеквизитов = Новый Структура;
+ Возврат ПараметрыРеквизитов;
+КонецФункции
+
&НаКлиенте
Процедура ПриОткрытии(Отказ)
@@ -280,6 +291,13 @@
КонецПроцедуры
// Продолжение процедуры Далее.
+//
+// Параметры:
+// Результат - Структура:
+// * ОписаниеОшибки - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ДалееПослеПоискаСертификатаВОблачномСервисе(Результат, Контекст) Экспорт
@@ -362,22 +380,24 @@
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОписаниеДанныхСертификата(
Форма.СертификатОписаниеДанных, СвойстваСертификата);
+ СертификатПараметрыРеквизитов = Форма.СертификатПараметрыРеквизитов; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатПараметрыРеквизитов
СохраненныеСвойства = СохраненныеСвойстваСертификата(
Форма.СертификатОтпечаток,
Форма.СертификатАдрес,
- Форма.СертификатПараметрыРеквизитов);
+ СертификатПараметрыРеквизитов);
- Если Форма.СертификатПараметрыРеквизитов.Свойство("Наименование") Тогда
- Если Форма.СертификатПараметрыРеквизитов.Наименование.ТолькоПросмотр Тогда
+ Если СертификатПараметрыРеквизитов.Свойство("Наименование") Тогда
+ НаименованиеСертификата = СертификатПараметрыРеквизитов.Наименование;
+ Если НаименованиеСертификата.ТолькоПросмотр Тогда
Элементы.СертификатНаименование.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЕсли;
Если Форма.ОпределяемыйТипОрганизацияНастроен Тогда
- Если Форма.СертификатПараметрыРеквизитов.Свойство("Организация") Тогда
- Если Не Форма.СертификатПараметрыРеквизитов.Организация.Видимость Тогда
+ Если СертификатПараметрыРеквизитов.Свойство("Организация") Тогда
+ Если Не СертификатПараметрыРеквизитов.Организация.Видимость Тогда
Элементы.СертификатОрганизация.Видимость = Ложь;
- ИначеЕсли Форма.СертификатПараметрыРеквизитов.Организация.ТолькоПросмотр Тогда
+ ИначеЕсли СертификатПараметрыРеквизитов.Организация.ТолькоПросмотр Тогда
Элементы.СертификатОрганизация.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЕсли;
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form
index 0ae56a503..34b740d37 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form
@@ -162,113 +162,27 @@
DontUse
-
- Пароль
- 316
- true
- true
-
- true
-
-
- Пароль
-
-
- OnChange
- ПарольПриИзменении
-
-
- ПарольРасширеннаяПодсказка
- 318
- Label
- true
- true
-
- Left
-
-
-
- ПарольКонтекстноеМеню
- 317
- true
-
- InputField
- Enter
- true
- Left
- true
-
- true
- true
- false
- true
- true
- true
- true
- Normal
-
-
- Страницы
- 416
-
- СтраницаЗапоминаниеПароля
- 418
-
- ЗапомнитьПароль
- 324
- true
- true
-
- true
-
-
- ЗапомнитьПароль
-
- Right
-
- ru
- Запомнить пароль сертификата до закрытия программы. При снятии флажка пароль стирается из памяти, если запоминался ранее.
-
- Button
-
- OnChange
- ЗапомнитьПарольПриИзменении
-
-
- ЗапомнитьПарольРасширеннаяПодсказка
- 326
- Label
- true
- true
-
- Left
-
-
-
- ЗапомнитьПарольКонтекстноеМеню
- 325
- true
-
- CheckBoxField
- Enter
- true
- Left
- true
-
-
+ ГруппаПароль
+ 454
+
+ Пароль
+ 316truetruetrue
-
- ru
- Страница запоминание пароля
-
+
+ Пароль
+
+
+ OnChange
+ ПарольПриИзменении
+
- СтраницаЗапоминаниеПароляРасширеннаяПодсказка
- 419
+ ПарольРасширеннаяПодсказка
+ 318Labeltruetrue
@@ -276,13 +190,106 @@
Left
- Page
-
- Vertical
- auto
- false
+
+ ПарольКонтекстноеМеню
+ 317
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ Normal
+
+ ЗапомнитьПароль
+ 324
+
+ ru
+ Запомнить на время сеанса
+
+ true
+ true
+
+ true
+
+
+ ЗапомнитьПароль
+
+ Right
+
+ ru
+ Запомнить пароль сертификата до закрытия программы. При снятии флажка пароль стирается из памяти, если запоминался ранее.
+
+ Button
+
+ OnChange
+ ЗапомнитьПарольПриИзменении
+
+
+ ЗапомнитьПарольРасширеннаяПодсказка
+ 326
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ЗапомнитьПарольКонтекстноеМеню
+ 325
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Пароль
+
+
+ ГруппаПарольРасширеннаяПодсказка
+ 455
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ AlwaysHorizontal
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+
+
+ Страницы
+ 416СтраницаПояснениеУсиленногоПароля438
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form
index dac516670..e7b831a97 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Form.form
@@ -535,9 +535,7 @@
48ru
- Показывает установлен ли сертификат в личный список (личное хранилище)
-на компьютере. Для подписания и расшифровки требуется, чтобы сертификат
-был установлен в личный список на компьютере и был связан с закрытым ключом.
+ Показывает установлен ли сертификат в личный список (личное хранилище) на компьютере. Для подписания и расшифровки требуется, чтобы сертификат был установлен в личный список на компьютере и был связан с закрытым ключом.Labeltrue
@@ -612,7 +610,7 @@
179ru
- Наличие сертификата (клиент)
+ Наличие сертификата (клиент)truetrue
@@ -970,8 +968,7 @@
59ru
- Показывает результат проверки данных сертификата
-с помощью программы электронной подписи и шифрования.
+ Показывает результат проверки данных сертификата с помощью программы электронной подписи и шифрования.
Данные сертификата, загруженные из файла сертификата или другим путем,
могут быть некорректны по разным причинам, но самые частые следующие:
@@ -1410,9 +1407,7 @@
23ru
- Показывает имеется ли на компьютере программа,
-указанная в сертификате для закрытого ключа,
-которая позволяет подписывать и расшифровывать данные.
+ Показывает имеется ли на компьютере программа, указанная в сертификате для закрытого ключа, которая позволяет подписывать и расшифровывать данные.Labeltrue
@@ -1877,9 +1872,7 @@
95ru
- Показывает возможность подписания данных закрытым ключом сертификата
-с помощью программы электронной подписи и шифрования.
-Требуется пароль.
+ Показывает возможность подписания данных закрытым ключом сертификата с помощью программы электронной подписи и шифрования. Требуется пароль.Labeltrue
@@ -2312,8 +2305,7 @@
106ru
- Показывает возможность проверки имеющейся подписи открытым ключом сертификата
-с помощью программы электронной подписи и шифрования.
+ Показывает возможность проверки имеющейся подписи открытым ключом сертификата с помощью программы электронной подписи и шифрования.
Label
@@ -2389,7 +2381,7 @@
267ru
- Проверка подписи (клиент)
+ Проверка подписи (клиент)truetrue
@@ -2747,8 +2739,7 @@
70ru
- Показывает возможность шифрования данных открытым ключом сертификата
-с помощью программы электронной подписи и шифрования.
+ Показывает возможность шифрования данных открытым ключом сертификата с помощью программы электронной подписи и шифрования.
Label
@@ -3182,9 +3173,7 @@
81ru
- Показывает возможность расшифровки данных закрытым ключом сертификата
-с помощью программы электронной подписи и шифрования.
-Требуется пароль.
+ Показывает возможность расшифровки данных закрытым ключом сертификата с помощью программы электронной подписи и шифрования. Требуется пароль.Labeltrue
@@ -4559,6 +4548,19 @@
true
+
+ ПроверкаВыполнена
+ 20
+
+ Boolean
+
+
+ true
+
+
+ true
+
+ Проверить
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl
index 525e01ecc..55e3d8989 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl
@@ -41,6 +41,7 @@
Параметры.ОбъединятьРезультаты, "НеОбъединять");
Если Параметры.РезультатПроверки <> Неопределено Тогда
+ ПроверкаВыполнена = Истина;
ПроверкиНаКлиенте = Параметры.РезультатПроверки.ПроверкиНаКлиенте;
ПроверкиНаСервере = Параметры.РезультатПроверки.ПроверкиНаСервере;
КонецЕсли;
@@ -111,8 +112,10 @@
Элементы[Проверка + "РешениеКлиент"].Видимость = Ложь;
Элементы[Проверка + "РешениеСервер"].Видимость = Ложь;
- Элементы[Проверка + "Надпись"].Заголовок =
- СтандартныйЗаголовокЭлемента(Проверка + "Надпись");
+ ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
+ Проверка + "Надпись",
+ "Заголовок",
+ СтандартныйЗаголовокЭлемента(Проверка + "Надпись"));
Если ПроверкиНаКлиенте <> Неопределено Тогда
ВывестиРезультатПроверки(Проверка);
@@ -188,15 +191,15 @@
&НаКлиенте
Процедура Подключаемый_НадписьНажатие(Элемент)
+ ИмяОшибки = Лев(Элемент.Имя, СтрДлина(Элемент.Имя) - СтрДлина("Надпись")) + "Ошибка";
+
ПараметрыПредупреждения = Новый Структура;
ПараметрыПредупреждения.Вставить("ЗаголовокПредупреждения",
СтандартныйЗаголовокЭлемента(Элемент.Имя));
ПараметрыПредупреждения.Вставить("ТекстОшибкиКлиент",
- ПроверкиНаКлиенте[Лев(Элемент.Имя, СтрДлина(Элемент.Имя) - 7) + "Ошибка"]);
-
- ТекстОшибкиСервер = ?(Не ОперацииНаСервере, "",
- ПроверкиНаСервере[Лев(Элемент.Имя, СтрДлина(Элемент.Имя) - 7) + "Ошибка"]);
- ПараметрыПредупреждения.Вставить("ТекстОшибкиСервер", ТекстОшибкиСервер);
+ ПроверкиНаКлиенте[ИмяОшибки]);
+ ПараметрыПредупреждения.Вставить("ТекстОшибкиСервер",
+ ?(Не ОперацииНаСервере, "", ПроверкиНаСервере[ИмяОшибки]));
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки",
ПараметрыПредупреждения, ЭтотОбъект);
@@ -246,6 +249,13 @@
Процедура ИнформацияДляПоддержкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
+ Если Не ПроверкаВыполнена Тогда
+
+ ПоказатьПредупреждение(,
+ НСтр("ru = 'Для сбора технической информации о возникшей проблеме необходимо выполнить проверку сертификата.'"));
+ Возврат;
+
+ КонецЕсли;
СоставПроверок = СтандартныеПроверки();
Для Каждого Проверка Из ДополнительныеПроверки Цикл
@@ -469,8 +479,9 @@
&НаКлиенте
Процедура ПроверитьНаСторонеКлиента(Оповещение)
- Контекст = Новый Структура("Оповещение", Оповещение);
+ ПроверкаВыполнена = Истина;
+ Контекст = Новый Структура("Оповещение", Оповещение);
Если СтандартныеПроверки Тогда
ЭлектроннаяПодписьКлиент.УстановитьРасширение(Ложь, Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект, Контекст),
@@ -542,8 +553,6 @@
Процедура ПроверитьНаСторонеКлиентаПослеИнициализацииСертификата(СертификатКриптографии, Контекст) Экспорт
Контекст.Вставить("СертификатКриптографии", СертификатКриптографии);
-
- // Законный сертификат
ПроверитьЗаконныйСертификатНаКлиенте(Контекст);
// Наличие сертификата в личном списке.
@@ -565,7 +574,7 @@
Процедура ПроверитьЗаконныйСертификатНаКлиенте(Контекст)
Если Не Элементы.ГруппаЗаконныйСертификат.Видимость
- Или Контекст.СертификатКриптографии.Субъект.Свойство("SN") Тогда
+ Или Контекст.СертификатКриптографии.Субъект.Свойство("SN") Тогда
ОписаниеОшибки = "";
Иначе
@@ -600,6 +609,12 @@
КонецПроцедуры
// Продолжение процедуры ПроверитьНаСторонеКлиента.
+//
+// Параметры:
+// Результат - Структура:
+// * ОписаниеОшибки - Структура:
+// ** Описание - Строка
+//
&НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеПоискаСертификатаВМоделиСервиса(Результат, Контекст) Экспорт
@@ -673,6 +688,13 @@
КонецПроцедуры
// Продолжение процедуры ПроверитьНаСторонеКлиента.
+//
+// Параметры:
+// Результат - Структура:
+// * ИнформацияОбОшибке - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеПроверкиСертификатаВМоделиСервиса(Результат, Контекст) Экспорт
@@ -803,6 +825,13 @@
КонецПроцедуры
// Продолжение процедуры ПроверитьНаСторонеКлиента.
+//
+// Параметры:
+// ДанныеПодписи - Структура:
+// * ИнформацияОбОшибке - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеПодписанияВМоделиСервиса(ДанныеПодписи, Контекст) Экспорт
@@ -864,6 +893,13 @@
КонецПроцедуры
// Продолжение процедуры ПроверитьНаСторонеКлиента.
+//
+// Параметры:
+// Результат - Структура:
+// * ИнформацияОбОшибке - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеПроверкиПодписиВМоделиСервиса(Результат, Контекст) Экспорт
@@ -918,6 +954,13 @@
КонецПроцедуры
// Продолжение процедуры ПроверитьНаСторонеКлиента.
+//
+// Параметры:
+// Результат - Структура:
+// * ИнформацияОбОшибке - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеШифрованияВМоделиСервиса(Результат, Контекст) Экспорт
@@ -971,6 +1014,13 @@
КонецПроцедуры
// Продолжение процедуры ПроверитьНаСторонеКлиента.
+//
+// Параметры:
+// Результат - Структура:
+// * ИнформацияОбОшибке - Структура:
+// ** Описание - Строка
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеРасшифровкиВМоделиСервиса(Результат, Контекст) Экспорт
@@ -1064,18 +1114,17 @@
&НаСервере
Процедура ПроверитьНаСторонеСервера(Знач ЗначениеПароля)
+ ПроверкаВыполнена = Истина;
+
ДанныеСертификата = ПолучитьИзВременногоХранилища(АдресСертификата);
АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
Попытка
СертификатКриптографии = Новый СертификатКриптографии(ДанныеСертификата);
Исключение
-
УстановитьЭлемент(ЭтотОбъект, ИмяПервойПроверки, Истина,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), Истина, ОбъединятьРезультаты);
-
Возврат;
-
КонецПопытки;
// Законный сертификат
@@ -1230,6 +1279,7 @@
КонецПроцедуры
+
&НаСервере
Процедура ПроверитьНаСторонеСервераДополнительныеПроверки(ЗначениеПароля, МенеджерКриптографии = Неопределено)
@@ -1239,6 +1289,7 @@
ОписаниеОшибки = "";
ЭтоПредупреждение = Ложь;
Попытка
+
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("Сертификат", Сертификат);
ПараметрыВыполнения.Вставить("Проверка", ЭлементСписка.Имя);
@@ -1285,12 +1336,12 @@
Суффикс = ?(НаСервере, "Сервер", "Клиент");
ГруппаРешение = ГруппаФормыБезОтображения(
- ИмяПроверки + "Решение" + Суффикс, Родитель);
+ ИмяПроверки + ?(НаСервере, "РешениеСервер", "РешениеКлиент"), Родитель);
- ДобавитьКартинку(ИмяПроверки + "Решение" + Суффикс + "Картинка",
- ГруппаРешение, БиблиотекаКартинок["Компьютер" + Суффикс]);
+ ДобавитьКартинку(ИмяПроверки + ?(НаСервере, "РешениеСерверКартинка", "РешениеКлиентКартинка"),
+ ГруппаРешение, БиблиотекаКартинок[?(НаСервере, "КомпьютерСервер", "КомпьютерКлиент")]);
- Надпись = Элементы.Добавить(ИмяПроверки + "Решение" + Суффикс + "Надпись",
+ Надпись = Элементы.Добавить(ИмяПроверки + ?(НаСервере, "РешениеСерверНадпись", "РешениеКлиентНадпись"),
Тип("ДекорацияФормы"), ГруппаРешение);
Надпись.ЦветТекста = ЦветаСтиля.ПоясняющийТекст;
@@ -1356,18 +1407,18 @@
Процедура УстановитьЭлемент(Форма, НачалоЭлемента, НаСервере,
ОписаниеОшибки = Неопределено, ЭтоОшибка = Ложь, ОбъединятьРезультаты = "НеОбъединять")
- ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"];
+ ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // Label
Если ОбъединятьРезультаты = "ОбъединятьПоИ"
Или ОбъединятьРезультаты = "ОбъединятьПоИли" Тогда
- ЭлементКартинка = Форма.Элементы[НачалоЭлемента + "НаКлиентеКартинка"];
+ ЭлементКартинка = Форма.Элементы[НачалоЭлемента + "НаКлиентеКартинка"]; // ДекорацияФормы
Иначе
ЭлементКартинка = Форма.Элементы[НачалоЭлемента
- + ?(НаСервере, "НаСервере", "НаКлиенте") + "Картинка"];
+ + ?(НаСервере, "НаСервереКартинка", "НаКлиентеКартинка")]; // ДекорацияФормы
КонецЕсли;
-
- Проверки = Форма["Проверки" + ?(НаСервере, "НаСервере", "НаКлиенте")];
- ПроверкиВторогоКонтекста = Форма["Проверки" + ?(НаСервере, "НаКлиенте", "НаСервере")];
+
+ Проверки = Форма[?(НаСервере, "ПроверкиНаСервере", "ПроверкиНаКлиенте")];
+ ПроверкиВторогоКонтекста = Форма[?(НаСервере, "ПроверкиНаКлиенте", "ПроверкиНаСервере")];
ЗначениеПроверкиВторогоКонтекста = Неопределено;
Если ТипЗнч(ПроверкиВторогоКонтекста) = Тип("Структура")
@@ -1377,7 +1428,6 @@
КонецЕсли;
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
-
ЗначениеПроверки = Ложь;
РезультатПроверки = ЗначениеПроверки;
Если ОбъединятьРезультаты = "ОбъединятьПоИли"
@@ -1387,7 +1437,6 @@
КонецЕсли;
Если Не РезультатПроверки Тогда
-
ЭлементКартинка.Картинка = ?(ЭтоОшибка,
БиблиотекаКартинок.ПроверкаСертификатаОшибка,
БиблиотекаКартинок.ПроверкаСертификатаПредупреждение);
@@ -1399,18 +1448,17 @@
ОписаниеИзвестнойОшибки = ОшибкаПоКлассификатору(ОписаниеОшибки);
ЭтоИзвестнаяОшибка = ОписаниеИзвестнойОшибки <> Неопределено;
- ИмяГруппыРешение = НачалоЭлемента + "Решение" + ?(НаСервере, "Сервер", "Клиент");
+ ИмяГруппыРешение = НачалоЭлемента + ?(НаСервере, "РешениеСервер", "РешениеКлиент");
Форма.Элементы[ИмяГруппыРешение].Видимость = ЭтоИзвестнаяОшибка;
Если ЭтоИзвестнаяОшибка Тогда
- Форма.Элементы[ИмяГруппыРешение + "Надпись"].Заголовок = ОписаниеИзвестнойОшибки.Решение;
+ ИмяГруппыРешениеНадпись = НачалоЭлемента + ?(НаСервере, "РешениеСерверНадпись", "РешениеКлиентНадпись");
+ ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
+ ИмяГруппыРешениеНадпись, "Заголовок", ОписаниеИзвестнойОшибки.Решение);
КонецЕсли;
-
КонецЕсли;
-
Иначе
-
ЭлементРешение = Форма.Элементы[НачалоЭлемента
- + "Решение" + ?(НаСервере, "Сервер", "Клиент")];
+ + ?(НаСервере, "РешениеСервер", "РешениеКлиент")];
ЗначениеПроверки = ?(ОписаниеОшибки = Неопределено, Неопределено, Истина);
Если (ОбъединятьРезультаты = "ОбъединятьПоИ"
Или ОбъединятьРезультаты = "ОбъединятьПоИли") Тогда
@@ -1423,7 +1471,8 @@
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка не выполнялась.'");
ЭлементНадпись.Гиперссылка = Ложь;
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
- Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
+ Форма.ДополнительныеПроверки,
+ ЭлементНадпись.Имя);
ИначеЕсли ЗначениеПроверки = Неопределено
И ЗначениеПроверкиВторогоКонтекста <> Неопределено Тогда
@@ -1431,7 +1480,6 @@
Проверки.Вставить(НачалоЭлемента, ЗначениеПроверки);
Проверки.Вставить(НачалоЭлемента + "Ошибка",
?(ОписаниеОшибки = Неопределено, "", ОписаниеОшибки));
-
Возврат;
ИначеЕсли ЗначениеПроверки <> Неопределено
@@ -1443,28 +1491,21 @@
ЭлементНадпись.Гиперссылка = Ложь;
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
-
Иначе
-
РезультатПроверки = ?(ОбъединятьРезультаты = "ОбъединятьПоИ",
ЗначениеПроверки И ЗначениеПроверкиВторогоКонтекста,
ЗначениеПроверки Или ЗначениеПроверкиВторогоКонтекста);
Если РезультатПроверки Тогда
-
ЭлементРешение.Видимость = Ложь;
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаУспех;
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
ЭлементНадпись.Гиперссылка = Ложь;
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
-
КонецЕсли;
-
КонецЕсли;
-
Иначе
-
ЭлементКартинка.Картинка = ?(ОписаниеОшибки = Неопределено,
БиблиотекаКартинок.ПроверкаСертификатаНеВыполнялась,
БиблиотекаКартинок.ПроверкаСертификатаУспех);
@@ -1480,17 +1521,14 @@
ЭлементНадпись.Гиперссылка = Ложь;
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
-
КонецЕсли;
-
КонецЕсли;
-
КонецЕсли;
Проверки.Вставить(НачалоЭлемента, ЗначениеПроверки);
Проверки.Вставить(НачалоЭлемента + "Ошибка",
?(ОписаниеОшибки = Неопределено, "", ОписаниеОшибки));
-
+
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
@@ -1518,18 +1556,25 @@
Если ИмяЭлемента = "ЗаконныйСертификатНадпись" Тогда
Возврат НСтр("ru = 'Соответствие законодательству Российской Федерации'");
+
ИначеЕсли ИмяЭлемента = "НаличиеСертификатаНадпись" Тогда
Возврат НСтр("ru = 'Наличие сертификата в личном списке'");
+
ИначеЕсли ИмяЭлемента = "ДанныеСертификатаНадпись" Тогда
Возврат НСтр("ru = 'Корректность данных сертификата'");
+
ИначеЕсли ИмяЭлемента = "НаличиеПрограммыНадпись" Тогда
Возврат НСтр("ru = 'Наличие программы для подписания и расшифровки'");
+
ИначеЕсли ИмяЭлемента = "ПодписаниеНадпись" Тогда
Возврат НСтр("ru = 'Подписание данных'");
+
ИначеЕсли ИмяЭлемента = "ПроверкаПодписиНадпись" Тогда
Возврат НСтр("ru = 'Проверка созданной подписи'");
+
ИначеЕсли ИмяЭлемента = "ШифрованиеНадпись" Тогда
Возврат НСтр("ru = 'Шифрование данных'");
+
ИначеЕсли ИмяЭлемента = "РасшифровкаНадпись" Тогда
Возврат НСтр("ru = 'Расшифровка данных'");
Иначе
@@ -1543,12 +1588,12 @@
&НаКлиенте
Процедура ДополнитьТекстОшибками(ТекстОшибок, Проверки, НаСервере = Ложь)
- СоставПроверок = ЭтотОбъект["Проверки" + ?(НаСервере, "НаСервере", "НаКлиенте")];
+ СоставПроверок = ЭтотОбъект[?(НаСервере, "ПроверкиНаСервере", "ПроверкиНаКлиенте")];
Для Каждого Проверка Из Проверки Цикл
Если СоставПроверок = Неопределено Тогда
ТекстОшибок = ТекстОшибок + Проверка + ": "
- + НСтр("ru = 'Не запускалась'") + Символы.ПС;
+ + НСтр("ru = 'Не выполнялась, так как не требуется (не настроено)'") + Символы.ПС;
Иначе
РезультатПроверки = ?(СоставПроверок.Свойство(Проверка),
@@ -1558,7 +1603,7 @@
ПроверкиНаКлиенте[Проверка + "Ошибка"], "");
ТекстОшибок = ТекстОшибок + Проверка + ": "
- + ?(РезультатПроверки = Неопределено, НСтр("ru = 'Не выполнялась'"),
+ + ?(РезультатПроверки = Неопределено, НСтр("ru = 'Не выполнялась из-за предыдущих ошибок'"),
Формат(РезультатПроверки, НСтр("ru = 'БЛ=Ошибка; БИ=Успех'")))
+ ?(ПустаяСтрока(ТекстОшибкиПроверки), "", ": ") + ТекстОшибкиПроверки + Символы.ПС;
@@ -1571,7 +1616,7 @@
&НаСервереБезКонтекста
Функция ОшибкаПоКлассификатору(ОписаниеОшибки)
- Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ОписаниеОшибки);
+ Возврат ЭлектроннаяПодпись.ОшибкаПоКлассификатору(ОписаниеОшибки);
КонецФункции
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl
index 510e61933..c57746029 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl
@@ -591,8 +591,8 @@
КонецФункции
// Возвращаемое значение:
-// Структура - со свойствами:
-// * Ссылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - .
+// Структура:
+// * Ссылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
&НаКлиенте
Функция ОписаниеОбъекта(ЭлементДанных)
@@ -620,7 +620,7 @@
КонецПроцедуры
// Параметры:
-// ОписаниеОбъектов - Массив из см. ОписаниеОбъекта - .
+// ОписаниеОбъектов - Массив из см. ОписаниеОбъекта
//
&НаСервереБезКонтекста
Процедура ЗаписатьСертификатыШифрованияНаСервере(ОписаниеОбъектов, ИдентификаторФормы, Ошибка)
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl
index ea4239bef..4eb84c9b9 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl
@@ -109,8 +109,9 @@
Продолжить;
КонецЕсли;
+ Элемент = Элементы[ИмяРеквизита]; // ПолеФормы
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле %1 не заполнено.'"),
- Элементы[ИмяРеквизита].Заголовок);
+ Элемент.Заголовок);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения,, ИмяРеквизита,, Отказ);
КонецЦикла;
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl
index 6260721ca..563e66a65 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl
@@ -339,7 +339,7 @@
ДанныеСертификата = Выборка.ДанныеСертификата.Получить();
Если ТипЗнч(ДанныеСертификата) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Данные сертификата ""%1"" не найдены в справочнике'"), Выборка.Представление);
+ НСтр("ru = 'Данные сертификата ""%1"" не существуют в справочнике'"), Выборка.Представление);
КонецЕсли;
Попытка
СертификатКриптографии = Новый СертификатКриптографии(ДанныеСертификата);
@@ -534,8 +534,8 @@
// Продолжение процедуры ЗаполнитьПрограммуШифрования.
//
// Параметры:
-// Контекст - Структура - со свойствами:
-// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - .
+// Контекст - Структура:
+// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
&НаКлиенте
Процедура ЗаполнитьПрограммуШифрованияЦиклНачало(Контекст)
@@ -565,8 +565,8 @@
// Продолжение процедуры ЗаполнитьПрограммуШифрования.
//
// Параметры:
-// Контекст - Структура - со свойствами:
-// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - .
+// Контекст - Структура:
+// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
&НаКлиенте
Процедура ЗаполнитьПрограммуШифрованияПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт
@@ -599,8 +599,8 @@
// Продолжение процедуры ЗаполнитьПрограммуШифрования.
//
// Параметры:
-// Контекст - Структура - со свойствами:
-// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - .
+// Контекст - Структура:
+// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
&НаКлиенте
Процедура ЗаполнитьПрограммуШифрованияПослеШифрования(ЗашифрованныеДанные, Контекст) Экспорт
@@ -945,7 +945,7 @@
ДанныеСертификата = Выборка.ДанныеСертификата.Получить();
Если ТипЗнч(ДанныеСертификата) <> Тип("ДвоичныеДанные") Тогда
- ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Данные сертификата ""%1"" не найдены в справочнике'"),
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Данные сертификата ""%1"" не существует в справочнике'"),
Выборка.Наименование);
КонецЕсли;
@@ -996,8 +996,8 @@
КонецФункции
// Возвращаемое значение:
-// Структура - со свойствами:
-// * Ссылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - .
+// Структура:
+// * Ссылка - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
//
&НаКлиенте
Функция ОписаниеОбъекта(ЭлементДанных)
@@ -1025,7 +1025,7 @@
КонецПроцедуры
// Параметры:
-// ОписаниеОбъектов - Массив из см. ОписаниеОбъекта - .
+// ОписаниеОбъектов - Массив из см. ОписаниеОбъекта
//
&НаСервереБезКонтекста
Процедура ЗаписатьСертификатыШифрованияНаСервере(ОписаниеОбъектов, АдресСертификатов, ИдентификаторФормы, Ошибка)
diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl
index b460662e0..123730941 100644
--- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
НеРедактируемыеРеквизиты = Новый Массив;
diff --git a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl
index 5e55090c0..eb31279f0 100644
--- a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss
new file mode 100644
index 000000000..3c82ef846
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss
@@ -0,0 +1,21 @@
+
+
+
+ Normal
+ dfcece9d-5077-440b-b6b3-45a5cb4538eb
+
+
+
+ РеквизитДопУпорядочивания
+ Asc
+
+ Normal
+ 88619765-ccb3-46c6-ac52-38e9c992ebd4
+
+
+ Normal
+ b75fecce-942b-4aed-abc9-e6a02e460fb3
+
+ Normal
+ 911b6018-f537-43e8-a417-da56b22f9aec
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбора/Form.form
new file mode 100644
index 000000000..fc09a23f2
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбора/Form.form
@@ -0,0 +1,338 @@
+
+
+
+ СписокКомпоновщикНастроекПользовательскиеНастройки
+ 1
+ true
+ true
+
+ true
+
+
+ ru
+ Группа пользовательских настроек
+
+ false
+
+ СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка
+ 2
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
+
+
+
+ Список
+ 3
+
+ ru
+ Список
+
+ true
+ true
+
+ true
+
+
+ Список
+
+ true
+ None
+
+ Ссылка
+ 19
+
+ ru
+ Ссылка
+
+ true
+
+
+ Список.Ссылка
+
+
+ СсылкаРасширеннаяПодсказка
+ 21
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СсылкаКонтекстноеМеню
+ 20
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ Наименование
+ 16
+ true
+ true
+
+ true
+
+
+ Список.Наименование
+
+ true
+
+ НаименованиеРасширеннаяПодсказка
+ 18
+ Label
+ true
+ true
+
+ Left
+
+
+
+ НаименованиеКонтекстноеМеню
+ 17
+ true
+
+ LabelField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+
+
+ None
+
+ СписокКоманднаяПанель
+ 5
+ Left
+
+
+ СписокСтрокаПоиска
+ 7
+
+ СписокСтрокаПоискаРасширеннаяПодсказка
+ 9
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСтрокаПоискаКонтекстноеМеню
+ 8
+ true
+
+ Список
+
+ true
+
+
+
+ СписокСостояниеПросмотра
+ 10
+
+ СписокСостояниеПросмотраРасширеннаяПодсказка
+ 12
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостояниеПросмотраКонтекстноеМеню
+ 11
+ true
+
+ ViewStatusAddition
+ Список
+
+ true
+
+
+
+ СписокУправлениеПоиском
+ 13
+
+ СписокУправлениеПоискомРасширеннаяПодсказка
+ 15
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокУправлениеПоискомКонтекстноеМеню
+ 14
+ true
+
+ SearchControlAddition
+ Список
+
+ true
+
+
+
+ СписокРасширеннаяПодсказка
+ 6
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокКонтекстноеМеню
+ 4
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ MultiRow
+ true
+ 1
+ 1
+ AutoUse
+ AutoUse
+ true
+ true
+ Auto
+ Auto
+ ExpandTopLevel
+ true
+ true
+ true
+ AsFileRef
+
+ Список.Картинка
+
+
+ CommonPicture.КоллекцияПиктограммНаличиеОригиналаПервичногоДокумента
+
+ true
+
+ 60
+
+ 0001-01-01T00:00:00
+ 0001-01-01T00:00:00
+
+
+ true
+ true
+ СписокКомпоновщикНастроекПользовательскиеНастройки
+
+
+
+ ФормаКоманднаяПанель
+ -1
+ Left
+ true
+
+ LockOwner
+ true
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ Список
+
+ ru
+ Список
+
+ 1
+
+ DynamicList
+
+
+ true
+
+
+ true
+
+
+ Список.Ссылка
+
+ true
+
+ ВЫБРАТЬ
+ СправочникСостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка,
+ СправочникСостоянияОригиналовПервичныхДокументов.ПометкаУдаления КАК ПометкаУдаления,
+ СправочникСостоянияОригиналовПервичныхДокументов.Код КАК Код,
+ СправочникСостоянияОригиналовПервичныхДокументов.Наименование КАК Наименование,
+ СправочникСостоянияОригиналовПервичныхДокументов.Описание КАК Описание,
+ СправочникСостоянияОригиналовПервичныхДокументов.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
+ СправочникСостоянияОригиналовПервичныхДокументов.Предопределенный КАК Предопределенный,
+ СправочникСостоянияОригиналовПервичныхДокументов.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
+ ВЫБОР
+ КОГДА СправочникСостоянияОригиналовПервичныхДокументов.Ссылка = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)
+ ТОГДА 1
+ КОГДА СправочникСостоянияОригиналовПервичныхДокументов.Ссылка = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана)
+ ТОГДА 0
+ КОГДА СправочникСостоянияОригиналовПервичныхДокументов.ПометкаУдаления
+ ТОГДА 4
+ ИНАЧЕ 3
+ КОНЕЦ КАК Картинка
+ИЗ
+ Справочник.СостоянияОригиналовПервичныхДокументов КАК СправочникСостоянияОригиналовПервичныхДокументов
+ГДЕ
+ Не СправочникСостоянияОригиналовПервичныхДокументов.Ссылка = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе)
+ И НЕ СправочникСостоянияОригиналовПервичныхДокументов.ПометкаУдаления
+ Catalog.СостоянияОригиналовПервичныхДокументов
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Form.form b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Form.form
new file mode 100644
index 000000000..3c728329c
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Form.form
@@ -0,0 +1,431 @@
+
+
+
+ ru
+ Состояния оригиналов первичных документов
+
+
+ СписокСостоянийОригинала
+ 1
+
+ ru
+ Список состояний оригинала
+
+ true
+ true
+
+ true
+
+
+ СписокСостоянийОригинала
+
+ None
+
+ СписокСостоянийОригиналаПометка
+ 19
+ true
+ true
+
+ true
+
+
+ СписокСостоянийОригинала.Check
+
+
+ СписокСостоянийОригиналаПометкаРасширеннаяПодсказка
+ 21
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостоянийОригиналаПометкаКонтекстноеМеню
+ 20
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
+
+ СписокСостоянийОригиналаЗначение
+ 14
+ true
+ true
+
+ true
+
+
+ СписокСостоянийОригинала.Value
+
+
+ СписокСостоянийОригиналаЗначениеРасширеннаяПодсказка
+ 16
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостоянийОригиналаЗначениеКонтекстноеМеню
+ 15
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ СписокСостоянийОригиналаКоманднаяПанель
+ 3
+ Left
+
+
+ СписокСостоянийОригиналаСтрокаПоиска
+ 5
+
+ СписокСостоянийОригиналаСтрокаПоискаРасширеннаяПодсказка
+ 7
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостоянийОригиналаСтрокаПоискаКонтекстноеМеню
+ 6
+ true
+
+ СписокСостоянийОригинала
+
+ true
+
+
+
+ СписокСостоянийОригиналаСостояниеПросмотра
+ 8
+
+ СписокСостоянийОригиналаСостояниеПросмотраРасширеннаяПодсказка
+ 10
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостоянийОригиналаСостояниеПросмотраКонтекстноеМеню
+ 9
+ true
+
+ ViewStatusAddition
+ СписокСостоянийОригинала
+
+ true
+
+
+
+ СписокСостоянийОригиналаУправлениеПоиском
+ 11
+
+ СписокСостоянийОригиналаУправлениеПоискомРасширеннаяПодсказка
+ 13
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостоянийОригиналаУправлениеПоискомКонтекстноеМеню
+ 12
+ true
+
+ SearchControlAddition
+ СписокСостоянийОригинала
+
+ true
+
+
+
+ СписокСостоянийОригиналаРасширеннаяПодсказка
+ 4
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостоянийОригиналаКонтекстноеМеню
+ 2
+ true
+
+ true
+ true
+ true
+ true
+ true
+ MultiRow
+ 1
+ 1
+ AutoUse
+ AutoUse
+ true
+ true
+ false
+ false
+ false
+ true
+ Auto
+ Auto
+ true
+ true
+ AsFileRef
+
+ СписокСостоянийОригинала.Picture
+
+ true
+
+
+ ФормаКоманднаяПанель
+ -1
+
+ СписокСостоянийОригиналаВыбрать
+ 17
+ true
+ true
+
+ true
+
+
+ СписокСостоянийОригиналаВыбратьРасширеннаяПодсказка
+ 18
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.Выбрать
+ Auto
+ true
+ true
+ true
+ UserCmds
+ Auto
+
+
+ ГруппаУстСнятьФлажкиВидДокумента
+ 26
+
+ УстановитьВсеФлажки
+ 22
+ true
+ true
+
+ true
+
+
+ УстановитьВсеФлажкиРасширеннаяПодсказка
+ 23
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.УстановитьВсеФлажки
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+
+ СнятьВсеФлажки
+ 24
+ true
+ true
+
+ true
+
+
+ СнятьВсеФлажкиРасширеннаяПодсказка
+ 25
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.СнятьВсеФлажки
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ true
+ true
+
+ true
+
+
+ ru
+ Уст снять флажки вид документа
+
+
+ ГруппаУстСнятьФлажкиВидДокументаРасширеннаяПодсказка
+ 27
+ Label
+ true
+ true
+
+ Left
+
+
+
+
+ Left
+ true
+
+
+ OnCreateAtServer
+ ПриСозданииНаСервере
+
+ LockOwner
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ СписокСостоянийОригинала
+
+ ru
+ Список состояний оригинала
+
+ 1
+
+ ValueList
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+ Выбрать
+
+ ru
+ Выбрать
+
+ 1
+
+ ru
+ Выбрать
+
+
+
+
+ Выбрать
+
+
+ Auto
+ Auto
+
+
+ УстановитьВсеФлажки
+
+ ru
+ Установить все флажки
+
+ 2
+
+ ru
+ Установить все флажки
+
+
+
+ StdPicture.CheckAll
+
+
+
+ УстановитьВсеФлажки
+
+
+ Auto
+ Auto
+
+
+ СнятьВсеФлажки
+
+ ru
+ Снять все флажки
+
+ 3
+
+ ru
+ Снять все флажки
+
+
+
+ StdPicture.UncheckAll
+
+
+
+ СнятьВсеФлажки
+
+
+ Auto
+ Auto
+
+
+
+
+
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl
new file mode 100644
index 000000000..052c43a4a
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаВыбораСостояния/Module.bsl
@@ -0,0 +1,61 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ СостоянияОригинала = УчетОригиналовПервичныхДокументов.ВсеСостояния();
+ Для Каждого Состояние Из СостоянияОригинала Цикл
+ СписокСостоянийОригинала.Добавить(Состояние,,Ложь);
+ КонецЦикла;
+ СписокСостоянийОригинала.Добавить(НСтр("ru='<Состояние неизвестно>'"),,Ложь);
+
+ Если Параметры.Свойство("СписокСостояний") Тогда
+ Для Каждого Состояние Из Параметры.СписокСостояний Цикл
+ НайденноеСостояние = СписокСостоянийОригинала.НайтиПоЗначению(Состояние.Значение);
+ Если Не НайденноеСостояние = Неопределено Тогда
+ НайденноеСостояние.Пометка=Истина;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура Выбрать(Команда)
+
+ ОповеститьОВыборе(СписокСостоянийОригинала);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура УстановитьВсеФлажки(Команда)
+
+ Для Каждого ТекущийОтбор Из СписокСостоянийОригинала Цикл
+ ТекущийОтбор.Пометка = Истина;
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СнятьВсеФлажки(Команда)
+
+ Для Каждого ТекущийОтбор Из СписокСостоянийОригинала Цикл
+ ТекущийОтбор.Пометка = Ложь;
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss
new file mode 100644
index 000000000..3c82ef846
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss
@@ -0,0 +1,21 @@
+
+
+
+ Normal
+ dfcece9d-5077-440b-b6b3-45a5cb4538eb
+
+
+
+ РеквизитДопУпорядочивания
+ Asc
+
+ Normal
+ 88619765-ccb3-46c6-ac52-38e9c992ebd4
+
+
+ Normal
+ b75fecce-942b-4aed-abc9-e6a02e460fb3
+
+ Normal
+ 911b6018-f537-43e8-a417-da56b22f9aec
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Form.form
new file mode 100644
index 000000000..3ca006b81
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Form.form
@@ -0,0 +1,369 @@
+
+
+
+ СписокКомпоновщикНастроекПользовательскиеНастройки
+ 1
+ true
+ true
+
+ true
+
+
+ ru
+ Группа пользовательских настроек
+
+ false
+
+ СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка
+ 2
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ WeakSeparation
+ true
+ true
+ Auto
+ Auto
+
+
+
+ Список
+ 3
+
+ ru
+ Список
+
+ true
+ true
+
+ true
+
+
+ Список
+
+ true
+ None
+
+ Ссылка
+ 26
+
+ ru
+ Ссылка
+
+ true
+
+
+ Список.Ссылка
+
+
+ СсылкаРасширеннаяПодсказка
+ 28
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СсылкаКонтекстноеМеню
+ 27
+ true
+
+ LabelField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+
+
+
+ Наименование
+ 23
+ true
+ true
+
+ true
+
+
+ Список.Наименование
+
+
+ НаименованиеРасширеннаяПодсказка
+ 25
+ Label
+ true
+ true
+
+ Left
+
+
+
+ НаименованиеКонтекстноеМеню
+ 24
+ true
+
+ LabelField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+
+
+ None
+
+ СписокКоманднаяПанель
+ 5
+ Left
+
+
+ OnChange
+ СписокПриИзменении
+
+
+ СписокСтрокаПоиска
+ 7
+
+ СписокСтрокаПоискаРасширеннаяПодсказка
+ 9
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСтрокаПоискаКонтекстноеМеню
+ 8
+ true
+
+ Список
+
+ true
+
+
+
+ СписокСостояниеПросмотра
+ 10
+
+ СписокСостояниеПросмотраРасширеннаяПодсказка
+ 12
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокСостояниеПросмотраКонтекстноеМеню
+ 11
+ true
+
+ ViewStatusAddition
+ Список
+
+ true
+
+
+
+ СписокУправлениеПоиском
+ 13
+
+ СписокУправлениеПоискомРасширеннаяПодсказка
+ 15
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокУправлениеПоискомКонтекстноеМеню
+ 14
+ true
+
+ SearchControlAddition
+ Список
+
+ true
+
+
+
+ СписокРасширеннаяПодсказка
+ 6
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СписокКонтекстноеМеню
+ 4
+ true
+
+ true
+ true
+ true
+ true
+ true
+ MultiRow
+ true
+ 1
+ 1
+ AutoUse
+ AutoUse
+ true
+ true
+ Auto
+ Auto
+ ExpandTopLevel
+ true
+ true
+ true
+ AsFileRef
+
+ Список.Картинка
+
+
+ CommonPicture.ПиктограммыЭлементовСправочникаСостоянияОригиналовПервичныхДокументов
+
+ true
+
+ 60
+
+ 0001-01-01T00:00:00
+ 0001-01-01T00:00:00
+
+
+ true
+ true
+ СписокКомпоновщикНастроекПользовательскиеНастройки
+
+
+
+ ФормаКоманднаяПанель
+ -1
+
+ НастройкаПорядкаЭлементов
+ 21
+ true
+ true
+
+ true
+
+
+ ru
+ Настройка порядка элементов
+
+
+ НастройкаПорядкаЭлементовРасширеннаяПодсказка
+ 22
+ Label
+ true
+ true
+
+ Left
+
+
+
+ Compact
+
+
+ Left
+ true
+
+
+ OnCreateAtServer
+ ПриСозданииНаСервере
+
+ DontBlock
+ true
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ Список
+ 1
+
+ DynamicList
+
+
+ true
+
+
+ true
+
+
+ Список.ИмяПредопределенныхДанных
+
+
+ Список.Предопределенный
+
+
+ Список.РеквизитДопУпорядочивания
+
+
+ Список.Ссылка
+
+ true
+
+ ВЫБРАТЬ
+ СправочникСостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка,
+ СправочникСостоянияОригиналовПервичныхДокументов.ПометкаУдаления КАК ПометкаУдаления,
+ СправочникСостоянияОригиналовПервичныхДокументов.Код КАК Код,
+ СправочникСостоянияОригиналовПервичныхДокументов.Наименование КАК Наименование,
+ СправочникСостоянияОригиналовПервичныхДокументов.Описание КАК Описание,
+ СправочникСостоянияОригиналовПервичныхДокументов.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
+ СправочникСостоянияОригиналовПервичныхДокументов.Предопределенный КАК Предопределенный,
+ СправочникСостоянияОригиналовПервичныхДокументов.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
+ ВЫБОР
+ КОГДА СправочникСостоянияОригиналовПервичныхДокументов.Ссылка = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)
+ ТОГДА 1
+ КОГДА СправочникСостоянияОригиналовПервичныхДокументов.Ссылка = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана)
+ ТОГДА 0
+ КОГДА СправочникСостоянияОригиналовПервичныхДокументов.ПометкаУдаления
+ ТОГДА 4
+ ИНАЧЕ 3
+ КОНЕЦ КАК Картинка
+ИЗ
+ Справочник.СостоянияОригиналовПервичныхДокументов КАК СправочникСостоянияОригиналовПервичныхДокументов
+ГДЕ
+ НЕ СправочникСостоянияОригиналовПервичныхДокументов.Ссылка = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе)
+ Catalog.СостоянияОригиналовПервичныхДокументов
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
new file mode 100644
index 000000000..af2d83a07
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl
@@ -0,0 +1,112 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ // СтандартныеПодсистемы.ПодключаемыеКоманды
+ ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
+ // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытийЭлементовТаблицыФормы
+
+&НаКлиенте
+Процедура СписокПриИзменении(Элемент)
+
+ Оповестить("ДобавлениеУдалениеСостоянияОригиналаПервичногоДокумента");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+
+#Область ОбработчикиКомандФормы
+
+// СтандартныеПодсистемы.ПодключаемыеКоманды
+&НаКлиенте
+Процедура Подключаемый_ВыполнитьКоманду(Команда)
+
+ ТекущиеДанные = Элементы.Список.ТекущиеДанные;
+
+ Если Команда.Имя = "НастройкаПорядкаЭлементовОбычное_Вниз" Или Команда.Имя = "НастройкаПорядкаЭлементовОбычное_Вверх" Тогда
+ Если ТекущиеДанные.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана")
+ Или ТекущиеДанные.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен") Тогда
+ ПоказатьПредупреждение(,НСтр("ru='Начальное и конечное состояние перемещать нельзя.'"));
+ Иначе
+
+ Если Команда.Имя = "НастройкаПорядкаЭлементовОбычное_Вниз" Тогда
+ Перемещать = ВозможностьПеремещения("Вниз",ТекущиеДанные.РеквизитДопУпорядочивания);
+ ИначеЕсли Команда.Имя = "НастройкаПорядкаЭлементовОбычное_Вверх" Тогда
+ Перемещать = ВозможностьПеремещения("Вверх",ТекущиеДанные.РеквизитДопУпорядочивания);
+ КонецЕсли;
+
+ Если Перемещать Тогда
+ ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
+ Иначе
+ ПоказатьПредупреждение(,НСтр("ru = 'Начальное и конечное состояние перемещать нельзя.'"));
+ КонецЕсли;
+
+ КонецЕсли;
+ Иначе
+ ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
+ ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ОбновитьКоманды()
+ ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
+КонецПроцедуры
+//Конец СтандартныеПодсистемы.ПодключаемыеКоманды
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+&НаСервере
+Функция ВозможностьПеремещения(Перемещение, НомерПорядка);
+
+ Запрос = Новый Запрос;
+ Запрос.Текст ="ВЫБРАТЬ
+ | СостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов
+ |ГДЕ
+ | СостоянияОригиналовПервичныхДокументов.РеквизитДопУпорядочивания > &НомерПорядка
+ | И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана)
+ | И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе)
+ | И СостоянияОригиналовПервичныхДокументов.Ссылка <> ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)";
+
+ Если Перемещение = "Вверх" Тогда
+ Запрос.Текст = СтрЗаменить(Запрос.Текст,"> &НомерПорядка","< &НомерПорядка");
+ КонецЕсли;
+
+ Запрос.УстановитьПараметр("НомерПорядка", НомерПорядка);
+
+ Выборка = Запрос.Выполнить();
+
+ Если Не Выборка.Пустой() Тогда
+ Возврат Истина;
+ Иначе
+ Возврат Ложь;
+ КонецЕсли;
+
+КонецФункции
+
+#КонецОбласти
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Form.form
new file mode 100644
index 000000000..4ed26a27a
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Form.form
@@ -0,0 +1,128 @@
+
+
+
+ Наименование
+ 4
+ true
+ true
+
+ true
+
+
+ Объект.Description
+
+
+ НаименованиеРасширеннаяПодсказка
+ 6
+ Label
+ true
+ true
+
+ Left
+
+
+
+ НаименованиеКонтекстноеМеню
+ 5
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ Описание
+ 7
+ true
+ true
+
+ true
+
+
+ Объект.Описание
+
+ Left
+
+ ОписаниеРасширеннаяПодсказка
+ 9
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ОписаниеКонтекстноеМеню
+ 8
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ФормаКоманднаяПанель
+ -1
+ Left
+ true
+
+ LockOwner
+ true
+ true
+ true
+ Vertical
+ true
+ true
+ true
+ auto
+ true
+
+ Объект
+ 1
+
+ CatalogObject.СостоянияОригиналовПервичныхДокументов
+
+
+ true
+
+
+ true
+
+ true
+ true
+
+
+
+
+
+
+
+ BeforeWrite
+ ПередЗаписью
+
+
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl
new file mode 100644
index 000000000..6877dc403
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЭлемента/Module.bsl
@@ -0,0 +1,44 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Область ОбработчикиСобытийФормы
+
+&НаКлиенте
+Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
+
+ Если Не Объект.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен")
+ И Не Объект.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана") Тогда
+ Объект.РеквизитДопУпорядочивания = РассчитатьПорядокЭлемента();
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+
+#Область СлужебныеПроцедурыИФункции
+
+&НаСервере
+Функция РассчитатьПорядокЭлемента()
+
+ Запрос = Новый Запрос;
+ Запрос.Текст ="ВЫБРАТЬ
+ | КОЛИЧЕСТВО(*) КАК Количество
+ |ИЗ
+ | Справочник.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов" ;
+
+ Выборка = Запрос.Выполнить().Выбрать();
+ Выборка.Следующий();
+
+ ПорядокПоУмолчанию = Выборка.Количество - 1;
+
+ Возврат ПорядокПоУмолчанию;
+
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl
new file mode 100644
index 000000000..4d0facc23
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl
@@ -0,0 +1,54 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2020, ООО 1С-Софт
+// Все права защищены. Эта программа и сопроводительные материалы предоставляются
+// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
+// Текст лицензии доступен по ссылке:
+// https://creativecommons.org/licenses/by/4.0/legalcode
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
+
+ Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
+
+КонецПроцедуры
+
+// Вызывается при начальном заполнении справочника.
+//
+// Параметры:
+// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
+// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
+// справочника РолиИсполнителей.
+//
+Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "ФормаНапечатана";
+ Элемент.Наименование = НСтр("ru='Форма напечатана'",ОбщегоНазначения.КодОсновногоЯзыка());
+ Элемент.Описание = НСтр("ru='Состояние, означающее, что печатная форма только печаталась.'") ;
+ Элемент.Код = "000000001";
+ Элемент.РеквизитДопУпорядочивания = "1";
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "ОригиналыНеВсе";
+ Элемент.Наименование = НСтр("ru='Оригиналы не все'",ОбщегоНазначения.КодОсновногоЯзыка());
+ Элемент.Описание = НСтр("ru='Общее состояние для документа, у которого оригиналы печатных форм находятся в разных состояниях.'");
+ Элемент.Код = "000000002";
+ Элемент.РеквизитДопУпорядочивания = "99998";
+
+ Элемент = Элементы.Добавить();
+ Элемент.ИмяПредопределенныхДанных = "ОригиналПолучен";
+ Элемент.Наименование = НСтр("ru='Оригинал получен'",ОбщегоНазначения.КодОсновногоЯзыка());
+ Элемент.Описание = НСтр("ru='Состояние, означающее, что подписанный оригинал печатной формы есть в наличии.'");
+ Элемент.Код = "000000003";
+ Элемент.РеквизитДопУпорядочивания = "99999";
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецЕсли
+
diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo
new file mode 100644
index 000000000..48f27c094
--- /dev/null
+++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+ СостоянияОригиналовПервичныхДокументов
+
+ ru
+ Состояния оригиналов первичных документов
+
+ true
+ Catalog.СостоянияОригиналовПервичныхДокументов.StandardAttribute.Description
+ Catalog.СостоянияОригиналовПервичныхДокументов.StandardAttribute.Code
+ DontUse
+
+ Use
+ PredefinedDataName
+
+ Use
+
+
+
+
+ Use
+ Predefined
+
+ Use
+
+
+
+
+ Use
+ Ref
+
+ Use
+
+
+
+
+ Use
+ DeletionMark
+
+ Use
+
+
+
+
+ Use
+ IsFolder
+
+ Use
+
+
+
+
+ Use
+ Owner
+ true
+
+ ShowError
+ Use
+
+
+
+
+ Use
+ Parent
+ true
+
+ Use
+
+
+
+
+ Use
+ Description
+
+ ShowError
+ Use
+
+
+
+
+ Use
+ Code
+
+ Use
+
+
+
+ Use
+ Managed
+ Use
+
+ ru
+ Состояние оригинала
+
+
+ ru
+ Состояние оригинала первичного документа
+
+
+ ru
+ Состояния оригиналов
+
+
+ ru
+ Состояния оригиналов первичных документов
+
+ 2
+ true
+ 9
+ 50
+ String
+ Variable
+ true
+ true
+ AsDescription
+
+
+ ОригиналПолучен
+ Оригинал получен
+
+ 000000003
+
+
+
+ ОригиналыНеВсе
+ Оригиналы не все
+
+ 000000002
+
+
+
+ ФормаНапечатана
+ Форма напечатана
+
+ 000000001
+
+
+
+ AutoUpdate
+ InDialog
+ BothWays
+ Catalog.СостоянияОригиналовПервичныхДокументов.Form.ФормаЭлемента
+ Catalog.СостоянияОригиналовПервичныхДокументов.Form.ФормаСписка
+ Catalog.СостоянияОригиналовПервичныхДокументов.Form.ФормаВыбора
+
+ Описание
+
+ ru
+ Описание
+
+
+ String
+
+
+
+ ru
+ Полное описание назначения состояния оригинала
+
+ true
+
+
+
+ Use
+ Use
+
+
+ РеквизитДопУпорядочивания
+
+ ru
+ Порядок
+
+
+ Number
+
+ 5
+ true
+
+
+
+
+
+ IndexWithAdditionalOrder
+ Use
+ Use
+
+
+ ФормаЭлемента
+
+ ru
+ Форма элемента
+
+ PersonalComputer
+ MobileDevice
+
+
+ ФормаСписка
+
+ ru
+ Форма списка
+
+ PersonalComputer
+ MobileDevice
+
+
+ ФормаВыбора
+
+ ru
+ Форма выбора
+
+ PersonalComputer
+ MobileDevice
+
+
+ ФормаВыбораСостояния
+
+ ru
+ Форма выбора состояния
+
+ PersonalComputer
+ MobileDevice
+
+
diff --git a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl
index 943f48e92..ef253fafd 100644
--- a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl
+++ b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl
@@ -117,6 +117,7 @@
&НаКлиенте
Процедура ОткрытьФормуЭлементаКлассификатора(ДанныеЗаполнения, ЭтоНовый = Ложь)
+
Если ДанныеЗаполнения=Неопределено Тогда
Возврат;
КонецЕсли;
@@ -129,11 +130,10 @@
Иначе
ПараметрыФормы.Вставить("ТолькоПросмотр", Истина);
КонецЕсли;
- Форма = ОткрытьФорму("Справочник.СтраныМира.ФормаОбъекта", ПараметрыФормы, Элементы.Классификатор);
- Если Не ЭтоНовый И Форма.АвтоЗаголовок Тогда
- Форма.АвтоЗаголовок = Ложь;
- Форма.Заголовок = ДанныеЗаполнения.Наименование + ПредставлениеОбъектаКлассификатора;
- КонецЕсли;
+ ПараметрыФормы.Вставить("Заголовок", ДанныеЗаполнения.Наименование + ПредставлениеОбъектаКлассификатора);
+
+ ОткрытьФорму("Справочник.СтраныМира.ФормаОбъекта", ПараметрыФормы, Элементы.Классификатор);
+
КонецПроцедуры
&НаКлиенте
@@ -163,6 +163,11 @@
КонецПроцедуры
+// Параметры:
+// Результат - КодВозвратаДиалога
+// ДополнительныеПараметры - Структура:
+// * Ссылка - СправочникСсылка.СтраныМира
+//
&НаКлиенте
Процедура ПослеВопросаПроОбновление(Результат, ДополнительныеПараметры) Экспорт
diff --git a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Form.form
index f6b72fc3c..24a08ed21 100644
--- a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Form.form
@@ -385,6 +385,13 @@
truetrue
+
+ Заголовок
+
+ String
+
+
+
diff --git a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl
index 1ab1632fa..033a9a37b 100644
--- a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl
@@ -16,6 +16,11 @@
Элементы.ГруппаНаименование.ТолькоПросмотр = Истина;
КонецЕсли;
+ Если ЗначениеЗаполнено(Параметры.Заголовок) Тогда
+ Заголовок = Параметры.Заголовок;
+ АвтоЗаголовок = Ложь;
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
diff --git a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
index 116abe0ab..b6ae8fe58 100644
--- a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
@@ -62,18 +63,19 @@
// Рекомендуется использовать УправлениеКонтактнойИнформацией.ДанныеСтраныМира.
//
// Параметры:
-// КодСтраны - Строка, Число - код страны по классификатору. Если не указано, то поиск по коду не производится.
+// КодСтраны - Строка
+// - Число - код страны по классификатору. Если не указано, то поиск по коду не производится.
// Наименование - Строка - наименование страны. Если не указано, то поиск по наименованию не производится.
//
// Возвращаемое значение:
-// Структура - поля:
-// * Код - Строка - реквизит найденной страны.
-// * Наименование - Строка - реквизит найденной страны.
-// * НаименованиеПолное - Строка - реквизит найденной страны.
-// * КодАльфа2 - Строка - реквизит найденной страны.
-// * КодАльфа3 - Строка - реквизит найденной страны.
-// * Ссылка - СправочникаСсылка.СтраныМира - реквизит найденной страны.
-// Неопределено - страна не найдена.
+// Структура:
+// * Код - Строка
+// * Наименование - Строка
+// * НаименованиеПолное - Строка
+// * КодАльфа2 - Строка
+// * КодАльфа3 - Строка
+// * Ссылка - СправочникаСсылка.СтраныМира
+// Неопределено - страна не существует.
//
Функция ДанныеСтраныМира(Знач КодСтраны = Неопределено, Знач Наименование = Неопределено) Экспорт
Возврат УправлениеКонтактнойИнформацией.ДанныеСтраныМира(КодСтраны, Наименование);
@@ -83,17 +85,18 @@
// Рекомендуется использовать УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду.
//
// Параметры:
-// Код - Строка, Число - код страны по классификатору.
+// Код - Строка
+// - Число - код страны по классификатору.
// ТипКода - Строка - Варианты: КодСтраны (по умолчанию), Альфа2, Альфа3.
//
// Возвращаемое значение:
-// Структура - поля:
-// * Код - Строка - реквизит найденной страны.
-// * Наименование - Строка - реквизит найденной страны.
-// * НаименованиеПолное - Строка - реквизит найденной страны.
-// * КодАльфа2 - Строка - реквизит найденной страны.
-// * КодАльфа3 - Строка - реквизит найденной страны.
-// Неопределено - страна не найдена.
+// Структура:
+// * Код - Строка
+// * Наименование - Строка
+// * НаименованиеПолное - Строка
+// * КодАльфа2 - Строка
+// * КодАльфа3 - Строка
+// Неопределено - страна не существует.
//
Функция ДанныеКлассификатораСтранМираПоКоду(Знач Код, ТипКода = "КодСтраны") Экспорт
Возврат УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду(Код, ТипКода);
@@ -106,13 +109,13 @@
// Наименование - Строка - наименование страны.
//
// Возвращаемое значение:
-// Структура - поля:
-// * Код - Строка - реквизит найденной страны.
-// * Наименование - Строка - реквизит найденной страны.
-// * НаименованиеПолное - Строка - реквизит найденной страны.
-// * КодАльфа2 - Строка - реквизит найденной страны.
-// * КодАльфа3 - Строка - реквизит найденной страны.
-// Неопределено - страна не найдена.
+// Структура:
+// * Код - Строка
+// * Наименование - Строка
+// * НаименованиеПолное - Строка
+// * КодАльфа2 - Строка
+// * КодАльфа3 - Строка
+// Неопределено - страна не существует.
//
Функция ДанныеКлассификатораСтранМираПоНаименованию(Знач Наименование) Экспорт
Возврат УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоНаименованию(Наименование);
@@ -180,6 +183,13 @@
НоваяСтрока.КодАльфа3 = "GMB";
НоваяСтрока.НаименованиеПолное = НСтр("ru = 'Республика Гамбия'");
+ НоваяСтрока = СписокСтран.Добавить();
+ НоваяСтрока.Код = "807";
+ НоваяСтрока.Наименование = НСтр("ru = 'РЕСПУБЛИКА МАКЕДОНИЯ'");
+ НоваяСтрока.КодАльфа2 = "MK";
+ НоваяСтрока.КодАльфа3 = "MKD";
+ НоваяСтрока.НаименованиеПолное = НСтр("ru = 'Республика Македония'");
+
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СписокСтран.Код КАК Код,
@@ -229,6 +239,8 @@
СтранаМира = СтранаМираСсылка.Ссылка.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(СтранаМира, ДанныеКлассификатора);
ОбновлениеИнформационнойБазы.ЗаписатьДанные(СтранаМира);
+ Иначе
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтранаМираСсылка.Ссылка);
КонецЕсли;
// Обновление наименований
diff --git a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl
index aad6e356d..2548cb15d 100644
--- a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl
index e7569993a..068732bfd 100644
--- a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl
+++ b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl
index c0b9772bf..ec189d0e3 100644
--- a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl
index a535ef5ea..693e0ff56 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl
@@ -141,7 +141,7 @@
Процедура ПроверкаСуществованияКаталогаЗавершение(Существует, ДополнительныеПараметры) Экспорт
Если Не Существует Тогда
- ПоказатьПредупреждение(, НСтр("ru = 'Путь к каталогу копирования некорректен.'"));
+ ПоказатьПредупреждение(, НСтр("ru = 'Указанная папка не существует.'"));
Иначе
ПравоЗаписиВКаталог(Новый ОписаниеОповещения("ПослеПроверкиЗаписиВКаталог", ЭтотОбъект));
КонецЕсли;
@@ -189,13 +189,7 @@
КонецЕсли;
ПолноеИмяТекущегоФайла = ТекущийФайл.ПолноеИмя;
- КаталогДляКопирования = ПутьКПапкеДляКопирования + ПутьДня + ПолучитьРазделительПути();
-
- ПараметрыТекущегоФайла = Новый Структура;
- ПараметрыТекущегоФайла.Вставить("ИтоговоеОповещение", ДополнительныеПараметры.ИтоговоеОповещение);
- ПараметрыТекущегоФайла.Вставить("ТекущийФайл", ТекущийФайл);
- ПараметрыТекущегоФайла.Вставить("ПоследняяИтерация", ПоследняяИтерация);
- ПараметрыТекущегоФайла.Вставить("КаталогДляКопирования", КаталогДляКопирования);
+ ПараметрыТекущегоФайла = ПараметрыТекущегоФайла(ДополнительныеПараметры, ПоследняяИтерация, ТекущийФайл);
Если Не ПустаяСтрока(ПутьКПапкеДляКопирования) Тогда
@@ -211,6 +205,28 @@
КонецПроцедуры
+
+// Возвращаемое значение:
+// Структура:
+// * КаталогДляКопирования - Строка
+// * ПоследняяИтерация - Булево
+// * ТекущийФайл - ОпределяемыйТип.ПрисоединенныйФайл:
+// ** Имя - Строка
+// * ИтоговоеОповещение - ОписаниеОповещения
+//
+&НаКлиенте
+Функция ПараметрыТекущегоФайла(ДополнительныеПараметры, Знач ПоследняяИтерация, Знач ТекущийФайл)
+ КаталогДляКопирования = ПутьКПапкеДляКопирования + ПутьДня + ПолучитьРазделительПути();
+
+ ПараметрыТекущегоФайла = Новый Структура;
+ ПараметрыТекущегоФайла.Вставить("ИтоговоеОповещение", ДополнительныеПараметры.ИтоговоеОповещение);
+ ПараметрыТекущегоФайла.Вставить("ТекущийФайл", ТекущийФайл);
+ ПараметрыТекущегоФайла.Вставить("ПоследняяИтерация", ПоследняяИтерация);
+ ПараметрыТекущегоФайла.Вставить("КаталогДляКопирования", КаталогДляКопирования);
+ Возврат ПараметрыТекущегоФайла
+КонецФункции
+
+
&НаКлиенте
Процедура ПроверкаСуществованияФайлаЗавершение(ФайлСуществует, ДополнительныеПараметры) Экспорт
@@ -223,6 +239,10 @@
КонецПроцедуры
+// Параметры:
+// КаталогСуществует - Булево
+// ДополнительныеПараметры - см. ПараметрыТекущегоФайла
+//
&НаКлиенте
Процедура КаталогДняСуществуетЗавершение(КаталогСуществует, ДополнительныеПараметры) Экспорт
@@ -236,9 +256,12 @@
КонецПроцедуры
+// Параметры:
+// ИмяКаталога - Строка
+// ДополнительныеПараметры - см. ПараметрыТекущегоФайла
+//
&НаКлиенте
Процедура СоздатьКаталогДняЗавершение(ИмяКаталога, ДополнительныеПараметры) Экспорт
-
КонечноеИмяФайла = ДополнительныеПараметры.КаталогДляКопирования + ДополнительныеПараметры.ТекущийФайл.Имя;
Файл = Новый Файл(КонечноеИмяФайла);
Файл.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ПроверкаСуществованияКонечногоФайлаЗавершение", ЭтотОбъект, ДополнительныеПараметры));
@@ -307,9 +330,7 @@
ИтоговоеОповещение = ДополнительныеПараметры.ИтоговоеОповещение; // ОписаниеОповещения
ПараметрыИтоговогоОповещения = ИтоговоеОповещение.ДополнительныеПараметры;
- СтруктураОшибки = Новый Структура;
- СтруктураОшибки.Вставить("Имя", ИмяТекущегоФайла);
- СтруктураОшибки.Вставить("Ошибка", КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
+ СтруктураОшибки = СтруктураОшибки(ИмяТекущегоФайла, ИнформацияОбОшибке);
МассивФайловСОшибками = ПараметрыИтоговогоОповещения.МассивФайловСОшибками; // Массив
МассивФайловСОшибками.Добавить(СтруктураОшибки);
@@ -326,11 +347,24 @@
КонецПроцедуры
+// Возвращаемое значение:
+// Структура:
+// * Имя - Строка
+// * Ошибка - Строка
+//
+&НаКлиенте
+Функция СтруктураОшибки(ИмяТекущегоФайла, ИнформацияОбОшибке)
+ СтруктураОшибки = Новый Структура;
+ СтруктураОшибки.Вставить("Имя", ИмяТекущегоФайла);
+ СтруктураОшибки.Вставить("Ошибка", КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
+ Возврат СтруктураОшибки;
+КонецФункции
+
&НаКлиенте
Процедура ПослеОбработкиФайлов(Результат, ДополнительныеПараметры) Экспорт
ЧислоУдаленныхФайлов = ДополнительныеПараметры.ЧислоУдаленныхФайлов;
- МассивФайловСОшибками = ДополнительныеПараметры.МассивФайловСОшибками;
+ МассивФайловСОшибками = ДополнительныеПараметры.МассивФайловСОшибками;// Массив из см. СтруктураОшибки
Если ЧислоУдаленныхФайлов <> 0 Тогда
ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -443,11 +477,11 @@
&НаКлиенте
Процедура ОбработатьОшибкуПравДоступа(ИнформацияОбОшибке, ИсходноеОповещение)
- ШаблонОшибки = НСтр("ru = 'Путь каталога для копирования некорректен.
- |Возможно учетная запись, от лица которой работает
- |сервер 1С:Предприятия, не имеет прав доступа к указанному каталогу.
- |
- |%1'");
+ ШаблонОшибки = НСтр("ru = 'Некорректная папка для копирования.
+ |Возможно учетная запись, от лица которой работает
+ |сервер 1С:Предприятия, не имеет прав доступа к указанной папке.
+ |
+ |%1'");
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки, , , "ПутьКПапкеДляКопирования");
@@ -471,6 +505,10 @@
КонецПроцедуры
+// Параметры:
+// ОтчетОбОшибках - ТабличныйДокумент
+// МассивФайловСОшибками - Массив из см. СтруктураОшибки
+//
&НаСервере
Процедура СформироватьОтчетОбОшибках(ОтчетОбОшибках, МассивФайловСОшибками)
diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl
index bee72b7d8..ab53e7119 100644
--- a/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
@@ -37,6 +38,10 @@
#Область СлужебныеПроцедурыИФункции
// Только для внутреннего использования.
+//
+// Параметры:
+// Запросы - Массив
+//
Процедура ДобавитьЗапросыНаИспользованиеВнешнихРесурсовВсехТомов(Запросы) Экспорт
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
@@ -65,6 +70,10 @@
КонецПроцедуры
// Только для внутреннего использования.
+//
+// Параметры:
+// Запросы - Массив
+//
Процедура ДобавитьЗапросыНаОтменуИспользованияВнешнихРесурсовВсехТомов(Запросы) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form
index 38f37f1fa..64d5303d7 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form
@@ -11,7 +11,7 @@
207ru
- Создание учетной записи электронной почты
+ Введите настройки почтыtruetrue
@@ -46,46 +46,6 @@
Left
-
- НадписьУчетнаяЗаписьНеНастроена
- 5
-
- ru
- Для отправки писем необходимо настроить
-учетную запись электронной почты.
-
- true
-
- true
-
-
- НадписьУчетнаяЗаписьНеНастроенаРасширеннаяПодсказка
- 7
- Label
- true
- true
-
- Left
-
-
-
- НадписьУчетнаяЗаписьНеНастроенаКонтекстноеМеню
- 6
- true
-
- Label
- true
-
- System.DefaultGUIFont
- true
- false
- false
- false
-
-
- Left
-
- НеУдалосьПодключитьсяКартинкаИНадпись158
@@ -424,6 +384,10 @@
ИспользоватьДляОтправки191
+
+ ru
+ Для отправки писем
+ truetrue
@@ -458,6 +422,10 @@
ИспользоватьДляПолучения194
+
+ ru
+ Для получения писем
+ truetrue
@@ -496,7 +464,7 @@
ru
- Использовать учетную запись
+ Почта будет использоватьсяИспользоватьУчетнуюЗаписьРасширеннаяПодсказка
@@ -559,7 +527,7 @@
ru
- Для всех
+ Всеми пользователями (общая почта)Общая
@@ -568,7 +536,7 @@
ru
- Только для меня
+ Только мнойПерсональная
@@ -582,10 +550,6 @@
true
-
- ru
- Для кого учетная запись
- ДляКогоУчетнаяЗаписьРасширеннаяПодсказка248
@@ -603,7 +567,6 @@
NormalSeparationtruetrue
- autoAutoAuto
@@ -730,99 +693,6 @@
Auto
-
- СпособНастройкиУчетнойЗаписи
- 154
-
- СпособНастройки
- 50
-
- ru
- Настроить
-
- true
- true
-
- true
-
-
- СпособНастройки
-
- None
-
- OnChange
- СпособНастройкиПриИзменении
-
-
- СпособНастройкиРасширеннаяПодсказка
- 52
- Label
- true
- true
-
- Left
-
-
-
- СпособНастройкиКонтекстноеМеню
- 51
- true
-
- RadioButtonField
- Enter
- true
- Left
- true
-
- RadioButtons
- 1
-
-
- ru
- Определить параметры подключения автоматически (рекомендуется)
-
-
- Автоматически
-
-
-
-
- ru
- Настроить параметры подключения вручную
-
-
- Вручную
-
-
- Vertical
-
-
- true
- true
-
- true
-
-
- СпособНастройкиУчетнойЗаписиРасширеннаяПодсказка
- 155
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
- truetrue
@@ -852,21 +722,28 @@
НастройкаСервераИсходящейПочты38
-
- НастройкаСервераИсходящейПочтыЗаголовок
- 210
+
+ Протокол
+ 116ru
- Настройка сервера исходящей почты
+ Тип учетной записиtruetruetrue
+
+ Протокол
+
+
+ OnChange
+ ПротоколПриИзменении
+
- НастройкаСервераИсходящейПочтыЗаголовокРасширеннаяПодсказка
- 212
+ ПротоколРасширеннаяПодсказка
+ 118Labeltruetrue
@@ -875,32 +752,48 @@
- НастройкаСервераИсходящейПочтыЗаголовокКонтекстноеМеню
- 211
+ ПротоколКонтекстноеМеню
+ 117true
- Label
- true
-
- System.DefaultGUIFont
- true
- false
- false
- false
-
-
- Left
+ InputField
+ true
+ Enter
+ true
+ Left
+ true
+
+ 8
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+ true
+
+
+ IMAP
+
+
+
+
+ POP
+
+
+ Normal
- ЛогинИПарольПриОтправкеПисем
- 78
+ ПротоколИПортСервераВходящейПочты
+ 114
- ИмяПользователяДляОтправкиПисем
- 80
+ СерверВходящейПочты
+ 111ru
- Имя пользователя
+ Сервер IMAPtruetrue
@@ -908,11 +801,12 @@
true
- ИмяПользователяДляОтправкиПисем
+ СерверВходящейПочты
+ Top
- ИмяПользователяДляОтправкиПисемРасширеннаяПодсказка
- 82
+ СерверВходящейПочтыРасширеннаяПодсказка
+ 113Labeltruetrue
@@ -921,8 +815,8 @@
- ИмяПользователяДляОтправкиПисемКонтекстноеМеню
- 81
+ СерверВходящейПочтыКонтекстноеМеню
+ 112trueInputField
@@ -932,7 +826,7 @@
Lefttrue
- 25
+ 22truetruefalse
@@ -945,11 +839,11 @@
- ПарольДляОтправкиПисем
- 83
+ ПортВходящейПочты
+ 119ru
- Пароль
+ Портtruetrue
@@ -957,11 +851,12 @@
true
- ПарольДляОтправкиПисем
+ ПортСервераВходящейПочты
+ Top
- ПарольДляОтправкиПисемРасширеннаяПодсказка
- 85
+ ПортВходящейПочтыРасширеннаяПодсказка
+ 121Labeltruetrue
@@ -970,8 +865,8 @@
- ПарольДляОтправкиПисемКонтекстноеМеню
- 84
+ ПортВходящейПочтыКонтекстноеМеню
+ 120trueInputField
@@ -981,12 +876,9 @@
Lefttrue
- 25truetrue
- falsetrue
- truetruetruetrue
@@ -994,14 +886,72 @@
Normal
+
+ ШифрованиеПриПолученииПочты
+ 265
+ true
+ true
+
+ true
+
+
+ ШифрованиеПриПолученииПочты
+
+ Top
+
+ OnChange
+ ШифрованиеПриПолученииПочтыПриИзменении
+
+
+ ШифрованиеПриПолученииПочтыРасширеннаяПодсказка
+ 267
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ШифрованиеПриПолученииПочтыКонтекстноеМеню
+ 266
+ true
+
+ RadioButtonField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ru
+ STARTTLS
+
+
+ Авто
+
+
+
+
+ ru
+ SSL
+
+
+ SSL
+
+
+ Vertical
+
+ truetruetrue
- ЛогинИПарольПриОтправкеПисемРасширеннаяПодсказка
- 79
+ ПротоколИПортСервераВходящейПочтыРасширеннаяПодсказка
+ 115Labeltruetrue
@@ -1011,9 +961,8 @@
UsualGroup
- Vertical
+ HorizontalIfPossibleAuto
- NormalSeparationtruetrueAuto
@@ -1028,7 +977,7 @@
91ru
- Сервер
+ Сервер SMTPtruetrue
@@ -1038,6 +987,7 @@
СерверИсходящейПочты
+ TopСерверИсходящейПочтыРасширеннаяПодсказка93
@@ -1087,6 +1037,7 @@
ПортСервераИсходящейПочты
+ TopПортСервераИсходящейПочтыРасширеннаяПодсказка96
@@ -1119,6 +1070,64 @@
Normal
+
+ ШифрованиеПриОтправкеПочты
+ 262
+ true
+ true
+
+ true
+
+
+ ШифрованиеПриОтправкеПочты
+
+ Top
+
+ OnChange
+ ШифрованиеПриОтправкеПочтыПриИзменении
+
+
+ ШифрованиеПриОтправкеПочтыРасширеннаяПодсказка
+ 264
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ШифрованиеПриОтправкеПочтыКонтекстноеМеню
+ 263
+ true
+
+ RadioButtonField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ru
+ STARTTLS
+
+
+ Авто
+
+
+
+
+ ru
+ SSL
+
+
+ SSL
+
+
+ Vertical
+
+ truetrue
@@ -1144,674 +1153,6 @@
Auto
-
- ШифрованиеПриОтправкеПочты
- 262
- true
- true
-
- true
-
-
- ШифрованиеПриОтправкеПочты
-
-
- OnChange
- ШифрованиеПриОтправкеПочтыПриИзменении
-
-
- ШифрованиеПриОтправкеПочтыРасширеннаяПодсказка
- 264
- Label
- true
- true
-
- Left
-
-
-
- ШифрованиеПриОтправкеПочтыКонтекстноеМеню
- 263
- true
-
- RadioButtonField
- Enter
- true
- Left
- true
-
-
-
- ru
- Авто
-
-
- Авто
-
-
-
-
- ru
- Всегда (SSL)
-
-
- SSL
-
-
- Vertical
-
-
-
- ДлительностьОжиданияИсходящейПочты
- 179
-
- ДлительностьОжиданияСервераПриОтправкеПисем
- 181
-
- ru
- Длительность ожидания сервера
-
- true
- true
-
- true
-
-
- ДлительностьОжиданияСервераПриОтправкеПисем
-
-
- ДлительностьОжиданияСервераПриОтправкеПисемРасширеннаяПодсказка
- 183
- Label
- true
- true
-
- Left
-
-
-
- ДлительностьОжиданияСервераПриОтправкеПисемКонтекстноеМеню
- 182
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- true
-
- 5
-
- Normal
-
-
-
- НадписьСекунд1
- 184
-
- ru
- сек.
-
- true
- true
-
- true
-
-
- НадписьСекунд1РасширеннаяПодсказка
- 186
- Label
- true
- true
-
- Left
-
-
-
- НадписьСекунд1КонтекстноеМеню
- 185
- true
-
- Label
- true
-
- Left
-
-
- true
-
- true
-
-
- ДлительностьОжиданияИсходящейПочтыРасширеннаяПодсказка
- 180
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- HorizontalIfPossible
- Auto
- true
- true
- Auto
- Auto
-
-
-
- Группа1
- 187
- true
- true
-
- true
-
-
- Группа1РасширеннаяПодсказка
- 188
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
-
- true
- true
-
- true
-
-
- ru
- Настройка сервера исходящей почты
-
-
- НастройкаСервераИсходящейПочтыРасширеннаяПодсказка
- 39
- Label
- true
- true
-
- Left
-
-
- Page
-
- Vertical
- auto
- false
-
-
-
- НастройкаСервераВходящейПочты
- 40
-
- НастройкаСервераВходящейПочтыЗаголовок
- 213
-
- ru
- Настройка сервера входящей почты
-
- true
- true
-
- true
-
-
- НастройкаСервераВходящейПочтыЗаголовокРасширеннаяПодсказка
- 215
- Label
- true
- true
-
- Left
-
-
-
- НастройкаСервераВходящейПочтыЗаголовокКонтекстноеМеню
- 214
- true
-
- Label
- true
-
- System.DefaultGUIFont
- true
- false
- false
- false
-
-
- Left
-
-
-
- ИмяПользователяДляПолученияПисем
- 100
-
- ru
- Имя пользователя
-
- true
- true
-
- true
-
-
- ИмяПользователяДляПолученияПисем
-
-
- ИмяПользователяДляПолученияПисемРасширеннаяПодсказка
- 102
- Label
- true
- true
-
- Left
-
-
-
- ИмяПользователяДляПолученияПисемКонтекстноеМеню
- 101
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- 25
- true
- true
- false
- true
- true
- true
- true
- true
- Normal
-
-
-
- ПарольДляПолученияПисем
- 103
-
- ru
- Пароль
-
- true
- true
-
- true
-
-
- ПарольДляПолученияПисем
-
-
- ПарольДляПолученияПисемРасширеннаяПодсказка
- 105
- Label
- true
- true
-
- Left
-
-
-
- ПарольДляПолученияПисемКонтекстноеМеню
- 104
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- 25
- true
- true
- false
- true
- true
- true
- true
- true
- true
- Normal
-
-
-
- НастройкиСервераВходящейПочты
- 109
-
- Протокол
- 116
-
- ru
- Протокол
-
- true
- true
-
- true
-
-
- Протокол
-
-
- OnChange
- ПротоколПриИзменении
-
-
- ПротоколРасширеннаяПодсказка
- 118
- Label
- true
- true
-
- Left
-
-
-
- ПротоколКонтекстноеМеню
- 117
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- 8
- true
- true
- false
- true
- true
- true
- true
- true
-
-
- IMAP
-
-
-
-
- POP
-
-
- Normal
-
-
-
- ПротоколИПортСервераВходящейПочты
- 114
-
- СерверВходящейПочты
- 111
-
- ru
- Сервер
-
- true
- true
-
- true
-
-
- СерверВходящейПочты
-
- Left
-
- СерверВходящейПочтыРасширеннаяПодсказка
- 113
- Label
- true
- true
-
- Left
-
-
-
- СерверВходящейПочтыКонтекстноеМеню
- 112
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- 22
- true
- true
- false
- true
- true
- true
- true
- true
- Normal
-
-
-
- ПортВходящейПочты
- 119
-
- ru
- Порт
-
- true
- true
-
- true
-
-
- ПортСервераВходящейПочты
-
-
- ПортВходящейПочтыРасширеннаяПодсказка
- 121
- Label
- true
- true
-
- Left
-
-
-
- ПортВходящейПочтыКонтекстноеМеню
- 120
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- 8
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
- true
- true
-
- true
-
-
- ПротоколИПортСервераВходящейПочтыРасширеннаяПодсказка
- 115
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- HorizontalIfPossible
- Auto
- true
- true
- Auto
- Auto
-
-
-
- ТипСоединенияИДлительностьОжидания
- 122
- true
- true
-
- true
-
-
- ТипСоединенияИДлительностьОжиданияРасширеннаяПодсказка
- 123
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- true
- true
- Auto
- Auto
-
-
-
- ШифрованиеПриПолученииПочты
- 265
- true
- true
-
- true
-
-
- ШифрованиеПриПолученииПочты
-
-
- OnChange
- ШифрованиеПриПолученииПочтыПриИзменении
-
-
- ШифрованиеПриПолученииПочтыРасширеннаяПодсказка
- 267
- Label
- true
- true
-
- Left
-
-
-
- ШифрованиеПриПолученииПочтыКонтекстноеМеню
- 266
- true
-
- RadioButtonField
- Enter
- true
- Left
- true
-
-
-
- ru
- Авто
-
-
- Авто
-
-
-
-
- ru
- Всегда (SSL)
-
-
- SSL
-
-
- Vertical
-
-
- true
- true
-
- true
-
-
- НастройкиСервераВходящейПочтыРасширеннаяПодсказка
- 110
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
- ОставлятьПисьмаНаСервере135
@@ -2036,237 +1377,11 @@
ru
- Настройка сервера входящей почты
+ Настройка сервера исходящей почты
- НастройкаСервераВходящейПочтыРасширеннаяПодсказка
- 41
- Label
- true
- true
-
- Left
-
-
- Page
-
- Vertical
- auto
- false
-
-
-
- ДополнительныеНастройки
- 42
-
- ДополнительныеНастройкиЗаголовок
- 229
-
- ru
- Дополнительные настройки
-
- true
- true
-
- true
-
-
- ДополнительныеНастройкиЗаголовокРасширеннаяПодсказка
- 231
- Label
- true
- true
-
- Left
-
-
-
- ДополнительныеНастройкиЗаголовокКонтекстноеМеню
- 230
- true
-
- Label
- true
-
- System.DefaultGUIFont
- true
- false
- false
- false
-
-
- Left
-
-
-
- НазваниеУчетнойЗаписи
- 148
- true
- true
-
- true
-
-
- НазваниеУчетнойЗаписи
-
-
- НазваниеУчетнойЗаписиРасширеннаяПодсказка
- 150
- Label
- true
- true
-
- Left
-
-
-
- НазваниеУчетнойЗаписиКонтекстноеМеню
- 149
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- 25
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
-
- ДлительностьОжидания
- 127
-
- ДлительностьОжиданияСервераПриПолученииПисем
- 129
-
- ru
- Длительность ожидания сервера
-
- true
- true
-
- true
-
-
- ДлительностьОжиданияСервера
-
-
- ДлительностьОжиданияСервераПриПолученииПисемРасширеннаяПодсказка
- 131
- Label
- true
- true
-
- Left
-
-
-
- ДлительностьОжиданияСервераПриПолученииПисемКонтекстноеМеню
- 130
- true
-
- InputField
- true
- Enter
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- true
-
- 5
-
- Normal
-
-
-
- НадписьСекунд
- 132
-
- ru
- сек.
-
- true
- true
-
- true
-
-
- НадписьСекундРасширеннаяПодсказка
- 134
- Label
- true
- true
-
- Left
-
-
-
- НадписьСекундКонтекстноеМеню
- 133
- true
-
- Label
- true
-
- Left
-
-
- true
- true
-
- true
-
-
- ДлительностьОжиданияРасширеннаяПодсказка
- 128
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- AlwaysHorizontal
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
-
- true
- true
-
- true
-
-
- ru
- Дополнительные настройки
-
-
- ДополнительныеНастройкиРасширеннаяПодсказка
- 43
+ НастройкаСервераИсходящейПочтыРасширеннаяПодсказка
+ 39Labeltruetrue
@@ -2284,46 +1399,6 @@
ПроверкаНастроекУчетнойЗаписи34
-
- ПроверкаНастроекУчетнойЗаписиЗаголовок
- 232
-
- ru
- Проверка настроек учетной записи
-
- true
- true
-
- true
-
-
- ПроверкаНастроекУчетнойЗаписиЗаголовокРасширеннаяПодсказка
- 234
- Label
- true
- true
-
- Left
-
-
-
- ПроверкаНастроекУчетнойЗаписиЗаголовокКонтекстноеМеню
- 233
- true
-
- Label
- true
-
- System.DefaultGUIFont
- true
- false
- false
- false
-
-
- Left
-
- ПроверкаНастроекУчетнойЗаписиКартинкаИНадпись53
@@ -2363,7 +1438,7 @@
58ru
- Выполняется проверка настроек учетной записи.
+ Выполняется проверка настроек почты.
Это может занять несколько минут.true
@@ -2449,7 +1524,11 @@
275КартинкаПриПроверкеОбнаруженыОшибки
- 277
+ 279
+
+ ru
+ Картинка вопрос
+ truetrue
@@ -2457,7 +1536,7 @@
КартинкаПредупреждениеРасширеннаяПодсказка1
- 279
+ 281Labeltruetrue
@@ -2467,7 +1546,7 @@
КартинкаПредупреждениеКонтекстноеМеню1
- 278
+ 280truetrue
@@ -2480,10 +1559,10 @@
ГруппаПриПроверкеОбнаруженыОшибки
- 280
+ 282ТекстПриПроверкеОбнаруженыОшибки
- 282
+ 284truetrue
@@ -2495,7 +1574,7 @@
NoneСообщенияОбОшибкахРасширеннаяПодсказка1
- 284
+ 286Labeltruetrue
@@ -2505,7 +1584,7 @@
СообщенияОбОшибкахКонтекстноеМеню1
- 283
+ 285trueInputField
@@ -2539,7 +1618,7 @@
НужнаПомощьПриПроверкеОбнаруженыОшибки
- 285
+ 287ruНужна помощь?
@@ -2551,7 +1630,7 @@
НужнаПомощьРасширеннаяПодсказка1
- 287
+ 289Labeltruetrue
@@ -2561,7 +1640,7 @@
НужнаПомощьКонтекстноеМеню1
- 286
+ 288trueLabel
@@ -2584,7 +1663,7 @@
ГруппаСообщенияОбОшибкахРасширеннаяПодсказка1
- 281
+ 283Labeltruetrue
@@ -2636,9 +1715,8 @@
235ru
- Учетная запись успешно настроена
+ Почта успешно настроена
- truetruetrue
@@ -2714,7 +1792,7 @@
69ru
- Настройка параметров учетной записи
+ Настройка параметров почты
vasyapupkin@example.com завершена.true
@@ -3081,10 +2159,6 @@ vasyapupkin@example.com завершена.
СпособНастройки
-
- ru
- Способ настройки
- 3String
@@ -3114,10 +2188,6 @@ vasyapupkin@example.com завершена.
ИмяПользователяДляОтправкиПисем
-
- ru
- Имя пользователя для отправки писем
- 5String
@@ -3134,10 +2204,6 @@ vasyapupkin@example.com завершена.
ПарольДляОтправкиПисем
-
- ru
- Пароль для отправки писем
- 6String
@@ -3208,10 +2274,6 @@ vasyapupkin@example.com завершена.
ИмяПользователяДляПолученияПисем
-
- ru
- Имя пользователя для получения писем
- 11String
@@ -3322,10 +2384,6 @@ vasyapupkin@example.com завершена.
ДлительностьОжиданияСервера
-
- ru
- Длительность ожидания сервера
- 18Number
@@ -3360,10 +2418,6 @@ vasyapupkin@example.com завершена.
НазваниеУчетнойЗаписи
-
- ru
- Наименование учетной записи
- 21String
@@ -3439,10 +2493,6 @@ vasyapupkin@example.com завершена.
ДлительностьОжиданияСервераПриОтправкеПисем
-
- ru
- Длительность ожидания сервера при отправке писем
- 26Number
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl
index e4b5b993f..4a92387f6 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl
@@ -20,7 +20,6 @@
ИспользуютсяПрофилиБезопасности = Ложь;
КонецЕсли;
- Элементы.СпособНастройки.Видимость = Не ИспользуютсяПрофилиБезопасности;
Если ИспользуютсяПрофилиБезопасности Тогда
СпособНастройки = "Вручную";
Иначе
@@ -35,14 +34,11 @@
Элементы.ОставлятьПисьмаНаСервере.Видимость = ДоступноПолучениеПисем;
Элементы.НастройкаУчетнойЗаписиЗаголовок.Заголовок = ?(КонтекстныйРежим,
- НСтр("ru = 'Для отправки писем необходимо настроить учетную запись электронной почты'"),
- НСтр("ru = 'Введите параметры учетной записи'"));
+ НСтр("ru = 'Для отправки писем необходимо настроить почту'"),
+ НСтр("ru = 'Введите настройки почты'"));
- Если КонтекстныйРежим Или Перенастройка Тогда
- Заголовок = НСтр("ru = 'Настройка учетной записи электронной почты'");
- Иначе
- Заголовок = НСтр("ru = 'Создание учетной записи электронной почты'");
- КонецЕсли;
+ Элементы.НастройкаУчетнойЗаписиЗаголовок.Видимость = КонтекстныйРежим;
+ Заголовок = НСтр("ru = 'Настройка почты'");
ИспользоватьДляПолучения = Не КонтекстныйРежим И ДоступноПолучениеПисем;
ИспользоватьДляОтправки = Истина;
@@ -87,8 +83,9 @@
КонецЕсли;
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь();
- Элементы.ДляКогоУчетнаяЗапись.Видимость = ЭтоПолноправныйПользователь;
+ Элементы.ДляКогоУчетнаяЗапись.Видимость = ЭтоПолноправныйПользователь И Не КонтекстныйРежим;
ВидУчетнойЗаписи = ?(ЭтоПолноправныйПользователь, "Общая", "Персональная");
+ Элементы.ИмяОтправителя.Видимость = Не КонтекстныйРежим;
ТребуетсяАвторизацияПриОтправкеПисем = Истина;
@@ -145,14 +142,11 @@
ТребуетсяПодтверждениеЗакрытияФормы = Истина;
КонецПроцедуры
-&НаКлиенте
-Процедура СпособНастройкиПриИзменении(Элемент)
- НастроитьЭлементыТекущейСтраницы();
-КонецПроцедуры
-
&НаКлиенте
Процедура ПротоколПриИзменении(Элемент)
УстановитьВидимостьЭлементов();
+ Элементы.СерверВходящейПочты.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Сервер %1'"), Протокол);
КонецПроцедуры
&НаКлиенте
@@ -210,20 +204,6 @@
ПредыдущаяСтраница = Неопределено;
Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
- ИначеЕсли ТекущаяСтраница = Элементы.НастройкаСервераВходящейПочты Тогда
- Если ИспользоватьДляОтправки Тогда
- ПредыдущаяСтраница = Элементы.НастройкаСервераИсходящейПочты;
- Иначе
- ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
- КонецЕсли;
- ИначеЕсли ТекущаяСтраница = Элементы.ДополнительныеНастройки Тогда
- Если ИспользоватьДляОтправки Или ИспользоватьДляПолучения Тогда
- ПредыдущаяСтраница = Элементы.НастройкаСервераВходящейПочты;
- ИначеЕсли ИспользоватьДляОтправки Тогда
- ПредыдущаяСтраница = Элементы.НастройкаСервераИсходящейПочты;
- Иначе
- ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
- КонецЕсли;
ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
КонецЕсли;
@@ -251,7 +231,7 @@
Кнопки = Новый СписокЗначений;
Кнопки.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
Кнопки.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Не закрывать'"));
- ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Отмена, НСтр("ru = 'Настройка учетной записи'"));
+ ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Отмена, НСтр("ru = 'Настройка почты'"));
КонецПроцедуры
&НаКлиенте
@@ -281,19 +261,13 @@
Если СпособНастройки = "Автоматически" Или ПроверкаЗавершиласьСОшибками Тогда
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
Иначе
- Если ИспользоватьДляОтправки Тогда
+ Если ИспользоватьДляОтправки Или ИспользоватьДляПолучения Тогда
СледующаяСтраница = Элементы.НастройкаСервераИсходящейПочты;
- ИначеЕсли ИспользоватьДляПолучения Тогда
- СледующаяСтраница = Элементы.НастройкаСервераВходящейПочты;
Иначе
- СледующаяСтраница = Элементы.ДополнительныеНастройки;
+ СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
- СледующаяСтраница = Элементы.НастройкаСервераВходящейПочты;
- ИначеЕсли ТекущаяСтраница = Элементы.НастройкаСервераВходящейПочты Тогда
- СледующаяСтраница = Элементы.ДополнительныеНастройки;
- ИначеЕсли ТекущаяСтраница = Элементы.ДополнительныеНастройки Тогда
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда
Если ПроверкаЗавершиласьСОшибками Тогда
@@ -454,25 +428,24 @@
И ПроверкаЗавершиласьСОшибками Или Не КонтекстныйРежим И Не Перенастройка И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена);
Если Не КонтекстныйРежим И ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда
- Элементы.КнопкаПерейтиКНастройкам.Заголовок = НСтр("ru = 'Перейти к учетной записи'");
+ Элементы.КнопкаПерейтиКНастройкам.Заголовок = НСтр("ru = 'Перейти к настройкам'");
Иначе
Элементы.КнопкаПерейтиКНастройкам.Заголовок = НСтр("ru = 'Настроить вручную'");
КонецЕсли;
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Тогда
Элементы.НеУдалосьПодключитьсяКартинкаИНадпись.Видимость = ПроверкаЗавершиласьСОшибками;
- Элементы.СпособНастройки.Видимость = Не ПроверкаЗавершиласьСОшибками И Не ИспользуютсяПрофилиБезопасности;
КонецЕсли;
- Если ТекущаяСтраница = Элементы.НастройкаСервераВходящейПочты Тогда
+ Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
ОбновитьДоступностьНастройкиДнейДоУдаления();
УстановитьВидимостьЭлементов();
КонецЕсли;
Если ТекущаяСтраница = Элементы.УчетнаяЗаписьУспешноНастроена Тогда
Элементы.НадписьУчетнаяЗаписьУспешноНастроена.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Настройка параметров учетной записи
- |%1 завершена.'"), АдресЭлектроннойПочты);
+ НСтр("ru = 'Настройка почты
+ |%1 успешно завершена.'"), АдресЭлектроннойПочты);
КонецЕсли;
КонецПроцедуры
@@ -621,6 +594,7 @@
УчетнаяЗапись.ПериодХраненияСообщенийНаСервере = ?(ОставлятьКопииПисемНаСервере И УдалятьПисьмаССервера И Протокол = "POP", ПериодХраненияСообщенийНаСервере, 0);
УчетнаяЗапись.ПротоколВходящейПочты = Протокол;
УчетнаяЗапись.Наименование = НазваниеУчетнойЗаписи;
+ УчетнаяЗапись.ПриОтправкеПисемТребуетсяАвторизация = ЗначениеЗаполнено(УчетнаяЗапись.ПользовательSMTP);
Если ВидУчетнойЗаписи = "Персональная" Тогда
УчетнаяЗапись.ВладелецУчетнойЗаписи = Пользователи.ТекущийПользователь();
Иначе
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form
index 8317d3d82..26c0d499b 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаНастроекУчетнойЗаписи/Form.form
@@ -42,7 +42,7 @@
163ru
- Выполняется проверка настроек учетной записи.
+ Выполняется проверка настроек почты.
Это может занять несколько минут.true
@@ -101,34 +101,6 @@
ПриПроверкеОбнаруженыОшибки3
-
- НеУдалосьПодключитьсяКартинкаИНадпись
- 11
- true
- true
-
- true
-
-
- НеУдалосьПодключитьсяКартинкаИНадписьРасширеннаяПодсказка
- 12
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- AlwaysHorizontal
- Auto
- true
- true
- Auto
- Auto
-
- КартинкаПредупреждение13
@@ -356,7 +328,7 @@
176ru
- Проверка настроек учетной записи завершилась успешно:
+ Проверка настроек почты завершилась успешно:truetrue
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Form.form
index a388b41ba..223650480 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Form.form
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Form.form
@@ -373,6 +373,10 @@
Left
+
+ OnOpen
+ ПриОткрытии
+ OnCreateAtServerПриСозданииНаСервере
@@ -431,6 +435,19 @@
true
+
+ ПредлагатьНастройкуПочты
+ 3
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl
index 3043ca4f8..8d5379fce 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаВыбора/Module.bsl
@@ -20,6 +20,9 @@
Элементы.ВладелецУчетнойЗаписи.Видимость = ПоказыватьПерсональныеУчетныеЗаписиПользователей;
+ ПредлагатьНастройкуПочты = РаботаСПочтовымиСообщениями.ДоступнаОтправкаПисем()
+ И РаботаСПочтовымиСообщениями.ДоступныеУчетныеЗаписи(Истина, Ложь, Истина).Количество() = 0;
+
КонецПроцедуры
#КонецОбласти
@@ -50,5 +53,20 @@
Список, "ВладелецУчетнойЗаписи", СписокПользователей, ВидСравненияКомпоновкиДанных.ВСписке, ,
Не ПоказыватьПерсональныеУчетныеЗаписиПользователей);
КонецПроцедуры
-
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+ Если ПредлагатьНастройкуПочты Тогда
+ ПодключитьОбработчикОжидания("НастроитьПочту", 0.1, Истина);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура НастроитьПочту()
+
+ РаботаСПочтовымиСообщениямиКлиент.ПроверитьНаличиеУчетнойЗаписиДляОтправкиПочты(Неопределено);
+
+КонецПроцедуры
+
+
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form
index d3253189f..fd82623a9 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form
@@ -167,7 +167,7 @@
8ru
- Адрес электронной почты
+ Адрес почтыtruetrue
@@ -280,6 +280,10 @@
Lefttrue
+
+ OnActivateRow
+ СписокПриАктивизацииСтроки
+ СписокСтрокаПоиска31
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl
index 4011e0d33..7c771891d 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl
@@ -23,6 +23,11 @@
Элементы.ВладелецУчетнойЗаписи.Видимость = ПоказыватьПерсональныеУчетныеЗаписиПользователей;
Элементы.ПоказыватьНедействительные.Доступность = ПоказыватьПерсональныеУчетныеЗаписиПользователей;
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
+ МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
+ КонецЕсли;
+
КонецПроцедуры
#КонецОбласти
@@ -51,6 +56,58 @@
#КонецОбласти
+#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
+
+&НаКлиенте
+Процедура СписокПриАктивизацииСтроки(Элемент)
+
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
+ МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура Подключаемый_ОбновитьКоманды()
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
+ МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
+ КонецЕсли;
+КонецПроцедуры
+
+
+&НаСервере
+Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
+ МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
+ КонецЕсли;
+КонецПроцедуры
+
+
+&НаКлиенте
+Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
+ ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
+КонецПроцедуры
+
+
+&НаКлиенте
+Процедура Подключаемый_ВыполнитьКоманду(Команда)
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
+ МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
+ КонецЕсли;
+КонецПроцедуры
+
+#КонецОбласти
+
+
+
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form
index 2596517a3..bb4102227 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form
@@ -57,6 +57,10 @@
АдресЭлектроннойПочты80
+
+ ru
+ Адрес почты
+ truetrue
@@ -271,7 +275,7 @@
ru
- Использование учетной записи
+ Почта используетсяИспользоватьУчетнуюЗаписьРасширеннаяПодсказка
@@ -342,7 +346,7 @@
ru
- Для всех
+ Всеми пользователямиОбщая
@@ -351,7 +355,7 @@
ru
- Только для:
+ Одним пользователем:Персональная
@@ -419,7 +423,7 @@
ruДля кого учетная запись
- 46
+ 60falseГруппаДляКогоУчетнаяЗаписьРасширеннаяПодсказка
@@ -516,7 +520,7 @@
ЛогинПароль263
- ИмяПользователяДляПолученияПисем
+ Логин102ru
@@ -531,7 +535,7 @@
Объект.Пользователь
- ИмяПользователяДляПолученияПисемРасширеннаяПодсказка
+ ЛогинРасширеннаяПодсказка104Labeltrue
@@ -541,7 +545,7 @@
- ИмяПользователяДляПолученияПисемКонтекстноеМеню
+ ЛогинКонтекстноеМеню103true
@@ -563,7 +567,7 @@
- ПарольДляПолученияПисем
+ Пароль105truetrue
@@ -575,10 +579,10 @@
OnChange
- ПарольДляПолученияПисемПриИзменении
+ ПарольПриИзменении
- ПарольДляПолученияПисемРасширеннаяПодсказка
+ ПарольРасширеннаяПодсказка107Labeltrue
@@ -588,7 +592,7 @@
- ПарольДляПолученияПисемКонтекстноеМеню
+ ПарольКонтекстноеМеню106true
@@ -600,11 +604,11 @@
EditTextChange
- ПарольДляПолученияПисемИзменениеТекстаРедактирования
+ ПарольИзменениеТекстаРедактированияStartChoice
- ПарольДляПолученияПисемНачалоВыбора
+ ПарольНачалоВыбораtruetrue
@@ -908,70 +912,6 @@
НастройкиСервераВходящейПочты125
-
- ПротоколИПортСервераВходящейПочты
- 111
- true
- true
-
- true
-
-
- ru
- Протокол и порт сервера входящей почты
-
-
- ПротоколИПортСервераВходящейПочтыРасширеннаяПодсказка
- 112
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- HorizontalIfPossible
- Auto
- true
- true
- Auto
- Auto
-
-
-
- ТипСоединенияИДлительностьОжидания
- 187
- true
- true
-
- true
-
-
- ru
- Тип соединения и длительность ожидания
-
-
- ТипСоединенияИДлительностьОжиданияРасширеннаяПодсказка
- 188
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- true
- true
- Auto
- Auto
-
- СерверВходящейПочты113
@@ -1107,7 +1047,7 @@
ru
- Авто
+ STARTTLSАвто
@@ -1116,7 +1056,7 @@
ru
- Всегда (SSL)
+ SSLSSL
@@ -1293,7 +1233,7 @@
ru
- Авто
+ STARTTLSАвто
@@ -1302,7 +1242,7 @@
ru
- Всегда (SSL)
+ SSLSSL
@@ -1381,75 +1321,9 @@
true
-
- ПолучениеПисем
- 98
- true
- true
-
- true
-
-
- ru
- Получение писем
-
-
- ПолучениеПисемРасширеннаяПодсказка
- 99
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- WeakSeparation
- true
- true
- Auto
- Auto
-
- ОтправкаПисем100
-
- НастройкиПодключенияПриОтправкеПисем
- 202
- true
- true
-
- true
-
-
- ru
- Настройки подключения при отправке писем
-
-
- НастройкиПодключенияПриОтправкеПисемРасширеннаяПодсказка
- 203
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
- ГруппаТребуетсяАвторизация258
@@ -1462,7 +1336,7 @@
true
- ТребуетсяАвторизацияПриОтправкеПисем
+ Объект.ПриОтправкеПисемТребуетсяАвторизацияRight
@@ -1525,348 +1399,25 @@
false
-
- СпособАвторизацииСОтступом
- 251
-
- АвторизацияSMTP
- 244
-
- СпособАвторизацииПриОтправкеПочты
- 238
- true
- true
-
- true
-
-
- СпособАвторизацииПриОтправкеПочты
-
- None
-
- OnChange
- СпособАвторизацииПриОтправкеПочтыПриИзменении
-
-
- СпособАвторизацииПриОтправкеПочтыРасширеннаяПодсказка
- 240
- Label
- true
- true
-
- Left
-
-
-
- СпособАвторизацииПриОтправкеПочтыКонтекстноеМеню
- 239
- true
-
- RadioButtonField
- Enter
- true
- Left
- true
-
-
-
- ru
- На сервере исходящей почты (SMTP)
-
-
- SMTP
-
-
- Vertical
-
-
-
- ЛогинПарольПриОтправкеПисемСОтступом
- 253
-
- ОтступАвторизацияПриОтправкеПисем
- 235
-
- ru
- Отступ авторизация при отправке писем
-
- true
- true
-
- true
-
-
- ОтступАвторизацияПриОтправкеПисемРасширеннаяПодсказка
- 237
- Label
- true
- true
-
- Left
-
-
-
- ОтступАвторизацияПриОтправкеПисемКонтекстноеМеню
- 236
- true
-
- 1
- true
- 1
- true
- false
- false
-
-
-
- ЛогинИПарольПриОтправкеПисем
- 233
-
- ИмяПользователяДляОтправкиПисем
- 149
-
- ru
- Имя пользователя
-
- true
- true
-
- true
-
-
- Объект.ПользовательSMTP
-
-
- ИмяПользователяДляОтправкиПисемРасширеннаяПодсказка
- 151
- Label
- true
- true
-
- Left
-
-
-
- ИмяПользователяДляОтправкиПисемКонтекстноеМеню
- 150
- true
-
- InputField
- Enter
- true
- Left
- true
-
- 25
- true
- true
- false
- true
- true
- true
- true
- Normal
-
-
-
- ПарольДляОтправкиПисем
- 152
-
- ru
- Пароль
-
- true
- true
-
- true
-
-
- ПарольSMTP
-
-
- OnChange
- ПарольДляОтправкиПисемПриИзменении
-
-
- ПарольДляОтправкиПисемРасширеннаяПодсказка
- 154
- Label
- true
- true
-
- Left
-
-
-
- ПарольДляОтправкиПисемКонтекстноеМеню
- 153
- true
-
- InputField
- Enter
- true
- Left
- true
-
- 25
- true
- true
- false
- true
- true
- true
- true
- true
- Normal
-
-
- true
- true
-
- true
-
-
- ru
- Логин и пароль при отправке писем
-
-
- ЛогинИПарольПриОтправкеПисемРасширеннаяПодсказка
- 234
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- true
- true
- Auto
- Auto
-
-
- true
-
- true
-
-
- ru
- Логин пароль при отправке писем с отступом
-
-
- ЛогинПарольПриОтправкеПисемСОтступомРасширеннаяПодсказка
- 254
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- HorizontalIfPossible
- Auto
- true
- true
- Auto
- Auto
-
-
- true
- true
-
- true
-
-
- ru
- Авторизация SMTP
-
-
- АвторизацияSMTPРасширеннаяПодсказка
- 245
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- true
- true
- Auto
- Auto
-
-
-
- СпособАвторизацииПриОтправкеПочты1
- 241
- true
- true
-
- true
-
-
- СпособАвторизацииПриОтправкеПочты
-
- None
-
- OnChange
- СпособАвторизацииПриОтправкеПочтыПриИзменении
-
-
- СпособАвторизацииПриОтправкеПочты1РасширеннаяПодсказка
- 243
- Label
- true
- true
-
- Left
-
-
-
- СпособАвторизацииПриОтправкеПочты1КонтекстноеМеню
- 242
- true
-
- RadioButtonField
- Enter
- true
- Left
- true
-
-
-
- ru
- На сервере входящей почты (POP)
-
-
- POP
-
-
- Vertical
-
-
+
+ СпособАвторизацииПриОтправкеПочты
+ 238truetruetrue
-
- ru
- Способ авторизации с отступом
-
+
+ СпособАвторизацииПриОтправкеПочты
+
+ None
+
+ OnChange
+ СпособАвторизацииПриОтправкеПочтыПриИзменении
+
- СпособАвторизацииСОтступомРасширеннаяПодсказка
- 252
+ СпособАвторизацииПриОтправкеПочтыРасширеннаяПодсказка
+ 240Labeltruetrue
@@ -1874,14 +1425,37 @@
Left
- UsualGroup
-
- Vertical
- Auto
- true
- true
- Auto
- Auto
+
+ СпособАвторизацииПриОтправкеПочтыКонтекстноеМеню
+ 239
+ true
+
+ RadioButtonField
+ Enter
+ true
+ Left
+ true
+
+ 1
+
+
+ ru
+ На сервере исходящей почты (SMTP)
+
+
+ SMTP
+
+
+
+
+ ru
+ На сервере входящей почты (POP)
+
+
+ POP
+
+
+ Verticaltrue
@@ -1942,80 +1516,6 @@
Auto
-
- POPПередSMTP
- 204
-
- ТребуетсяВходНаСерверПередОтправкой
- 189
-
- ru
- Требуется авторизация на сервере входящей почты перед отправкой
-
- true
-
- true
-
-
- Объект.ТребуетсяВходНаСерверПередОтправкой
-
- Right
-
- OnChange
- ТребуетсяВходНаСерверПередОтправкойПриИзменении
-
-
- ТребуетсяВходНаСерверПередОтправкойРасширеннаяПодсказка
- 191
- Label
- true
- true
-
- Left
-
-
-
- ТребуетсяВходНаСерверПередОтправкойКонтекстноеМеню
- 190
- true
-
- CheckBoxField
- Enter
- true
- Left
- true
-
-
- true
- true
-
- true
-
-
- ru
- POP перед SMTP
-
-
- POPПередSMTPРасширеннаяПодсказка
- 205
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- NormalSeparation
- true
- true
- Auto
- Auto
-
- truetrue
@@ -2046,153 +1546,6 @@
Auto
-
- ПрочиеНастройки
- 206
-
- ДлительностьОжидания
- 136
-
- ДлительностьОжиданияСервера
- 127
-
- ru
- Длительность ожидания сервера
-
- true
- true
-
- true
-
-
- Объект.ВремяОжидания
-
-
- ДлительностьОжиданияСервераРасширеннаяПодсказка
- 129
- Label
- true
- true
-
- Left
-
-
-
- ДлительностьОжиданияСервераКонтекстноеМеню
- 128
- true
-
- InputField
- Enter
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
-
- 10
-
- Normal
-
-
-
- НадписьСекунд
- 138
-
- ru
- сек.
-
- true
- true
-
- true
-
-
- НадписьСекундРасширеннаяПодсказка
- 140
- Label
- true
- true
-
- Left
-
-
-
- НадписьСекундКонтекстноеМеню
- 139
- true
-
- Label
- true
-
- Left
-
-
- true
- true
-
- true
-
-
- ru
- Длительность ожидания
-
-
- ДлительностьОжиданияРасширеннаяПодсказка
- 137
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- HorizontalIfPossible
- Auto
- true
- true
- Auto
- Auto
-
-
- true
-
- true
-
-
- ru
- Прочие настройки
-
-
- ПрочиеНастройкиРасширеннаяПодсказка
- 207
- Label
- true
- true
-
- Left
-
-
- UsualGroup
-
- Vertical
- Auto
- WeakSeparation
- true
- true
- auto
- Auto
- Auto
-
- НужнаПомощь269
@@ -2504,38 +1857,6 @@
true
-
- ПарольSMTP
-
- ru
- Пароль SMTP
-
- 4
-
- String
-
-
-
- true
-
-
- true
-
- true
-
-
- ПарольSMTPИзменен
- 5
-
- Boolean
-
-
- true
-
-
- true
-
- ПарольИзменен6
@@ -2568,19 +1889,6 @@
true
-
- ВладелецУчетнойЗаписи
- 8
-
- CatalogRef.Пользователи
-
-
- true
-
-
- true
-
- ПроверкаПароля9
@@ -2608,24 +1916,6 @@
true
-
- ТребуетсяАвторизацияПриОтправкеПисем
-
- ru
- При отправке писем требуется авторизация
-
- 11
-
- Boolean
-
-
- true
-
-
- true
-
- true
- СпособАвторизацииПриОтправкеПочты
@@ -2697,19 +1987,6 @@
true
-
- ИспользуетсяПочтовыйКлиент
- 16
-
- Boolean
-
-
- true
-
-
- true
-
- ЗаписатьИЗакрыть
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl
index b793f76bc..118d048c3 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl
@@ -6,13 +6,6 @@
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
-#Область ОписаниеПеременных
-
-&НаКлиенте
-Перем ПараметрыПередЗаписью;
-
-#КонецОбласти
-
#Область ОбработчикиСобытийФормы
&НаСервере
@@ -22,6 +15,12 @@
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
КонецЕсли;
+ Если Объект.Ссылка.Пустая() Тогда
+ Объект.ИспользоватьДляОтправки = Истина;
+ Объект.ИспользоватьДляПолучения = ДоступноПолучениеПисем;
+ ЗаполнитьНастройки();
+ КонецЕсли;
+
Элементы.ИспользоватьУчетнуюЗапись.ОтображатьЗаголовок = ДоступноПолучениеПисем;
Элементы.ДляПолучения.Видимость = ДоступноПолучениеПисем;
@@ -29,16 +28,15 @@
Элементы.ДляОтправки.Заголовок = НСтр("ru = 'Использовать для отправки писем'");
КонецЕсли;
- Если Объект.Ссылка.Пустая() Тогда
- Объект.ИспользоватьДляОтправки = Истина;
- Объект.ИспользоватьДляПолучения = ДоступноПолучениеПисем;
- ЗаполнитьНастройки();
- КонецЕсли;
-
Элементы.ГруппаДляКогоУчетнаяЗапись.Доступность = Пользователи.ЭтоПолноправныйПользователь();
РеквизитыТребующиеВводаПароляДляИзменения = Справочники.УчетныеЗаписиЭлектроннойПочты.РеквизитыТребующиеВводаПароляДляИзменения();
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
+ МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -64,8 +62,8 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- ТекущийОбъект.ПользовательSMTP = ?(ТребуетсяАвторизацияПриОтправкеПисем И Не Объект.ТребуетсяВходНаСерверПередОтправкой, ТекущийОбъект.Пользователь, "");
- ТекущийОбъект.ТребуетсяВходНаСерверПередОтправкой = ТекущийОбъект.ТребуетсяВходНаСерверПередОтправкой И ТребуетсяАвторизацияПриОтправкеПисем;
+ ТекущийОбъект.ПользовательSMTP = ?(ТекущийОбъект.ПриОтправкеПисемТребуетсяАвторизация И Не Объект.ТребуетсяВходНаСерверПередОтправкой, ТекущийОбъект.Пользователь, "");
+ ТекущийОбъект.ТребуетсяВходНаСерверПередОтправкой = ТекущийОбъект.ТребуетсяВходНаСерверПередОтправкой И ТекущийОбъект.ПриОтправкеПисемТребуетсяАвторизация;
ТекущийОбъект.ДополнительныеСвойства.Вставить("Пароль", ПроверкаПароля);
КонецПроцедуры
@@ -80,10 +78,12 @@
ЗаполнитьРеквизитыОбъекта();
- Если Не ПроверкиПередЗаписьюВыполнены(ПараметрыЗаписи) Тогда
- Отказ = Истина;
- Возврат;
- КонецЕсли;
+ ОбработчикиПередЗаписью = Новый Массив;
+ ОбработчикиПередЗаписью.Добавить(Новый ОписаниеОповещения("ПроверитьЗаполнениеПередЗаписью", ЭтотОбъект, ПараметрыЗаписи));
+ ОбработчикиПередЗаписью.Добавить(Новый ОписаниеОповещения("ПроверитьРазрешенияПередЗаписью", ЭтотОбъект, ПараметрыЗаписи));
+ ОбработчикиПередЗаписью.Добавить(Новый ОписаниеОповещения("ПроверитьПарольПередЗаписью", ЭтотОбъект, ПараметрыЗаписи));
+
+ ПодключитьОбработчикиПередЗаписью(ОбработчикиПередЗаписью, ЭтотОбъект, Отказ, ПараметрыЗаписи);
КонецПроцедуры
@@ -96,17 +96,25 @@
Закрыть();
КонецЕсли;
- ВладелецУчетнойЗаписи = Объект.ВладелецУчетнойЗаписи;
-
Если ПараметрыЗаписи.Свойство("ПроверитьНастройки") Тогда
ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина);
КонецЕсли;
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
+ МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УстановитьВидНастройкиХраненияПисемНаСервере();
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
+ МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -121,6 +129,11 @@
ЗаполнитьНастройки();
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
+ МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -208,25 +221,20 @@
КонецПроцедуры
&НаКлиенте
-Процедура ПарольДляПолученияПисемПриИзменении(Элемент)
+Процедура ПарольПриИзменении(Элемент)
ПарольИзменен = Истина;
КонецПроцедуры
&НаКлиенте
-Процедура ПарольДляПолученияПисемИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
- Элементы.ПарольДляПолученияПисем.КнопкаВыбора = Истина;
+Процедура ПарольИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
+ Элементы.Пароль.КнопкаВыбора = Истина;
КонецПроцедуры
&НаКлиенте
-Процедура ПарольДляПолученияПисемНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
+Процедура ПарольНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РаботаСПочтовымиСообщениямиКлиент.ПолеПароляНачалоВыбора(Элемент, Пароль, СтандартнаяОбработка);
КонецПроцедуры
-&НаКлиенте
-Процедура ПарольДляОтправкиПисемПриИзменении(Элемент)
- ПарольSMTPИзменен = Истина;
-КонецПроцедуры
-
&НаКлиенте
Процедура ДляКогоУчетнаяЗаписьПриИзменении(Элемент)
Элементы.ПользовательУчетнойЗаписи.Доступность = ВидУчетнойЗаписи = "Персональная";
@@ -238,14 +246,9 @@
ОповеститьОбИзмененииВладельцаУчетнойЗаписи();
КонецПроцедуры
-&НаКлиенте
-Процедура ТребуетсяВходНаСерверПередОтправкойПриИзменении(Элемент)
- Элементы.ПолучениеПисем.Доступность = ДоступноПолучениеПисем Или Объект.ТребуетсяВходНаСерверПередОтправкой;
-КонецПроцедуры
-
&НаКлиенте
Процедура ТребуетсяАвторизацияПриОтправкеПисемПриИзменении(Элемент)
- Элементы.АвторизацияПриОтправкеПисем.Доступность = ТребуетсяАвторизацияПриОтправкеПисем;
+ Элементы.АвторизацияПриОтправкеПисем.Доступность = Объект.ПриОтправкеПисемТребуетсяАвторизация;
Элементы.АвторизацияПриОтправкеПисем.Видимость = Объект.ПротоколВходящейПочты = "POP";
КонецПроцедуры
@@ -283,6 +286,35 @@
#Область ОбработчикиКомандФормы
+&НаКлиенте
+Процедура Подключаемый_ОбновитьКоманды()
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
+ МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаСервере
+Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
+ МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
+ КонецЕсли;
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
+ ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
+КонецПроцедуры
+
+&НаКлиенте
+Процедура Подключаемый_ВыполнитьКоманду(Команда)
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
+ МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
+ МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
+ КонецЕсли;
+КонецПроцедуры
+
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
@@ -376,43 +408,19 @@
КонецПроцедуры
&НаКлиенте
-Функция ПроверкиПередЗаписьюВыполнены(ПараметрыЗаписи)
+Процедура ПроверитьЗаполнениеПередЗаписью(Отказ, ПараметрыЗаписи) Экспорт
- ПараметрыПередЗаписью = ПараметрыЗаписи;
-
- Если Не ПараметрыПередЗаписью.Свойство("ПроверкаЗаполненияВыполнена") Тогда
- ПодключитьОбработчикОжидания("ПроверитьЗаполнениеИЗаписать", 0.1, Истина);
- Возврат Ложь;
- КонецЕсли;
-
- Если Не ПараметрыПередЗаписью.Свойство("РазрешенияПолучены") Тогда
- ПодключитьОбработчикОжидания("ПроверитьРазрешенияИЗаписать", 0.1, Истина);
- Возврат Ложь;
- КонецЕсли;
-
- Если Не ПроверкаПароляВыполнена(ПараметрыПередЗаписью) Тогда
- ПодключитьОбработчикОжидания("ВвестиПарольУчетнойЗаписиИЗаписать", 0.1, Истина);
- Возврат Ложь;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПроверитьЗаполнениеИЗаписать()
-
- Если ПроверитьЗаполнение() Тогда
- ПараметрыПередЗаписью.Вставить("ПроверкаЗаполненияВыполнена");
- Записать(ПараметрыПередЗаписью);
+ Если Не ПроверитьЗаполнение() Тогда
+ Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
-Процедура ПроверитьРазрешенияИЗаписать()
+Процедура ПроверитьРазрешенияПередЗаписью(Отказ, ПараметрыЗаписи) Экспорт
- ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПроверкиРазрешений", ЭтотОбъект, ПараметрыПередЗаписью);
+ Отказ = Истина;
+ ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПроверкиРазрешений", ЭтотОбъект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент");
@@ -424,6 +432,18 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ПроверитьПарольПередЗаписью(Отказ, ПараметрыЗаписи) Экспорт
+
+ Если Не ПроверкаПароляВыполнена(ПараметрыЗаписи) Тогда
+ Отказ = Истина;
+ ПроверкаПароля = "";
+ ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВводаПароля", ЭтотОбъект, ПараметрыЗаписи);
+ ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПроверкаДоступаКУчетнойЗаписи", , ЭтотОбъект, , , , ОписаниеОповещения);
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаСервере
Функция ЗапросыНаИспользованиеВнешнихРесурсов()
@@ -472,7 +492,7 @@
Если Результат = КодВозвратаДиалога.ОК Тогда
ПараметрыЗаписи.Вставить("РазрешенияПолучены");
- Записать(ПараметрыПередЗаписью);
+ Записать(ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
@@ -495,15 +515,6 @@
Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.ТребуетсяПроверкаПароля(Ссылка, ЗначенияРеквизитов);
КонецФункции
-&НаКлиенте
-Процедура ВвестиПарольУчетнойЗаписиИЗаписать()
-
- ПроверкаПароля = "";
- ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВводаПароля", ЭтотОбъект, ПараметрыПередЗаписью);
- ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПроверкаДоступаКУчетнойЗаписи", , ЭтотОбъект, , , , ОписаниеОповещения);
-
-КонецПроцедуры
-
&НаКлиенте
Процедура ПослеВводаПароля(Пароль, ПараметрыЗаписи) Экспорт
@@ -534,8 +545,6 @@
&НаСервере
Процедура ЗаполнитьНастройки()
- Перем ИспользуетсяПротоколPOP, Пароли, ЭтоПерсональнаяУчетнаяЗапись;
-
ДоступноПолучениеПисем = РаботаСПочтовымиСообщениямиСлужебный.НастройкиПодсистемы().ДоступноПолучениеПисем;
Элементы.ОставлятьПисьмаНаСервере.Видимость = Объект.ПротоколВходящейПочты = "POP" И ДоступноПолучениеПисем;
@@ -549,10 +558,9 @@
Если НЕ Объект.Ссылка.Пустая() Тогда
УстановитьПривилегированныйРежим(Истина);
- Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка, "Пароль, ПарольSMTP");
+ ПарольУстановлен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка) <> "";
УстановитьПривилегированныйРежим(Ложь);
- Пароль = ?(ЗначениеЗаполнено(Пароли.Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
- ПарольSMTP = ?(ЗначениеЗаполнено(Пароли.ПарольSMTP), ЭтотОбъект.УникальныйИдентификатор, "");
+ Пароль = ?(ПарольУстановлен, ЭтотОбъект.УникальныйИдентификатор, "");
Если Не Справочники.УчетныеЗаписиЭлектроннойПочты.ИзменениеРазрешено(Объект.Ссылка) Тогда
ТолькоПросмотр = Истина;
@@ -564,11 +572,9 @@
ЭтоПерсональнаяУчетнаяЗапись = ЗначениеЗаполнено(Объект.ВладелецУчетнойЗаписи);
Элементы.ПользовательУчетнойЗаписи.Доступность = ЭтоПерсональнаяУчетнаяЗапись;
ВидУчетнойЗаписи = ?(ЭтоПерсональнаяУчетнаяЗапись, "Персональная", "Общая");
- ВладелецУчетнойЗаписи = Объект.ВладелецУчетнойЗаписи;
ИспользуетсяПротоколPOP = Объект.ПротоколВходящейПочты = "POP";
- ТребуетсяАвторизацияПриОтправкеПисем = ЗначениеЗаполнено(Объект.ПользовательSMTP) Или Объект.ТребуетсяВходНаСерверПередОтправкой;
- Элементы.АвторизацияПриОтправкеПисем.Доступность = ТребуетсяАвторизацияПриОтправкеПисем;
+ Элементы.АвторизацияПриОтправкеПисем.Доступность = Объект.ПриОтправкеПисемТребуетсяАвторизация;
УстановитьВидГруппыТребуетсяАвторизация(ЭтотОбъект, ИспользуетсяПротоколPOP);
ШифрованиеПриОтправкеПочты = ?(Объект.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты, "SSL", "Авто");
@@ -578,7 +584,64 @@
Элементы.ФормаПроверитьНастройки.Доступность = Объект.ИспользоватьДляОтправки Или Объект.ИспользоватьДляПолучения;
Элементы.ФормаОткрытьПомощникНастройки.Доступность = Не Объект.Ссылка.Пустая() И Не ТолькоПросмотр;
- Элементы.ПарольДляПолученияПисем.КнопкаВыбора = Ложь;
+ Элементы.Пароль.КнопкаВыбора = Ложь;
+
+КонецПроцедуры
+
+// Последовательно вызывает указанные обработчики в событии ПередЗаписью через обработчик ожидания.
+&НаКлиенте
+Процедура ПодключитьОбработчикиПередЗаписью(Обработчики, Форма, Отказ, ПараметрыЗаписи)
+
+ Если Не ПараметрыЗаписи.Свойство("ОбработчикиПередЗаписью") Тогда
+ ПараметрыЗаписи.Вставить("ОбработчикиПередЗаписью", Новый Структура)
+ КонецЕсли;
+
+ Для Каждого Обработчик Из Обработчики Цикл
+ Если Не ПараметрыЗаписи.ОбработчикиПередЗаписью.Свойство(Обработчик.ИмяПроцедуры) Тогда
+ ПараметрыЗаписи.ОбработчикиПередЗаписью.Вставить(Обработчик.ИмяПроцедуры, Ложь);
+ КонецЕсли;
+ КонецЦикла;
+
+ Для Каждого Проверка Из ПараметрыЗаписи.ОбработчикиПередЗаписью Цикл
+ Если Проверка.Значение = Ложь Тогда
+ Отказ = Истина;
+ ОписаниеОповещения = Новый ОписаниеОповещения(Проверка.Ключ, Форма, ПараметрыЗаписи);
+
+ ИмяПараметра = "СтандартныеПодсистемы.ОбработчикОжиданияПередЗаписьюВФорме";
+ Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
+ ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив);
+ КонецЕсли;
+ ПараметрыПриложения[ИмяПараметра].Добавить(ОписаниеОповещения);
+
+ ПодключитьОбработчикОжидания("ВыполнитьПроверкуПередЗаписьюВФорме", 0.1, Истина);
+ Возврат;
+ КонецЕсли;
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ВыполнитьПроверкуПередЗаписьюВФорме()
+
+ ИмяПараметра = "СтандартныеПодсистемы.ОбработчикОжиданияПередЗаписьюВФорме";
+ Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
+ ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив);
+ КонецЕсли;
+ ОбработчикиОжидания = ПараметрыПриложения[ИмяПараметра];
+
+ Если ОбработчикиОжидания.Количество() > 0 Тогда
+ ОписаниеОповещения = ОбработчикиОжидания[0];
+ ИмяПроцедуры = ОбработчикиОжидания[0].ИмяПроцедуры;
+ Форма = ОбработчикиОжидания[0].Модуль;
+ ПараметрыЗаписи = ОбработчикиОжидания[0].ДополнительныеПараметры;
+ ОбработчикиОжидания.Удалить(0);
+ ПараметрыЗаписи.ОбработчикиПередЗаписью[ИмяПроцедуры] = Истина;
+ Отказ = Ложь;
+ ВыполнитьОбработкуОповещения(ОписаниеОповещения, Отказ);
+ Если Не Отказ Тогда
+ Форма.Записать(ПараметрыЗаписи);
+ КонецЕсли;
+ КонецЕсли;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl
index 5fa4704b7..8ce6c8152 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
@@ -53,6 +54,32 @@
#КонецОбласти
+#КонецЕсли
+
+#Область ОбработчикиСобытий
+
+Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
+
+ СтандартнаяОбработка = Ложь;
+ Поля.Добавить("АдресЭлектроннойПочты");
+ Поля.Добавить("Наименование");
+
+КонецПроцедуры
+
+Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
+
+ Если ЗначениеЗаполнено(Данные.АдресЭлектроннойПочты) И СтрНайти(Данные.Наименование, Данные.АдресЭлектроннойПочты) = 0 Тогда
+ Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (%2)'"),
+ Данные.Наименование, Данные.АдресЭлектроннойПочты);
+ СтандартнаяОбработка = Ложь;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
#Область СлужебныйПрограммныйИнтерфейс
// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты,
@@ -65,6 +92,23 @@
МодульВзаимодействия.ЗарегистрироватьУчетныеЗаписиЭлектроннойПочтыКОбработкеДляПереходаНаНовуюВерсию(Параметры);
КонецЕсли;
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | УчетныеЗаписиЭлектроннойПочты.Ссылка
+ |ИЗ
+ | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты
+ |ГДЕ
+ | НЕ УчетныеЗаписиЭлектроннойПочты.ПриОтправкеПисемТребуетсяАвторизация
+ | И (УчетныеЗаписиЭлектроннойПочты.ПользовательSMTP <> """"
+ | ИЛИ УчетныеЗаписиЭлектроннойПочты.ТребуетсяВходНаСерверПередОтправкой)";
+
+ Запрос = Новый Запрос(ТекстЗапроса);
+
+ Результат = Запрос.Выполнить().Выгрузить();
+ МассивСсылок = Результат.ВыгрузитьКолонку("Ссылка");
+
+ ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, МассивСсылок);
+
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
@@ -110,13 +154,30 @@
Если ВладельцыУчетныхЗаписей[Выборка.Ссылка] <> Неопределено Тогда
УчетнаяЗапись.ВладелецУчетнойЗаписи = ВладельцыУчетныхЗаписей[Выборка.Ссылка];
КонецЕсли;
+ Если Не УчетнаяЗапись.ПриОтправкеПисемТребуетсяАвторизация
+ И (УчетнаяЗапись.ПользовательSMTP <> ""
+ Или УчетнаяЗапись.ТребуетсяВходНаСерверПередОтправкой) Тогда
+ УчетнаяЗапись.ПриОтправкеПисемТребуетсяАвторизация = Истина;
+ Если УчетнаяЗапись.ИспользоватьДляОтправки И УчетнаяЗапись.Пользователь <> УчетнаяЗапись.ПользовательSMTP Тогда
+ УчетнаяЗапись.Пользователь = УчетнаяЗапись.ПользовательSMTP;
+ УстановитьПривилегированныйРежим(Истина);
+ Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(УчетнаяЗапись.Ссылка, "Пароль,ПарольSMTP");
+ Если Пароли.Пароль <> Пароли.ПарольSMTP Тогда
+ ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗапись.Ссылка, Пароли.ПарольSMTP);
+ КонецЕсли;
+ УстановитьПривилегированныйРежим(Ложь);
+ КонецЕсли;
+ КонецЕсли;
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
+ МодульВзаимодействия.ОчиститьПризнакПерсональнаяУчетнаяЗапись(УчетнаяЗапись.Ссылка);
+ КонецЕсли;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(УчетнаяЗапись);
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
- ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление персональных учетных записей'", ОбщегоНазначения.КодОсновногоЯзыка()),
+ ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление учетных записей'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
@@ -153,7 +214,7 @@
Элемент.ИмяПредопределенныхДанных = "СистемнаяУчетнаяЗаписьЭлектроннойПочты";
Элемент.Наименование = НСтр("ru = 'Системная учетная запись'",
ОбщегоНазначения.КодОсновногоЯзыка());
- Элемент.ИмяПользователя = НСтр("ru = '1С:Предприятие'");
+ Элемент.ИмяПользователя = НСтр("ru = '1С:Предприятие'", ОбщегоНазначения.КодОсновногоЯзыка());
Элемент.ИспользоватьДляПолучения = Ложь;
Элемент.ИспользоватьДляОтправки = Ложь;
Элемент.ОставлятьКопииСообщенийНаСервере = Ложь;
@@ -662,7 +723,7 @@
?(ПустаяСтрока(ТекстОшибки), НСтр("ru = 'OK'"), ТекстОшибки));
КонецЕсли;
- ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка подключения к почтовому серверу'", ОбщегоНазначения.КодОсновногоЯзыка()),
+ ЗаписьЖурналаРегистрации(СобытиеПроверкаПодключенияКПочтовомуСерверу(),
УровеньЖурналаРегистрации.Информация, , , ТекстДляЖурнала);
Возврат ТекстОшибки;
@@ -707,7 +768,7 @@
Профиль.ПользовательSMTP,
?(ПустаяСтрока(ТекстОшибки), НСтр("ru = 'OK'"), ТекстОшибки));
- ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка подключения к почтовому серверу'", ОбщегоНазначения.КодОсновногоЯзыка()),
+ ЗаписьЖурналаРегистрации(СобытиеПроверкаПодключенияКПочтовомуСерверу(),
УровеньЖурналаРегистрации.Информация, , , ТекстДляЖурнала);
Возврат ТекстОшибки;
@@ -1241,6 +1302,10 @@
КонецФункции
+Функция СобытиеПроверкаПодключенияКПочтовомуСерверу()
+ Возврат НСтр("ru = 'Проверка подключения к почтовому серверу'", ОбщегоНазначения.КодОсновногоЯзыка());
+КонецФункции
+
#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo
index a25dec2f0..c949d739c 100644
--- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo
+++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo
@@ -10,8 +10,9 @@
УчетныеЗаписиЭлектроннойПочтыru
- Учетные записи электронной почты
+ Настройки почты
+ АПК:58trueCatalog.УчетныеЗаписиЭлектроннойПочты.StandardAttribute.DescriptionDontUse
@@ -106,7 +107,7 @@
Useru
- Учетная запись электронной почты
+ Настройка почты2true
@@ -526,8 +527,9 @@
ВладелецУчетнойЗаписиru
- Владелец учетной записи
+ Владелец почты
+ АПК:58CatalogRef.Пользователи
@@ -541,6 +543,21 @@
UseUse
+
+ ПриОтправкеПисемТребуетсяАвторизация
+
+ ru
+ При отправке писем требуется авторизация
+
+
+ Boolean
+
+
+
+
+ Use
+ Use
+ ФормаВыбора
@@ -600,7 +617,7 @@
ПроверкаНастроекУчетнойЗаписиru
- Проверка настроек учетной записи
+ Проверка настроек почтыPersonalComputerMobileDevice
diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl
index 5d22c649d..a6845b8dc 100644
--- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl
+++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl
@@ -1475,7 +1475,7 @@
КонецПроцедуры
// Параметры:
-// ПараметрыВыполнения - Структура - со свойствами:
+// ПараметрыВыполнения - Структура:
// * ДанныеФайла - см. РаботаСФайлами.ДанныеФайла
//
&НаКлиенте
diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form
index 30d3e46d3..3823c71df 100644
--- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Form.form
@@ -4054,6 +4054,19 @@
true
+
+ ИзменениеФайлов
+ 5
+
+ Boolean
+
+
+ true
+
+
+ true
+
+ СтандартнаяЗаписатьИЗакрыть
diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl
index 540a076ec..0d43207c1 100644
--- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl
@@ -146,16 +146,19 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.Свойства
+ ИзменениеФайлов = Пользователи.ЭтоПолноправныйПользователь();
УстановитьДоступностьКнопок(ЭтотОбъект, Элементы);
ОбновитьЗаголовок();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
+
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
-
+
КонецПроцедуры
&НаСервере
@@ -1110,8 +1113,12 @@
СделатьКомандуНедоступной(ИменаКоманд, "ОбновитьИзФайлаНаДиске");
Иначе
СделатьКомандуНедоступной(ИменаКоманд, "ЗакончитьРедактирование");
- СделатьКомандуНедоступной(ИменаКоманд, "Освободить");
СделатьКомандуНедоступной(ИменаКоманд, "Редактировать");
+
+ Если Не Форма.ИзменениеФайлов Тогда
+ СделатьКомандуНедоступной(ИменаКоманд, "Освободить");
+ КонецЕсли;
+
КонецЕсли;
СделатьКомандуНедоступной(ИменаКоманд, "Занять");
@@ -1121,8 +1128,11 @@
СделатьКомандуНедоступной(ИменаКоманд, "Расшифровать");
Иначе
СделатьКомандуНедоступной(ИменаКоманд, "ЗакончитьРедактирование");
- СделатьКомандуНедоступной(ИменаКоманд, "Освободить");
СделатьКомандуНедоступной(ИменаКоманд, "СохранитьИзменения");
+
+ Если Не Форма.ИзменениеФайлов Тогда
+ СделатьКомандуНедоступной(ИменаКоманд, "Освободить");
+ КонецЕсли;
КонецЕсли;
Если ФайлПодписан Тогда
@@ -1409,7 +1419,8 @@
// Продолжение процедуры ПрочитатьСертификатыПодписей.
//
// Параметры:
-// Контекст - Структура - .
+// Контекст - Структура
+//
&НаКлиенте
Процедура ПрочитатьСертификатыПодписейЦиклНачало(Контекст)
@@ -1457,8 +1468,9 @@
Возврат;
КонецЕсли;
- Контекст.Вставить("Сертификат", Сертификаты[0]);
- Контекст.Сертификат.НачатьВыгрузку(Новый ОписаниеОповещения(
+ Сертификат = Сертификаты[0];// СертификатКриптографии
+ Контекст.Вставить("Сертификат", Сертификат);
+ Сертификат.НачатьВыгрузку(Новый ОписаниеОповещения(
"ПрочитатьСертификатыПодписейЦиклПослеВыгрузкиСертификата", ЭтотОбъект, Контекст,
"ПрочитатьСертификатыПодписейЦиклПослеОшибкиВыгрузкиСертификата", ЭтотОбъект));
@@ -1477,11 +1489,12 @@
&НаКлиенте
Процедура ПрочитатьСертификатыПодписейЦиклПослеВыгрузкиСертификата(ДанныеСертификата, Контекст) Экспорт
+ МодульЭлектроннаяПодписьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиент");
СтрокаТаблицы = Контекст.СтрокаТаблицы;
СтрокаТаблицы.Отпечаток = Base64Строка(Контекст.Сертификат.Отпечаток);
СтрокаТаблицы.АдресСертификата = ПоместитьВоВременноеХранилище(ДанныеСертификата, УникальныйИдентификатор);
- СтрокаТаблицы.КомуВыданСертификат = Контекст.МодульЭлектроннаяПодпись.ПредставлениеСубъекта(Контекст.Сертификат);
+ СтрокаТаблицы.КомуВыданСертификат = МодульЭлектроннаяПодписьКлиент.ПредставлениеСубъекта(Контекст.Сертификат);
ПрочитатьСертификатыПодписейЦиклНачало(Контекст);
diff --git a/SSL/src/Catalogs/Файлы/ManagerModule.bsl b/SSL/src/Catalogs/Файлы/ManagerModule.bsl
index 566eb13fe..54752f682 100644
--- a/SSL/src/Catalogs/Файлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Файлы/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
@@ -132,6 +133,7 @@
// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты,
// которые необходимо обновить на новую версию.
+//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ОтработаныВсеФайлы = Ложь;
diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl
index c55dac263..4e50117a5 100644
--- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl
+++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl
@@ -484,6 +484,7 @@
// Процедура очищает таблицу ответов, от ответов, родительский вопрос которых
// не входит в МассивВопросов, выступающий в качестве параметра.
+//
&НаКлиенте
Процедура ОчиститьСписокОтветовЕслиНеобходимо(МассивВопросов)
@@ -505,6 +506,7 @@
// Устанавливает нужную страницу формирования структуры табличного вопроса в зависимости от
// выбранного типа табличного вопроса.
+//
&НаКлиенте
Процедура УстановитьСтраницуОтветы()
@@ -631,6 +633,7 @@
// Устанавливает отборы в элементы форм, предназначенные для
// составления списка предопределенных ответов.
+//
&НаКлиенте
Процедура УстановитьОтборы()
@@ -701,6 +704,7 @@
// Вызывается при изменении элементов форма, связанных с таблицей ответов.
// Параметры:
// Элемент - ТаблицаФормы - ЭлементКоторыйВызвал изменение.
+//
&НаКлиенте
Процедура ПриИзмененииОтветов(Элемент)
diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl
index 18ea699b6..f2e6d1daf 100644
--- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl
@@ -412,6 +412,7 @@
// Устанавливает флаг окончания редактирования шаблона анкеты
// и записывает анкету.
+//
&НаКлиенте
Процедура ЗакончитьРедактирование(Команда)
diff --git a/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl
index 897c42e60..8d2cbc3dc 100644
--- a/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl
index f0337af74..a952080f5 100644
--- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl
+++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Module.bsl
@@ -241,7 +241,7 @@
АдресРезультата = СформироватьСообщениеНаСервере(АдресВременногоХранилища, ПараметрыОтправки, ВидСообщения);
- Результат = ПолучитьИзВременногоХранилища(АдресРезультата);
+ Результат = ПолучитьИзВременногоХранилища(АдресРезультата); // см. ШаблоныСообщенийСлужебный.СформироватьСообщение
Результат.Вставить("Предмет", Предмет);
Результат.Вставить("Шаблон", ПараметрыОтправки.Шаблон);
@@ -280,6 +280,10 @@
КонецФункции
+// Параметры:
+// Результат - КодВозвратаДиалога
+// ПараметрыОтправки - см. ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки
+//
&НаКлиенте
Процедура ПослеВводаПараметров(Результат, ПараметрыОтправки) Экспорт
@@ -335,7 +339,6 @@
МодульОтправкаSMSКлиент= ОбщегоНазначенияКлиент.ОбщийМодуль("ОтправкаSMSКлиент");
ДополнительныеПараметры = Новый Структура("ПеревестиВТранслит");
-
Если Сообщение.ДополнительныеПараметры <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Сообщение.ДополнительныеПараметры);
КонецЕсли;
@@ -406,6 +409,10 @@
КонецФункции
+// Параметры:
+// Результат - КодВозвратаДиалога
+// ПараметрыОтправки -см. ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки
+//
&НаКлиенте
Процедура ПослеВопросаОбОткрытиеФормыСообщения(Результат, ПараметрыОтправки) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
@@ -501,10 +508,11 @@
&НаСервере
Процедура УстановитьHTMLВФорматированныйДокумент(ТекстШаблонаПисьмаHTML, СсылкаНаТекущийОбъект);
+ Сообщение = ШаблоныСообщенийСлужебный.КонструкторСообщения();
+
ПараметрШаблона = Новый Структура("Шаблон, УникальныйИдентификатор");
ПараметрШаблона.Шаблон = СсылкаНаТекущийОбъект;
ПараметрШаблона.УникальныйИдентификатор = УникальныйИдентификатор;
- Сообщение = ШаблоныСообщенийСлужебный.КонструкторСообщения();
Сообщение.Текст = ТекстШаблонаПисьмаHTML;
ШаблоныСообщенийСлужебный.ОбработатьHTMLДляФорматированногоДокумента(ПараметрШаблона, Сообщение, Истина);
СтруктураВложений = Новый Структура();
@@ -512,6 +520,12 @@
Изображение = Новый Картинка(ПолучитьИзВременногоХранилища(ВложениеВHTML.АдресВоВременномХранилище));
СтруктураВложений.Вставить(ВложениеВHTML.Представление, Изображение);
КонецЦикла;
+
+ ПараметрыШаблона = ШаблоныСообщенийСлужебный.ПараметрыШаблона(СсылкаНаТекущийОбъект);
+ СведенияОШаблоне = ШаблоныСообщенийСлужебный.СведенияОШаблоне(ПараметрыШаблона);
+
+ Сообщение.Текст = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(ТекстШаблонаПисьмаHTML, СведенияОШаблоне.Реквизиты, "ПараметрыВПредставление");
+ Сообщение.Текст = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(Сообщение.Текст , СведенияОШаблоне.ОбщиеРеквизиты, "ПараметрыВПредставление");
ПредпросмотрФорматированныйДокумент.УстановитьHTML(Сообщение.Текст, СтруктураВложений);
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form
index 390919f88..fd649ed0f 100644
--- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Form.form
@@ -3470,6 +3470,22 @@
true
+
+ ПолноеПредставление
+ 8
+
+ String
+
+ 300
+
+
+
+ true
+
+
+ true
+
+ Вложения
diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl
index eaf7cb99e..12331dbc8 100644
--- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl
@@ -74,6 +74,8 @@
Элементы.ПодписьИПечать.Видимость = МодульУправлениеПечатью.НастройкиПечати().ИспользоватьПодписиИПечати;
КонецЕсли;
+ УстановитьТекстШаблона(Объект);
+
КонецПроцедуры
&НаСервере
@@ -133,31 +135,23 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- РезультатПроверкиШаблоны = РезультатПроверкиШаблоны();
- Если ЗначениеЗаполнено(РезультатПроверкиШаблоны) Тогда
+ ИнформацияОПроверке = ОбработатьТекстШаблона();
+
+ Если Не ИнформацияОПроверке.Успех Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Шаблон сообщения не может быть записан.'")
- + Символы.ПС + РезультатПроверкиШаблоны);
+ + Символы.ПС + ИнформацияОПроверке.ТекстОшибки);
Отказ = Истина;
Возврат;
КонецЕсли;
Если ТекущийОбъект.ПредназначенДляSMS Тогда
- ТекущийОбъект.ТекстШаблонаSMS = ТелоСообщенияОбычныйТекст.ПолучитьТекст();
+ ТекущийОбъект.ТекстШаблонаSMS = ИнформацияОПроверке.ОбычныйТекст;
ТекущийОбъект.ФорматВложений = Неопределено;
Иначе
- Если ТекущийОбъект.ТипТекстаПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
- ТекстВHTML = "";
- ВложенияВHTML = Новый Структура();
- ТелоПисьмаВHTML.ПолучитьHTML(ТекстВHTML, ВложенияВHTML);
- ТекущийОбъект.ТекстШаблонаПисьмаHTML = ТекстВHTML;
- ТекущийОбъект.ТекстШаблонаПисьма = ТелоПисьмаВHTML.ПолучитьТекст();
- Иначе
- ТекущийОбъект.ТекстШаблонаПисьма = ТелоСообщенияОбычныйТекст.ПолучитьТекст();
- Если ПустаяСтрока(ТекущийОбъект.ТекстШаблонаПисьма) Тогда
- ТекущийОбъект.ТекстШаблонаПисьма = ТелоПисьмаВHTML.ПолучитьТекст();
- КонецЕсли;
- ТекущийОбъект.ТекстШаблонаПисьмаHTML = ТекущийОбъект.ТекстШаблонаПисьма;
- КонецЕсли;
+
+ ТекущийОбъект.ТекстШаблонаПисьмаHTML = ИнформацияОПроверке.HTMLТекст;
+ ТекущийОбъект.ТекстШаблонаПисьма = ИнформацияОПроверке.ОбычныйТекст;
+ ТекущийОбъект.ТемаПисьма = ИнформацияОПроверке.ТемаПисьма;
СписокФорматов = Новый СписокЗначений;
Для каждого ЭлементСписка Из ВыбранныеФорматыСохранения Цикл
@@ -167,33 +161,34 @@
КонецЦикла;
ТекущийОбъект.ФорматВложений = Новый ХранилищеЗначения(СписокФорматов);
- КонецЕсли;
-
- ТаблицаСоответствийИменВложенийИдентификаторам = Новый СписокЗначений;
- СтруктураВложений = Новый Структура;
- ТелоПисьмаВHTML.ПолучитьHTML(ТекущийОбъект.ТекстШаблонаПисьмаHTML, СтруктураВложений);
- Для каждого Вложение Из СтруктураВложений Цикл
- ТаблицаСоответствийИменВложенийИдентификаторам.Добавить(Вложение.Ключ, Новый УникальныйИдентификатор,, Вложение.Значение);
- КонецЦикла;
-
- ПараметрыЗаписи.Вставить("ВложенияHTML", ТаблицаСоответствийИменВложенийИдентификаторам);
-
- Если ТаблицаСоответствийИменВложенийИдентификаторам.Количество() > 0 Тогда
+ ТаблицаСоответствийИменВложенийИдентификаторам = Новый СписокЗначений;
+ СтруктураВложений = Новый Структура;
+
+ ТекстШаблонаHTML = ""; // Извлекаем вложения
+ ТелоПисьмаВHTML.ПолучитьHTML(ТекстШаблонаHTML, СтруктураВложений);
+ Для каждого Вложение Из СтруктураВложений Цикл
+ ТаблицаСоответствийИменВложенийИдентификаторам.Добавить(Вложение.Ключ, Новый УникальныйИдентификатор,, Вложение.Значение);
+ КонецЦикла;
+
+ ПараметрыЗаписи.Вставить("ВложенияHTML", ТаблицаСоответствийИменВложенийИдентификаторам);
+
+ Если ТаблицаСоответствийИменВложенийИдентификаторам.Количество() > 0 Тогда
ДокументHTML = ШаблоныСообщенийСлужебный.ПолучитьОбъектДокументHTMLИзТекстаHTML(ТекущийОбъект.ТекстШаблонаПисьмаHTML);
- ЗаменитьИменаКартинокНаИдентификаторыПочтовыхВложенийВHTML( ДокументHTML, ТаблицаСоответствийИменВложенийИдентификаторам);
+ ЗаменитьИменаКартинокНаИдентификаторыПочтовыхВложенийВHTML(ДокументHTML, ТаблицаСоответствийИменВложенийИдентификаторам);
ТекущийОбъект.ТекстШаблонаПисьмаHTML = ШаблоныСообщенийСлужебный.ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML);
- КонецЕсли;
-
- ТекущийОбъект.ПечатныеФормыИВложения.Очистить();
- Для каждого Вложение Из Вложения Цикл
- Если Вложение.Выбрано = 1 Тогда
- НоваяСтрока = ТекущийОбъект.ПечатныеФормыИВложения.Добавить();
- НоваяСтрока.Идентификатор = Вложение.Идентификатор;
- НоваяСтрока.Имя = Вложение.ИмяПараметра;
КонецЕсли;
- КонецЦикла;
+
+ ТекущийОбъект.ПечатныеФормыИВложения.Очистить();
+ Для каждого Вложение Из Вложения Цикл
+ Если Вложение.Выбрано = 1 Тогда
+ НоваяСтрока = ТекущийОбъект.ПечатныеФормыИВложения.Добавить();
+ НоваяСтрока.Идентификатор = Вложение.Идентификатор;
+ НоваяСтрока.Имя = Вложение.ИмяПараметра;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
ТекущийОбъект.Параметры.Очистить();
Для каждого ПараметрШаблона Из Объект.Параметры Цикл
@@ -204,14 +199,95 @@
КонецПроцедуры
+&НаСервере
+Функция ОбработатьТекстШаблона()
+
+ ДеревоПараметровШаблона = РеквизитФормыВЗначение("Реквизиты");
+
+ Результат = Новый Структура;
+ Результат.Вставить("ОбычныйТекст", ТелоСообщенияОбычныйТекст.ПолучитьТекст());
+ Результат.Вставить("HTMLТекст", "");
+ Результат.Вставить("ТекстОшибки", "");
+ Результат.Вставить("Успех", Истина);
+ Результат.Вставить("ТемаПисьма", Объект.ТемаПисьма);
+ Результат.Вставить("ТипТекстаПисьма", Объект.ТипТекстаПисьма);
+
+ ПроверяемыйТекст = "";
+ ВариантПреобразования = "ПредставлениеВПараметры";
+
+ Если Объект.ПредназначенДляSMS Тогда
+ Результат.ОбычныйТекст =
+ ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(Результат.ОбычныйТекст, ДеревоПараметровШаблона, ВариантПреобразования);
+ ПроверяемыйТекст = Результат.ОбычныйТекст;
+ Иначе
+ Если Результат.ТипТекстаПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
+
+ ВложенияВHTML = Новый Структура();
+ ТелоПисьмаВHTML.ПолучитьHTML(Результат.HTMLТекст, ВложенияВHTML);
+
+ Результат.HTMLТекст = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(СтрЗаменить(Результат.HTMLТекст, """, """"), ДеревоПараметровШаблона, ВариантПреобразования);
+ Результат.ОбычныйТекст = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(ТелоПисьмаВHTML.ПолучитьТекст(), ДеревоПараметровШаблона, ВариантПреобразования);
+ ПроверяемыйТекст = Результат.HTMLТекст;
+
+ Иначе
+
+ Если ПустаяСтрока(Результат.ОбычныйТекст) Тогда
+ Результат.ОбычныйТекст = ТелоПисьмаВHTML.ПолучитьТекст();
+ КонецЕсли;
+ Результат.ОбычныйТекст = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(Результат.ОбычныйТекст,
+ ДеревоПараметровШаблона, ВариантПреобразования);
+ Результат.HTMLТекст = Результат.ОбычныйТекст;
+
+ ПроверяемыйТекст = Результат.ОбычныйТекст;
+
+ КонецЕсли;
+
+ Результат.ТемаПисьма = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(Результат.ТемаПисьма, ДеревоПараметровШаблона, ВариантПреобразования);
+ ПроверяемыйТекст = ПроверяемыйТекст + Результат.ТемаПисьма;
+
+ КонецЕсли;
+
+ // проверка
+
+ ОшибочныеПараметры = Новый Массив;
+ ПараметрыШаблонаИзТекста = ШаблоныСообщенийСлужебный.ПараметрыТекстаСообщения(ПроверяемыйТекст);
+
+ Для каждого ПараметрШаблонаИзТекста Из ПараметрыШаблонаИзТекста Цикл
+
+ ОписаниеПараметра = ШаблоныСообщенийСлужебный.ИмяПараметраБезСтрокиФормата(ПараметрШаблонаИзТекста.Ключ);
+
+ НайденныеСтроки = ДеревоПараметровШаблона.Строки.НайтиСтроки(Новый Структура("Имя", ОписаниеПараметра.Имя), Истина);
+ Если НайденныеСтроки.Количество() > 0 Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ОшибочныеПараметры.Добавить( ОписаниеПараметра.Имя);
+
+ КонецЦикла;
+
+ Если ОшибочныеПараметры.Количество() > 0 Тогда
+ ТекстОшибки = ?(ОшибочныеПараметры.Количество() = 1,
+ НСтр("ru = 'Некорректный реквизит в шаблоне сообщения:'"),
+ НСтр("ru = 'Некорректные реквизиты в шаблоне сообщения:'"));
+ Результат.ТекстОшибки = ТекстОшибки + " " + СтрСоединить(ОшибочныеПараметры, ", ");
+ Результат.Успех = Ложь;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
+ Если ТекущийОбъект.ПредназначенДляSMS Тогда
+ Возврат;
+ КонецЕсли;
// Добавим в список удаленных вложений ранее сохраненные картинки, отображаемые в теле форматированного документа.
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами");
- СписокФайлов = Новый Массив;
+ СписокФайлов = Новый Массив; // Массив из ОпределяемыйТип.ПрисоединенныйФайл
МодульРаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(ТекущийОбъект.Ссылка, СписокФайлов);
Для каждого Вложение Из СписокФайлов Цикл
Если ЗначениеЗаполнено(Вложение.ИДФайлаЭлектронногоПисьма) Тогда
@@ -220,12 +296,12 @@
КонецЦикла;
КонецЕсли;
- СохранитьКартинкиФорматированногоДокументаКакПрисоединенныеФайлы(ТекущийОбъект.Ссылка,
+ СохранитьКартинкиФорматированногоДокументаКакПрисоединенныеФайлы(ТекущийОбъект.Ссылка,
ТекущийОбъект.ТипТекстаПисьма, ПараметрыЗаписи.ВложенияHTML, УникальныйИдентификатор);
Индекс = Вложения.Количество() - 1;
Пока Индекс >= 0 Цикл
- СтрокаТаблицыВложений = Вложения.Получить(Индекс);
+ СтрокаТаблицыВложений = ШаблоныСообщений.СтрокаВложений(Вложения.Получить(Индекс));
Если СтрокаТаблицыВложений.Статус = "ВнешнийУдаляемый" Тогда
Если Не СтрокаТаблицыВложений.Ссылка.Пустая() Тогда
УдалитьПрисоединенныйФайл(СтрокаТаблицыВложений.Ссылка);
@@ -421,13 +497,26 @@
Процедура РеквизитыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Отказ = Истина;
Если ИспользоватьПроизвольныеПараметры Тогда
- ДополнительныеПараметры = Новый Структура("Добавление", Истина);
+ ДополнительныеПараметры = ДополнительныеПараметрыДобавленияРеквизитов();
ОповещениеОЗакрытие = Новый ОписаниеОповещения("ПослеЗакрытияФормыПараметра", ЭтотОбъект, ДополнительныеПараметры);
ПараметрыФормы = Новый Структура("СписокПараметров, ПолноеИмяТипаПараметраВводаНаОсновании", Объект.Параметры, Объект.ПолноеИмяТипаПараметраВводаНаОсновании);
ОткрытьФорму("Справочник.ШаблоныСообщений.Форма.ПроизвольныйПараметр", ПараметрыФормы,,,,, ОповещениеОЗакрытие);
КонецЕсли;
КонецПроцедуры
+// Возвращаемое значение:
+// Структура:
+// * Добавление - Булево
+//
+&НаКлиенте
+Функция ДополнительныеПараметрыДобавленияРеквизитов()
+
+ ДополнительныеПараметры = Новый Структура;
+ ДополнительныеПараметры.Вставить("Добавление", Истина);
+ Возврат ДополнительныеПараметры;
+
+КонецФункции
+
&НаКлиенте
Процедура РеквизитыПриАктивизацииСтроки(Элемент)
ТекущиеДанные = Элементы.Реквизиты.ТекущиеДанные;
@@ -473,6 +562,7 @@
&НаКлиенте
Процедура РеквизитыНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
+
ПеретаскиваемыеОбъекты = ПараметрыПеретаскивания.Значение;
ТекстДляВставки = "";
Разделитель = "";
@@ -480,13 +570,12 @@
ЭлементДерева = Реквизиты.НайтиПоИдентификатору(ПеретаскиваемыйОбъект);
Если ЭлементДерева.ПолучитьЭлементы().Количество() = 0 Тогда
ФорматВывода = ?(ПустаяСтрока(ЭлементДерева.Формат), "", "{" + ЭлементДерева.Формат +"}");
- ТекстДляВставки = ТекстДляВставки + Разделитель + "[" + ЭлементДерева.Имя + ФорматВывода + "]";
+ ТекстДляВставки = ТекстДляВставки + Разделитель + "[" + ЭлементДерева.ПолноеПредставление + ФорматВывода + "]";
Разделитель = " ";
КонецЕсли;
КонецЦикла;
ПараметрыПеретаскивания.Значение = ТекстДляВставки;
-
КонецПроцедуры
&НаКлиенте
@@ -533,15 +622,17 @@
Процедура ПроверитьШаблон(Команда)
ОчиститьСообщения();
- РезультатПроверкиШаблоны = РезультатПроверкиШаблоны();
- Если ЗначениеЗаполнено(РезультатПроверкиШаблоны) Тогда
- ОбщегоНазначенияКлиент.СообщитьПользователю(РезультатПроверкиШаблоны);
- Иначе
+ ИнформацияОПроверке = ОбработатьТекстШаблона();
+
+ Если ИнформацияОПроверке.Успех Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Шаблон заполнен корректно'"));
+ Иначе
+ ОбщегоНазначенияКлиент.СообщитьПользователю(ИнформацияОПроверке.ТекстОшибки);
КонецЕсли;
КонецПроцедуры
+
&НаКлиенте
Процедура ВнешнейОбработкой(Команда)
@@ -633,7 +724,7 @@
Если ТекущиеДанные <> Неопределено Тогда
ФорматВывода = ?(ПустаяСтрока(ТекущиеДанные.Формат), "", "{" + ТекущиеДанные.Формат +"}");
НачалоПараметра = ?(Прав(Объект.ТемаПисьма, 1) = " ", "[", " [");
- Объект.ТемаПисьма = Объект.ТемаПисьма + НачалоПараметра + ТекущиеДанные.Имя + ФорматВывода + "]";
+ Объект.ТемаПисьма = Объект.ТемаПисьма + НачалоПараметра + ТекущиеДанные.ПолноеПредставление + ФорматВывода + "]";
КонецЕсли;
КонецПроцедуры
@@ -682,6 +773,10 @@
#Область СлужебныеПроцедурыИФункции
+// Параметры:
+// ОписаниеПараметра - Структура
+// ДополнительныеПараметры - см. ДополнительныеПараметрыДобавленияРеквизитов
+//
&НаКлиенте
Процедура ПослеЗакрытияФормыПараметра(ОписаниеПараметра, ДополнительныеПараметры) Экспорт
Если ТипЗнч(ОписаниеПараметра) = Тип("Структура") Тогда
@@ -984,18 +1079,31 @@
&НаСервере
Процедура УстановитьТекстШаблона(ТекущийОбъект, СписокФайлов = Неопределено)
+ СписокВсехПараметров = РеквизитФормыВЗначение("Реквизиты");
+ Если СписокВсехПараметров.Строки.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
Если ТекущийОбъект.ПредназначенДляSMS Тогда
- ТелоСообщенияОбычныйТекст.УстановитьТекст(ТекущийОбъект.ТекстШаблонаSMS);
+ ТелоСообщенияОбычныйТекст.УстановитьТекст(
+ ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(ТекущийОбъект.ТекстШаблонаSMS, СписокВсехПараметров, "ПараметрыВПредставление"));
+
Иначе
Если ТекущийОбъект.ТипТекстаПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
- УстановитьHTMLДляФорматированногоДокумента(ТекущийОбъект.ТекстШаблонаПисьмаHTML, ТекущийОбъект.Ссылка, СписокФайлов);
+ УстановитьHTMLДляФорматированногоДокумента(
+ ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(ТекущийОбъект.ТекстШаблонаПисьмаHTML, СписокВсехПараметров, "ПараметрыВПредставление"), ТекущийОбъект.Ссылка, СписокФайлов);
Иначе
- ТелоСообщенияОбычныйТекст.УстановитьТекст(ТекущийОбъект.ТекстШаблонаПисьма);
+ ТелоСообщенияОбычныйТекст.УстановитьТекст(
+ ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(ТекущийОбъект.ТекстШаблонаПисьма, СписокВсехПараметров, "ПараметрыВПредставление"));
КонецЕсли;
+
+ Объект.ТемаПисьма = ШаблоныСообщенийСлужебный.ПреобразоватьТекстШаблона(ТекущийОбъект.ТемаПисьма, СписокВсехПараметров, "ПараметрыВПредставление");
+
КонецЕсли;
-
+
КонецПроцедуры
+
&НаСервере
Процедура ОтображениеЭлементовФормы(ФорматаПисьма = "")
@@ -1248,33 +1356,6 @@
КонецПроцедуры
-// проверить шаблон
-&НаСервере
-Функция РезультатПроверкиШаблоны()
-
- ПараметрыШаблона = ШаблоныСообщенийСлужебный.ПараметрыШаблона(Объект);
- СведенияОШаблоне = ШаблоныСообщенийСлужебный.СведенияОШаблоне(ПараметрыШаблона);
-
- ОшибочныеРеквизиты = Новый Массив;
- ПараметрыТекстаСообщения = ШаблоныСообщенийСлужебный.ПараметрыИзТекстаСообщения(ПараметрыШаблона);
- ШаблоныСообщенийСлужебный.ОпределитьОшибочныеРеквизиты(ПараметрыТекстаСообщения, ОшибочныеРеквизиты, СведенияОШаблоне);
-
- ТекстОшибки = "";
- Если ОшибочныеРеквизиты.Количество() > 0 Тогда
- ТекстОшибки = ?(ОшибочныеРеквизиты.Количество() = 1,
- НСтр("ru = 'Некорректный реквизит в шаблоне сообщения:'"),
- НСтр("ru = 'Некорректные реквизиты в шаблоне сообщения:'")) + " ";
- Разделитель = "";
- Для каждого ОшибочныйРеквизит Из ОшибочныеРеквизиты Цикл
- ТекстОшибки = ТекстОшибки + Разделитель + СокрЛП(ОшибочныйРеквизит);
- Разделитель = ", ";
- КонецЦикла;
- КонецЕсли;
-
- Возврат ТекстОшибки;
-
-КонецФункции
-
// Вынужденная установка свойств на сервере
&НаСервере
@@ -1309,7 +1390,9 @@
Элементы.ФормаЭлектронноеПисьмоHTML.Пометка = Ложь;
Объект.ТипТекстаПисьма = ПредопределенноеЗначение("Перечисление.СпособыРедактированияЭлектронныхПисем.ОбычныйТекст");
Если ТребуетсяПереносТекста Тогда
- ТелоСообщенияОбычныйТекст.УстановитьТекст(ТелоПисьмаВHTML.ПолучитьТекст());
+ ШаблонОбычнымТекстом = ТелоПисьмаВHTML.ПолучитьТекст();
+ ТелоСообщенияОбычныйТекст.УстановитьТекст(ШаблонОбычнымТекстом);
+ Объект.ТекстШаблонаПисьма = ШаблонОбычнымТекстом;
КонецЕсли;
Элементы.СкрытыйЗаголовокПараметры.Видимость = Ложь;
@@ -1488,7 +1571,7 @@
&НаСервере
Функция СкопироватьВложенияИзИсточника()
- СписокФайлов = Новый Массив;
+ СписокФайлов = Новый Массив; // Массив из ОпределяемыйТип.ПрисоединенныйФайл
СписокОшибок = Неопределено;
ОписаниеОшибки = НСтр("ru = 'Не удалось скопировать вложение по причине: %1'");
@@ -1720,8 +1803,6 @@
&НаСервере
Процедура ЗаполнитьПроизвольныеПараметрыИзОбъекта(Знач ТекущийОбъект)
- Перем НайденныеСтроки, Отбор, ПараметрШаблонаТекущийОбъект;
-
Для каждого ПараметрШаблонаТекущийОбъект Из ТекущийОбъект.Параметры Цикл
Отбор = Новый Структура("ИмяПараметра", ПараметрШаблонаТекущийОбъект.ИмяПараметра);
НайденныеСтроки = Объект.Параметры.НайтиСтроки(Отбор);
@@ -1832,13 +1913,13 @@
НайденнаяСтрока = Реквизиты.НайтиПоИдентификатору(НомерСтроки);
Если НайденнаяСтрока <> Неопределено Тогда
ФорматВывода = ?(ПустаяСтрока(НайденнаяСтрока.Формат), "", "{" + НайденнаяСтрока.Формат +"}");
- Текст = Текст + "[" + НайденнаяСтрока.Имя + ФорматВывода + "] ";
+ Текст = Текст + "[" + НайденнаяСтрока.ПолноеПредставление + ФорматВывода + "] ";
КонецЕсли;
КонецЦикла;
Если Объект.ТипТекстаПисьма = ПредопределенноеЗначение("Перечисление.СпособыРедактированияЭлектронныхПисем.HTML") Тогда
Если ПустаяСтрока(Элементы.ТелоПисьмаВHTML.ВыделенныйТекст) Тогда
ЗакладкаДляВставкиНачало = Неопределено;
- ЗакладкаДляВставкиКонец = Неопределено;
+ ЗакладкаДляВставкиКонец = Неопределено;
Элементы.ТелоПисьмаВHTML.ПолучитьГраницыВыделения(ЗакладкаДляВставкиНачало, ЗакладкаДляВставкиКонец);
ТелоПисьмаВHTML.Вставить(ЗакладкаДляВставкиКонец, Текст);
Иначе
@@ -1855,5 +1936,4 @@
КонецПроцедуры
-
#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl
index eeb53ef5d..19fd12038 100644
--- a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl
@@ -88,4 +88,193 @@
#КонецОбласти
+#Область СлужебныеПроцедурыИФункции
+
+#Область ОбновлениеИнформационнойБазы
+
+// Регистрирует к обработке шаблоны сообщений.
+//
+Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ШаблоныСообщений.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.ШаблоныСообщений КАК ШаблоныСообщений";
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Если РезультатЗапроса.Пустой() Тогда
+ Возврат;
+ КонецЕсли;
+
+ ШаблоныКОбработке = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка");
+ ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, ШаблоныКОбработке);
+
+КонецПроцедуры
+
+Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
+
+ Шаблон = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ШаблоныСообщений");
+
+ ПроблемныхОбъектов = 0;
+ ОбъектовОбработано = 0;
+
+ Пока Шаблон.Следующий() Цикл
+
+ Блокировка = Новый БлокировкаДанных;
+ ЭлементБлокировки = Блокировка.Добавить("Справочник.ШаблоныСообщений");
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", Шаблон.Ссылка);
+
+ НачатьТранзакцию();
+ Попытка
+
+ Блокировка.Заблокировать();
+
+ ШаблонОбъект = Шаблон.Ссылка.ПолучитьОбъект();
+ Если ШаблонОбъект = Неопределено Тогда // объект может быть уже удален в других сеансах
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Шаблон.Ссылка);
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ ЗафиксироватьТранзакцию();
+ Продолжить;
+ КонецЕсли;
+
+ ПараметрыШаблона = ШаблоныСообщенийСлужебный.ПараметрыШаблона(Шаблон.Ссылка);
+ СведенияОШаблоне = ШаблоныСообщенийСлужебный.СведенияОШаблоне(ПараметрыШаблона);
+
+ МетаданныеОбъект = Метаданные.НайтиПоПолномуИмени(ПараметрыШаблона.ПолноеИмяТипаНазначения);
+
+ Если МетаданныеОбъект = Неопределено Тогда
+ ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Шаблон.Ссылка);
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ ЗафиксироватьТранзакцию();
+ Продолжить;
+ КонецЕсли;
+
+ ПараметрыДляЗамены = Новый Соответствие;
+ Префикс = МетаданныеОбъект.Имя + ".";
+
+ Для каждого РеквизитОбъектаНазначения Из МетаданныеОбъект.Реквизиты Цикл
+ Если РеквизитОбъектаНазначения.Тип.Типы().Количество() = 1 Тогда
+ ТипОбъекта = Метаданные.НайтиПоТипу(РеквизитОбъектаНазначения.Тип.Типы()[0]);
+ Если ТипОбъекта <> Неопределено И СтрНачинаетсяС(ТипОбъекта.ПолноеИмя(), "Справочник") Тогда
+ МетаданныеВложенногоОбъект = Метаданные.НайтиПоПолномуИмени(ТипОбъекта.ПолноеИмя());
+ ВложенныйПредмет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ТипОбъекта.ПолноеИмя()).ПустаяСсылка();
+ ПодготовитьПараметрыСвойствоИКИ(МетаданныеВложенногоОбъект, ВложенныйПредмет, ПараметрыДляЗамены, Префикс + РеквизитОбъектаНазначения.Имя + ".");
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ Предмет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПараметрыШаблона.ПолноеИмяТипаНазначения).ПустаяСсылка();
+ ПодготовитьПараметрыСвойствоИКИ(МетаданныеОбъект, Предмет, ПараметрыДляЗамены, Префикс);
+
+ СформироватьПараметрыДляЗамены(СведенияОШаблоне.ОбщиеРеквизиты.Строки, ПараметрыДляЗамены, "");
+
+ Если ПараметрыШаблона.ТипШаблона = "Письмо" Тогда
+
+ Для каждого РеквизитДляЗамены Из ПараметрыДляЗамены Цикл
+ ШаблонОбъект.ТемаПисьма = СтрЗаменить(ШаблонОбъект.ТемаПисьма, РеквизитДляЗамены.Ключ, РеквизитДляЗамены.Значение);
+ ШаблонОбъект.ТекстШаблонаПисьмаHTML = СтрЗаменить(ШаблонОбъект.ТекстШаблонаПисьмаHTML, РеквизитДляЗамены.Ключ, РеквизитДляЗамены.Значение);
+ ШаблонОбъект.ТекстШаблонаПисьма = СтрЗаменить(ШаблонОбъект.ТекстШаблонаПисьма, РеквизитДляЗамены.Ключ, РеквизитДляЗамены.Значение);
+ КонецЦикла;
+
+ Иначе
+
+ Для каждого РеквизитДляЗамены Из ПараметрыДляЗамены Цикл
+ ШаблонОбъект.ТекстШаблонаSMS = СтрЗаменить(ШаблонОбъект.ТекстШаблонаSMS, РеквизитДляЗамены.Ключ, РеквизитДляЗамены.Значение);
+ КонецЦикла;
+
+ КонецЕсли;
+
+ ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ШаблонОбъект);
+
+ ОбъектовОбработано = ОбъектовОбработано + 1;
+ ЗафиксироватьТранзакцию();
+ Исключение
+ // Если не удалось обработать шаблон сообщения, повторяем попытку снова.
+ ОтменитьТранзакцию();
+ ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
+
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не удалось обработать шаблон сообщения: %1 по причине: %2'"),
+ Шаблон.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
+ Метаданные.Справочники.ШаблоныСообщений, Шаблон.Ссылка, ТекстСообщения);
+ КонецПопытки;
+ КонецЦикла;
+
+ Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ШаблоныСообщений");
+
+ Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
+ ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые шаблоны сообщений (пропущены): %1'"),
+ ПроблемныхОбъектов);
+ ВызватьИсключение ТекстСообщения;
+ Иначе
+ ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
+ Метаданные.Справочники.ШаблоныСообщений,,
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура обновления обработала очередную порцию шаблонов сообщений: %1'"),
+ ОбъектовОбработано));
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура СформироватьПараметрыДляЗамены(Строки, РеквизитыДляЗамены, Префикс)
+
+ Для каждого РеквизитОбъектаНазначения Из Строки Цикл
+
+ Если РеквизитОбъектаНазначения.Тип.Типы().Количество() = 1 Тогда
+ ТипОбъекта = Метаданные.НайтиПоТипу(РеквизитОбъектаНазначения.Тип.Типы()[0]);
+ Если ТипОбъекта <> Неопределено И СтрНачинаетсяС(ТипОбъекта.ПолноеИмя(), "Справочник") Тогда
+ МетаданныеВложенногоОбъект = Метаданные.НайтиПоПолномуИмени(ТипОбъекта.ПолноеИмя());
+ ВложенныйПредмет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ТипОбъекта.ПолноеИмя()).ПустаяСсылка();
+ ПодготовитьПараметрыСвойствоИКИ(МетаданныеВложенногоОбъект, ВложенныйПредмет, РеквизитыДляЗамены, Префикс + РеквизитОбъектаНазначения.Имя + ".");
+ Продолжить;
+ КонецЕсли;
+ КонецЕсли;
+
+ Если РеквизитОбъектаНазначения.Строки.Количество() > 0 Тогда
+ СформироватьПараметрыДляЗамены(РеквизитОбъектаНазначения.Строки, РеквизитыДляЗамены, Префикс);
+
+ КонецЕсли;
+
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ПодготовитьПараметрыСвойствоИКИ(Знач МетаданныеОбъект, Знач Предмет, Знач РеквизитыДляЗамены, Префикс)
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
+ МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
+ ВидыКонтактнойИнформацией = МодульУправлениеКонтактнойИнформацией.ВидыКонтактнойИнформацииОбъекта(Предмет);
+ Если ВидыКонтактнойИнформацией.Количество() > 0 Тогда
+ Для каждого ВидКонтактнойИнформацией Из ВидыКонтактнойИнформацией Цикл
+ РеквизитыДляЗамены.Вставить("[" + Префикс + ВидКонтактнойИнформацией.Наименование + "]", "[" + Префикс + "~КИ." + ВидКонтактнойИнформацией.ИдентификаторДляФормул + "]");
+ КонецЦикла;
+ КонецЕсли;
+ КонецЕсли;
+
+ Свойства = Новый Массив;
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда
+ МодульУправлениеСвойствами = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствами");
+ ПолучатьДопСведения = МодульУправлениеСвойствами.ИспользоватьДопСведения(Предмет);
+ ПолучатьДопРеквизиты = МодульУправлениеСвойствами.ИспользоватьДопРеквизиты(Предмет);
+
+ Если ПолучатьДопРеквизиты Или ПолучатьДопСведения Тогда
+ Свойства = МодульУправлениеСвойствами.СвойстваОбъекта(Предмет, ПолучатьДопРеквизиты, ПолучатьДопСведения);
+ Для каждого Свойство Из Свойства Цикл
+ РеквизитыДляЗамены.Вставить("[" + Префикс + Свойство.Наименование + "]", "[" + Префикс + "~Свойство." + Свойство.ИдентификаторДляФормул + "]");
+ КонецЦикла;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+
#КонецЕсли
diff --git a/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl
index c0b9772bf..ec189d0e3 100644
--- a/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
diff --git a/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl
index c0b9772bf..ec189d0e3 100644
--- a/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
diff --git a/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl
index c0b9772bf..ec189d0e3 100644
--- a/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl
index 1dd11c626..d69b58c23 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl
@@ -181,6 +181,10 @@
#Область ОбработчикиКомандФормы
// СтандартныеПодсистемы.ПодключаемыеКоманды
+//
+// Параметры:
+// Команда - КомандаФормы
+//
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
Если СтрНачинаетсяС(Команда.Имя, "ВариантыОтветовАнкет") Тогда
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl
index 479599a77..ca3268fe4 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl
index 3cdfb1f6f..7c6ecbde9 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ObjectModule.bsl
@@ -55,6 +55,7 @@
// Процедура очищает значения ненужных реквизитов,
// Такая ситуация возникает, когда пользователь изменяет тип ответа при редактировании.
+//
Процедура ОчиститьНенужныеРеквизиты()
Если ((ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Число) И (ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Строка) И (ТипОтвета <> Перечисления.ТипыОтветовНаВопрос.Текст))
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl
index 26bd66b65..c3af1b220 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl
@@ -169,12 +169,23 @@
ТаблицаФормы = Элементы.ЗависимостиРеквизитов;
ТекущаяСтрока = ЗависимостиРеквизитов.НайтиПоИдентификатору(ТаблицаФормы.ТекущаяСтрока);
- ТекущаяСтрока.Значение = Неопределено;
Если ТаблицаФормы.ТекущиеДанные.Условие = "ВСписке"
Или ТаблицаФормы.ТекущиеДанные.Условие = "НеВСписке" Тогда
- ТекущаяСтрока.Значение = Новый СписокЗначений;
- ТекущаяСтрока.Значение.ТипЗначения = ТаблицаФормы.ТекущиеДанные.ТипЗначения;
+ Если ТипЗнч(ТекущаяСтрока.Значение) <> Тип("СписокЗначений") Тогда
+ СтароеЗначение = ТекущаяСтрока.Значение;
+ ТекущаяСтрока.Значение = Новый СписокЗначений;
+ ТекущаяСтрока.Значение.ТипЗначения = ТаблицаФормы.ТекущиеДанные.ТипЗначения;
+ Если ЗначениеЗаполнено(СтароеЗначение) Тогда
+ ТекущаяСтрока.Значение.Добавить(СтароеЗначение);
+ КонецЕсли;
+ КонецЕсли;
+ ИначеЕсли ТаблицаФормы.ТекущиеДанные.Условие = "Равно"
+ Или ТаблицаФормы.ТекущиеДанные.Условие = "НеРавно" Тогда
+ Если ТипЗнч(ТекущаяСтрока.Значение) = Тип("СписокЗначений")
+ И ТекущаяСтрока.Значение.Количество() > 0 Тогда
+ ТекущаяСтрока.Значение = ТекущаяСтрока.Значение[0].Значение;
+ КонецЕсли;
Иначе
ТекущаяСтрока.Значение = Неопределено;
КонецЕсли;
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl
index 61ce51cbc..3971caa28 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl
@@ -57,6 +57,7 @@
РазблокируемыеРеквизиты = Новый Массив;
РазблокируемыеРеквизиты.Добавить("ТипЗначения");
РазблокируемыеРеквизиты.Добавить("Имя");
+ РазблокируемыеРеквизиты.Добавить("ИдентификаторДляФормул");
Закрыть(РазблокируемыеРеквизиты);
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form
index d0ae2d63d..63c0cfe84 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Form.form
@@ -1332,6 +1332,10 @@
Краткое представление свойства, которое
выводится в формах редактирования его значения.
+
+ OnChange
+ ЗаголовокПриИзменении
+ ЗаголовокExtendedTooltip118
@@ -2339,6 +2343,106 @@
ОстальныеРеквизиты107
+
+ ГруппаИдентификаторДляФормул
+ 481
+
+ ИдентификаторДляФормул
+ 483
+ true
+ true
+
+ true
+
+
+ Объект.ИдентификаторДляФормул
+
+
+ ИдентификаторДляФормулРасширеннаяПодсказка
+ 485
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ИдентификаторДляФормулКонтекстноеМеню
+ 484
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ЗаполнитьИдентификаторДляФормул
+ 486
+ true
+ true
+
+ true
+
+
+ ЗаполнитьИдентификаторДляФормулРасширеннаяПодсказка
+ 487
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualButton
+ Form.Command.ЗаполнитьИдентификаторДляФормул
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+ true
+ true
+
+ true
+
+
+ ru
+ Идентификатор для формул
+
+
+ ГруппаИдентификаторДляФормулРасширеннаяПодсказка
+ 482
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ HorizontalIfPossible
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+ Подсказка30
@@ -5289,6 +5393,32 @@
DontUseAuto
+
+ ЗаполнитьИдентификаторДляФормул
+
+ ru
+ Заполнить идентификатор для формул
+
+ 11
+
+ ru
+ Заполнить идентификатор для формул
+
+
+
+ CommonPicture.ЗаполнитьФорму
+
+
+
+ ЗаполнитьИдентификаторДляФормул
+
+
+ Picture
+ Auto
+ Auto
+ ЭтоДополнительноеСведение
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html
index 0bf60f159..c0be6e473 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html
@@ -54,7 +54,7 @@
Сделать копию реквизита по образцу - создается дополнительный реквизит (сведение) с общим списком значений. Должен быть включен флажок Реквизиты и сведения с общим списком значений в разделе Администрирование - Общие настройки.
-
Добавить общий реквизит в набор - сделать дополнительный реквизит (сведение) общим. В этом случае общим становится не список значений, а сам реквизит. Должен быть включен флажок Общие реквизиты и сведения в разделе Администрирование - Общие настройки.
Добавить общий реквизит в набор - сделать дополнительный реквизит (сведение) общим. В этом случае общим становится не список значений, а сам реквизит. Должен быть включен флажок Общие реквизиты и сведения в разделе Администрирование - Общие настройки.
В программе предусмотрена возможность копирования дополнительных реквизитов (сведений).
В этом случае для набора дополнительных реквизитов (сведений) будет создана копия - самостоятельный дополнительный реквизит (сведение) со своим списком значений, никак не связанный с оригиналом, по которому был создан.
@@ -77,7 +77,7 @@
С помощью кнопок Копировать и Вставить.
Выделите дополнительный реквизит (сведение), нажмите кнопку Копировать. Выделите набор, в который нужно добавить дополнительный реквизит (сведение). Нажмите кнопку Вставить. Если были произведены соответствующие настройки, то открывается вторая страница помощника добавления дополнительных реквизитов (сведений). Если выбранный дополнительный реквизит (сведение) уже входит в какой-либо набор, то предлагается сделать его общим.
-
Команды Копировать и Вставить также доступны в контекстном меню по правой кнопке мыши или в меню Еще.
Для того чтобы использовать эту возможность, необходимо включить флажок Реквизиты и сведения с общим списком значений в разделе Администрирование - Общие настройки.
Можно использовать ранее введенные дополнительные реквизиты и сведения из других наборов, добавлять реквизиты с общим списком значений сразу для нескольких однотипных реквизитов (например, Цвет двери по образцу реквизита Цвет). Список значений в этом случае используется из реквизита-образца. Удобно выполнять централизованную настройку списка значений сразу для нескольких однотипных реквизитов.
@@ -107,7 +107,7 @@
Реквизит, созданный по образцу, который имеет общий список значений с другим реквизитом, можно сделать отдельным реквизитом.
Для этого нужно нажать кнопку Изменить, в открывшемся окне Изменить настройку дополнительного реквизита (сведения) выбрать переключатель Реквизит со своим списком значений и записать изменения. Список значений будет скопирован с заменой ссылок в документах. После этого станет доступным ввод списка значений.
-
Внимание: данную перенастройку для уже действующих реквизитов (использованных для ввода в документы) следует применять с осторожностью. Перенастройка реквизита является необратимой, может выполняться автоматически, но занимает много времени и может закончиться некорректно. Можно заменить значения в уже существующих документах вручную, очистив старые значения и добавив новые (рекомендуется).
Внимание: данную перенастройку для уже действующих реквизитов (использованных для ввода в документы) следует применять с осторожностью. Перенастройка реквизита является необратимой, может выполняться автоматически, но занимает много времени и может закончиться некорректно. Можно заменить значения в уже существующих документах вручную, очистив старые значения и добавив новые (рекомендуется).
Общий реквизит входит в несколько наборов. Этот вариант подходит для тех случаев, когда общим должен быть не только список значений, но и сам реквизит. В списках и отчетах по элементам различных справочников и документов общие реквизиты группируются и выводятся как один реквизит в одной колонке или поле. Например, с помощью общего реквизита Цвет можно отобрать всю желтую одежду и обувь.
Для того чтобы использовать эту возможность, необходимо включить флажок Общие реквизиты и сведения в разделе Администрирование - Общие настройки.
@@ -131,7 +131,7 @@
С помощью кнопки Изменить (находится рядом со ссылкой) можно общий реквизит сделать отдельным реквизитом с собственным списком значений.
В открывшемся окне Изменить настройку дополнительного реквизита (сведения), нажмите переключатель Реквизит со своим списком значений и записать изменения. Список значений будет скопирован с заменой ссылок в документах.
-
Внимание! Перенастройка дополнительного реквизита (сведения) необратима и может занять длительное время, в зависимости от числа документов, в которых заполнен этот реквизит. Вместо этого можно добавить новый реквизит со своим списком значений и выполнить вручную постепенный переход от использования этого реквизита к новому (очистить значения этого реквизита и заполнить значения нового).
Внимание! Перенастройка дополнительного реквизита (сведения) необратима и может занять длительное время, в зависимости от числа документов, в которых заполнен этот реквизит. Вместо этого можно добавить новый реквизит со своим списком значений и выполнить вручную постепенный переход от использования этого реквизита к новому (очистить значения этого реквизита и заполнить значения нового).
Тип значения дополнительных реквизитов и сведений меняется исходя из логики использования. Возможны следующие типы дополнительного реквизита или сведения:
Строка - Определите Длину строки, выберите параметр Фиксированная или Переменная (если введенная строка получится меньше предполагаемой длины, то количество знаков, отведенное под это значение, будет автоматически уменьшено до фактической). Максимальная длина строки в этом случае 1024 символа. Также можно включить флажок Неограниченная, если планируется вводить большой объем текстовой информации.
Для дополнительного реквизита типа Строка в программе предлагается возможность сделать поле многострочным. Для этого включите флажок Многострочное поле ввода и введите количество строк.
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl
index 4a67da145..25b024d8e 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl
@@ -62,6 +62,8 @@
Элементы.ТипЗначенияРеквизита.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево;
КонецЕсли;
+ Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
+
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
ТекущийЗаголовок = Объект.Заголовок;
@@ -153,6 +155,31 @@
КонецЕсли;
КонецЕсли;
+ Если НЕ ПараметрыЗаписи.Свойство("КогдаИдентификаторДляФормулУжеИспользуется")
+ И ЗначениеЗаполнено(Объект.ИдентификаторДляФормул) Тогда
+ // Заполнение идентификатора для формул
+ // и проверка есть ли свойство с тем же наименованием.
+ ТекстВопроса = ИдентификаторДляФормулУжеИспользуется(
+ Объект.ИдентификаторДляФормул, Объект.Ссылка);
+
+ Если ЗначениеЗаполнено(ТекстВопроса) Тогда
+ Кнопки = Новый СписокЗначений;
+ Кнопки.Добавить("ПродолжитьЗапись", НСтр("ru = 'Продолжить'"));
+ Кнопки.Добавить("ВернутьсяКВводуИдентификатора", НСтр("ru = 'Отмена'"));
+
+ ПоказатьВопрос(
+ Новый ОписаниеОповещения("ПослеОтветаНаВопросКогдаИдентификаторДляФормулУжеИспользуется", ЭтотОбъект, ПараметрыЗаписи),
+ ТекстВопроса, Кнопки, , "ПродолжитьЗапись");
+
+ ОтказПриЗаписи = Истина;
+ Отказ = Истина;
+ Возврат;
+
+ Иначе
+ ПараметрыЗаписи.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
+ КонецЕсли;
+ КонецЕсли;
+
Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения;
ПодключитьОбработчикОжидания("ПослеОшибкиЗаписи", 0.1, Истина);
@@ -207,6 +234,19 @@
ТекущийОбъект.Имя = ТекущийОбъект.Имя + "_" + СтрокаУИД;
КонецЕсли;
+ // Формирование идентификатора для формул дополнительного реквизита (сведения).
+ Если Не ЗначениеЗаполнено(ТекущийОбъект.ИдентификаторДляФормул)
+ Или ПараметрыЗаписи.Свойство("КогдаИдентификаторДляФормулУжеИспользуется") Тогда
+ ЗаголовокОбъекта = ЗаголовокДляФормированияИдентификатора(ТекущийОбъект.Заголовок, ТекущийОбъект.Представления);
+ ТекущийОбъект.ИдентификаторДляФормул = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул(
+ ЗаголовокОбъекта, ТекущийОбъект.Ссылка);
+
+ ПараметрыЗаписи.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
+ КонецЕсли;
+ Если ПараметрыЗаписи.Свойство("ПроверкаИдентификатораДляФормулВыполнена") Тогда
+ ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
+ КонецЕсли;
+
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецПроцедуры
@@ -326,6 +366,13 @@
УстановитьЗависимостиДополнительныхРеквизитов();
КонецЕсли;
+ Если ИмяСобытия = "ПослеВводаСтрокНаРазныхЯзыках"
+ И Параметр = ЭтотОбъект Тогда
+ Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ ОбновитьПредлагаемоеЗначениеИдентификатора();
+ КонецЕсли;
+ КонецЕсли;
+
КонецПроцедуры
&НаСервере
@@ -542,6 +589,13 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ЗаголовокПриИзменении(Элемент)
+ Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ ОбновитьПредлагаемоеЗначениеИдентификатора();
+ КонецЕсли;
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -706,10 +760,52 @@
ЗаписатьОбъект("ИзменениеПометкиУдаления", ОбработчикПродолжения);
КонецПроцедуры
+&НаКлиенте
+Процедура ЗаполнитьИдентификаторДляФормул(Команда)
+ ЗаполнитьИдентификаторДляФормулНаСервере();
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
+&НаСервере
+Процедура ОбновитьПредлагаемоеЗначениеИдентификатора()
+
+ ПредлагаемыйИдентификатор = "";
+ Если Не Элементы.ИдентификаторДляФормул.ТолькоПросмотр Тогда
+ Представление = ЗаголовокДляФормированияИдентификатора(Объект.Заголовок, Объект.Представления);
+ ПредлагаемыйИдентификатор = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул(
+ Представление, Объект.Ссылка);
+ Если ПредлагаемыйИдентификатор <> Объект.ИдентификаторДляФормул Тогда
+ Объект.ИдентификаторДляФормул = ПредлагаемыйИдентификатор;
+ Модифицированность = Истина;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗаполнитьИдентификаторДляФормулНаСервере()
+ ЗаголовокДляИдентификатора = ЗаголовокДляФормированияИдентификатора(Объект.Заголовок, Объект.Представления);
+ Объект.ИдентификаторДляФормул = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул(
+ ЗаголовокДляИдентификатора, Объект.Ссылка);
+КонецПроцедуры
+
+&НаСервереБезКонтекста
+Функция ЗаголовокДляФормированияИдентификатора(Знач Заголовок, Знач Представления)
+ Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
+ Отбор = Новый Структура();
+ Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
+ НайденныеСтроки = Представления.НайтиСтроки(Отбор);
+ Если НайденныеСтроки.Количество() > 0 Тогда
+ Заголовок = НайденныеСтроки[0].Заголовок;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Заголовок;
+КонецФункции
+
&НаСервере
Процедура УстановитьЗависимостиДополнительныхРеквизитов()
@@ -1032,10 +1128,7 @@
ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(ЭтотОбъект,
РазблокируемыеРеквизиты);
-
- #Если ВебКлиент Тогда
- ОбновитьОтображениеДанных();
- #КонецЕсли
+ Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
КонецПроцедуры
@@ -1093,6 +1186,23 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ПослеОтветаНаВопросКогдаИдентификаторДляФормулУжеИспользуется(Ответ, ПараметрыЗаписи) Экспорт
+
+ Если Ответ <> "ПродолжитьЗапись" Тогда
+ Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
+ ВыполнитьОбработкуОповещения(
+ Новый ОписаниеОповещения(ПараметрыЗаписи.ОбработкаПродолжения.ИмяПроцедуры,
+ ЭтотОбъект, ПараметрыЗаписи.ОбработкаПродолжения.Параметры),
+ Истина);
+ КонецЕсли;
+ Иначе
+ ПараметрыЗаписи.Вставить("КогдаИдентификаторДляФормулУжеИспользуется");
+ Записать(ПараметрыЗаписи);
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаКлиенте
Процедура ПослеПодтвержденияОчисткиВесовыхКоэффициентов(Ответ, Контекст) Экспорт
@@ -1858,6 +1968,8 @@
КонецЕсли;
КонецЕсли;
+ Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
+
КонецПроцедуры
&НаСервере
@@ -1904,7 +2016,7 @@
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
- ЗначениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
+ ЗначениеОбъект = Выборка.Ссылка.ПолучитьОбъект();// СправочникОбъект.ЗначенияСвойствОбъектов
ЗначениеОбъект.Вес = 0;
ЗначениеОбъект.Записать();
КонецЦикла;
@@ -2239,13 +2351,6 @@
|ГДЕ
| Наборы.Ссылка = &Набор";
- Если ЭтоДополнительноеСведение Тогда
- Запрос.Текст = СтрЗаменить(
- Запрос.Текст,
- "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты",
- "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения");
- КонецЕсли;
-
Иначе
Запрос.Текст =
"ВЫБРАТЬ
@@ -2284,7 +2389,7 @@
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Представления КАК СвойстваПредставления
| ПО Свойства.Ссылка = СвойстваПредставления.Ссылка
| И СвойстваПредставления.КодЯзыка = &КодЯзыка
- | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.[ИмяТаблицы] КАК СоставНабора
+ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СоставНабора
| ПО Свойства.Ссылка = СоставНабора.Свойство
|
|ГДЕ
@@ -2297,10 +2402,15 @@
|ВЫБРАТЬ
| ""ВерсияДанных"" КАК ВерсияДанных";
- Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ИмяТаблицы]",
- ?(ЭтоДополнительноеСведение, "ДополнительныеСведения", "ДополнительныеРеквизиты"));
- Запрос.УстановитьПараметр("ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1));
+ Запрос.УстановитьПараметр("ЭтоДополнительноеСведение", ЭтоДополнительноеСведение);
КонецЕсли;
+ Если ЭтоДополнительноеСведение Тогда
+ Запрос.Текст = СтрЗаменить(
+ Запрос.Текст,
+ "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты",
+ "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения");
+ КонецЕсли;
+
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
@@ -2574,6 +2684,68 @@
КонецФункции
+&НаСервереБезКонтекста
+Функция ИдентификаторДляФормулУжеИспользуется(Знач ИдентификаторДляФормул, Знач ТекущееСвойство)
+
+ ПроверочныйИдентификатор = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул(ИдентификаторДляФормул);
+ Если ВРег(ИдентификаторДляФормул) <> ВРег(ПроверочныйИдентификатор) Тогда
+ ТекстВопроса = НСтр("ru = 'Идентификатор ""%1"" не соответствует правилам именования переменных.
+ |Идентификатор не должен содержать пробелов и специальных символов.
+ |
+ |Создать новый идентификатор для формул и продолжить запись?'");
+ ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстВопроса,
+ ИдентификаторДляФормул);
+ Возврат ТекстВопроса;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ ПЕРВЫЕ 1
+ | Свойства.ЭтоДополнительноеСведение
+ |ИЗ
+ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства
+ |ГДЕ
+ | Свойства.ИдентификаторДляФормул = &ИдентификаторДляФормул
+ | И Свойства.Ссылка <> &Ссылка";
+
+ Запрос.УстановитьПараметр("Ссылка", ТекущееСвойство);
+ Запрос.УстановитьПараметр("ИдентификаторДляФормул", ИдентификаторДляФормул);
+
+ НачатьТранзакцию();
+ Попытка
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ОтменитьТранзакцию();
+ ВызватьИсключение;
+ КонецПопытки;
+
+ Если НЕ Выборка.Следующий() Тогда
+ Возврат "";
+ КонецЕсли;
+
+ Если Выборка.ЭтоДополнительноеСведение Тогда
+ ТекстВопроса = НСтр("ru = 'Существует дополнительное сведение с идентификатором для формул
+ |""%1"".'");
+ Иначе
+ ТекстВопроса = НСтр("ru = 'Существует дополнительный реквизит с идентификатором для формул
+ |""%1"".'");
+ КонецЕсли;
+
+ ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ ТекстВопроса + Символы.ПС + Символы.ПС
+ + НСтр("ru = 'Рекомендуется использовать другой идентификатор для формул,
+ |иначе программа может работать некорректно.
+ |
+ |Создать новый идентификатор для формул и продолжить запись?'"),
+ ИдентификаторДляФормул);
+
+ Возврат ТекстВопроса;
+
+КонецФункции
+
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЗаголовокКнопкиФормата(Форма)
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl
index e8b827efa..61f3c284a 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl
@@ -18,7 +18,8 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
-// Массив Из Строка -
+// Массив Из Строка
+//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
@@ -45,6 +46,7 @@
Результат.Добавить("ТипЗначения");
Результат.Добавить("Имя");
+ Результат.Добавить("ИдентификаторДляФормул");
Возврат Результат;
@@ -113,14 +115,241 @@
#Область СлужебныеПроцедурыИФункции
+#Область УникальностьИдентификатораДляФормул
+
+// Проверяет уникальность идентификатора, а также соответствие идентификатора правилам написания
+//
+// Параметры:
+// ИдентификаторДляФормул - Строка - идентификатор для формул.
+// Ссылка - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на текущий объект.
+// Отказ - Булево - флаг отказа при наличии ошибки.
+//
+Процедура ПроверитьУникальностьИдентификатора(ИдентификаторДляФормул, Ссылка, Отказ) Экспорт
+
+ Если ЗначениеЗаполнено(ИдентификаторДляФормул) Тогда
+
+ ИдентификаторПоПравилам = Истина;
+ ПроверочныйИдентификатор = ИдентификаторДляФормул(ИдентификаторДляФормул);
+ Если НЕ ВРег(ПроверочныйИдентификатор) = ВРег(ИдентификаторДляФормул) Тогда
+ ИдентификаторПоПравилам = Ложь;
+
+ ТекстОшибки = НСтр("ru = 'Идентификатор ""%1"" не соответствует правилам именования переменных.
+ |Идентификатор не должен содержать пробелов и специальных символов.'");
+ ОбщегоНазначения.СообщитьПользователю(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ИдентификаторДляФормул),,
+ "ИдентификаторДляФормул",, Отказ);
+
+ КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
+ ИмяСобытия = НСтр("ru = 'Запись дополнительного реквизита (сведения)'", КодЯзыка);
+ ТекстОшибки = НСтр("ru = 'Идентификатор ""%1"" не соответствует правилам именования переменных.
+ |Идентификатор не должен содержать пробелов и специальных символов.'", КодЯзыка);
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
+ ИдентификаторДляФормул);
+ ЗаписьЖурналаРегистрации(ИмяСобытия,
+ УровеньЖурналаРегистрации.Ошибка,
+ Ссылка.Метаданные(),
+ Ссылка,
+ ТекстОшибки);
+ КонецЕсли;
+
+ Если ИдентификаторПоПравилам Тогда
+ Если НЕ ИдентификаторДляФормулУникален(ИдентификаторДляФормул, Ссылка) Тогда
+
+ Отказ = Истина;
+
+ ТекстОшибки = НСтр("ru = 'Идентификатор для формул ""%1"" не уникален'");
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
+ ИдентификаторДляФормул);
+ ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, "ИдентификаторДляФормул");
+
+ КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
+ ТекстОшибки = НСтр("ru = 'Идентификатор для формул ""%1"" не уникален'", КодЯзыка);
+ ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
+ ИдентификаторДляФормул);
+ ИмяСобытия = НСтр("ru = 'Запись дополнительного реквизита (сведения)'", КодЯзыка);
+ ЗаписьЖурналаРегистрации(ИмяСобытия,
+ УровеньЖурналаРегистрации.Ошибка,
+ Ссылка.Метаданные(),
+ Ссылка,
+ ТекстОшибки);
+ КонецЕсли;
+ КонецЕсли;
+
+ Иначе
+
+ ТекстОшибки = НСтр("ru = 'Идентификатор для формул не заполнен'");
+ ОбщегоНазначения.СообщитьПользователю(
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ИдентификаторДляФормул),,
+ "ИдентификаторДляФормул",, Отказ);
+
+ КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
+ ИмяСобытия = НСтр("ru = 'Запись дополнительного реквизита (сведения)'", КодЯзыка);
+ ТекстОшибки = НСтр("ru = 'Идентификатор для формул не заполнен'", КодЯзыка);
+ ЗаписьЖурналаРегистрации(ИмяСобытия,
+ УровеньЖурналаРегистрации.Ошибка,
+ Ссылка.Метаданные(),
+ Ссылка,
+ ТекстОшибки);
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Возвращает уникальный идентификатора для формул (после проверки на уникальность)
+//
+// Параметры:
+// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул.
+// СсылкаНаТекущийОбъект - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на текущий элемент.
+// Возвращаемое значение:
+// Строка - уникальное значение идентификатора для формул.
+//
+Функция УникальныйИдентификаторДляФормул(ПредставлениеОбъекта, СсылкаНаТекущийОбъект) Экспорт
+
+ Идентификатор = ИдентификаторДляФормул(ПредставлениеОбъекта);
+ Если ПустаяСтрока(Идентификатор) Тогда
+ // Представление состоит и спецсимволов или цифр.
+ Префикс = НСтр("ru = 'Идентификатор'");
+ Идентификатор = ИдентификаторДляФормул(Префикс + ПредставлениеОбъекта);
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул КАК ИдентификаторДляФормул
+ |ИЗ
+ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
+ |ГДЕ
+ | ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул = &ИдентификаторДляФормул
+ | И ДополнительныеРеквизитыИСведения.Ссылка <> &СсылкаНаТекущийОбъект
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул КАК ИдентификаторДляФормул
+ |ИЗ
+ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
+ |ГДЕ
+ | ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул ПОДОБНО &ИдентификаторДляФормулПодобие
+ | И ДополнительныеРеквизитыИСведения.Ссылка <> &СсылкаНаТекущийОбъект";
+ Запрос.УстановитьПараметр("СсылкаНаТекущийОбъект", СсылкаНаТекущийОбъект);
+ Запрос.УстановитьПараметр("ИдентификаторДляФормул", Идентификатор);
+ Запрос.УстановитьПараметр("ИдентификаторДляФормулПодобие", Идентификатор + "%");
+
+ РезультатыЗапроса = Запрос.ВыполнитьПакет();
+ УникальностьПоТочномуСоответствию = РезультатыЗапроса[0];
+ Если НЕ УникальностьПоТочномуСоответствию.Пустой() Тогда
+ // Есть элементы с данным идентификатором.
+ ИспользованныеИдентификаторы = Новый Соответствие;
+ ВыборкаПодобных = РезультатыЗапроса[1].Выбрать();
+ Пока ВыборкаПодобных.Следующий() Цикл
+ ИспользованныеИдентификаторы.Вставить(ВРЕГ(ВыборкаПодобных.ИдентификаторДляФормул), Истина);
+ КонецЦикла;
+
+ ДобавляемыйНомер = 1;
+ ИдентификаторБезНомера = Идентификатор;
+ Пока НЕ ИспользованныеИдентификаторы.Получить(ВРЕГ(Идентификатор)) = Неопределено Цикл
+ ДобавляемыйНомер = ДобавляемыйНомер + 1;
+ Идентификатор = ИдентификаторБезНомера + ДобавляемыйНомер;
+ КонецЦикла;
+ КонецЕсли;
+
+ Возврат Идентификатор;
+КонецФункции
+
+Функция ИдентификаторДляФормулУникален(ПроверяемыйИдентификатор, СсылкаНаТекущийОбъект)
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул КАК ИдентификаторДляФормул
+ |ИЗ
+ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
+ |ГДЕ
+ | ДополнительныеРеквизитыИСведения.ИдентификаторДляФормул = &ИдентификаторДляФормул
+ | И ДополнительныеРеквизитыИСведения.Ссылка <> &СсылкаНаТекущийОбъект";
+ Запрос.УстановитьПараметр("ИдентификаторДляФормул", ПроверяемыйИдентификатор);
+ Запрос.УстановитьПараметр("СсылкаНаТекущийОбъект", СсылкаНаТекущийОбъект);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Возврат РезультатЗапроса.Пустой();
+КонецФункции
+
+// Вычисляет значение идентификатора из строки соответствии с правилами именования переменных.
+//
+// Параметры:
+// СтрокаПредставления - Строка - наименование, строка из которой необходимо получить идентификатор.
+//
+// Возвращаемое значение:
+// Строка - идентификатор, соответствующий правилам именования идентификаторов.
+//
+Функция ИдентификаторДляФормул(СтрокаПредставления) Экспорт
+
+ СпецСимволы = СпецСимволы();
+
+ Идентификатор = "";
+ БылСпецСимвол = Ложь;
+
+ Для НомСимвола = 1 По СтрДлина(СтрокаПредставления) Цикл
+
+ Символ = Сред(СтрокаПредставления, НомСимвола, 1);
+
+ Если СтрНайти(СпецСимволы, Символ) <> 0 Тогда
+ БылСпецСимвол = Истина;
+ Если Символ = "_" Тогда
+ Идентификатор = Идентификатор + Символ;
+ КонецЕсли;
+ ИначеЕсли БылСпецСимвол
+ ИЛИ НомСимвола = 1 Тогда
+ БылСпецСимвол = Ложь;
+ Идентификатор = Идентификатор + ВРег(Символ);
+ Иначе
+ Идентификатор = Идентификатор + Символ;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Идентификатор;
+
+КонецФункции
+
+Функция СпецСимволы()
+ Диапазоны = Новый Массив;
+ Диапазоны.Добавить(Новый Структура("Мин, Макс", 0, 32));
+ Диапазоны.Добавить(Новый Структура("Мин, Макс", 127, 191));
+
+ СпецСимволы = " .,+,-,/,*,?,=,<,>,(,)%!@#$%&*""№:;{}[]?()\|/`~'^_";
+ Для Каждого Диапазон Из Диапазоны Цикл
+ Для КодСимвола = Диапазон.Мин По Диапазон.Макс Цикл
+ СпецСимволы = СпецСимволы + Символ(КодСимвола);
+ КонецЦикла;
+ КонецЦикла;
+ Возврат СпецСимволы;
+КонецФункции
+
+Функция ЗаголовокДляФормированияИдентификатора(Знач Заголовок, Знач Представления)
+ Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
+ Отбор = Новый Структура();
+ Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
+ НайденныеСтроки = Представления.НайтиСтроки(Отбор);
+ Если НайденныеСтроки.Количество() > 0 Тогда
+ Заголовок = НайденныеСтроки[0].Заголовок;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Заголовок;
+КонецФункции
+
+#КонецОбласти
+
// Изменяет настройку свойства с общего свойства или общего списка значений свойства
// на отдельное свойство с отдельным списком значений.
//
// Параметры:
-// Параметры - Структура - со свойствами:
-// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения -
-// * ТекущийНаборСвойств - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений -
-// АдресХранилища - Строка -
+// Параметры - Структура:
+// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
+// * ТекущийНаборСвойств - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений
+// АдресХранилища - Строка
//
Процедура ИзменитьНастройкуСвойства(Параметры, АдресХранилища) Экспорт
@@ -153,7 +382,7 @@
Иначе
Запрос.УстановитьПараметр("Владелец", Свойство);
НовыйОбъект = СоздатьЭлемент();
- ЗаполнитьЗначенияСвойств(НовыйОбъект, СвойствоОбъект, , "Родитель");
+ ЗаполнитьЗначенияСвойств(НовыйОбъект, СвойствоОбъект, , "Родитель, ИдентификаторДляФормул");
Отбор = Новый Структура;
Отбор.Вставить("НаборСвойств", ТекущийНаборСвойств);
@@ -579,7 +808,16 @@
|ИЗ
| ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ЗависимостиДополнительныхРеквизитов
|ГДЕ
- | ЗависимостиДополнительныхРеквизитов.НаборСвойств = &НаборСвойств";
+ | ЗависимостиДополнительныхРеквизитов.НаборСвойств = &НаборСвойств
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |ВЫБРАТЬ
+ | ДополнительныеРеквизитыИСведения.Ссылка
+ |ИЗ
+ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
+ |ГДЕ
+ | ИдентификаторДляФормул = """"";
Запрос.УстановитьПараметр("НаборСвойств", Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка());
@@ -605,10 +843,11 @@
// Блокируем объект от изменения другими сеансами.
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ПолноеИмя);
- ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
+ Ссылка = Выборка.Ссылка; // ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения -
+ ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
Блокировка.Заблокировать();
- Объект = Выборка.Ссылка.ПолучитьОбъект();
+ Объект = Ссылка.ПолучитьОбъект();
Если Не ЗначениеЗаполнено(Объект.Имя) Тогда
УстановитьИмяРеквизита(Выборка, Объект);
@@ -622,6 +861,10 @@
КонецЕсли;
Зависимость.НаборСвойств = Объект.НаборСвойств;
КонецЦикла;
+ Если НЕ ЗначениеЗаполнено(Объект.ИдентификаторДляФормул) Тогда
+ ЗаголовокДляФормул = ЗаголовокДляФормированияИдентификатора(Объект.Заголовок, Объект.Представления);
+ Объект.ИдентификаторДляФормул = УникальныйИдентификаторДляФормул(ЗаголовокДляФормул, Объект.Ссылка);
+ КонецЕсли;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
ОбъектовОбработано = ОбъектовОбработано + 1;
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl
index a85c8b91c..e2093f4e3 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl
@@ -14,6 +14,7 @@
Заголовок = "";
Имя = "";
+ ИдентификаторДляФормул = "";
КонецПроцедуры
@@ -23,6 +24,8 @@
Возврат;
КонецЕсли;
+ КонтрольЗаполнениеИдентификатораДляФормул(Отказ);
+
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
КонецПроцедуры
@@ -108,7 +111,7 @@
Результат = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаРезультата Из Результат Цикл
- НаборСвойствОбъект = СтрокаРезультата.Ссылка.ПолучитьОбъект();
+ НаборСвойствОбъект = СтрокаРезультата.Ссылка.ПолучитьОбъект();// СправочникОбъект.НаборыДополнительныхРеквизитовИСведений,
Если ЭтоДополнительноеСведение Тогда
ЗаполнитьЗначенияСвойств(НаборСвойствОбъект.ДополнительныеСведения.Найти(Ссылка, "Свойство"), СвойстваОбъекта);
Иначе
@@ -188,6 +191,37 @@
#КонецОбласти
+#Область СлужебныеПроцедурыИФункции
+
+Процедура КонтрольЗаполнениеИдентификатораДляФормул(Отказ)
+ Если НЕ ДополнительныеСвойства.Свойство("ПроверкаИдентификатораДляФормулВыполнена") Тогда
+ // Программная запись.
+ Если ЗначениеЗаполнено(ИдентификаторДляФормул) Тогда
+ ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПроверитьУникальностьИдентификатора(ИдентификаторДляФормул, Ссылка, Отказ);
+ Иначе
+ // Установка идентификатора.
+ ИдентификаторДляФормул = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.УникальныйИдентификаторДляФормул(
+ ЗаголовокДляФормированияИдентификатора(), Ссылка);
+ КонецЕсли;
+ КонецЕсли;
+КонецПроцедуры
+
+Функция ЗаголовокДляФормированияИдентификатора()
+ ЗаголовокДляИдентификатора = Заголовок;
+ Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
+ Отбор = Новый Структура();
+ Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
+ НайденныеСтроки = Представления.НайтиСтроки(Отбор);
+ Если НайденныеСтроки.Количество() > 0 Тогда
+ ЗаголовокДляИдентификатора = НайденныеСтроки[0].Заголовок;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат ЗаголовокДляИдентификатора;
+КонецФункции
+
+#КонецОбласти
+
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo
index c7520ebbf..9bcf114d5 100644
--- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo
+++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo
@@ -471,7 +471,7 @@
ru
- Набор свойств, которому принадлежит уникальное свойство. Если не задан, значит свойство включено в несколько наборов.
+ Набор свойств, в котором было изначально создано свойство. При включении свойства в несколько наборов значение не меняется.
@@ -479,6 +479,28 @@
UseUse
+
+ ИдентификаторДляФормул
+
+ ru
+ Идентификатор для формул
+
+
+ en
+ Идентификатор для формул
+
+
+ String
+
+ 150
+
+
+
+
+
+ Use
+ Use
+
@@ -505,7 +527,9 @@
Устанавливается программой автоматически, но может быть изменен при необходимости. Для этого Выберите другую папку на компьютере. При выборе другого пути к основному рабочему каталогу надо выбирать пустой каталог (не содержащий файлов или подкаталогов).
Для того чтобы вернуться к первоначальным настройкам программы, нажмите кнопку Восстановить значение по умолчанию.
Максимальный размер
-
В поле Максимальный размер (Мб) установите предел суммарного объема всех файлов в основном рабочем каталоге (по умолчанию 100 Мб). Если установлен равным 0, то объем файлов не ограничен. Размер указывается в мегабайтах (Мб).
Запрос программы на удаление файлов
-
Если установлен флажок Подтверждать при удалении из рабочего каталога, то перед удалением каждого файла будет выдаваться запрос на удаление файла. По умолчанию флажок снят.
Удаление файлов после редактирования
-
Если установлен флажок Удалять файлы при завершении редактирования, то после переносав программу файл удаляется на Вашем персональном компьютере. Используйте эту настройку для экономии места на жестком диске или в целях повышения безопасности. По умолчанию флажок снят.
Текущее состояние
+
В поле Максимальный размер (Мб) установите предел суммарного объема всех файлов в основном рабочем каталоге (по умолчанию 100 Мб). Если установлен равным 0, то объем файлов не ограничен. Размер указывается в мегабайтах (Мб).
Удаление файлов после редактирования
+
Если установлен флажок Удалять файлы при завершении редактирования, то после переноса в программу файл удаляется на Вашем персональном компьютере. Используйте эту настройку для экономии места на жестком диске или в целях повышения безопасности. По умолчанию флажок снят.
Текущее состояние
Программа показывает Текущее состояние основного рабочего каталога - количество Файлов, содержащихся в нем и их Общий объем (Мб).
Очистка основного рабочего каталога
Нажмите Очистить рабочий каталог, для того чтобы удалить все файлы в основном рабочем каталоге, кроме занятых Вами для редактирования. Для подтверждения очистки нажмите Да.