История отборов в 1С:Предприятие — удобный инструмент для быстрого доступа к часто используемым фильтрам в справочниках, документах и отчётах. Однако со временем этот список разрастается до сотен записей, замедляя работу интерфейса и усложняя поиск актуальных вариантов. Особенно остро проблема стоит для бухгалтеров, работающих с большими массивами данных (например, в 1С:Бухгалтерия 3.0 или 1С:ЗУП 3.1), где история отборов может занимать несколько экранов.
В этой статье вы найдёте 5 способов очистки истории отборов — от простых действий в пользовательском режиме до программных методов для администраторов. Мы разберём нюансы для разных версий платформы (8.2, 8.3), типичные ошибки при очистке и способы автоматизации процесса. А в конце — FAQ с ответами на частые вопросы, включая восстановление случайно удалённых отборов.
Прежде чем приступать, убедитесь, что у вас есть права на изменение настроек (для способов 3-5 потребуется доступ к Конфигуратору или права администратора). Если вы работаете в облачной версии 1С:Фреш, некоторые методы могут быть ограничены — проверьте их доступность в своём тарифе.
1. Очистка истории отборов в пользовательском режиме (без конфигуратора)
Самый простой способ, который доступен любому пользователю с правами на редактирование отборов. Подходит для 1С:Предприятие 8.3 и 8.2 в режиме управляемых форм.
Алгоритм действий:
- 📌 Откройте любой справочник, документ или отчёт, где накапливалась история отборов (например,
Справочники → Номенклатура). - 🔍 Нажмите на поле отбора (обычно располагается в верхней части формы) — появится выпадающий список с историей.
- 🧹 Внизу списка найдите пункт "Очистить историю" (в некоторых конфигурациях может называться "Удалить историю отборов") и кликните по нему.
- ✅ Подтвердите действие в диалоговом окне.
Этот метод очищает историю только для текущего объекта (например, только для справочника "Номенклатура"). Чтобы удалить отборы глобально, потребуются другие способы.
⚠️ Внимание: В некоторых конфигурациях (например, 1С:Розница 2.3) пункт "Очистить историю" может отсутствовать в пользовательском режиме. В этом случае используйте методы из следующих разделов.
2. Удаление истории через "Все функции" (скрытый режим)
Если в интерфейсе нет кнопки для очистки, попробуйте включить полный список команд через меню Все функции. Этот метод работает в большинстве типовых конфигураций на платформе 8.3.
Пошаговая инструкция:
- Откройте нужный справочник или документ (например,
Документы → Поступление товаров). - Нажмите
Правка → Все функции(или используйте горячие клавишиCtrl+Shift+F). - В поисковой строке введите "Очистить историю" — система покажет все доступные команды.
- Выберите пункт "Очистить историю отборов" и подтвердите действие.
Если команда не находится, значит в вашей конфигурации она заблокирована. В этом случае переходите к следующим способам.
Чтобы ускорить поиск, используйте комбинацию Alt+Q для быстрого перехода к строке поиска в меню "Все функции".
3. Программная очистка через конфигуратор (для администраторов)
Для полной очистки истории отборов во всех справочниках и документах потребуется доступ к Конфигуратору. Этот метод подходит администраторам и программистам 1С.
Инструкция:
- Закройте все сеансы пользователей в базе (через
Администрирование → Активные пользователи). - Откройте базу в режиме
Конфигуратор(правой кнопкой по базе → "Конфигуратор"). - Перейдите в
Администрирование → Хранилище настроек. - В дереве настроек найдите ветку
ПользовательскиеНастройкиКлиента → [ИмяПользователя] → ИсторияОтборов. - Удалите все подчиненные элементы (правой кнопкой → "Удалить").
- Сохраните изменения и обновите конфигурацию базы (
Конфигурация → Обновить конфигурацию базы данных).
Этот способ удаляет историю для всех пользователей. Если нужно очистить отборы только для конкретного сотрудника, выберите его папку в Хранилище настроек.
⚠️ Внимание: Неправильные действия вКонфигураторемогут привести к потере данных. Перед очисткой сделайте резервную копию базы черезАдминистрирование → Выгрузить информационную базу.
| Метод очистки | Требуемые права | Очищает для | Время выполнения |
|---|---|---|---|
| Пользовательский режим | Права на редактирование отборов | Текущий объект (справочник/документ) | 1-2 минуты |
| "Все функции" | Полный доступ к интерфейсу | Текущий объект | 2-3 минуты |
| Через Конфигуратор | Администратор 1С | Все пользователи или выборочно | 5-10 минут |
| SQL-запрос | Доступ к СУБД | Все пользователи | 3-5 минут |
| Обработка | Права на выполнение внешних обработок | Выборочно или все | Зависит от обработки |
4. Очистка истории через SQL-запрос (для опытных пользователей)
Если вы работаете с 1С на SQL-сервере (например, Microsoft SQL Server или PostgreSQL), можно удалить историю отборов напрямую через запрос к базе данных. Этот метод самый быстрый для крупных баз, но требует знаний SQL и прав доступа к серверу.
Пример запроса для Microsoft SQL Server:
DELETE FROM [dbo].[_UserSettingsStorage]
WHERE [Key] LIKE '%HistorySelection%'
Для PostgreSQL:
DELETE FROM "_user_settings_storage"
WHERE "key" LIKE '%HistorySelection%';
После выполнения запроса:
- 🔄 Перезапустите сервер 1С:Предприятие.
- 📥 Обновите кэш метаданных в клиентских приложениях (
Файл → Обновить).
⚠️ Внимание: Неправильный SQL-запрос может повредить базу данных. Перед выполнением создайте резервную копию черезSQL Server Management StudioилиpgAdmin.
Что делать, если после SQL-запроса история не очистилась?
Если история отборов осталась после выполнения запроса, проверьте:
1. Правильность названия таблицы (в некоторых конфигурациях она может называться иначе, например, v8usersettings).
2. Наличие транзакций — возможно, изменения не были зафиксированы (COMMIT).
3. Кэш клиента — попробуйте очистить его через %APPDATA%\1C\1cv8\ (удалите папку с именем вашей базы).
5. Автоматизация очистки с помощью обработки
Для регулярной очистки истории отборов можно создать внешнюю обработку или использовать готовые решения из каталога Infostart. Этот метод подходит для администраторов, которые хотят автоматизировать процесс.
Пример кода для обработки (вставляйте в модуль объекта):
Процедура ОчиститьИсториюОтборов(Пользователь = Неопределено) Экспорт
Если Пользователь = Неопределено Тогда
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецЕсли;
Настройки = ПользовательскиеНастройкиКлиента.Создать(Пользователь);
ИсторияОтборов = Настройки.Получить("ИсторияОтборов");
Если Не ИсторияОтборов.Пустая() Тогда
Настройки.Удалить("ИсторияОтборов");
Настройки.Записать();
Сообщить("История отборов для пользователя " + Пользователь.Имя + " очищена!");
Иначе
Сообщить("История отборов пуста или не найдена.");
КонецЕсли;
КонецПроцедуры
Как использовать:
- Создайте новую обработку в
Конфигураторе(Файл → Новый → Обработка). - Вставьте код в модуль объекта.
- Сохраните обработку и запустите её в пользовательском режиме (
Файл → Открыть → [ваша обработка.epf]).
Для автоматического запуска по расписанию:
- 📅 Настройте регламентное задание в
Администрирование → Регламентные задания. - 🔄 Укажите периодичность (например, раз в месяц).
- 📌 В качестве выполняемого кода укажите вызов процедуры
ОчиститьИсториюОтборов().
Создать резервную копию базы|Проверить права пользователя на выполнение обработок|Протестировать обработку на копии базы|Настроить регламентное задание|Уведомить пользователей о планируемой очистке-->
6. Восстановление случайно удалённых отборов
Если вы очистили историю отборов по ошибке, её можно восстановить из резервной копии базы или через журнал изменений (если он ведётся). Вот что делать:
Способ 1. Восстановление из бэкапа
- 🔄 Восстановите базу из последней резервной копии (через
Администрирование → Загрузить информационную базу). - 📥 Экспортируйте историю отборов для нужного пользователя (через
Хранилище настроек). - 🔄 Вернитесь к актуальной базе и импортируйте сохранённые настройки.
Способ 2. Использование журнала регистрации
Если в вашей конфигурации включён Журнал регистрации (Администрирование → Журнал регистрации), найдите записи об изменении пользовательских настроек. Для этого:
- Откройте журнал и установите фильтр по типу события "Изменение пользовательских настроек".
- Найдите записи с датой до очистки истории.
- Скопируйте значения параметров
HistorySelectionиз журнала. - Восстановите их через
Конфигуратор(разделХранилище настроек).
⚠️ Внимание: Журнал регистрации должен быть включён до удаления истории. Если он не вёлся, восстановление будет невозможно.
Регулярное резервное копирование базы (хотя бы раз в неделю) — единственный надёжный способ защититься от потери важных пользовательских настроек, включая историю отборов.
FAQ: Частые вопросы об очистке истории отборов в 1С
Можно ли очистить историю отборов только для одного справочника, не затрагивая остальные?
Да, в пользовательском режиме история очищается только для текущего объекта (справочника, документа или отчёта). Для этого откройте нужный справочник, разверните историю отборов и выберите пункт "Очистить историю" внизу списка.
Почему после очистки через Конфигуратор история отборов появляется снова?
Это происходит из-за кэширования настроек на стороне клиента. После очистки через Хранилище настроек:
- Закройте все сеансы 1С.
- Удалите папку с кэшем пользователя по пути
%APPDATA%\1C\1cv8\<ID_базы>. - Перезапустите 1С:Предприятие.
Как очистить историю отборов в 1С:Фреш (облачная версия)?
В 1С:Фреш доступ к Конфигуратору и SQL-запросам ограничен. Используйте:
- 🧹 Очистку в пользовательском режиме (раздел 1 статьи).
- 📧 Обращение в поддержку 1С:Фреш с просьбой очистить историю на сервере.
Для автоматической очистки настройте регламентное задание через личный кабинет 1С:Фреш (раздел Администрирование).
Есть ли риск повредить базу при очистке истории отборов через SQL?
Риск минимален, если вы выполняете точный запрос к таблице _UserSettingsStorage (или её аналогу). Однако:
- ❌ Не используйте
TRUNCATE TABLE— это удалит все пользовательские настройки. - ❌ Не очищайте таблицу без фильтра по
Key LIKE '%HistorySelection%'. - ✅ Предварительно проверьте запрос на тестовой копии базы.
Можно ли отключить сохранение истории отборов совсем?
Да, но это потребует изменения конфигурации. В Конфигураторе:
- Откройте форму нужного справочника или документа.
- Найдите реквизит
ИсторияОтборов(обычно в разделеРеквизиты формы). - Установите свойство
Сохранять историю отборов = Ложь. - Обновите конфигурацию базы.
После этого история отборов перестанет сохраняться для данного объекта.