Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОО_ПОЭИС_Л6.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
321 Кб
Скачать
☆

6.7. Приемы программирования

С помощью встроенного языка 1С:Предприятия 8 можно вы­полнять различные операции над документами: создавать, изме­нять и удалять их, искать документ по номеру, перебирать их в цикле и т.д.

Работа с документами производится с помощью нескольких про­граммных объектов (аналогичные объекты мы уже рассматривали для справочников):

ДокументыМенеджер

Обеспечивает доступ к менеджерам всех документов кон­фигурации. Свойства этого объекта совпадают по имени с именами документов и содержат объекты типа ДокументМенеджер.

ДокументМенеджер

Обеспечивает доступ к действиям над документами опреде­ленного вида как множеством объектов. Через методы этого объекта можно осуществлять поиск, получать выборку, соз­давать новый документ, обращаться к формам и макетам документа.

ДокументСсылка

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

ДокументОбъект

Предоставляет доступ к документу с возможностью записи и проведения. Данный объект содержит методы, изменяю­щие документ в базе данных, например, метод Записать.

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

Предоставляет возможность обхода (перебора) документов определенного вида. Объект этого типа возвращается мето­дом Выбрать объекта ДокументМенеджер.

ДокументСписок

Объект для управления списком документов, отображае­мым в форме. Позволяет управлять колонками, отбором и сортировкой в списке. Этот объект не может быть создан программно, он создается системой автоматически при раз­мещении в форме табличного поля, отображающего список документов.

Рассмотрим на примерах выполнение типичных операций с доку­ментами.

Обращение к менеджеру документа

Обращение к менеджеру документа производится следующим об­разом:

ДокСчет = Документы.Счет;

ДокСчет = Документы["Счет"];

При обращении к менеджеру документа ошибкой будет примене­ние ключевого слова Новый. Оно предназначено для создания новых объектов, например, списков значений. Следует помнить, что при работе с прикладными объектами всегда используется обращение через менеджер.

Замечание. С помощью ключевого слова Новый нельзя созда­вать новые документы. Для этого предназначен метод СоздатьДокумент объекта ДокументМенеджер, который возвращает объект типа ДокументОбъект.<ИмяДокумента>.

Следующий фрагмент показывает пример создания нового доку­мента:

ДокМенеджер = Документы.Счет;

НовыйДок = ДокМенеджер.СоздатьДокумент();

//при создании документа программным способом

//дата документа не заполняется системой,

//это должен сделать разработчик

НовыйДок.Дата = Дата;

НовыйДок.Записать();

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

Перебор документов производится через объект ДокументВыбор­ка, который возвращается при вызове метода Выбрать объекта ДокументМенеджер:

ДокВыборка = Документы.Счет.Выбрать();

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

Сообщить("№ " + ДокВыборка.Номер + " от " + ДокВыборка.Дата);

//перебор строк табличной части

Для Каждого стр Из ДокВыборка.Состав Цикл

Сообщить(" " + стр.Номенклатура);

КонецЦикла;

КонецЦикла;

Синтаксическая диаграмма метода Выбрать такова:

Выбрать (<Дата начала>, <Дата окончания>, <0тбор>, <Порядок>)

Метод Выбрать позволяет ограничить выборку только нужными документами с помощью параметров вызова. Ниже описаны па­раметры метода Выбрать и их назначение:

Дата начала: Дата и время начала периода выборки документов.

Дата окончания: Дата и время конца периода выборки документов.

Отбор: структура, которая задает поле и значение отбора откры­ваемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться только поле Дата и индексированные реквизиты документа. Обратите внимание, что структура может содержать только один эле­мент.

Порядок: Строка, задающая реквизит и направление сортировки вы­борки документов, например, «Контрагент Возр» или «Оклад убыв». Может быть указано поле Дата или имя индексированного реквизита документа. Если порядок не задан, то выборка упорядочивается по хронологии докумен­тов.

Следующий пример выбирает документы Счет по определенному контрагенту за заданный период и сортирует их по убыванию суммы документа (для реквизитов Контрагент и СуммаДокумента в Конфигураторе установлен флажок «Индексировать»).

Отбор = Новый Структура("Контрагент", ВыбКонтрагент);

ДокВыборка = Документы.Счет.Выбрать(НачДата, КонДата,

Отбор,"СуммаДокумента Убыв")

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

…

КонецЦикла;