Этот бизнес-процесс состоит из двух шагов - исполнение и проверка, при этом проверяющий может вернуть задачу на доработку.
См. также: Общая информация о бизнес-процессах.
\ No newline at end of file diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl index 709ffecbc..07b7ecc71 100644 --- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl @@ -5,31 +5,12 @@ // СтандартныеПодсистемы.УправлениеДоступом -// Процедура ЗаполнитьНаборыЗначенийДоступа по свойствам объекта заполняет наборы значений доступа -// в таблице с полями: -// НомерНабора - Число (необязательно, если набор один), -// ВидДоступа - ПланВидовХарактеристикСсылка.ВидыДоступа, (обязательно), -// ЗначениеДоступа - Неопределено, СправочникСсылка или др. (обязательно), -// Чтение - Булево (необязательно, если набор для всех прав) устанавливается для одной строки набора, -// Добавление - Булево (необязательно, если набор для всех прав) устанавливается для одной строки набора, -// Изменение - Булево (необязательно, если набор для всех прав) устанавливается для одной строки набора, -// Удаление - Булево (необязательно, если набор для всех прав) устанавливается для одной строки набора, -// -// Вызывается из процедуры УправлениеДоступомСлужебный.ЗаписатьНаборыЗначенийДоступа(), -// если объект зарегистрирован в "ПодпискаНаСобытие.ЗаписатьНаборыЗначенийДоступа" и -// из таких же процедур объектов, у которых наборы значений доступа зависят от наборов этого -// объекта (в этом случае объект зарегистрирован в "ПодпискаНаСобытие.ЗаписатьЗависимыеНаборыЗначенийДоступа"). -// -// Параметры: -// Таблица - ТабличнаяЧасть, -// РегистрСведенийНаборЗаписей.НаборыЗначенийДоступа, -// ТаблицаЗначений, возвращаемая УправлениеДоступом.ТаблицаНаборыЗначенийДоступа(). -// +// См. описание в комментарии к одноименной процедуре в модуле УправлениеДоступом. Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт // Логика ограничения: - // Чтения: Автор ИЛИ Исполнитель ИЛИ Проверяющий ИЛИ Предмет - // Добавления, Изменения: Автор + // Чтения: Автор ИЛИ Исполнитель ИЛИ Проверяющий ИЛИ Предмет + // Изменения: Автор // Если предмет не задан (т.е. бизнес-процесс без основания), // тогда предмет не участвует в логике ограничения. @@ -38,33 +19,28 @@ Строка = Таблица.Добавить(); Строка.НомерНабора = 1; Строка.Чтение = Истина; - Строка.Добавление = Истина; Строка.Изменение = Истина; - Строка.ВидДоступа = ПланыВидовХарактеристик["ВидыДоступа"].Пользователи; Строка.ЗначениеДоступа = Автор; // Чтение: набор №2. Строка = Таблица.Добавить(); Строка.НомерНабора = 2; Строка.Чтение = Истина; - Строка.ВидДоступа = ПланыВидовХарактеристик["ВидыДоступа"].Пользователи; Строка.ЗначениеДоступа = Исполнитель; // Чтение: набор №3. Строка = Таблица.Добавить(); Строка.НомерНабора = 3; Строка.Чтение = Истина; - Строка.ВидДоступа = ПланыВидовХарактеристик["ВидыДоступа"].Пользователи; Строка.ЗначениеДоступа = Проверяющий; // Чтение: набор "№4". Если ЗначениеЗаполнено(Предмет) Тогда - МодульУправлениеДоступом = ОбщегоНазначенияКлиентСервер.ОбщийМодуль("УправлениеДоступом"); + МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); Если ТипЗнч(Предмет) = Тип("СправочникСсылка.Пользователи") Тогда Строка = Таблица.Добавить(); Строка.НомерНабора = 4; Строка.Чтение = Истина; - Строка.ВидДоступа = ПланыВидовХарактеристик["ВидыДоступа"].Пользователи; Строка.ЗначениеДоступа = Предмет; ИначеЕсли МодульУправлениеДоступом.ВозможноЗаполнитьНаборыЗначенийДоступа(Предмет) Тогда @@ -89,6 +65,11 @@ НачатьТранзакцию(); Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя"); + ЭлементБлокировки.УстановитьЗначение("БизнесПроцесс", Ссылка); + Блокировка.Заблокировать(); + Запрос = Новый Запрос( "ВЫБРАТЬ | Задачи.Ссылка КАК Ссылка @@ -99,19 +80,8 @@ | И Задачи.ПометкаУдаления = ЛОЖЬ | И Задачи.Выполнена = ЛОЖЬ"); Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка); - Результат = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); - Блокировка = Новый БлокировкаДанных; - - ВыборкаДетальныеЗаписи = Результат.Выбрать(); - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя"); - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; - ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаДетальныеЗаписи.Ссылка); - КонецЦикла; - Блокировка.Заблокировать(); - - ВыборкаДетальныеЗаписи.Сбросить(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); ЗадачаОбъект.Важность = Важность; @@ -415,6 +385,11 @@ УстановитьПривилегированныйРежим(Истина); НачатьТранзакцию(); Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя"); + ЭлементБлокировки.УстановитьЗначение("БизнесПроцесс", Ссылка); + Блокировка.Заблокировать(); + Запрос = Новый Запрос( "ВЫБРАТЬ | Задачи.Ссылка КАК Ссылка @@ -424,18 +399,8 @@ | Задачи.БизнесПроцесс = &БизнесПроцесс"); Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка); - Результат = Запрос.Выполнить(); + ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); - Блокировка = Новый БлокировкаДанных; - ВыборкаДетальныеЗаписи = Результат.Выбрать(); - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя"); - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; - ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаДетальныеЗаписи.Ссылка); - КонецЦикла; - Блокировка.Заблокировать(); - - ВыборкаДетальныеЗаписи.Сбросить(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); ЗадачаОбъект.Предмет = Предмет; diff --git a/SSL/src/BusinessProcesses/Задание/Задание.mdo b/SSL/src/BusinessProcesses/Задание/Задание.mdo index 3e7247535..5fdade934 100644 --- a/SSL/src/BusinessProcesses/Задание/Задание.mdo +++ b/SSL/src/BusinessProcesses/Задание/Задание.mdo @@ -37,6 +37,14 @@Общероссийский классификатор валют содержит общую информацию о валютах и предназначен для добавления новых валют.
Справочник «Валюты» предназначен для хранения списка используемых валют и их курсов.
Справочник «Валюты» предназначен для хранения списка используемых валют и их курсов.
Позволяет настраивать размещение нескольких вариантов отчетов в разделах программы.
См. также: Вариант отчета, Общая информация о формах.
\ No newline at end of file diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl index ea65d39a7..fad82705b 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl @@ -14,7 +14,7 @@ ПерезаполнитьДерево(Ложь); - ВариантыОтчетов.ДеревоПодсистемДобавитьУсловноеОформление(ЭтаФорма); + ВариантыОтчетов.ДеревоПодсистемДобавитьУсловноеОформление(ЭтотОбъект); ТекущийЭлемент = Элементы.ДеревоПодсистем; КонецПроцедуры @@ -31,20 +31,6 @@ КонецЕсли; КонецПроцедуры -&НаКлиенте -Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) - Если ВариантыОтчетовКлиент.СохранитьДанныеПроизвольнойФормы(Модифицированность, Отказ) Тогда - ЗаписатьНаКлиенте(); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПриЗакрытии() - Если ВариантыОтчетовКлиент.СохранитьДанныеПроизвольнойФормы(Модифицированность) Тогда - ЗаписатьНаКлиенте(); - КонецЕсли; -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ШАПКИ ФОРМЫ @@ -59,12 +45,12 @@ &НаКлиенте Процедура ДеревоПодсистемИспользованиеПриИзменении(Элемент) - ВариантыОтчетовКлиент.ДеревоПодсистемИспользованиеПриИзменении(ЭтаФорма, Элемент); + ВариантыОтчетовКлиент.ДеревоПодсистемИспользованиеПриИзменении(ЭтотОбъект, Элемент); КонецПроцедуры &НаКлиенте Процедура ДеревоПодсистемВажностьПриИзменении(Элемент) - ВариантыОтчетовКлиент.ДеревоПодсистемВажностьПриИзменении(ЭтаФорма, Элемент); + ВариантыОтчетовКлиент.ДеревоПодсистемВажностьПриИзменении(ЭтотОбъект, Элемент); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -73,7 +59,11 @@ &НаКлиенте Процедура Разместить(Команда) Если ПроверитьКоличествоВариантов() Тогда - ЗаписатьНаКлиенте(); + ЗаписатьНаСервере(); + ТекстОповещения = НСтр("ru = 'Изменены настройки вариантов отчетов (%1 шт.).'"); + ТекстОповещения = СтрЗаменить(ТекстОповещения, "%1", Формат(ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0")); + ПоказатьОповещениеПользователя(, , ТекстОповещения); + ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы(); Закрыть(); КонецЕсли; КонецПроцедуры @@ -115,27 +105,11 @@ Возврат Истина; КонецФункции -&НаКлиенте -Функция ЗаписатьНаКлиенте() - Результат = ЗаписатьНаСервере(); - ПоказатьОповещениеПользователя( - , - , - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Изменены настройки вариантов отчетов (%1 шт.).'"), - Формат(ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0"))); - Модифицированность = Ложь; - - ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы(); - - Возврат Результат; -КонецФункции - &НаКлиенте Процедура ПоказатьРезультатВыполнения() ОчиститьСообщения(); Если РезультатВыполнения <> Неопределено Тогда - СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения(ЭтаФорма, РезультатВыполнения); + СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения(ЭтотОбъект, РезультатВыполнения); РезультатВыполнения = Неопределено; КонецЕсли; КонецПроцедуры @@ -352,19 +326,18 @@ КонецПроцедуры &НаСервере -Функция ЗаписатьНаСервере() +Процедура ЗаписатьНаСервере() Кэш = Новый Структура; НачатьТранзакцию(); Для Каждого ЭлементСписка Из ИзменяемыеВарианты Цикл ВариантОбъект = ЭлементСписка.Значение.ПолучитьОбъект(); - ВариантыОтчетов.ДеревоПодсистемЗаписать(ЭтаФорма, ВариантОбъект, Кэш); + ВариантыОтчетов.ДеревоПодсистемЗаписать(ЭтотОбъект, ВариантОбъект, Кэш); ВариантОбъект.Записать(); КонецЦикла; ЗафиксироватьТранзакцию(); - Возврат Истина; -КонецФункции +КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // Сервер diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Form.form b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Form.form new file mode 100644 index 000000000..421208bc0 --- /dev/null +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/СбросНастроекРазмещения/Form.form @@ -0,0 +1,221 @@ + +Справочник предназначен для хранения вариантов отчетов и настройки их размещения в командном интерфейсе.
Редактирование, открытие и выбор вариантов отчетов.
В левой части формы расположено дерево разделов и групп командного интерфейса.
Перемещаясь по узлам дерева, список "Варианты отчетов" автоматически фильтруется по выбранному разделу или группе.
Варианты отчетов можно перемещать из текущего раздела/группы в другие при помощи перетаскивания. Если при перетаскивании зажать клавишу Ctrl, то вариант отчета будет добавлен в новую группу, а также останется в текущей группе.
Чтобы быстро найти нужный вариант отчета в списке "Варианты отчетов" также можно применять быстрые отборы по Наименованию и Автору. Для этого нужно указать искомые значения в соответствующих полях, расположенных над списком.
diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo b/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo index a09b38e81..a7ec14ae6 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo +++ b/SSL/src/Catalogs/ВариантыОтчетов/ВариантыОтчетов.mdo @@ -577,6 +577,24 @@Для просмотра списка всех версий файла откройте его карточку (F2 или команда "Открыть карточку") и перейдите в раздел "Версии файлов".
В списке версий можно:
Для каждого физического лица можно указать реквизиты документа, удостоверяющего личность. Для указания вида документа и используется этот справочник.
Справочник уже содержит основные документы, удостоверяющие личность, но может быть расширен пользователем.
diff --git a/SSL/src/Catalogs/ВидыДокументовФизическихЛиц/ManagerModule.bsl b/SSL/src/Catalogs/ВидыДокументовФизическихЛиц/ManagerModule.bsl index 5df6baadd..f974a3401 100644 --- a/SSL/src/Catalogs/ВидыДокументовФизическихЛиц/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВидыДокументовФизическихЛиц/ManagerModule.bsl @@ -1,5 +1,8 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#КонецЕсли + //////////////////////////////////////////////////////////////////////////////// // ОБРАБОТЧИКИ СОБЫТИЙ @@ -30,5 +33,3 @@ КонецЦикла; КонецПроцедуры - -#КонецЕсли \ 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 index 91027f589..61e6fb4bb 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбораГруппы/Attributes/Список/ExtInfo/ListSettings.dcss +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаВыбораГруппы/Attributes/Список/ExtInfo/ListSettings.dcss @@ -12,4 +12,6 @@
Конфигурация позволяет хранить следующие типы контактной информации:
Справочник Виды контактной информации имеет двухуровневую иерархию. Группы справочника соответствуют справочникам-носителям контактной информации, а элементы внутри этих групп определяют состав контактной информации этих справочников. Добавление новых групп в этот справочник запрещено. Поставка конфигурации осуществляется c предопределенными группами и элементами справочника. Для добавления произвольного реквизита в один из этих справочников, необходимо добавить в справочник Виды контактной информации в соответствующую группу новый элемент.
См. также
\ No newline at end of file diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo index 74aa77500..c5e8edc0c 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ВидыКонтактнойИнформации.mdo @@ -132,13 +132,6 @@
-
-
-
+
+
+
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl
index 66c9bd0aa..3b23b1ac2 100644
--- a/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl
+++ b/SSL/src/Catalogs/ВнешниеПользователи/Commands/ВнешнийДоступ/CommandModule.bsl
@@ -16,7 +16,8 @@
ИнформацияОбОшибке = ИнформацияОбОшибке();
Если Найти(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке),
"ВызватьИсключение ОписаниеОшибкиКакПредупреждения") > 0 Тогда
- Предупреждение(КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
+
+ ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
Иначе
ВызватьИсключение;
КонецЕсли;
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Attributes/ВнешниеПользователиСписок/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Attributes/ВнешниеПользователиСписок/ExtInfo/ListSettings.dcss
index 91027f589..61e6fb4bb 100644
--- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Attributes/ВнешниеПользователиСписок/ExtInfo/ListSettings.dcss
+++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Attributes/ВнешниеПользователиСписок/ExtInfo/ListSettings.dcss
@@ -12,4 +12,6 @@
Для редактирования сведений о внешнем ользователе необходимы права администрирования или права ответственного за внешних пользователей. В остальных случаях, доступен только просмотр сведений о себе, а также возможность изменить свой пароль, язык программы и контактную информацию.
Внешний пользователь связан с каким-то объектом программы (например, контрагентом, сотрудником и т.п.), указанным в поле Объект.
Флажок Недействителен по умолчанию снят для всех внешних пользователей. Но если пользователь по каким-либо причинам более не работает с программой, и в то же время его нельзя удалить из-за наличия ссылок на него из других объектов программы, то рекомендуется установить флажок Недействителен. Такого внешнего пользователя нельзя выбрать, и он не отображается в списке внешних пользователей.
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl index 7c74d75e9..ef9bf2cd3 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl @@ -51,7 +51,7 @@ Объект.ОбъектАвторизации = Параметры.ОбъектАвторизацииНовогоВнешнегоПользователя; ОбъектАвторизацииЗаданПриОткрытии = ЗначениеЗаполнено(Объект.ОбъектАвторизации); - ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтаФорма, Объект); + ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект); ИначеЕсли ЗначениеЗаполнено(ГруппаНовогоВнешнегоПользователя) Тогда @@ -134,7 +134,7 @@ КонецПроцедуры &НаКлиенте -Процедура ПередЗаписью(Отказ) +Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ОчиститьСообщения(); @@ -142,15 +142,16 @@ И Объект.УстановитьРолиНепосредственно И ПользовательИнфБазыРоли.Количество() = 0 Тогда - Ответ = Вопрос( - НСтр("ru = 'Пользователю информационной базы не установлено ни одной роли. Продолжить?'"), - РежимДиалогаВопрос.ДаНет, - , - , - НСтр("ru = 'Запись пользователя информационной базы'")); - - Если Ответ = КодВозвратаДиалога.Нет Тогда + Если НЕ ПараметрыЗаписи.Свойство("СПустымСпискомРолей") Тогда Отказ = Истина; + ПоказатьВопрос( + Новый ОписаниеОповещения("ПослеОтветаНаВопросОЗаписиСПустымСпискомРолей", ЭтотОбъект, ПараметрыЗаписи), + НСтр("ru = 'Пользователю информационной базы не установлено ни одной роли. Продолжить?'"), + РежимДиалогаВопрос.ДаНет, + , + , + НСтр("ru = 'Запись пользователя информационной базы'")); + Возврат; КонецЕсли; КонецЕсли; @@ -224,19 +225,19 @@ Оповестить("Запись_ВнешниеПользователи", Новый Структура, Объект.Ссылка); Если ПараметрыЗаписи.Свойство("ДобавленПользовательИБ") Тогда - Оповестить("ДобавленПользовательИБ", ПараметрыЗаписи.ДобавленПользовательИБ, ЭтаФорма); + Оповестить("ДобавленПользовательИБ", ПараметрыЗаписи.ДобавленПользовательИБ, ЭтотОбъект); ИначеЕсли ПараметрыЗаписи.Свойство("ИзмененПользовательИБ") Тогда - Оповестить("ИзмененПользовательИБ", ПараметрыЗаписи.ИзмененПользовательИБ, ЭтаФорма); + Оповестить("ИзмененПользовательИБ", ПараметрыЗаписи.ИзмененПользовательИБ, ЭтотОбъект); ИначеЕсли ПараметрыЗаписи.Свойство("УдаленПользовательИБ") Тогда - Оповестить("УдаленПользовательИБ", ПараметрыЗаписи.УдаленПользовательИБ, ЭтаФорма); + Оповестить("УдаленПользовательИБ", ПараметрыЗаписи.УдаленПользовательИБ, ЭтотОбъект); ИначеЕсли ПараметрыЗаписи.Свойство("ОчищенаСвязьСНесуществующимПользователемИБ") Тогда Оповестить( "ОчищенаСвязьСНесуществующимПользователемИБ", - ПараметрыЗаписи.ОчищенаСвязьСНесуществующимПользователемИБ, ЭтаФорма); + ПараметрыЗаписи.ОчищенаСвязьСНесуществующимПользователемИБ, ЭтотОбъект); КонецЕсли; Если ЗначениеЗаполнено(ГруппаНовогоВнешнегоПользователя) Тогда @@ -252,7 +253,7 @@ УстановитьДоступностьСвойств(); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект); КонецПроцедуры @@ -296,7 +297,7 @@ &НаКлиенте Процедура ОбъектАвторизацииПриИзменении(Элемент) - ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтаФорма, Объект); + ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект); КонецПроцедуры @@ -334,7 +335,7 @@ Если НЕ Объект.УстановитьРолиНепосредственно Тогда ПрочитатьРолиПользователяИБ(); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект); КонецЕсли; УстановитьДоступностьСвойств(); @@ -366,7 +367,7 @@ Процедура ПоказатьТолькоВыбранныеРоли(Команда) ОбработатьИнтерфейсРолей("ТолькоВыбранныеРоли"); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект); КонецПроцедуры @@ -374,7 +375,7 @@ Процедура ГруппировкаРолейПоПодсистемам(Команда) ОбработатьИнтерфейсРолей("ГруппировкаПоПодсистемам"); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект); КонецПроцедуры @@ -383,7 +384,7 @@ ОбработатьИнтерфейсРолей("ОбновитьСоставРолей", "ВключитьВсе"); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма, Ложь); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект, Ложь); КонецПроцедуры @@ -480,7 +481,7 @@ Результат = Пользователи.НовоеОписаниеПользователяИБ(); Пользователи.СкопироватьСвойстваПользователяИБ( Результат, - ЭтаФорма, + ЭтотОбъект, , "УникальныйИдентификатор, |Роли", @@ -545,6 +546,16 @@ КонецПроцедуры +&НаКлиенте +Процедура ПослеОтветаНаВопросОЗаписиСПустымСпискомРолей(Ответ, ПараметрыЗаписи) Экспорт + + Если Ответ = КодВозвратаДиалога.Да Тогда + ПараметрыЗаписи.Вставить("СПустымСпискомРолей"); + Записать(ПараметрыЗаписи); + КонецЕсли; + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Обработка пользователя ИБ. @@ -621,7 +632,7 @@ КонецЕсли; Пользователи.СкопироватьСвойстваПользователяИБ( - ЭтаФорма, + ЭтотОбъект, ОписаниеПользователяИБ, , "УникальныйИдентификатор, @@ -723,7 +734,7 @@ ПараметрыДействия = Новый Структура; ПараметрыДействия.Вставить("ОсновнойПараметр", ОсновнойПараметр); - ПараметрыДействия.Вставить("Форма", ЭтаФорма); + ПараметрыДействия.Вставить("Форма", ЭтотОбъект); ПараметрыДействия.Вставить("КоллекцияРолей", ПользовательИнфБазыРоли); ПараметрыДействия.Вставить("ТипПользователей", Перечисления.ТипыПользователей.ВнешнийПользователь); ПараметрыДействия.Вставить("СкрытьРольПолныеПрава", Истина); diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Help/ru.html b/SSL/src/Catalogs/ВнешниеПользователи/Help/ru.html index b7d189410..873d50838 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Help/ru.html +++ b/SSL/src/Catalogs/ВнешниеПользователи/Help/ru.html @@ -1,4 +1,4 @@ - +В этом списке ведется учет пользователей, которые работают с программой "извне". Их доступ, как правило, сильно ограничен, они не принимают активного участия в процессах учета, работают обособленно, не взаимодействуют между собой.
Основной способ создания и редактирования внешних пользователей через команду Внешний доступ, которая размещается в командной панели формы объектов, например, в карточке контрагента, физического лица. При выполнении команды сразу создается внешний пользователь, связанный с объектом, или открывается существующий внешний пользователь.
В случае большого количества внешних пользователей список может быть сгруппирован, например, по видам отношений с ними: партнеры, контрагенты и т.д. Для того чтобы увидеть всех внешних пользователей, включенных в дочерние группы с учетом иерархии, необходимо установить флажок Показывать внешних пользователей дочерних групп в нижней части списка. Для добавления новых групп внешних пользователей воспользуйтесь командами в левой части списка. Для добавления в группу большого числа внешних пользователей можно открыть форму группы и воспользоваться командой Подобрать. Один и тот же внешний пользователь может одновременно входить в разные группы внешних пользователей.
diff --git a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl index ca0981afe..801a25ee9 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl @@ -1,5 +1,27 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда +//////////////////////////////////////////////////////////////////////////////// +// ПРОГРАММНЫЙ ИНТЕРФЕЙС + +// Возвращает список реквизитов, которые не нужно редактировать +// с помощью обработки группового изменения объектов +// +Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт + + НеРедактируемыеРеквизиты = Новый Массив; + НеРедактируемыеРеквизиты.Добавить("ИдентификаторПользователяИБ"); + НеРедактируемыеРеквизиты.Добавить("ИдентификаторПользователяСервиса"); + НеРедактируемыеРеквизиты.Добавить("Недействителен"); + НеРедактируемыеРеквизиты.Добавить("ОбъектАвторизации"); + НеРедактируемыеРеквизиты.Добавить("УдалитьПароль"); + НеРедактируемыеРеквизиты.Добавить("УстановитьРолиНепосредственно"); + + Возврат НеРедактируемыеРеквизиты; + +КонецФункции + +#КонецЕсли + //////////////////////////////////////////////////////////////////////////////// // ОБРАБОТЧИКИ СОБЫТИЙ @@ -21,7 +43,7 @@ НайденныйВнешнийПользователь = Неопределено; ЕстьПравоДобавленияВнешнегоПользователя = Ложь; - ОбъектАвторизацииИспользуется = ПользователиСлужебный.ОбъектАвторизацииИспользуется( + ОбъектАвторизацииИспользуется = ПользователиСлужебныйВызовСервера.ОбъектАвторизацииИспользуется( Параметры.ОбъектАвторизации, , НайденныйВнешнийПользователь, @@ -45,5 +67,3 @@ КонецЕсли; КонецПроцедуры - -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ВстречаПрисоединенныеФайлы.mdo b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ВстречаПрисоединенныеФайлы.mdo index 8a3ce2282..3b1339612 100644 --- a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ВстречаПрисоединенныеФайлы.mdo +++ b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ВстречаПрисоединенныеФайлы.mdo @@ -288,7 +288,7 @@Карточка группы внешних пользователей позволяет просматривать и редактировать свойства группы.
Для группы пользователей можно установить Тип участников (например, контрагенты). Группа может неявно включать всех внешних пользователей для установленного типа участников. Для этого нужно установить флажок Все.
При редактировании состава пользователей группы нужно учитывать, что они неявно входят в состав групп-родителей. Для добавления большого числа пользователей можно использовать команду Подобрать.
diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl index 2e26d0e4f..094b6270e 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Forms/ФормаЭлемента/Module.bsl @@ -83,7 +83,7 @@ ПользователиСлужебный.ЗапретРедактированияРолей() ИЛИ ДействияВФорме.Роли <> "Редактирование"); - УстановитьДоступностьСвойств(ЭтаФорма); + УстановитьДоступностьСвойств(ЭтотОбъект); ЗаполнитьСтатусПользователей(); ОбновитьСписокНедействительныхПользователей(Истина); @@ -190,7 +190,7 @@ Объект.ТипОбъектовАвторизации = Неопределено; КонецЕсли; - УстановитьДоступностьСвойств(ЭтаФорма); + УстановитьДоступностьСвойств(ЭтотОбъект); КонецПроцедуры @@ -204,7 +204,7 @@ Объект.ТипОбъектовАвторизации = Неопределено; КонецЕсли; - УстановитьДоступностьСвойств(ЭтаФорма); + УстановитьДоступностьСвойств(ЭтотОбъект); КонецПроцедуры @@ -213,20 +213,12 @@ СтандартнаяОбработка = Ложь; - ВыбранныйЭлемент = ВыбратьИзСписка( + ПоказатьВыборИзСписка( + Новый ОписаниеОповещения("ПредставлениеТипаОбъектовАвторизацииЗавершениеВыбора", ЭтотОбъект), ТипыОбъектовАвторизации, Элемент, ТипыОбъектовАвторизации.НайтиПоЗначению(Объект.ТипОбъектовАвторизации)); - Если ВыбранныйЭлемент <> Неопределено Тогда - - Модифицированность = Истина; - Объект.ТипОбъектовАвторизации = ВыбранныйЭлемент.Значение; - ПредставлениеТипаОбъектовАвторизации = ВыбранныйЭлемент.Представление; - - ПредставлениеТипаОбъектовАвторизацииПриИзменении(Элемент); - КонецЕсли; - КонецПроцедуры &НаКлиенте @@ -235,7 +227,7 @@ Объект.ВсеОбъектыАвторизации = Ложь; ОтобратьДоступныеДляВыбораТипыУчастниковГруппы(); - УстановитьДоступностьСвойств(ЭтаФорма); + УстановитьДоступностьСвойств(ЭтотОбъект); КонецПроцедуры @@ -254,7 +246,8 @@ &НаКлиенте Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - ОбщегоНазначенияКлиент.ОткрытьФормуРедактированияКомментария(Элемент.ТекстРедактирования, Объект.Комментарий, Модифицированность); + ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария( + Элемент.ТекстРедактирования, ЭтотОбъект, "Объект.Комментарий"); КонецПроцедуры @@ -335,7 +328,7 @@ Процедура ПоказатьТолькоВыбранныеРоли(Команда) ОбработатьИнтерфейсРолей("ТолькоВыбранныеРоли"); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект); КонецПроцедуры @@ -343,7 +336,7 @@ Процедура ГруппировкаРолейПоПодсистемам(Команда) ОбработатьИнтерфейсРолей("ГруппировкаПоПодсистемам"); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект); КонецПроцедуры @@ -352,7 +345,7 @@ ОбработатьИнтерфейсРолей("ОбновитьСоставРолей", "ВключитьВсе"); - ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтаФорма, Ложь); + ПользователиСлужебныйКлиент.РазвернутьПодсистемыРолей(ЭтотОбъект, Ложь); КонецПроцедуры @@ -366,6 +359,20 @@ //////////////////////////////////////////////////////////////////////////////// // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ +&НаКлиенте +Процедура ПредставлениеТипаОбъектовАвторизацииЗавершениеВыбора(ВыбранныйЭлемент, Неопределен) Экспорт + + Если ВыбранныйЭлемент <> Неопределено Тогда + + Модифицированность = Истина; + Объект.ТипОбъектовАвторизации = ВыбранныйЭлемент.Значение; + ПредставлениеТипаОбъектовАвторизации = ВыбранныйЭлемент.Представление; + + ПредставлениеТипаОбъектовАвторизацииПриИзменении(Элементы.ПредставлениеТипаОбъектовАвторизации); + КонецЕсли; + +КонецПроцедуры + &НаСервере Функция ПеремещениеПользователяВГруппу(МассивПользователей, НоваяГруппаВладелец) @@ -663,7 +670,7 @@ ПараметрыДействия = Новый Структура; ПараметрыДействия.Вставить("ОсновнойПараметр", ОсновнойПараметр); - ПараметрыДействия.Вставить("Форма", ЭтаФорма); + ПараметрыДействия.Вставить("Форма", ЭтотОбъект); ПараметрыДействия.Вставить("КоллекцияРолей", КоллекцияРолей); ПараметрыДействия.Вставить("ТипПользователей", Перечисления.ТипыПользователей.ВнешнийПользователь); ПараметрыДействия.Вставить("СкрытьРольПолныеПрава", Истина); diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Help/ru.html b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Help/ru.html index 43e256735..ec744cbaf 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +В этом списке ведется учет групп внешних пользователей.
Группы внешних пользователей могут использоваться для группировки большого числа внешних пользователей, а также когда нужно указывать не только внешнего пользователя, но и группу внешних пользователей, например, при настройке доступа.
Группы создаются плоским списком или иерархическим. В иерархическом списке, внешние пользователи вложенных групп неявно входят в группы-родители.
diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl new file mode 100644 index 000000000..bda4e2bd5 --- /dev/null +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl @@ -0,0 +1,20 @@ +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +//////////////////////////////////////////////////////////////////////////////// +// ПРОГРАММНЫЙ ИНТЕРФЕЙС + +// Возвращает список реквизитов, которые не нужно редактировать +// с помощью обработки группового изменения объектов +// +Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт + + НеРедактируемыеРеквизиты = Новый Массив; + НеРедактируемыеРеквизиты.Добавить("ТипОбъектовАвторизации"); + НеРедактируемыеРеквизиты.Добавить("ВсеОбъектыАвторизации"); + НеРедактируемыеРеквизиты.Добавить("Роли.УдалитьРоль"); + + Возврат НеРедактируемыеРеквизиты; + +КонецФункции + +#КонецЕсли diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Form.form b/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Form.form index df934dddf..53fcfcc5c 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Form.form +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Form.form @@ -42,8 +42,8 @@Назначение групп доступа см. здесь.
Список групп доступа позволяет посмотреть имеющиеся настройки прав с ограничениями по нименованию.
Для удобства сделана возможность отоборажения профиля группы.
diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl index e74b2c4fd..84479dda3 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl @@ -16,7 +16,7 @@ РодительПерсональныхГруппДоступа = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа(Истина); - УпрощенныйИнтерфейсНастройкиПравДоступа = УправлениеДоступомПереопределяемый.УпрощенныйИнтерфейсНастройкиПравДоступа(); + УпрощенныйИнтерфейсНастройкиПравДоступа = УправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа(); Если УпрощенныйИнтерфейсНастройкиПравДоступа Тогда Элементы.ФормаСоздать.Видимость = Ложь; @@ -96,7 +96,9 @@ &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) - Если Элементы.Список.ТекущиеДанные <> Неопределено Тогда + Если Элементы.Список.ТекущиеДанные <> Неопределено + И Элементы.Список.ТекущиеДанные.Свойство("Пользователь") + И Элементы.Список.ТекущиеДанные.Свойство("Ссылка") Тогда ПереносДопустим = НЕ ЗначениеЗаполнено(Элементы.Список.ТекущиеДанные.Пользователь) И Элементы.Список.ТекущиеДанные.Ссылка <> РодительПерсональныхГруппДоступа; @@ -121,7 +123,7 @@ Если Значение = РодительПерсональныхГруппДоступа Тогда СтандартнаяОбработка = Ложь; - Предупреждение(НСтр("ru = 'Эта группа только для персональных групп доступа.'")); + ПоказатьПредупреждение(, НСтр("ru = 'Эта группа только для персональных групп доступа.'")); КонецЕсли; КонецПроцедуры @@ -131,24 +133,27 @@ Если Родитель = РодительПерсональныхГруппДоступа Тогда + Отказ = Истина; + Если Группа Тогда - Предупреждение(НСтр("ru = 'В этой группе не используются подгруппы.'")); + ПоказатьПредупреждение(, НСтр("ru = 'В этой группе не используются подгруппы.'")); ИначеЕсли УпрощенныйИнтерфейсНастройкиПравДоступа Тогда - Предупреждение(НСтр("ru = 'Персональные группы доступа - |создаются только в форме ""Права доступа"".'")); + ПоказатьПредупреждение(, + НСтр("ru = 'Персональные группы доступа + |создаются только в форме ""Права доступа"".'")); Иначе - Предупреждение(НСтр("ru = 'Персональные группы доступа не используются.'")); + ПоказатьПредупреждение(, НСтр("ru = 'Персональные группы доступа не используются.'")); КонецЕсли; - Отказ = Истина; - ИначеЕсли НЕ Группа И УпрощенныйИнтерфейсНастройкиПравДоступа Тогда - Предупреждение(НСтр("ru = 'Используются только персональные группы доступа, - |которые создаются только в форме ""Права доступа"".'")); Отказ = Истина; + + ПоказатьПредупреждение(, + НСтр("ru = 'Используются только персональные группы доступа, + |которые создаются только в форме ""Права доступа"".'")); КонецЕсли; КонецПроцедуры @@ -158,11 +163,11 @@ Если Строка = РодительПерсональныхГруппДоступа Тогда СтандартнаяОбработка = Ложь; - Предупреждение(НСтр("ru = 'Эта папка только для персональных групп доступа.'")); + ПоказатьПредупреждение(, НСтр("ru = 'Эта папка только для персональных групп доступа.'")); ИначеЕсли ПараметрыПеретаскивания.Значение = РодительПерсональныхГруппДоступа Тогда СтандартнаяОбработка = Ложь; - Предупреждение(НСтр("ru = 'Папка персональных групп доступа не переносится.'")); + ПоказатьПредупреждение(, НСтр("ru = 'Папка персональных групп доступа не переносится.'")); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form index 38f03db32..899ead2fd 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Form.form @@ -12,7 +12,7 @@Назначение групп доступа см. здесь.
Для группы доступа задается профиль, список участников и ограничения доступа.
Профиль определит права (списком ролей) и возможности ограничения прав по "разрезам" (видам доступа), например, ограничения по видам Организации, Склады, ...
Виды доступа из профиля будут добавлены в группу доступа автоматически.
Группы доступа предназначены для настройки прав и ограничений прав доступа конкретным пользователям и группам пользователей системы.
Набор прав и возможности по их ограничению определяются заданным профилем групп доступа. Например, группа доступа "Менеджеры по продажам ПО делового назначения" с пользователями Иванов и Петров может ссылаться на профиль "Менеджер по продажам", в котором предусмотрена возможность ограничения по виду доступа "Виды номенклатуры". Тогда если по этому виду доступа для всех значений указать вариант "Запрещены", а в список добавить вид номенклатуры "ПО делового назначения", то Иванову и Петрову будут доступны только те данные и операции, которые связаны с ПО делового назначения.
Рекомендуется задавать наименования групп таким образом, чтобы название отражало как суть профиля, так и смысл ограничений, заданных в группе.
diff --git a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl index 9dfa24c0d..a628e8200 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl @@ -1,5 +1,24 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда +//////////////////////////////////////////////////////////////////////////////// +// ПРОГРАММНЫЙ ИНТЕРФЕЙС + +// Возвращает список реквизитов, которые не нужно редактировать +// с помощью обработки группового изменения объектов +// +Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт + + НеРедактируемыеРеквизиты = Новый Массив; + НеРедактируемыеРеквизиты.Добавить("ТипПользователей"); + НеРедактируемыеРеквизиты.Добавить("Пользователь"); + НеРедактируемыеРеквизиты.Добавить("ОсновнаяГруппаДоступаПоставляемогоПрофиля"); + НеРедактируемыеРеквизиты.Добавить("ВидыДоступа.*"); + НеРедактируемыеРеквизиты.Добавить("ЗначенияДоступа.*"); + + Возврат НеРедактируемыеРеквизиты; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ @@ -55,7 +74,22 @@ ГруппаДоступаОбновлена = Ложь; - Запрос = Новый Запрос( + ВидыДоступаПрофиля = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Профиль, "ВидыДоступа").Выгрузить(); + Индекс = ВидыДоступаПрофиля.Количество() - 1; + Пока Индекс >= 0 Цикл + Строка = ВидыДоступаПрофиля[Индекс]; + + Отбор = Новый Структура("ВидДоступа", Строка.ВидДоступа); + СвойстваВидаДоступа = УправлениеДоступомСлужебный.СвойстваВидаДоступа(Строка.ВидДоступа); + + Если СвойстваВидаДоступа = Неопределено Тогда + ВидыДоступаПрофиля.Удалить(Строка); + КонецЕсли; + Индекс = Индекс - 1; + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ | ГруппыДоступа.Ссылка |ИЗ @@ -63,7 +97,7 @@ |ГДЕ | (ГруппыДоступа.Профиль = &Профиль | ИЛИ &Профиль = ЗНАЧЕНИЕ(Справочник.ПрофилиГруппДоступа.Администратор) - | И ГруппыДоступа.Ссылка = ЗНАЧЕНИЕ(Справочник.ГруппыДоступа.Администраторы))"); + | И ГруппыДоступа.Ссылка = ЗНАЧЕНИЕ(Справочник.ГруппыДоступа.Администраторы))"; Запрос.УстановитьПараметр("Профиль", Профиль.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); @@ -79,13 +113,13 @@ КонецЕсли; // Проверка состава видов доступа. - СоставВидовДоступаИзменен = Ложь; + СоставВидовДоступаИзменен = Ложь; ЕстьУдаляемыеВидыДоступаСЗаданнымиЗначениямиДоступа = Ложь; - Если ГруппаДоступа.ВидыДоступа.Количество() <> Профиль.ВидыДоступа.НайтиСтроки(Новый Структура("Предустановленный", Ложь)).Количество() Тогда + Если ГруппаДоступа.ВидыДоступа.Количество() <> ВидыДоступаПрофиля.НайтиСтроки(Новый Структура("Предустановленный", Ложь)).Количество() Тогда СоставВидовДоступаИзменен = Истина; Иначе Для каждого СтрокаВидаДоступа Из ГруппаДоступа.ВидыДоступа Цикл - Если Профиль.ВидыДоступа.НайтиСтроки(Новый Структура("ВидДоступа, Предустановленный", СтрокаВидаДоступа.ВидДоступа, Ложь)).Количество() = 0 Тогда + Если ВидыДоступаПрофиля.НайтиСтроки(Новый Структура("ВидДоступа, Предустановленный", СтрокаВидаДоступа.ВидДоступа, Ложь)).Количество() = 0 Тогда СоставВидовДоступаИзменен = Истина; Если ГруппаДоступа.ЗначенияДоступа.Найти(СтрокаВидаДоступа.ВидДоступа, "ВидДоступа") <> Неопределено Тогда ЕстьУдаляемыеВидыДоступаСЗаданнымиЗначениямиДоступа = Истина; @@ -102,7 +136,7 @@ ТекущийНомерСтроки = ГруппаДоступа.ВидыДоступа.Количество()-1; Пока ТекущийНомерСтроки >= 0 Цикл ТекущийВидДоступа = ГруппаДоступа.ВидыДоступа[ТекущийНомерСтроки].ВидДоступа; - Если Профиль.ВидыДоступа.НайтиСтроки(Новый Структура("ВидДоступа, Предустановленный", ТекущийВидДоступа, Ложь)).Количество() = 0 Тогда + Если ВидыДоступаПрофиля.НайтиСтроки(Новый Структура("ВидДоступа, Предустановленный", ТекущийВидДоступа, Ложь)).Количество() = 0 Тогда СтрокиЗначенийВидаДоступа = ГруппаДоступа.ЗначенияДоступа.НайтиСтроки(Новый Структура("ВидДоступа", ТекущийВидДоступа)); Для каждого СтрокаЗначения Из СтрокиЗначенийВидаДоступа Цикл ГруппаДоступа.ЗначенияДоступа.Удалить(СтрокаЗначения); @@ -112,13 +146,13 @@ ТекущийНомерСтроки = ТекущийНомерСтроки - 1; КонецЦикла; // 2. Добавление новых видов доступа (если есть). - Для каждого СтрокаВидаДоступа Из Профиль.ВидыДоступа Цикл + Для каждого СтрокаВидаДоступа Из ВидыДоступаПрофиля Цикл Если НЕ СтрокаВидаДоступа.Предустановленный И ГруппаДоступа.ВидыДоступа.Найти(СтрокаВидаДоступа.ВидДоступа, "ВидДоступа") = Неопределено Тогда НоваяСтрока = ГруппаДоступа.ВидыДоступа.Добавить(); - НоваяСтрока.ВидДоступа = СтрокаВидаДоступа.ВидДоступа; - НоваяСтрока.ДоступРазрешен = СтрокаВидаДоступа.ДоступРазрешен; + НоваяСтрока.ВидДоступа = СтрокаВидаДоступа.ВидДоступа; + НоваяСтрока.ВсеРазрешены = СтрокаВидаДоступа.ВсеРазрешены; КонецЕсли; КонецЦикла; КонецЕсли; diff --git a/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo b/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo index 0d20ec5a3..01a44251e 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo +++ b/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo @@ -328,32 +328,34 @@Карточка группы пользователей позволяет просматривать и редактировать свойства группы.
При редактировании состава пользователей группы нужно учитывать, что они неявно входят в состав групп-родителей. Для добавления большого числа пользователей можно использовать команду Подобрать.
В этом списке ведется учет групп пользователей.
Группы пользователей могут использоваться для группировки большого числа пользователей, а также когда нужно указывать не только пользователя, но и группу пользователей, например, при настройке доступа, в ролях исполнителей задач бизнес-процессов и др.
Группы создаются плоским списком или иерархическим. В иерархическом списке, пользователи вложенных групп неявно входят в группы-родители.
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form index 38d473845..31df522e7 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form @@ -41,8 +41,8 @@Справочник Закладки взаимодействий предназначен для настройки и хранения отборов, по которым в дальнейшем можно осуществлять быстрый доступ к группе взаимодействий.
Что необходимо указать в данной форме?
diff --git a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Attributes/Список/ExtInfo/ListSettings.dcss index 060fd7fe7..dfff02937 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Attributes/Список/ExtInfo/ListSettings.dcss +++ b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Attributes/Список/ExtInfo/ListSettings.dcss @@ -41,4 +41,6 @@В списке Значения свойств объектов задаются значения дополнительных реквизитов и сведений. При этом для каждого дополнительного реквизита или сведения список значений будет свой. Если список значений большой, то может быть удобно создать группы и разнести значения по ним.
При формировании списка значений можно указать не только наименование в поле Значение, но и указать Вес значения (числовое поле). Это поле в дальнейшем можно использовать для анализа в отчетах. Логику использования этого поля пользователю необходимо продумывать самостоятельно. Например, для значений свойства Надежность можно задать вес следующим образом: для значений от единицы до тройки поставить вес равным нулю, а для значений четыре и пять равным единице. При таких весах в отчет можно быстро вывести надежных клиентов (у которых вес значения больше нуля).
\ 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..2732b6327 --- /dev/null +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl @@ -0,0 +1,19 @@ +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +//////////////////////////////////////////////////////////////////////////////// +// ПРОГРАММНЫЙ ИНТЕРФЕЙС + +// Возвращает список реквизитов, которые разрешается редактировать +// с помощью обработки группового изменения объектов. +// +Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт + + РедактируемыеРеквизиты = Новый Массив; + РедактируемыеРеквизиты.Добавить("Родитель"); + РедактируемыеРеквизиты.Добавить("ПометкаУдаления"); + + Возврат РедактируемыеРеквизиты; + +КонецФункции + +#КонецЕсли diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss index 91027f589..61e6fb4bb 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -12,4 +12,6 @@
В списке Значения свойств объектов (иерархия) задаются значения дополнительных реквизитов и сведений. При этом для каждого дополнительного реквизита или сведения список значений будет свой. В списке можно использовать иерархию значений.
При формировании списка значений можно указать не только наименование в поле Значение, но и указать Вес значения (числовое поле). Это поле в дальнейшем можно использовать для анализа в отчетах. Логику использования этого поля пользователю необходимо продумывать самостоятельно. Например, для значений свойства Надежность можно задать вес следующим образом: для значений от единицы до тройки поставить вес равным нулю, а для значений четыре и пять равным единице. При таких весах в отчет можно быстро вывести надежных клиентов (у которых вес значения больше нуля).
\ 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..2732b6327 --- /dev/null +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl @@ -0,0 +1,19 @@ +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +//////////////////////////////////////////////////////////////////////////////// +// ПРОГРАММНЫЙ ИНТЕРФЕЙС + +// Возвращает список реквизитов, которые разрешается редактировать +// с помощью обработки группового изменения объектов. +// +Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт + + РедактируемыеРеквизиты = Новый Массив; + РедактируемыеРеквизиты.Добавить("Родитель"); + РедактируемыеРеквизиты.Добавить("ПометкаУдаления"); + + Возврат РедактируемыеРеквизиты; + +КонецФункции + +#КонецЕсли diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss index 91027f589..61e6fb4bb 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss @@ -12,4 +12,6 @@
В классификаторе банков РФ хранятся сведения о банках: БИК, корреспондентский счет, данные о местонахождении, телефоны для связи с сотрудниками, почтовый адрес банка. Эти сведения используются при заполнении реквизитов банковских счетов и в других объектах программы.
По команде Загрузить классификатор можно обновить сведения о банках с сайта РБК или из поставляемого на диске 1С:ИТС "Общероссийского классификатора банков" (ОКБ).
+Следует иметь ввиду, что сведения об адресах и телефонах банков загружаются только с диска 1С:ИТС.
Также можно настроить обновление классификатора с сайта РБК автоматически по расписанию с помощью регламентного задания Загрузка классификатора банков РФ с сайта РБК.