Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1С: Лабораторная работа №4.doc
Скачиваний:
46
Добавлен:
23.03.2016
Размер:
586.75 Кб
Скачать

Поиск документов

Все введенные документы отражаются в форме списка. Часто требуется из многочисленного количества документов отобрать только определенную категорию документов по какому-либо принципу.

Рассмотрим ситуацию, когда требуется обеспечить отбор документов по дате. Для этого потребуется форма с новым набором элементов управления.

Создадим обработку ВыборкаДокументов. Сформируем форму со следующими элементами управления (Рис.10):

  • поле ввода Дата1 для ввода начальной даты (тип данных - Дата);

  • поле ввода Дата2 для ввода конечной даты (тип данных - Дата);

  • поле списка ПереченьДокументов.

Рис. 10. Форма для организации отбора документов

Далее создадим процедуру обработки нажатия на кнопку Выполнить, которая представлена в листинге 2.

Листинг 2. Процедура отбора документов по дате

&НаСервере

Процедура ВыполнитьОбработкуНаСервере()

НачальнаяДата = НачалоДня(Дата1);

КонечнаяДата = КонецДня(Дата2);

ВыборкаЗаказ = Документы.Заказ.Выбрать(НачальнаяДата,КонечнаяДата);

ПереченьДокументов.Очистить();

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

Информация = Символы.ПС + "Номер документа: " + ВыборкаЗаказ.Номер +

"Дата документа: " + ВыборкаЗаказ.Дата;

ПереченьДокументов.Добавить(Информация);

КонецЦикла;

КонецПроцедуры

&НаКлиенте

Процедура ВыполнитьОбработку(Команда)

ВыполнитьОбработкуНаСервере();

КонецПроцедуры

Поля Дата1 и Дата2 используются для указания начала и окончания интервала по дате. Для того чтобы получить документы, попадающие в интервал, были использованы две встроенные функции:

  • НачалоДня(), которая возвращает дату и время начала дня для указанной даты;

  • КонецДня(),которая возвращает дату и время конца дня для указанной даты.

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

Если в методе Выбрать() не указать интервал по дате, то из базы данных будут выбраны все документы данного вида.

В режиме «1С: Предприятие « можно просмотреть список отобранных документов (Рис.11).

Рис. 11. Результат отбора документов по дате

Задание для самостоятельного выполнения

  1. Создайте обработку с именем ВыборкаДокументов.

  1. Для обработки ВыборкаДокументов создайте форму.

  2. Создайте элементы управления:

  • поле ввода с именем Дата1 и типом данных – Дата для ввода начальной даты;

  • поле ввода с именем Дата2 и типом данных – Дата для ввода конечной даты;

  • поле списка ПереченьДокументов.

  1. Напишите процедуру обслуживающую кнопку Выполнить, воспользовавшись примером, приведенным выше.

  1. Просмотрите полученный результат в режиме «1С: Предприятие «.

Включение в условие отбора параметра. Упорядочивание

Часто следует выбирать не все записи из базы данных, а лишь те, которые имеют конкретное значение в определенном поле (например, заказы конкретной фирмы). В обработке ВыборкаДокументов создадим форму с элементами управления:

  • поле ввода Фирма (тип данных – СправочникСсылка.Фирмы);

  • поле списка ПереченьДокументов.

На Рис. 12 приведена форма с элементами управления.

Рис. 12. Форма для отбора документов по фирме

Для кнопки Выполнить необходимо создать процедуру обработки, которая приведена в листинге 3.

Листинг 3. Процедура отбора документов по фирме и с упорядочиванием по дате

&НаСервере

Процедура ВыполнитьОбработкуНаСервере()

Отбор = Новый Структура ("Заказчик", Фирма);

Упорядочивание = "Дата Возр";

ВыборкаДокументов = Документы.Заказ.Выбрать(, , Отбор, УпорядочиваниЕ);

ПереченьДокументов.Очистить();

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

Информация = Символы.ПС + "Номер документа: " + ВыборкаДокументов.Номер +

" Дата: " + ВыборкаДокументов.Дата;

ПереченьДокументов.Добавить(Информация);

КонецЦикла;

КонецПроцедуры

&НаКлиенте

Процедура ВыполнитьОбработку(Команда)

ВыполнитьОбработкуНаСервере();

КонецПроцедуры

Для передачи параметра использовался объект Структура. Условие отбора задается при помощи третьего аргумента. Имеется возможность осуществлять упорядочивание по какому-либо полю, для которого установлено свойство индексирования. Значение упорядочивания задается в четвертом аргументе.

Результат выбора документов из базы данных по указанному условию и с упорядочиванием по дате (Рис.13).

Рис. 13. Форма для отбора документов по фирме с упорядочиванием по дате

Задание для самостоятельного выполнения

  1. Для обработки ВыборкаДокументов создайте еще одну форму.

  1. Создайте элемент управления поле ввода с именем Фирма и типом данных – СправочникСсылка.Фирмы и поле списка ПереченьДокументов.

  1. Напишите процедуру с условием отбора и упорядочиванием по дате, обслуживающую кнопку Выполнить, воспользовавшись примером, приведенным выше.

  1. Просмотрите полученный результат в режиме «1С: Предприятие».