diff --git a/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl b/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl index 6af24c84d..65f3487c7 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl @@ -99,6 +99,13 @@ КонецФункции +Функция ПолучитьКлючНастроек() Экспорт + + КлючНастроек = "Обработка.узКанбанДоска"; + Возврат КлючНастроек; + +КонецФункции + // [+] #283 Мальков М.В. 2023-01-30 Функция ПолучитьСписокВариантов(ОсновнойКлючВарианта) Экспорт @@ -117,7 +124,9 @@ Если СтрНайти(Выборка.КлючНастроек, ОсновнойКлючВарианта) > 0 Тогда Если Выборка.КлючНастроек = ОсновнойКлючВарианта Тогда - СписокЗначений.Добавить(Выборка.КлючНастроек, "Основной"); + СписокЗначений.Добавить(Выборка.КлючНастроек, "Основной"); + ИначеЕсли НЕ ЗначениеЗаполнено(Выборка.КлючНастроек) Тогда + СписокЗначений.Добавить(Выборка.КлючНастроек, "Основной"); Иначе СписокЗначений.Добавить(Выборка.КлючНастроек, СтрЗаменить(Выборка.КлючНастроек, ОсновнойКлючВарианта + ".", "")); КонецЕсли; @@ -131,7 +140,7 @@ КонецФункции // [-] #283 Мальков М.В. 2023-01-30 -Функция ПользовательДляСохраненияВариантаКанбанДоски(ПользовательИБ = Неопределено) Экспорт +Функция ПользовательДляСохраненияВариантаКанбанДоски(ЗНАЧ ПользовательИБ = Неопределено) Экспорт Если ПользовательИБ = Неопределено Тогда ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь(); diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl index e8ecd85df..7e835b0ad 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl @@ -899,8 +899,7 @@ &НаСервере Функция ПолучитьКлючНастроек() - КлючНастроек = "Обработка.узКанбанДоска"; - Возврат КлючНастроек; + Возврат Обработки.узКанбанДоска.ПолучитьКлючНастроек(); КонецФункции &НаСервере @@ -1160,17 +1159,23 @@ &НаСервере Функция ПолучитьТекущийКлючНастроек() - ТекущийКлючНастроекХранилище = "Обработка.узКД_ТекущийКлючНастроек"; + ТекущийКлючНастроекХранилище = ПолучитьКлючНастроек(); - Возврат ХранилищеОбщихНастроек.Загрузить( + КлючНастроек = ХранилищеОбщихНастроек.Загрузить( ТекущийКлючНастроекХранилище, ТекущийКлючНастроекХранилище); + + Если НЕ ЗначениеЗаполнено(КлючНастроек) Тогда + КлючНастроек = ТекущийКлючНастроекХранилище + ".Основной"; + КонецЕсли; + + Возврат КлючНастроек; КонецФункции &НаСервере Процедура СохранитьТекущийКлючНастроек() - ТекущийКлючНастроекХранилище = "Обработка.узКД_ТекущийКлючНастроек"; + ТекущийКлючНастроекХранилище = ПолучитьКлючНастроек(); ХранилищеОбщихНастроек.Сохранить( ТекущийКлючНастроекХранилище, @@ -2057,24 +2062,28 @@ &НаСервере Процедура СохранитьТекущийВариантВсемНаСервере() - Отказ = Ложь; - - Если ТекущийКлючНастроек = ПолучитьКлючНастроек() Тогда - Отказ = Истина; - Сообщить("Выбрана основная настройка"); + Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = "Сохранять настройки для всех пользователей, может только пользователь с полными правами"; + Сообщение.Сообщить(); + Возврат; КонецЕсли; - Если Не Отказ Тогда + Выборка = ПолучитьВыборкуВсеПользователи(); + + Пока Выборка.Следующий() Цикл - Выборка = ПолучитьВыборкуВсеПользователи(); + УИДПользователя = Новый УникальныйИдентификатор(Выборка.ИдентификаторПользователяИБ); + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УИДПользователя); + ПользовательДляКанбанДоски = ПользовательДляСохраненияВариантаКанбанДоски(ПользовательИБ); + СохранитьНастройки(ТекущийКлючНастроек, ПользовательДляКанбанДоски); - Пока Выборка.Следующий() Цикл - УИДПользователя = Новый УникальныйИдентификатор(Выборка.ИдентификаторПользователяИБ); - ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УИДПользователя); - ПользовательДляКанбанДоски = ПользовательДляСохраненияВариантаКанбанДоски(ПользовательИБ); - СохранитьНастройки(ТекущийКлючНастроек, ПользовательДляКанбанДоски); - КонецЦикла; - КонецЕсли; + КонецЦикла; + + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = "Настройка сохранена для всех пользователей базы. + |ВНИМАНИЕ! При появлении новых пользователей, необходимо повторно сохранить настройку, иначе он ее не увидит"; + Сообщение.Сообщить(); КонецПроцедуры