584 документа
← К списку

Выборка документов

страница

Выборка документов

Чтобы знакомиться с документами дальше, придется написать небольшую программу. Завершите отладку.

Сейчас в общем модуле Серверный в процедуре НаСервере() вы выберете несколько документов. Для этого вам понадобится метод Выбрать(), который хорошо видно на рис. 7.217.

Посмотрите в синтакс-помощнике, что делает метод Выбрать() объекта ДокументМенеджер.<Имя документа>. Ему можно указать несколько параметров, но все они необязательные. Поэтому вы их сейчас использовать не будете. А возвращает он выборку документов. Поэтому вы можете написать так, как показано в листинге 7.29.

Листинг 7.2****9. Выборка документов

Выборка = Документы.ОказаниеУслуги.Выбрать();

Объект ДокументВыборка.<Имя документа>, который вы таким образом получите, имеет метод Следующий(). Посмотрите его описание в синтакс-помощнике. Метод позволяет обходить всю полученную выборку, и выглядит это так (листинг 7.30). Сделайте этот пример в своей конфигурации.

Листинг **7.**30. Обход выборки документов

Выборка = Документы.ОказаниеУслуги.Выбрать();

Пока Выборка.Следующий() Цикл

 

КонецЦикла;

После того как вы получили выборку методом Выбрать(), она не спозиционирована ни на каком своем элементе. Чтобы перейти к первому элементу этой выборки или к следующему элементу, нужно выполнить метод Следующий(). Если первый или следующий элемент получен, метод вернет значение Истина. Если элементов больше нет, метод вернет значение Ложь.

Именно поэтому для обхода выборки используется инструкция Пока Цикл, где на каждой итерации цикла выполняется метод Следующий(). Как только выборка закончится и метод вернет Ложь, выполнение цикла тоже прекратится.

Установите точку останова на строке Пока Выборка.Следующий() Цикл и запустите проект в режиме отладки. Посмотрите, как это работает.

До того как первый раз выполнится метод Следующий(), в объекте выборки нет никаких данных (рис. 7.218).

Рис. 7.21****8. В объекте выборки нет данных

Сделайте один шаг. Вы увидите, что в выборке появятся данные одного из документов (рис. 7.219).

Рис. 7.21****9. В объекте выборки данные документа

При выполнении метода Выбрать() вы не указывали порядок, в котором нужно выбирать документы. Поэтому неизвестно, в каком порядке они будут появляться, но вам это и не нужно сейчас.

Выборка содержит значения всех свойств документа, а также все его табличные части. К каждой табличной части вы можете обратиться по ее имени.

Объект табличной части содержит коллекцию строк. Каждая строка содержит значения реквизитов, которые есть у табличной части. Содержимое табличной части удобнее смотреть с помощью панели Значения. Она находится в нижней части экрана.

Справа в панели Переменные выделите табличную часть – и внизу, в панели Значения, вы увидите ее содержимое (рис. 7.220).

Рис. 7.2****20. Табличная часть документа

Табличная часть – это индексированная коллекция. Поэтому к каждой строке табличной части вы можете обращаться по ее индексу.

Перейдите в панель Выражения и добавьте выражение Выборка.ПереченьНоменклатуры[0] (рис. 7.221). Табличную часть вы получаете по имени (ПереченьНоменклатуры), а дальше по индексу получаете первую ее строку.

Рис. 7.22****1. Строка табличной части

Вот таким нехитрым способом, «путешествуя» только с помощью отладчика, вы можете самостоятельно узнать очень многое об устройстве объектов встроенного языка. А после этого недостающую информацию об их методах вы можете получить из синтакс-помощника.

Объекты встроенного языка, описывающие табличную часть и ее строки, одинаковы для всех объектов конфигурации, у которых могут быть табличные части. Поэтому в синтакс-помощнике они описаны в ветке Прикладные объекты > Универсальные объекты > Табличная часть (рис. 7.222).

Рис. 7.22****2. Типы табличной части в синтакс-помощнике

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