Объект этого типа возвращается методом Выбрать у объекта типа ДокументМенеджер.<Имя документа> и представляет собой специализированный способ перебора документов. Обход документов выполняется системой динамически. Это означает, что использование выборки не считывает все документы сразу, а выбирает их порциями из базы данных. Такой подход позволяет достаточно быстро обходить с помощью выборки большие списки документов и не загружает в память всех элементов выборки. Важно! Данному объекту доступны все свойства объекта ДокументСсылка.<Имя документа>.
Полное описание, параметры и ограничения
ДокументВыборка.<Имя документа> (DocumentSelection.<Document name>)
ДокументВыборка.<Имя документа> (DocumentSelection.<Document name>)
Доступен, начиная с версии 8.0.
Свойства:
<Имя общего реквизита> (<Common attribute name>)
<Имя реквизита> (<Attribute name>)
<Имя табличной части> (<Tabular section name>)
ВерсияДанных (DataVersion)
Дата (Date)
Номер (Number)
ПометкаУдаления (DeletionMark)
Проведен (Posted)
Ссылка (Ref)
Методы:
ПолучитьОбъект (GetObject)
Следующий (Next)
Описание:
Объект этого типа возвращается методом Выбрать у объекта типа ДокументМенеджер.<Имя документа> и представляет собой специализированный способ перебора документов.
Обход документов выполняется системой динамически. Это означает, что использование выборки не считывает все документы сразу, а выбирает их порциями из базы данных. Такой подход позволяет достаточно быстро обходить с помощью выборки большие списки документов и не загружает в память всех элементов выборки.
Важно! Данному объекту доступны все свойства объекта ДокументСсылка.<Имя документа>.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ДокументМенеджер.<Имя документа>, метод Выбрать
ДокументОбъект.<Имя документа>
ДокументСсылка.<Имя документа>
ЖурналДокументовМенеджер.<Имя журнала документов>, метод Выбрать
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Показать заявки сентября или октября с точным временем границ
Собственный Пульт создаёт обычный список документов, задаёт НастройкаПериода до открытия и сверяет граничные заявки отдельной выборкой. Отбор номера, доступность интервала и перечитывание показаны отдельно.
Где и как запускать
Полный модуль обычной формы Список собственной обработки УчебныеДокументы85. Только толстый клиент; Пульт и серверная защита отдельными модулями ниже. Не выполнялся.
Подготовка
Создайте НОВУЮ файловую базу на 8.5.1.1343: конфигурация УчебныеПериодыДокументов85, совместимость НеИспользовать, обычное приложение, толстый клиент. Рабочие конфигурации и их копии не используйте. Здесь запуск отсутствует: runtimeVerifiedScenarios=0.
Единственный документ УчебнаяЗаявка: Номер Строка(10), автонумерация выключена, контроль уникальности включён, проведение запрещено, единственный реквизит Комментарий Строка(100). Все четыре различных номера относятся к одному 2026 году; иной период нумерации не используется в ожиданиях. Табличных частей нет. Все другие бизнес-объекты, подписки, задания, расширения и разделители отсутствуют; модули документа/менеджера пусты.
ВРУЧНУЮ только в своём стенде запишите четыре непроведенных документа без пометок: S001 01.09.2026 00:00:00/Начало сентября; S002 30.09.2026 23:59:59/Конец сентября; O001 01.10.2026 00:00:00/Начало октября; O002 31.10.2026 23:59:59/Конец октября. В форме ввода даты включите показ секунд, иначе проверка точных значений откажет. Данные остаются для UI-теста; код их только читает.
Обработка УчебныеДокументы85: обычные формы Пульт и Список, Пульт основная. Список: реквизит Заявки типа ДокументСписок.УчебнаяЗаявка, табличное поле СписокЗаявок с данными именно Заявки и колонками Номер, Дата, Комментарий. Поле ТолькоПросмотр=Да; команды записи, удаления и проведения не добавляйте.
В Список добавьте кнопки РазрешитьИнтервал, ЗапретитьИнтервал, ТолькоПервыйДокумент, СнятьНомернойОтбор, ПроверитьВосстановление, РучноеОбновление, ЗакрытьСписок. Назначьте одноимённые действия и события ПриОткрытии/ПередЗакрытием. Вставьте полный основной модуль. Стандартный диалог настройки списка должен быть доступен через контекстное меню поля.
Пульт: ОткрытьСентябрь, ОткрытьОктябрь, ЗакрытьСвойСписок; назначьте действия и события ПриОткрытии/ПередЗакрытием. Вставьте полный отдельный модуль ниже. До открытия нового опыта закройте предыдущий собственный список.
Общий модуль УчебныеПериоды85: неглобальный, Сервер=Да, Вызов сервера=Да, клиентские флаги=Нет, привилегированный=Нет. Вставьте полный модуль защиты ниже. Обновите конфигурацию базы, выполните F7; вручную проверьте тип реквизита списка, привязку поля, четыре номера и даты.
НастройкаОтбора.Дата и НастройкаПорядка.Номер должны присутствовать в подготовленном списке. При отсутствии код отказывает, а не добавляет элементы настройки динамического списка. ТолькоПросмотр относится к UI и не заменяет права доступа.
Перем СвоиЗаявки;
Перем Подготовлено;
Перем РазрешалисьИзмененияИнтервала;
Процедура ПодготовитьДоОткрытия(Режим) Экспорт
УчебныеПериоды85.ПроверитьСвойСтенд();
Если ЭтаФорма.Открыта() Тогда
ВызватьИсключение "Настройку начального периода вызывайте до открытия своего окна";
КонецЕсли;
Если ТипЗнч(Заявки) <> Тип("ДокументСписок.УчебнаяЗаявка") Тогда
ВызватьИсключение "Реквизит Заявки должен быть списком собственного документа";
КонецЕсли;
СвоиЗаявки = ПрочитатьСвоиЗаявки();
РазрешалисьИзмененияИнтервала = Ложь;
Колонки = Заявки.Колонки;
Для Каждого Имя Из СтрРазделить("Номер,Дата,Комментарий", ",") Цикл
Если Колонки.Найти(Имя) = Неопределено Тогда
Колонки.Добавить(Имя);
КонецЕсли;
КонецЦикла;
Заявки.Отбор.Сбросить();
Заявки.Порядок.Установить("Дата Возр, Номер Возр");
Поле = ЭлементыФормы.СписокЗаявок;
Поле.ТолькоПросмотр = Истина;
Поле.АвтоОбновление = Ложь;
Поле.ПериодАвтоОбновления = 10;
Поле.ИзменятьАвтоОбновление = Истина;
Поле.ВосстанавливатьТекущуюСтроку = Ложь;
Поле.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.СообщатьОНесоответствииОтбору;
Поле.РазрешитьНастройкуПериода = Ложь;
Границы = СвоиГраницы(Режим);
Настройка = Новый НастройкаПериода;
Настройка.РедактироватьКакИнтервал = Истина;
Настройка.РедактироватьКакПериод = Ложь;
Настройка.УстановитьПериод(Границы.Начало, Границы.Конец, Ложь);
Настройка.ВариантНастройки = ВариантНастройкиПериода.Интервал;
Если Настройка.ПолучитьДатуНачала() <> Границы.Начало Или Настройка.ПолучитьДатуОкончания() <> Границы.Конец Тогда
ВызватьИсключение "Не подтверждены точные даты и время собственного периода";
КонецЕсли;
Поле.СтандартныйПериод = Настройка;
Полученная = Поле.СтандартныйПериод;
Если ТипЗнч(Полученная) <> Тип("НастройкаПериода") Тогда
ВызватьИсключение "Свойство обычного списка содержит НастройкаПериода, не СтандартныйПериод";
КонецЕсли;
Если Полученная.ПолучитьДатуНачала() <> Границы.Начало Или Полученная.ПолучитьДатуОкончания() <> Границы.Конец Тогда
ВызватьИсключение "Поле не приняло собственный начальный интервал";
КонецЕсли;
НастроитьДиалоги(Ложь);
ПроверитьВыборкуМесяца(Режим, Границы);
Подготовлено = Истина;
КонецПроцедуры
Функция СвоиГраницы(Режим)
Если Режим = "Сентябрь" Тогда
Возврат Новый Структура("Начало,Конец,Номера", Дата(2026, 9, 1, 0, 0, 0), Дата(2026, 9, 30, 23, 59, 59), "S001,S002");
ИначеЕсли Режим = "Октябрь" Тогда
Возврат Новый Структура("Начало,Конец,Номера", Дата(2026, 10, 1, 0, 0, 0), Дата(2026, 10, 31, 23, 59, 59), "O001,O002");
Иначе
ВызватьИсключение "Для своего опыта выберите Сентябрь или Октябрь";
КонецЕсли;
КонецФункции
Процедура ПроверитьВыборкуМесяца(Режим, Границы)
Выборка = Документы.УчебнаяЗаявка.Выбрать(Границы.Начало, Границы.Конец, , "Дата Возр");
Номера = Новый Массив;
Пока Выборка.Следующий() Цикл
Номера.Добавить(Выборка.Номер);
КонецЦикла;
Если СтрСоединить(Номера, ",") <> Границы.Номера Тогда
ВызватьИсключение "Выборка месяца не совпала с собственными граничными заявками";
КонецЕсли;
Сообщить(Режим + ": выборка " + Границы.Номера + "; видимое поле ещё проверьте после открытия");
КонецПроцедуры
Процедура ПриОткрытии()
Если Подготовлено <> Истина Тогда
ВызватьИсключение "Открывайте только из собственного Пульта после подготовки периода";
КонецЕсли;
КонецПроцедуры
Функция ПрочитатьСвоиЗаявки()
Ожидания = Новый Структура;
Ожидания.Вставить("S001", Новый Структура("Дата,Комментарий", Дата(2026, 9, 1, 0, 0, 0), "Начало сентября"));
Ожидания.Вставить("S002", Новый Структура("Дата,Комментарий", Дата(2026, 9, 30, 23, 59, 59), "Конец сентября"));
Ожидания.Вставить("O001", Новый Структура("Дата,Комментарий", Дата(2026, 10, 1, 0, 0, 0), "Начало октября"));
Ожидания.Вставить("O002", Новый Структура("Дата,Комментарий", Дата(2026, 10, 31, 23, 59, 59), "Конец октября"));
Данные = Новый Структура;
Выборка = Документы.УчебнаяЗаявка.Выбрать(, , , "Дата Возр");
Если ТипЗнч(Выборка) <> Тип("ДокументВыборка.УчебнаяЗаявка") Тогда
ВызватьИсключение "Ожидалась выборка только своего документа";
КонецЕсли;
Пока Выборка.Следующий() Цикл
Если Не Ожидания.Свойство(Выборка.Номер, Ожидание) Или Данные.Свойство(Выборка.Номер) Тогда
ВызватьИсключение "В своем наборе неизвестный или повторный номер";
КонецЕсли;
Если Выборка.Дата <> Ожидание.Дата Или Выборка.Комментарий <> Ожидание.Комментарий
Или Выборка.Проведен Или Выборка.ПометкаУдаления Или Выборка.Ссылка.Пустая()
Или ТипЗнч(Выборка.ВерсияДанных) <> Тип("Строка") Тогда
ВызватьИсключение "Своя заявка отличается от подготовки";
КонецЕсли;
Объект = Выборка.ПолучитьОбъект();
Если Объект = Неопределено Тогда
ВызватьИсключение "Объект текущей заявки отсутствует";
КонецЕсли;
Если Объект.Ссылка <> Выборка.Ссылка Или Объект.Номер <> Выборка.Номер
Или Объект.Дата <> Выборка.Дата Или Объект.ВерсияДанных <> Выборка.ВерсияДанных Тогда
ВызватьИсключение "Объект не соответствует строке собственной выборки";
КонецЕсли;
Данные.Вставить(Выборка.Номер, Выборка.Ссылка);
КонецЦикла;
Если Данные.Количество() <> 4 Тогда
ВызватьИсключение "Вручную подготовьте ровно четыре собственные непроведенные заявки";
КонецЕсли;
Возврат Данные;
КонецФункции
Процедура НастроитьДиалоги(РазрешитьИнтервал)
Поле = ЭлементыФормы.СписокЗаявок;
ДатаОтбора = Поле.НастройкаОтбора.Найти("Дата");
ПорядокНомера = Поле.НастройкаПорядка.Найти("Номер");
Если ДатаОтбора = Неопределено Или ПорядокНомера = Неопределено Тогда
ВызватьИсключение "Сверьте наличие полей Дата и Номер у собственного списка";
КонецЕсли;
ДатаОтбора.Доступность = Ложь;
ПорядокНомера.Доступность = Ложь;
Поле.РазрешитьНастройкуПериода = РазрешитьИнтервал;
Если РазрешитьИнтервал Тогда
РазрешалисьИзмененияИнтервала = Истина;
КонецЕсли;
Если ДатаОтбора.Доступность Или ПорядокНомера.Доступность
Или Поле.РазрешитьНастройкуПериода <> РазрешитьИнтервал Тогда
ВызватьИсключение "Доступность собственного диалога интервала не подтверждена";
КонецЕсли;
КонецПроцедуры
Процедура РазрешитьИнтервал(Кнопка)
НастроитьДиалоги(Истина);
КонецПроцедуры
Процедура ЗапретитьИнтервал(Кнопка)
НастроитьДиалоги(Ложь);
КонецПроцедуры
Функция СнятьСкалярныеНастройки(Поле)
Возврат Новый Структура("АвтоОбновление,ВосстанавливатьТекущуюСтроку,ИзменятьАвтоОбновление,ПериодАвтоОбновления,ПроверкаОтображенияНовойСтроки,РазрешитьНастройкуПериода",
Поле.АвтоОбновление,
Поле.ВосстанавливатьТекущуюСтроку,
Поле.ИзменятьАвтоОбновление,
Поле.ПериодАвтоОбновления,
Поле.ПроверкаОтображенияНовойСтроки,
Поле.РазрешитьНастройкуПериода);
КонецФункции
Процедура ВосстановитьСкалярныеНастройки(Поле, Снимок)
Поле.АвтоОбновление = Ложь;
Поле.ВосстанавливатьТекущуюСтроку = Снимок.ВосстанавливатьТекущуюСтроку;
Поле.ИзменятьАвтоОбновление = Снимок.ИзменятьАвтоОбновление;
Поле.ПериодАвтоОбновления = Снимок.ПериодАвтоОбновления;
Поле.ПроверкаОтображенияНовойСтроки = Снимок.ПроверкаОтображенияНовойСтроки;
Поле.РазрешитьНастройкуПериода = Снимок.РазрешитьНастройкуПериода;
Поле.АвтоОбновление = Снимок.АвтоОбновление;
Факт = СнятьСкалярныеНастройки(Поле);
Если Факт.Количество() <> 6 Или Снимок.Количество() <> 6 Тогда
ВызватьИсключение "Снимок содержит ровно шесть скалярных настроек";
КонецЕсли;
Для Каждого Пара Из Снимок Цикл
Если ТипЗнч(Факт[Пара.Ключ]) <> ТипЗнч(Пара.Значение) Или Факт[Пара.Ключ] <> Пара.Значение Тогда
ВызватьИсключение "Не восстановлено собственное свойство " + Пара.Ключ;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ТолькоПервыйДокумент(Кнопка)
Если РазрешалисьИзмененияИнтервала = Истина Тогда
ВызватьИсключение "После разрешения ручной смены интервала откройте новый собственный опыт";
КонецЕсли;
Заявки.Отбор.Сбросить();
Поле = ЭлементыФормы.СписокЗаявок;
Настройка = Поле.СтандартныйПериод;
Граница = Настройка.ПолучитьДатуНачала();
Если Граница = Дата(2026, 9, 1, 0, 0, 0) Тогда
Номер = "S001";
ИначеЕсли Граница = Дата(2026, 10, 1, 0, 0, 0) Тогда
Номер = "O001";
Иначе
ВызватьИсключение "После произвольной настройки периода откройте новый собственный опыт";
КонецЕсли;
Заявки.Отбор.Номер.Установить(Номер, Истина);
Заявки.Обновить();
Поле.ТекущаяСтрока = СвоиЗаявки[Номер];
Поле.ОбновитьСтроки();
Если Поле.ТекущаяСтрока <> СвоиЗаявки[Номер] Тогда
ВызватьИсключение "Собственный первый документ не стал текущей строкой";
КонецЕсли;
Сообщить("Ожидается собственный номер " + Номер + "; проверьте видимый список");
КонецПроцедуры
Процедура СнятьНомернойОтбор(Кнопка)
Заявки.Отбор.Номер.Использование = Ложь;
Заявки.Обновить();
ЭлементыФормы.СписокЗаявок.ОбновитьСтроки();
КонецПроцедуры
Процедура ПроверитьВосстановление(Кнопка)
Поле = ЭлементыФормы.СписокЗаявок;
Снимок = СнятьСкалярныеНастройки(Поле);
Попытка
Поле.АвтоОбновление = Ложь;
Поле.ПериодАвтоОбновления = 15;
Поле.ИзменятьАвтоОбновление = Ложь;
Поле.ВосстанавливатьТекущуюСтроку = Истина;
Поле.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.НеПроверять;
Поле.РазрешитьНастройкуПериода = Истина;
Поле.АвтоОбновление = Истина;
Если Поле.ПериодАвтоОбновления <> 15 Или Не Поле.АвтоОбновление Тогда
ВызватьИсключение "Не подтвержден собственный измененный режим обновления";
КонецЕсли;
Исключение
ВосстановитьСкалярныеНастройки(Поле, Снимок);
ВызватьИсключение;
КонецПопытки;
ВосстановитьСкалярныеНастройки(Поле, Снимок);
Сообщить("Шесть скалярных настроек восстановлены; период и условия отбора в этом цикле не менялись");
КонецПроцедуры
Процедура РучноеОбновление(Кнопка)
ЭлементыФормы.СписокЗаявок.АвтоОбновление = Ложь;
Заявки.Обновить();
ЭлементыФормы.СписокЗаявок.ОбновитьСтроки();
КонецПроцедуры
Процедура ЗакрытьСписок(Кнопка)
ЭтаФорма.Закрыть();
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ЭлементыФормы.СписокЗаявок.АвтоОбновление = Ложь;
КонецПроцедурыУчебныеДокументы85.Пульт
УчебныеПериодыДокументов85 → Обработки → УчебныеДокументы85 → Формы → Пульт → Модуль
Полный отдельный модуль обычного Пульта, подготовка периода до открытия; не выполнялся.
Перем СвоеОкно;
Процедура ПриОткрытии()
УчебныеПериоды85.ПроверитьСвойСтенд();
СвоеОкно = Неопределено;
КонецПроцедуры
Процедура ОткрытьСентябрь(Кнопка)
СоздатьСвоеОкно("Сентябрь");
КонецПроцедуры
Процедура ОткрытьОктябрь(Кнопка)
СоздатьСвоеОкно("Октябрь");
КонецПроцедуры
Процедура СоздатьСвоеОкно(Режим)
УчебныеПериоды85.ПроверитьСвойСтенд();
Если СвоеОкно <> Неопределено Тогда
Если СвоеОкно.Открыта() Тогда
ВызватьИсключение "Сначала закройте собственный список";
КонецЕсли;
КонецЕсли;
Ключ = Новый УникальныйИдентификатор;
Окно = Обработки.УчебныеДокументы85.ПолучитьФорму("Список", ЭтаФорма, Ключ);
Если Окно = Неопределено Тогда
ВызватьИсключение "Своя обычная форма Список не создана";
КонецЕсли;
Если ТипЗнч(Окно) <> Тип("Форма") Тогда
ВызватьИсключение "Нужна обычная форма толстого клиента";
КонецЕсли;
Если Окно.Открыта() Или Окно.КлючУникальности <> Ключ Или Окно.ВладелецФормы <> ЭтаФорма.ЭтаФорма Тогда
ВызватьИсключение "Не перенастраиваем чужое или открытое окно";
КонецЕсли;
Окно.КлючСохраненияПоложенияОкна = "УчебныеДокументы85.МойОпыт." + Строка(Ключ);
Окно.ЗакрыватьПриЗакрытииВладельца = Истина;
Окно.ПодготовитьДоОткрытия(Режим);
СвоеОкно = Окно;
Окно.Открыть();
КонецПроцедуры
Процедура ЗакрытьСвойСписок(Кнопка)
ЗакрытьСвоеОкно();
КонецПроцедуры
Процедура ЗакрытьСвоеОкно()
Если СвоеОкно <> Неопределено Тогда
Если СвоеОкно.Открыта() Тогда
СвоеОкно.Закрыть();
Если СвоеОкно.Открыта() Тогда
ВызватьИсключение "Свой список отказался закрываться";
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ЗакрытьСвоеОкно();
КонецПроцедурыУчебныеПериоды85.ПроверкаСтенда
УчебныеПериодыДокументов85 → Общие → Общие модули → УчебныеПериоды85
Полный серверный модуль защиты собственного стенда, не выполнялся.
Процедура ПроверитьСвойСтенд() Экспорт
Если Метаданные.Справочники.Количество() <> 0 Или Метаданные.Документы.Количество() <> 1 Или Метаданные.Перечисления.Количество() <> 0 Или Метаданные.РегистрыСведений.Количество() <> 0 Или Метаданные.РегистрыНакопления.Количество() <> 0 Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Или Метаданные.РегистрыРасчета.Количество() <> 0 Или Метаданные.ПланыВидовХарактеристик.Количество() <> 0 Или Метаданные.ПланыВидовРасчета.Количество() <> 0 Или Метаданные.ПланыСчетов.Количество() <> 0 Или Метаданные.ПланыОбмена.Количество() <> 0 Или Метаданные.Последовательности.Количество() <> 0 Или Метаданные.БизнесПроцессы.Количество() <> 0 Или Метаданные.Задачи.Количество() <> 0 Или Метаданные.ОбщиеРеквизиты.Количество() <> 0 Или Метаданные.ПодпискиНаСобытия.Количество() <> 0 Или Метаданные.РегламентныеЗадания.Количество() <> 0 Или Метаданные.ВнешниеИсточникиДанных.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только свой новый пустой учебный стенд";
КонецЕсли;
Документ = Метаданные.Документы[0];
Если Документ.Имя <> "УчебнаяЗаявка" Или Документ.Реквизиты.Количество() <> 1
Или Документ.Реквизиты.Найти("Комментарий") = Неопределено Тогда
ВызватьИсключение "Нужен собственный документ УчебнаяЗаявка с единственным Комментарий";
КонецЕсли;
Если Метаданные.ЕстьИзмененияРасширениямиКонфигурации() Тогда
ВызватьИсключение "Свой сеанс не должен изменяться расширениями";
КонецЕсли;
Источники = Новый Массив;
Источники.Добавить(ИсточникРасширенийКонфигурации.БазаДанных);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансАктивные);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансОтключенные);
Для Каждого Источник Из Источники Цикл
Расширения = РасширенияКонфигурации.Получить(, Источник);
Если ТипЗнч(Расширения) <> Тип("Массив") Тогда
ВызватьИсключение "Native список расширений должен иметь тип Массив";
КонецЕсли;
Если Расширения.Количество() <> 0 Тогда
ВызватьИсключение "В своём новом стенде нет расширений базы или сеанса";
КонецЕсли;
КонецЦикла;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Чужая или вложенная активная транзакция не допускается";
КонецЕсли;
КонецПроцедурыРазбор по шагам
СтандартныйПериод — имя свойства поля, его тип именно НастройкаПериода. Одноимённый тип СтандартныйПериод для СКД здесь не используется; подмена типов была бы ошибкой.
Новая НастройкаПериода получает границы выбранного месяца с 00:00:00 до 23:59:59. УстановитьПериод может подобрать вариант периода; точные границы проверяем getters до передачи полю. ВариантНастройки только записывается: Интервал выбирает закладку диалога, его не читаем.
Настройка начального периода применяется при открытии формы. Пульт вызывает ПодготовитьДоОткрытия у своего закрытого окна, затем Открыть. Переключение сентября/октября требует закрыть этот опыт и получить новое окно, не присвоить свойство открытому полю.
Полная ДокументВыборка проверяет все четыре записи: Номер/Дата/Комментарий, отсутствие проведения/пометки, непустую ссылку и строковую ВерсияДанных. ПолучитьОбъект проверяется на Неопределено; объект читается без изменения или записи.
Выбрать(начало,конец,,"Дата Возр") отдельно подтверждает номера месяца, включая крайние секунды. Это контроль данных, не доказательство того, что видимое поле применило период: экран проверяется после открытия отдельно.
Колонки readonly как свойство ДокументСписок, но позволяет получить изменяемую КолонкиСписка. Номер/Дата/Комментарий добавляются только при отсутствии. Порядок списка Дата Возр, Номер Возр; он не равен порядку интерактивно доступных настроек.
ДатаОтбора.Доступность=Ложь отключает интерактивное изменение отбора по дате. РазрешитьНастройкуПериода=Истина отдельно делает команду интервала доступной даже при этом запрете. Это не установка самого периода и не право записи документа.
ТолькоПервыйДокумент использует настоящий отбор Заявки.Отбор.Номер и делает текущей строкой именно собственную ссылку из проверенной выборки. ТекущаяСтрока здесь ДокументСсылка, не номер строки. Кнопка снятия выключает только номерной элемент, не сбрасывает весь отбор по дате. После первого разрешения ручной смены интервала номерной опыт блокируется до нового открытия: исходная НастройкаПериода не считается достоверным снимком текущего пользовательского фильтра. Обновить перечитывает источник, ОбновитьСтроки перерисовывает видимые строки.
Цикл восстановления снимает только шесть скалярных настроек и возвращает их при успехе/ошибке. НастройкаПериода, выбранный интервал, номерной отбор, текущая строка и доступности диалога в цикле не меняются и не объявляются глубоко скопированными.
ПериодАвтоОбновления минимум 5 секунд; цикл пробует 15, начальный профиль 10 и автообновление выключено. ВосстанавливатьТекущуюСтроку задаётся до открытия; временное изменение в цикле не проверяет сохранённую позицию. Проверка новой строки на readonly-поле не срабатывает, поскольку ввод не производится.
Как проверить результат
Будущий ручной тест: ОткрытьСентябрь даёт контрольную выборку S001,S002 и видимый список этих двух документов; октябрь — O001,O002. Сверьте экран отдельно от сообщения выборки.
Первые и последние секунды обоих месяцев входят в собственный ожидаемый интервал. Следующий месяц не должен попадать в сентябрь. Если ручной ввод округлил время, проверка всего набора должна отказать до открытия.
ЗапретитьИнтервал: отбор Дата запрещён и команда интервала недоступна. РазрешитьИнтервал: отбор Дата остаётся запрещён, но команда интервала доступна. После произвольного изменения интервала заново откройте собственный месяц для повторения ожидаемых результатов.
В новом опыте, до РазрешитьИнтервал, ТолькоПервыйДокумент показывает S001 или O001. СнятьНомернойОтбор возвращает оба документа текущего интервала; кнопка не обещает возврат произвольно изменённого пользовательского периода. После РазрешитьИнтервал требуется новое окно для проверки первого номера, даже если затем запрет снова включён.
ПроверитьВосстановление возвращает шесть скалярных значений. Для проверки ошибки в копии модуля поменяйте период на 20 перед сравнением с 15; должно быть исключение с восстановлением.
Закройте только свой Список/Пульт и проверьте всю учебную базу: четыре документа остаются непроведёнными и без пометок. Код урока не удаляет подготовку.
Ожидаемый результат
Подготовлены два собственных месячных просмотра, контроль выборкой граничных документов, отбор номера и управление доступностью интервала. runtimeVerifiedScenarios=0.
На что обратить внимание
Обычный список документов и управляемый ДинамическийСписок имеют разные настройки периода. Не переносите имя свойства с сохранением неверного типа.
НастройкаПериода.ВариантНастройки имеет режим только записи. Не читайте его в снимке и не сравнивайте как обычное свойство.
РазрешитьНастройкуПериода не изменяет даты само по себе. СтандартныйПериод задаёт первоначальный интервал при открытии, не универсальную смену уже открытого фильтра.
Контроль выборки данных и успешные присваивания не доказывают внешний вид. UI, сохранение позиции, точное время автообновления и ввод новых строк в 1С здесь не проверены.
ВерсияДанных служебная, не версия платформы; сравнение в собственном неизменяемом наборе не заменяет блокировки многопользовательской базы.
Параметры могут сохраняться платформой в собственном пользовательском профиле. Новый UUID и ключ окна не очищают чужие настройки и не гарантируют отсутствие служебных записей.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.