Отбор.Сбросить

Методы · Reset

Отключает признак использования отбора у всех элементов отбора.

Синтаксис

Сбросить()

Примеры платформы

СправочникСписок.Отбор.Сбросить();
Полное описание, параметры и ограничения

Отбор.Сбросить (Filter.Reset)

Отбор (Filter)

Сбросить (Reset)

Доступен, начиная с версии 8.0.

Синтаксис:
Сбросить()
Описание:

Отключает признак использования отбора у всех элементов отбора.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Пример:

СправочникСписок.Отбор.Сбросить();

См. также:
ЭлементОтбора, свойство Использование

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Настроить отбор своего регистратора и увидеть, что строки памяти не исчезают

Подготовить условие регистратора для своего набора, проверить явное и стандартное включение, отключение и сброс. На всех этапах проверяются реальные три пары Период/Регистратор: фильтр чтения или записи не заменяет обработку массива строк памяти.

Где и как запускать

Полный серверный общий модуль УчебныеНаборыПоследовательности85 собственной новой конфигурации УчебныеПоследовательности85. Платформа 8.5.1.1343, тонкий/толстый управляемый клиент с серверным вызовом. Только собственные объекты памяти; 1С здесь не запускалась.

Подготовка

  1. Создайте новую отдельную пустую базу 8.5.1.1343, не копию рабочей УТ/КА2. Имя конфигурации УчебныеПоследовательности85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать. Расширений, подписок и обработчиков записи нет.

  2. В Документы создайте единственный документ УчебнаяРегистрация85: проведение запрещено, реквизитов и табличных частей нет, движения регистров не назначены, модули объекта и менеджера пусты. Документы этого вида в уроке не создаются и не записываются.

  3. В Последовательности создайте единственную УчебнаяОчередь85. В составе Документы выберите только свой УчебнаяРегистрация85. Измерений, зависимых регистров в составе Движения и дополнительных индексов нет. ПеремещениеГраницыПриПроведении=НеПеремещать. Модуль набора пуст. Структура записей поэтому содержит только Период и Регистратор.

  4. Не создавайте в стенде справочников и регистров. Для учебного пользователя разрешите собственные метаданные, общую форму и команды. Обновите только эту новую конфигурацию. Проверка имени и состава схемы выполняется до создания набора; она не доказывает отсутствия записей базы и не делает рабочую базу безопасной.

  5. В Общие → Общие модули создайте УчебныеНаборыПоследовательности85: Сервер=Истина, ВызовСервера=Истина, Глобальный=Ложь, клиентские флаги выключены. Полный основной модуль одного выбранного урока вставьте на верхнем уровне целиком. Все помощники предоставлены ниже в том же модуле.

  6. В Общие → Общие формы создайте управляемую форму УчебныйЗапускПоследовательности85. Добавьте команду ВыполнитьУрок с действием ВыполнитьУрок, ИзменяетСохраняемыеДанные=Ложь и кнопку Выполнить урок. Полный модуль формы:
    &НаКлиенте
    Процедура ВыполнитьУрок(Команда)
    ВыполнитьУрокНаСервере();
    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ВыполнитьУрокНаСервере()
    УчебныеНаборыПоследовательности85.ВыполнитьПример();
    КонецПроцедуры

  7. В Общие → Общие команды создайте ОткрытьНаборПоследовательности85 без параметра и включите в свой учебный раздел. Полный модуль общей команды:
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("ОбщаяФорма.УчебныйЗапускПоследовательности85");
    КонецПроцедуры
    Откройте свою форму этой командой и выполните её кнопку. Два вспомогательных модуля не вставляйте в основной серверный модуль.

  8. Плановые ссылки создаются ПолучитьСсылку на собственные новые UUID. Непустая ссылка не означает существующий документ; реквизиты ссылок не читаются. Это идентификаторы собственных незаписанных черновых строк, не готовые записи для сохранения в базу.

  9. Здесь нет Прочитать, Записать, проведения, восстановления или изменения границы. Добавить/Загрузить/Удалить/Очистить действуют только на принадлежащий уроку экземпляр набора в памяти. Этот пример нельзя превращать в исправление последовательности добавлением Записать.

  10. Статически проверены исходный код и установленная справка. Компиляция и выполнение в 1С здесь не проверялись; ожидаемые результаты далее нужно подтвердить самостоятельным запуском только в подготовленной новой учебной базе.

Процедура ВыполнитьПример() Экспорт
    Если Метаданные.Последовательности.Количество() <> 1 Или Метаданные.Документы.Количество() <> 1 Тогда
        ВызватьИсключение "В своём стенде нужны ровно одна последовательность и один вид документа";
    КонецЕсли;
    МетаОчереди = Метаданные.Последовательности.Найти("УчебнаяОчередь85");
    МетаДокумента = Метаданные.Документы.Найти("УчебнаяРегистрация85");
    Если МетаОчереди = Неопределено Или МетаДокумента = Неопределено Тогда
        ВызватьИсключение "Не подготовлена собственная схема урока";
    КонецЕсли;
    Если МетаОчереди.Измерения.Количество() <> 0 Или МетаОчереди.Движения.Количество() <> 0
        Или МетаОчереди.Документы.Количество() <> 1 Тогда
        ВызватьИсключение "Нужна собственная очередь без измерений и зависимых регистров";
    КонецЕсли;
    Участвует = Ложь;
    Для Каждого МетаУчастника Из МетаОчереди.Документы Цикл
        Участвует = МетаУчастника = МетаДокумента;
    КонецЦикла;
    Если Не Участвует Тогда
        ВызватьИсключение "Единственный участник должен быть своим УчебнаяРегистрация85";
    КонецЕсли;
    Если МетаОчереди.ПеремещениеГраницыПриПроведении <> Метаданные.СвойстваОбъектов.ПеремещениеГраницыПриПроведении.НеПеремещать Тогда
        ВызватьИсключение "Проверьте подготовку политики границы собственной очереди";
    КонецЕсли;
    Набор = Последовательности.УчебнаяОчередь85.СоздатьНаборЗаписей();
    Если Набор.Количество() <> 0 Или Набор.Метаданные() <> МетаОчереди Тогда
        ВызватьИсключение "Ожидался новый пустой набор собственной последовательности";
    КонецЕсли;
    Ссылки = Новый Массив;
    Для Номер = 1 По 3 Цикл
        Ссылки.Добавить(Документы.УчебнаяРегистрация85.ПолучитьСсылку(Новый УникальныйИдентификатор));
    КонецЦикла;
    ДобавитьСвоюЗапись(Набор, Дата(2026, 1, 1), Ссылки[0]);
    ДобавитьСвоюЗапись(Набор, Дата(2026, 2, 1), Ссылки[1]);
    ДобавитьСвоюЗапись(Набор, Дата(2026, 3, 1), Ссылки[2]);
    ПроверитьТриСвоиСтроки(Набор, Ссылки);
    ОтборРегистратора = Набор.Отбор.Регистратор;
    Если ТипЗнч(ОтборРегистратора) <> Тип("ЭлементОтбора") Тогда
        ВызватьИсключение "Не найден собственный предопределённый отбор регистратора";
    КонецЕсли;
    ОтборРегистратора.Установить(Ссылки[1], Истина);
    ПроверитьСвойОтбор(ОтборРегистратора, Ссылки[1], Истина);
    ПроверитьТриСвоиСтроки(Набор, Ссылки);
    ОтборРегистратора.Установить(Ссылки[2], Ложь);
    ПроверитьСвойОтбор(ОтборРегистратора, Ссылки[2], Ложь);
    ПроверитьТриСвоиСтроки(Набор, Ссылки);
    ОтборРегистратора.Установить(Ссылки[0]);
    ПроверитьСвойОтбор(ОтборРегистратора, Ссылки[0], Истина);
    ПроверитьТриСвоиСтроки(Набор, Ссылки);
    Набор.Отбор.Сбросить();
    ПроверитьСвойОтбор(ОтборРегистратора, Ссылки[0], Ложь);
    ПроверитьТриСвоиСтроки(Набор, Ссылки);
    Сообщить("Проверены три настройки равенства и сброс; все три строки памяти сохранены");
КонецПроцедуры

Процедура ДобавитьСвоюЗапись(Набор, Период, Регистратор)
    Если ТипЗнч(Период) <> Тип("Дата") Или ТипЗнч(Регистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
        ВызватьИсключение "Переданы неверные собственные ключи строки";
    КонецЕсли;
    Запись = Набор.Добавить();
    Запись.Период = Период;
    Запись.Регистратор = Регистратор;
КонецПроцедуры

Процедура ПроверитьСвоюЗапись(Запись, Период, Регистратор)
    Если ТипЗнч(Запись.Период) <> Тип("Дата") Или ТипЗнч(Запись.Регистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
        ВызватьИсключение "Типы фактической собственной записи не совпали";
    КонецЕсли;
    Если Запись.Период <> Период Или Запись.Регистратор <> Регистратор Тогда
        ВызватьИсключение "Период или регистратор собственной записи не совпал";
    КонецЕсли;
КонецПроцедуры

Процедура ПроверитьТриСвоиСтроки(Набор, Ссылки)
    Если Набор.Количество() <> 3 Или Ссылки.Количество() <> 3 Тогда
        ВызватьИсключение "Изменилось число собственных строк или плановых ссылок";
    КонецЕсли;
    Для ИндексСтроки = 0 По 2 Цикл
        ПроверитьСвоюЗапись(Набор[ИндексСтроки], Дата(2026, ИндексСтроки + 1, 1), Ссылки[ИндексСтроки]);
    КонецЦикла;
КонецПроцедуры

Процедура ПроверитьСвойОтбор(Элемент, ОжидаемаяСсылка, ОжидаемоеИспользование)
    Если ТипЗнч(Элемент.Значение) <> Тип("ДокументСсылка.УчебнаяРегистрация85")
        Или ТипЗнч(Элемент.Использование) <> Тип("Булево")
        Или ТипЗнч(Элемент.ВидСравнения) <> Тип("ВидСравнения") Тогда
        ВызватьИсключение "Типы реальных параметров своего отбора неверны";
    КонецЕсли;
    Если Элемент.Значение <> ОжидаемаяСсылка Или Элемент.Использование <> ОжидаемоеИспользование
        Или Элемент.ВидСравнения <> ВидСравнения.Равно Тогда
        ВызватьИсключение "Значение, использование или равенство своего отбора не совпали";
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Создайте свой новый пустой набор и добавьте три строки: 01.01.2026/Ссылки[0], 01.02.2026/Ссылки[1], 01.03.2026/Ссылки[2]. Каждая ссылка имеет свой новый UUID и тип своего документа; записи базы не создаются.

  2. Возьмите предопределённый элемент Набор.Отбор.Регистратор. Свойство Отбор readonly, но элемент можно настраивать. Установить(Ссылки[1], Истина) одновременно задаёт значение, включение и ВидСравнения.Равно.

  3. Проверьте все три параметра элемента и все шесть значений трёх записей. Количество должно остаться 3: установка отбора не прочитала базу и не отфильтровала заполненный экземпляр памяти.

  4. Установить(Ссылки[2], Ложь) хранит мартовскую плановую ссылку, но отключает применение элемента. Значение не следует путать с Использование: проверяются оба и по-прежнему Равно.

  5. Установить(Ссылки[0]) использует настоящий default второго параметра Истина. Здесь первый параметр передан явно; Неопределено не применяем, поскольку native предупреждает об особом сохранении предыдущего отбора.

  6. Набор.Отбор.Сбросить() отключает использование всех элементов, не удаляет их и не обещает очистить хранимое значение. Для своего единственного предопределённого элемента проверьте сохранённую Ссылки[0], Ложь и Равно.

  7. После каждой настройки проверьте количество, порядок, конкретный тип и каждую дату/ссылку собственных строк. Выполняется настоящий метод элемента отбора, но Прочитать/Записать намеренно отсутствуют.

Как проверить результат

  1. Четыре проверенные состояния (Значение, Использование, ВидСравнения): (Ссылки[1],Истина,Равно), (Ссылки[2],Ложь,Равно), (Ссылки[0],Истина,Равно), (Ссылки[0],Ложь,Равно). Типы: своя ДокументСсылка, Булево и ВидСравнения.

  2. Во всех состояниях ровно три строки с датами 01.01/01.02/01.03.2026 и своими ссылками 0/1/2 соответственно. Отбор не уменьшает Количество до одного и не переупорядочивает строки.

  3. Для проверки собственного валидатора в отдельной копии модуля после настройки измените первую локальную дату. ПроверитьТриСвоиСтроки должен выдать исключение, а сообщение об успешной проверке не должно появиться.

Ожидаемый результат

Все четыре фактических состояния своего элемента отбора проверены полностью; после сброса значение Ссылки[0] сохранено, Использование=Ложь, ВидСравнения=Равно. Три строки памяти неизменны. Чтения и записи базы не было.

На что обратить внимание

  1. Readonly-свойства Отбор, Регистратор и ОбменДанными нельзя заменить присваиванием. У возвращённого Отбор меняются его элементы, у ПараметрыОбменаДанными — разрешённый флаг Загрузка.

  2. Отбор набора последовательности допустим только на равенство. Это условие будущего чтения или записи, а не команда удаления неподходящих строк уже заполненного экземпляра памяти.

  3. Плановая непустая ссылка из ПолучитьСсылку не подтверждает существование документа. УстановитьСсылкуНового задаёт ссылку для будущей записи; ПолучитьСсылкуНового возвращает именно этот план, а не доказательство записи.

  4. Регистратор набора — связь экземпляра с документом; Регистратор отдельной строки — поле этой строки. Не переносите автоматически значение одного свойства в другое и не меняйте readonly-регистратор набора.

  5. Загрузка=Истина сокращает проверки при записи/удалении данных. Это не разрешение пропускать бизнес-проверки в рабочей базе и не проверка корректности импортируемой информации.

  6. В уроках нет записи, чтения базы, обмена сообщениями, проведения, восстановления и переноса границ. Локальные строки и временный флаг нельзя объявлять результатом обмена или исправлением последовательности.

  7. Флаг восстанавливается по реально прочитанному исходному значению, а не безусловно в Ложь. Ветвь исключения не превращается в успешный результат: после восстановления ошибка передаётся вызывающему коду.

  8. Статические проверки не исполняют платформу. Код и ожидаемые результаты требуется отдельно подтвердить в собственной новой базе 8.5.1.1343; 1С здесь не запускалась.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.