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

Задача

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

Решение

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

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

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

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

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

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

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

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

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

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

  2. Павел

    Спасибо! Очень помогло!!!

  3. Степан

    Просьба подсказать какие настрокйи нужно удалить чтобы нормализовалось отображение колонок в таблицах формы.

  4. Юрий

    Спасибо! Очень полезная инфа!

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: