Как сбросить пользовательские настройки в 1с
1) Появилось задание создать отчёт.
2) Отчёт сделан. Пользователь зашёл. В условном оформление, например, что то изменил. И сохранил настройки.
3) Далее появилась необходимость переделать отчёт.
4) Отчёт переделан. Тех полей что были раньше возможно уж нет. Пользовательские настройки идут в конфликт с текущим отчётом и отчёт валиться.
Есть ли возможность скинуть пользовательские настройки у всех пользователей?
Спасибо
загрузить стандартные
отчет.КомпоновщикНастроек.ЗагрузитьНастройки(ИсходныеНастройки);
Да но тогда каждый раз как отчёт открываеш он будет сбрасывать настройки. А нужно только тогда когда отчёт изменял программист.
ну так сохрани в справочнике.
например «варианты отчетов» — да по ролям и загружай.
Думал стандартное что то есть. Как то тупо выходит.
Сбрось кэш у пользователя или переподключи базу
Всё не то.
Эти настройки насколько мне известно не в кеше храняться а на локале. и всё сбрасывать мне не надо. А только настройки конкретного отчёта. Плюс не у одного пользователя, а у всех сразу
И только один раз. а не каждый раз при открытии
(9) Тогда сообщи конфигурацию — от нее зависит.
Очень вероятно, что это РС «СохраненныеНастройки». Там можно почистить.
Управление производственным предприятием, редакция 1.3 (1.3.22.1)
(12) Не понял. Что такое PC?
(14) РС-Регистр Сведений.
Открыл отчёт сохранил настройку. Проверил что настройка сохранилась, открытием заново отчёта. Захожу в РС Сохранённые настройки. И там нет строки где пользователь я, для этого отчёта. Этого отчёта там вообще нет. Значит где то в другом месте сохраняется.
Отчёт на базе СКД, никакого кода дополнительного для сохранения настроек не писалось, все кнопки штатные.
КомпоновщикНастроекКомпоновкиДанных (DataCompositionSettingsComposer)
Восстановить (Refresh)
Синтаксис:
Тип: СпособВосстановленияНастроекКомпоновкиДанных.
Указывает способ восстановления настроек.
Значение по умолчанию: Полное
Описание:
Восстанавливает работоспособность настроек. В случае если был изменен источник доступных настроек, часть полей, использованных в настройках, может потерять связь с доступными полями. При использовании таких настроек в компоновке данных произойдет ошибка.
Вызов метода с параметром = Полное:
снимает признак использования у всех элементов настроек, потерявших связь с доступными полями;
в случае, если при работе метода у оформляемого поля условного оформления снят признак использования и в оформляемых полях этого элемента условного оформления отсутствуют оформляемые поля с установленным свойством использования, то признак использования отключается и у самого элемента оформления;
в случае если при работе метода у элемента отбора, находящегося в группе, отключается признак использования, и в группе отсутствуют элементы с установленным признаком использования, признак использования отключается у всей группы.
И, таким образом, работоспособность настроек восстанавливается.
Вызов метода с параметром = ПроверятьДоступность:
удалит из настроек все элементы, которые содержат поля, недоступные для текущих функциональных опций и прав.
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
1С 8.3 Сбросить настройки пользователя — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С
Перейти в раздел примеры кода 1С 8.3:

Программно сбросить настройки пользователя в 1С 8.3:
Процедура СброситьНастройкиПользователя () Экспорт // модуль объекта обработки
Если Пользователь . Метаданные (). Реквизиты . Найти ( «ИдентификаторПользователяИБ» ) <> Неопределено Тогда
ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоУникальномуИдентификатору ( Пользователь . ИдентификаторПользователяИБ );
Иначе
ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоИмени ( СокрЛП ( Пользователь . Код ));
КонецЕсли;
ХранилищеНастроек = Вычислить ( «ХранилищеВариантовОтчетов» );
//ХранилищеНастроек = Вычислить(«ХранилищеНастроекДанныхФорм»);
//ХранилищеНастроек = Вычислить(«ХранилищеОбщихНастроек»);
//ХранилищеНастроек = Вычислить(«ХранилищеПользовательскихНастроекДинамическихСписков»);
//ХранилищеНастроек = Вычислить(«ХранилищеПользовательскихНастроекОтчетов»);
//ХранилищеНастроек = Вычислить(«ХранилищеСистемныхНастроек»);
#Если ТолстыйКлиент Тогда
ОчиститьНастройкиПользователя ( ПользовательИБ );
#Иначе
ОчиститьНастройкиПользователяВХранилище ( ХранилищеНастроек . Имя , ПользовательИБ );
#КонецЕсли
Процедура ОчиститьНастройкиПользователяВХранилище ( ХранилищеВО , ПользовательИБ )
Если Ложь Тогда
ХранилищеВО = ХранилищеВариантовОтчетов ;
ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоИмени ( «» );
КонецЕсли;
ОтборП = Новый Структура ;
ОтборП . Вставить ( «Пользователь» , ПользовательИБ . Имя );
Попытка
ВыборкаХВО = ХранилищеВО . Выбрать ( ОтборП );
Исключение
Сообщить ( ХранилищеВО );
Возврат;
КонецПопытки;
Пока ВыборкаХВО . Следующий () Цикл
ХранилищеВО . Удалить ( ВыборкаХВО . КлючОбъекта , ВыборкаХВО . КлючНастроек , ВыборкаХВО . Пользователь );
Сообщить ( «Удалено: » + ВыборкаХВО . КлючОбъекта + «, » + ВыборкаХВО . КлючНастроек + «, » + ВыборкаХВО . Пользователь );
КонецЦикла;
СброситьПользовательскиеНастройки (БСП)

Сбросить пользовательские настройки. Сбрасывает пользовательские настройки указанных отчетов.
// Сбрасывает пользовательские настройки указанных отчетов. // // Параметры: // Ключ - ОбъектМетаданных: Отчет - метаданные отчета, для которого требуется сбросить настройки. // - СправочникСсылка.ВариантыОтчетов - вариант отчета, для которого требуется сбросить настройки. // - Строка - полное имя варианта отчета, для которого требуется сбросить настройки. // Заполняется в формате "/". // Если передать "*", то будут сброшены настройки всех отчетов конфигурации. // ТипыНастроек - Структура - необязательный. Типы пользовательских настроек, которые требуется сбросить. // Ключи структуры тоже являются необязательными. Значение по умолчанию указано в скобках. // * ЭлементОтбора - Булево - (Ложь) сбрасывать настройку "ЭлементОтбораКомпоновкиДанных". // * ЗначениеПараметраНастроек - Булево - (Ложь) сбрасывать настройку "ЗначениеПараметраНастроекКомпоновкиДанных". // * ВыбранныеПоля - Булево - (берется из ключа Прочие) сбрасывать настройку "ВыбранныеПоляКомпоновкиДанных". // * Порядок - Булево - (берется из ключа Прочие) сбрасывать настройку "ПорядокКомпоновкиДанных". // * ЭлементУсловногоОформления - Булево - (берется из ключа Прочие) сбрасывать настройку "ЭлементУсловногоОформленияКомпоновкиДанных". // * Прочие - Булево - (Истина) сбрасывать прочие настройки, не описанные в структуре явно. // Процедура СброситьПользовательскиеНастройки(Ключ, ТипыНастроек = Неопределено) Экспорт ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( "ВариантыОтчетов.СброситьПользовательскиеНастройки", "Ключ", Ключ, Новый ОписаниеТипов("Строка, ОбъектМетаданных, СправочникСсылка.ВариантыОтчетов")); КлючиВариантов = Новый Массив; // Итоговый список очищаемых ключей. // Список ключей может быть заполнен из запроса или извне можно передать один конкретный ключ. Запрос = Новый Запрос; ШаблонЗапроса = "ВЫБРАТЬ | ЕСТЬNULL(ВариантыОтчетов.Отчет.Имя, ВариантыОтчетов.Отчет.ИмяОбъекта) КАК ИмяОтчета, | ВариантыОтчетов.КлючВарианта |ИЗ | Справочник.ВариантыОтчетов КАК ВариантыОтчетов |ГДЕ | &Условие"; Если Ключ = "*" Тогда Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "&Условие", "ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Внутренний)"); ИначеЕсли ТипЗнч(Ключ) = Тип("ОбъектМетаданных") Тогда Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "&Условие", "Отчет = &Отчет"); Запрос.УстановитьПараметр("Отчет", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Ключ)); ИначеЕсли ТипЗнч(Ключ) = Тип("СправочникСсылка.ВариантыОтчетов") Тогда Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "&Условие", "Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка", Ключ); ИначеЕсли ТипЗнч(Ключ) = Тип("Строка") Тогда КлючиВариантов.Добавить(Ключ); Иначе ВызватьИсключение НСтр("ru = 'Некорректный тип параметра ""Отчет""'"); КонецЕсли; Если Не ПустаяСтрока(Запрос.Текст) Тогда Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл КлючиВариантов.Добавить(Выборка.ИмяОтчета +"/"+ Выборка.КлючВарианта); КонецЦикла; КонецЕсли; Если ТипыНастроек = Неопределено Тогда ТипыНастроек = Новый Структура; КонецЕсли; ВариантыОтчетовКлиентСервер.ДополнитьСтруктуруКлючом(ТипыНастроек, "ЭлементОтбора", Истина); ВариантыОтчетовКлиентСервер.ДополнитьСтруктуруКлючом(ТипыНастроек, "ЗначениеПараметраНастроек", Истина); СбрасыватьПрочие = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ТипыНастроек, "Прочие", Истина); УстановитьПривилегированныйРежим(Истина); Для Каждого ПолноеИмяВарианта Из КлючиВариантов Цикл КлючОбъекта = "Отчет." + ПолноеИмяВарианта + "/ТекущиеПользовательскиеНастройки"; ВыборкаХранилища = ХранилищеСистемныхНастроек.Выбрать(Новый Структура("КлючОбъекта", КлючОбъекта)); ОшибокЧтенияПодряд = 0; Пока Истина Цикл Попытка ЭлементВыборкиПолучен = ВыборкаХранилища.Следующий(); ОшибокЧтенияПодряд = 0; Исключение ЭлементВыборкиПолучен = Неопределено; ОшибокЧтенияПодряд = ОшибокЧтенияПодряд + 1; ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, НСтр("ru = 'В процессе выборки пользовательских настроек отчетов из системного хранилища возникла ошибка:'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Если ЭлементВыборкиПолучен = Ложь Тогда Прервать; ИначеЕсли ЭлементВыборкиПолучен = Неопределено Тогда Если ОшибокЧтенияПодряд > 100 Тогда Прервать; Иначе Продолжить; КонецЕсли; КонецЕсли; ПользовательскиеНастройкиКД = ВыборкаХранилища.Настройки; Если ТипЗнч(ПользовательскиеНастройкиКД) <> Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда Продолжить; КонецЕсли; ЕстьИзменения = Ложь; Количество = ПользовательскиеНастройкиКД.Элементы.Количество(); Для Номер = 1 По Количество Цикл ОбратныйИндекс = Количество - Номер; ПользовательскаяНастройкаКД = ПользовательскиеНастройкиКД.Элементы[ОбратныйИндекс]; Тип = ОтчетыКлиентСервер.ТипНастройкиСтрокой(ТипЗнч(ПользовательскаяНастройкаКД)); Сбрасывать = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ТипыНастроек, Тип, СбрасыватьПрочие); Если Сбрасывать Тогда ПользовательскиеНастройкиКД.Элементы.Удалить(ОбратныйИндекс); ЕстьИзменения = Истина; КонецЕсли; КонецЦикла; Если ЕстьИзменения Тогда ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить( ВыборкаХранилища.КлючОбъекта, ВыборкаХранилища.КлючНастроек, ПользовательскиеНастройкиКД, , ВыборкаХранилища.Пользователь); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Сбрасывает пользовательские настройки указанных отчетов. // // Параметры: // Ключ - ОбъектМетаданных: Отчет - метаданные отчета, для которого требуется сбросить настройки. // - СправочникСсылка.ВариантыОтчетов - вариант отчета, для которого требуется сбросить настройки. // - Строка - полное имя варианта отчета, для которого требуется сбросить настройки. // Заполняется в формате "/". // Если передать "*", то будут сброшены настройки всех отчетов конфигурации. // ТипыНастроек - Структура - необязательный. Типы пользовательских настроек, которые требуется сбросить. // Ключи структуры тоже являются необязательными. Значение по умолчанию указано в скобках. // * ЭлементОтбора - Булево - (Ложь) сбрасывать настройку "ЭлементОтбораКомпоновкиДанных". // * ЗначениеПараметраНастроек - Булево - (Ложь) сбрасывать настройку "ЗначениеПараметраНастроекКомпоновкиДанных". // * ВыбранныеПоля - Булево - (берется из ключа Прочие) сбрасывать настройку "ВыбранныеПоляКомпоновкиДанных". // * Порядок - Булево - (берется из ключа Прочие) сбрасывать настройку "ПорядокКомпоновкиДанных". // * ЭлементУсловногоОформления - Булево - (берется из ключа Прочие) сбрасывать настройку "ЭлементУсловногоОформленияКомпоновкиДанных". // * Прочие - Булево - (Истина) сбрасывать прочие настройки, не описанные в структуре явно. // Процедура СброситьПользовательскиеНастройки(Ключ, ТипыНастроек = Неопределено) Экспорт ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( "ВариантыОтчетов.СброситьПользовательскиеНастройки", "Ключ", Ключ, Новый ОписаниеТипов("Строка, ОбъектМетаданных, СправочникСсылка.ВариантыОтчетов")); КлючиВариантов = Новый Массив; // Итоговый список очищаемых ключей. // Список ключей может быть заполнен из запроса или извне можно передать один конкретный ключ. Запрос = Новый Запрос; ШаблонЗапроса = "ВЫБРАТЬ | ЕСТЬNULL(ВариантыОтчетов.Отчет.Имя, ВариантыОтчетов.Отчет.ИмяОбъекта) КАК ИмяОтчета, | ВариантыОтчетов.КлючВарианта |ИЗ | Справочник.ВариантыОтчетов КАК ВариантыОтчетов |ГДЕ | &Условие"; Если Ключ = "*" Тогда Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "&Условие", "ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Внутренний)"); ИначеЕсли ТипЗнч(Ключ) = Тип("ОбъектМетаданных") Тогда Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "&Условие", "Отчет = &Отчет"); Запрос.УстановитьПараметр("Отчет", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Ключ)); ИначеЕсли ТипЗнч(Ключ) = Тип("СправочникСсылка.ВариантыОтчетов") Тогда Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "&Условие", "Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка", Ключ); ИначеЕсли ТипЗнч(Ключ) = Тип("Строка") Тогда КлючиВариантов.Добавить(Ключ); Иначе ВызватьИсключение НСтр("ru = 'Некорректный тип параметра ""Отчет""'"); КонецЕсли; Если Не ПустаяСтрока(Запрос.Текст) Тогда Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл КлючиВариантов.Добавить(Выборка.ИмяОтчета +"/"+ Выборка.КлючВарианта); КонецЦикла; КонецЕсли; Если ТипыНастроек = Неопределено Тогда ТипыНастроек = Новый Структура; КонецЕсли; ВариантыОтчетовКлиентСервер.ДополнитьСтруктуруКлючом(ТипыНастроек, "ЭлементОтбора", Истина); ВариантыОтчетовКлиентСервер.ДополнитьСтруктуруКлючом(ТипыНастроек, "ЗначениеПараметраНастроек", Истина); СбрасыватьПрочие = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ТипыНастроек, "Прочие", Истина); УстановитьПривилегированныйРежим(Истина); Для Каждого ПолноеИмяВарианта Из КлючиВариантов Цикл КлючОбъекта = "Отчет." + ПолноеИмяВарианта + "/ТекущиеПользовательскиеНастройки"; ВыборкаХранилища = ХранилищеСистемныхНастроек.Выбрать(Новый Структура("КлючОбъекта", КлючОбъекта)); ОшибокЧтенияПодряд = 0; Пока Истина Цикл Попытка ЭлементВыборкиПолучен = ВыборкаХранилища.Следующий(); ОшибокЧтенияПодряд = 0; Исключение ЭлементВыборкиПолучен = Неопределено; ОшибокЧтенияПодряд = ОшибокЧтенияПодряд + 1; ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, НСтр("ru = 'В процессе выборки пользовательских настроек отчетов из системного хранилища возникла ошибка:'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Если ЭлементВыборкиПолучен = Ложь Тогда Прервать; ИначеЕсли ЭлементВыборкиПолучен = Неопределено Тогда Если ОшибокЧтенияПодряд > 100 Тогда Прервать; Иначе Продолжить; КонецЕсли; КонецЕсли; ПользовательскиеНастройкиКД = ВыборкаХранилища.Настройки; Если ТипЗнч(ПользовательскиеНастройкиКД) <> Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда Продолжить; КонецЕсли; ЕстьИзменения = Ложь; Количество = ПользовательскиеНастройкиКД.Элементы.Количество(); Для Номер = 1 По Количество Цикл ОбратныйИндекс = Количество - Номер; ПользовательскаяНастройкаКД = ПользовательскиеНастройкиКД.Элементы[ОбратныйИндекс]; Тип = ОтчетыКлиентСервер.ТипНастройкиСтрокой(ТипЗнч(ПользовательскаяНастройкаКД)); Сбрасывать = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ТипыНастроек, Тип, СбрасыватьПрочие); Если Сбрасывать Тогда ПользовательскиеНастройкиКД.Элементы.Удалить(ОбратныйИндекс); ЕстьИзменения = Истина; КонецЕсли; КонецЦикла; Если ЕстьИзменения Тогда ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить( ВыборкаХранилища.КлючОбъекта, ВыборкаХранилища.КлючНастроек, ПользовательскиеНастройкиКД, , ВыборкаХранилища.Пользователь); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode ///////////////////////////////////////////////////////////////////////////////////////////////////////
Как сбросить сохраненные настройки отчета всех пользователей, построенного на базе универсального отчета? Настройки сохраняются в системной папке за каждым пользователем. Как удалить настройки только одного отчета?
Отчеты, разработанные на базе универсального отчета, хранят пользовательские настройки в информационной базе.
Для этого используется регистр сведений «Сохраненные настройки» (в конфигурации « Бухгалтерия для Украины » справочник «Сохраненные настройки»).
Для удаления настроек определенного отчета необходимо открыть форму списка регистра сведений, установить отбор по имени объекта, например «ОтчетОбъект.Унивесрсальный отчет», и удалить отобранные записи.
Другие материалы по теме: