ВыборкаДанных.Сбросить

Методы · Reset

Позиционирует выборку в начало.

Синтаксис

Сбросить()

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

Выб.Сбросить();
Пока Выб.Следующий() Цикл
    Объект = Выб.Получить();
    ЗаписатьXML(Запись, Объект);
КонецЦикла;
Полное описание, параметры и ограничения

ВыборкаДанных.Сбросить (DataSelection.Reset)

ВыборкаДанных (DataSelection)

Сбросить (Reset)

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

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

Позиционирует выборку в начало.

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

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

Примечание:
После вызова метода Следующий выборка спозиционируется на первую запись в ней.
Пример:

Выб.Сбросить();
Пока Выб.Следующий() Цикл
Объект = Выб.Получить();
ЗаписатьXML(Запись, Объект);
КонецЦикла;

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

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

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

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

Повторно пройти настоящую выборку собственных изменений

ВыборкаДанных создается планом обмена, не результатом SQL-запроса другого типа. Номер сообщения берется из реальной записи сообщения.

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

Сервер собственной учебной базы; также толстый клиент или внешнее соединение, если это разрешено указанным API.

Подготовка

  1. Только собственная учебная конфигурация. Все указанные имена сначала создайте в Конфигураторе; объекты рабочей базы не заменяйте. Здесь код не запускается.

  2. Настройте свой план обмена УчебныйОбмен с собственным узлом 02 и составом УчебныеТовары, зарегистрируйте свои учебные изменения. Это действие изменяет регистрацию номеров сообщений, не полностью безвредное чтение; никаких реальных файлов или передачи сети нет.

&НаСервереБезКонтекста
Процедура ДваждыПройтиУчебныеИзменения()
    Узел = ПланыОбмена.УчебныйОбмен.НайтиПоКоду("02");
    Если Не ЗначениеЗаполнено(Узел) Тогда
        ВызватьИсключение "Создайте собственный узел 02";
    КонецЕсли;
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    Сообщение = ПланыОбмена.СоздатьЗаписьСообщения();
    Сообщение.НачатьЗапись(ЗаписьXML, Узел);
    Выборка = ПланыОбмена.ВыбратьИзменения(Узел, Сообщение.НомерСообщения, Метаданные.Справочники.УчебныеТовары);
    ПервыйПроход = 0;
    Пока Выборка.Следующий() Цикл
        ПервыйПроход = ПервыйПроход + 1;
    КонецЦикла;
    Выборка.Сбросить();
    ВторойПроход = 0;
    Пока Выборка.Следующий() Цикл
        ВторойПроход = ВторойПроход + 1;
    КонецЦикла;
    Сообщение.ЗакончитьЗапись();
    ТекстСообщения = ЗаписьXML.Закрыть();
    Сообщить("Проходы: " + Строка(ПервыйПроход) + ", " + Строка(ВторойПроход));
    Сообщить("Длина оболочки сообщения: " + Строка(СтрДлина(ТекстСообщения)));
КонецПроцедуры

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

  1. Создайте запись сообщения в памяти для своего узла.

  2. Получите однородную выборку с фильтром своего справочника.

  3. Сбросьте и заново посчитайте строки той же выборки.

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

  1. Номер сообщения не выдуман константой.

  2. Сбросить вызывается на ВыборкаДанных; при неизменной выборке количества двух проходов должны совпасть.

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

Показан возврат позиции настоящей выборки в начало.

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

  1. ПланыОбмена.ВыбратьИзменения проставляет номер сообщения в регистрации изменений. Этот пример не сериализует объекты и не является полноценным сообщением обмена для приема.

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

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

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

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

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