1С. Очистка произвольных настроек из хранилища системных настроек

Задача

В ИБ с конфигурацией УТ 11 у всех пользователей очистить настройки формы элемента справочника «Номенклатура».

Решение

В конфигурациях на БСП есть утилита копирования/очистки настроек пользователя, но в некоторых ситуациях, обработка очищает не все настройки.

Настройки хранятся в хранилище системных настроек, получим выборку и в цикле будем сообщать значения настроек.

Выборка = ХранилищеСистемныхНастроек.Выбрать();

Пока Выборка.Следующий() Цикл
	
	ТекстСообщения = "КлючНастроек " + Выборка.КлючНастроек
						+ "; КлючОбъекта " + Выборка.КлючОбъекта
						+ "; Пользователь " + Выборка.Пользователь
						+ "; Представление" + Выборка.Представление;
	
	ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
	
КонецЦикла;

В окне сообщение получим примерный текст:

КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаСписка/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаЭлемента/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаВыбораГруппы/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаВыбора/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаСписка/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаЭлемента/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаВыбораГруппы/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаВыбора/Такси/НастройкиОкна; Пользователь Пользователь1; Представление

Проанализировав текст дописываем в наш код проверку на ключа объекта и при необходимости будем удалять настройку

Выборка = ХранилищеСистемныхНастроек.Выбрать();

Пока Выборка.Следующий() Цикл
	
	Если Найти(Выборка.КлючОбъекта, "Справочник.Номенклатура.Форма.ФормаЭлемента") <> 0 Тогда
		
		ТекстСообщения = "КлючНастроек " + Выборка.КлючНастроек
							+ "; КлючОбъекта " + Выборка.КлючОбъекта
							+ "; Пользователь " + Выборка.Пользователь
							+ "; Представление" + Выборка.Представление;
		
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
		
		ХранилищеСистемныхНастроек.Удалить(Выборка.КлючОбъекта, Выборка.КлючНастроек, Выборка.Пользователь);
		
	КонецЕсли;
	
КонецЦикла;

Комментарии 1

  • Евгений 30.05.2018 в 18:37 Cсылка

    У процедуры Удалить() хранилища системных настроек есть 3 обязательных параметра, но в эти параметры можно передать значение Неопределено. В этом случае будут удалены все данные. Код по удалению настроек из последнего листинга можно заменить строкой ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, Неопределено);

  • Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *