Сократить буфер
// Скрипт удаляет из списка буферов обмена объекты, которые ни разу не выбирались и старше двух месяцев
// также удаляем все строки состоящие из одного слова и старше недели
// также удаляем выражения и числа старше недели
// Скрипт выполняется, если объектов больше 6000
СписокБуферов = Главный.Определить(0, Объекты.Дерево, Свойства.Наименование, "Буфер");
Если (СписокБуферов.Количество()<6000) Тогда Возврат; Конец;
дата1 = Моменты.НачалоМесяца(Моменты.Текущий, 2);
дата2 = Моменты.НачалоДня(Моменты.Текущий, 7);
Сообщить("Запуск, Сократим список буферов обмена, было объектов", СписокБуферов.Количество());
ТипСтрока = СписокБуферов.Колонки.Целое(Свойства.Тип, "Строка");
ТипВыражение = СписокБуферов.Колонки.Целое(Свойства.Тип, "Выражение");
ТипЧисло = СписокБуферов.Колонки.Целое(Свойства.Тип, "Число");
Для Объект Из СписокБуферов Цикл
Если (Объект.'Количество выборов'<1) Тогда
Если (Объект.Создан<дата1) Тогда
Объект.Неиспользуемый = 1;
Иначе
Если (Объект.Создан<дата2) Тогда
Если (Объект.Тип=ТипСтрока) Тогда
Если (Объект.Целое(Свойства.Текст)>0) Тогда // в строке только одно слово
Объект.Неиспользуемый = 1;
Конец;
Конец;
Если (Объект.Тип=ТипВыражение) Тогда
Объект.Неиспользуемый = 1;
Конец;
Если (Объект.Тип=ТипЧисло) Тогда
Объект.Неиспользуемый = 1;
Конец;
Конец;
Конец;
Конец;
Конец;
СписокБуферов.Удалить("Неиспользуемый", 1);
Сообщить("Завершено, в списке буферов обмена осталось объектов", СписокБуферов.Количество());