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

Документы

страница

Документы

Объекты встроенного языка для работы с документами

На следующей схеме изображено взаимодействие объектов встроенного языка для работы с документами (рис. 29.5).

Рис. 29.5. Объекты встроенного языка для работы с документами

ПРИМЕЧАНИЕ

Заливкой выделен объект манипулирования данными. Метод объекта, от которого идет стрелка, приводится в листинге под соответствующей цифрой, а объект, к которому идет стрелка, - это тип объекта, возвращаемого методом.

Узнай больше!

Про основные виды объектов встроенного языка можно прочитать в главе «Объекты встроенного языка для работы с прикладными данными».

Ниже приведены примеры использования объектов встроенного языка для работы с документами (листинг 29.6).

Листинг 29.6. Примеры использования объектов

  1. // Глобальный контекст

// Документы

 

// Пример: вывести все типы ссылок на элементы справочников, существующие в конфигурации.

Массив = Документы.ТипВсеСсылки().Типы();

Для Каждого ОчереднойТип из Массив Цикл

Сообщить(ОчереднойТип);

 

КонецЦикла;

 

  1. //объект ДокументыМенеджер

// .<имя документа>

// [<имя документа>]

// Для Каждого … Из … Цикл … КонецЦикла;

 

// Пример: получить макет для печати документа "Оказание услуги".

Макет = Документы["ОказаниеУслуги"].ПолучитьМакет("Печать");

 

// Пример: получить ссылку на каждый из документов, существующих в конфигурации.

Для Каждого ОчереднойДокумент Из Документы Цикл

Ссылка = ОчереднойДокумент.ПолучитьСсылку();

…

КонецЦикла;

 

  1. // объект ДокументМенеджер.<Имя документа>

// НайтиПоНомеру()

// НайтиПоРеквизиту()

// ПустаяСсылка()

 

// Пример: Проверить, проведен ли документ ПриходнаяНакладная с номером 3.

Если Документы.ПриходнаяНакладная.НайтиПоНомеру(3).Проведен Тогда

Сообщить("Документ с номером 3 проведен");

 

КонецЕсли;

 

// Пример: Проверить, что во всех документах ПриходнаяНакладная заполнен реквизит Склад.

ПустаяСсылкаСклада = Справочники.Склады.ПустаяСсылка();

Если Не Документы.ПриходнаяНакладная.НайтиПоРеквизиту("Склад", ПустаяСсылкаСклада).Пустая() Тогда

Сообщить("Есть документы, у которых не заполнен реквизит Склад");

 

КонецЕсли;

 

  1. // объект ДокументМенеджер.<Имя документа>

// Выбрать()

 

// Пример: Выбрать все документы ПриходнаяНакладная за текущий месяц.

Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));

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

Сообщить(Выборка);

 

КонецЦикла;

 

  1. // объект ДокументМенеджер.<Имя документа>

// СоздатьДокумент()

 

// Пример: Создать новый документ ПриходнаяНакладная.

НовыйДокумент = Документы.ПриходнаяНакладная.СоздатьДокумент();

НовыйДокумент.Дата = ТекущаяДата();

НовыйДокумент.Склад = Справочники.Склады.Основной;

// Заполнить табличную часть Материалы

НоваяСтрокаТабличнойЧасти = НовыйДокумент.Материалы.Добавить();

НоваяСтрокаТабличнойЧасти.Материал = Справочники.Номенклатура.НайтиПоКоду(6);

НоваяСтрокаТабличнойЧасти.Количество = 10;

НоваяСтрокаТабличнойЧасти.Цена = 22.5;

НоваяСтрокаТабличнойЧасти.Сумма = 225;

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

 

  1. // объект ДокументОбъект.<Имя документа>, объект ДокументСсылка.<Имя документа>

// Ссылка

 

// Пример: в модуле объекта вызвать процедуру проверки заполнения реквизитов документа.

Если Не ПроверитьЗаполнениеРеквизитов(ЭтотОбъект.Ссылка) Тогда

Сообщить("Реквизиты документа не заполнены!");

 

КонецЕсли;

 

  1. // объект ДокументСсылка.<Имя документа>, объект ДокументОбъект.<Имя документа>

// ПолучитьОбъект()

// Скопировать()

 

// Пример: пометить документ на удаление.

НенужныйДокумент = Документы.ОказаниеУслуги.НайтиПоНомеру(13).ПолучитьОбъект();

НенужныйДокумент.УстановитьПометкуУдаления(Истина);

 

  1. // объект ДокументВыборка.<Имя документа>

// Ссылка

 

// Сформировать список ссылок на все документы "ПриходнаяНакладная" за текущий месяц.

СписокНакладных = Новый СписокЗначений;

Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()),

КонецМесяца(ТекущаяДата()));

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

СписокНакладных.Добавить(Выборка.Ссылка);

 

КонецЦикла;

 

  1. // объект ДокументВыборка.<Имя документа>

// ПолучитьОбъект()

 

// Пример: удалить все документы "ПриходнаяНакладная".

Выборка = Документы.ПриходнаяНакладная.Выбрать();

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

Выборка.ПолучитьОбъект().Удалить();

КонецЦикла;