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

Рис. 29.5. Объекты встроенного языка для работы с документами
ПРИМЕЧАНИЕ
Заливкой выделен объект манипулирования данными. Метод объекта, от которого идет стрелка, приводится в листинге под соответствующей цифрой, а объект, к которому идет стрелка, - это тип объекта, возвращаемого методом.
Узнай больше!
Про основные виды объектов встроенного языка можно прочитать в главе «Объекты встроенного языка для работы с прикладными данными».
Ниже приведены примеры использования объектов встроенного языка для работы с документами (листинг 29.6).
Листинг 29.6. Примеры использования объектов
- // Глобальный контекст
// Документы
// Пример: вывести все типы ссылок на элементы справочников, существующие в конфигурации.
Массив = Документы.ТипВсеСсылки().Типы();
Для Каждого ОчереднойТип из Массив Цикл
Сообщить(ОчереднойТип);
КонецЦикла;
- //объект ДокументыМенеджер
// .<имя документа>
// [<имя документа>]
// Для Каждого … Из … Цикл … КонецЦикла;
// Пример: получить макет для печати документа "Оказание услуги".
Макет = Документы["ОказаниеУслуги"].ПолучитьМакет("Печать");
// Пример: получить ссылку на каждый из документов, существующих в конфигурации.
Для Каждого ОчереднойДокумент Из Документы Цикл
Ссылка = ОчереднойДокумент.ПолучитьСсылку();
…
КонецЦикла;
- // объект ДокументМенеджер.<Имя документа>
// НайтиПоНомеру()
// НайтиПоРеквизиту()
// ПустаяСсылка()
// Пример: Проверить, проведен ли документ ПриходнаяНакладная с номером 3.
Если Документы.ПриходнаяНакладная.НайтиПоНомеру(3).Проведен Тогда
Сообщить("Документ с номером 3 проведен");
КонецЕсли;
// Пример: Проверить, что во всех документах ПриходнаяНакладная заполнен реквизит Склад.
ПустаяСсылкаСклада = Справочники.Склады.ПустаяСсылка();
Если Не Документы.ПриходнаяНакладная.НайтиПоРеквизиту("Склад", ПустаяСсылкаСклада).Пустая() Тогда
Сообщить("Есть документы, у которых не заполнен реквизит Склад");
КонецЕсли;
- // объект ДокументМенеджер.<Имя документа>
// Выбрать()
// Пример: Выбрать все документы ПриходнаяНакладная за текущий месяц.
Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
Пока Выборка.Следующий() Цикл
Сообщить(Выборка);
КонецЦикла;
- // объект ДокументМенеджер.<Имя документа>
// СоздатьДокумент()
// Пример: Создать новый документ ПриходнаяНакладная.
НовыйДокумент = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Склад = Справочники.Склады.Основной;
// Заполнить табличную часть Материалы
НоваяСтрокаТабличнойЧасти = НовыйДокумент.Материалы.Добавить();
НоваяСтрокаТабличнойЧасти.Материал = Справочники.Номенклатура.НайтиПоКоду(6);
НоваяСтрокаТабличнойЧасти.Количество = 10;
НоваяСтрокаТабличнойЧасти.Цена = 22.5;
НоваяСтрокаТабличнойЧасти.Сумма = 225;
НовыйДокумент.Записать();
- // объект ДокументОбъект.<Имя документа>, объект ДокументСсылка.<Имя документа>
// Ссылка
// Пример: в модуле объекта вызвать процедуру проверки заполнения реквизитов документа.
Если Не ПроверитьЗаполнениеРеквизитов(ЭтотОбъект.Ссылка) Тогда
Сообщить("Реквизиты документа не заполнены!");
КонецЕсли;
- // объект ДокументСсылка.<Имя документа>, объект ДокументОбъект.<Имя документа>
// ПолучитьОбъект()
// Скопировать()
// Пример: пометить документ на удаление.
НенужныйДокумент = Документы.ОказаниеУслуги.НайтиПоНомеру(13).ПолучитьОбъект();
НенужныйДокумент.УстановитьПометкуУдаления(Истина);
- // объект ДокументВыборка.<Имя документа>
// Ссылка
// Сформировать список ссылок на все документы "ПриходнаяНакладная" за текущий месяц.
СписокНакладных = Новый СписокЗначений;
Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()),
КонецМесяца(ТекущаяДата()));
Пока Выборка.Следующий() Цикл
СписокНакладных.Добавить(Выборка.Ссылка);
КонецЦикла;
- // объект ДокументВыборка.<Имя документа>
// ПолучитьОбъект()
// Пример: удалить все документы "ПриходнаяНакладная".
Выборка = Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
Выборка.ПолучитьОбъект().Удалить();
КонецЦикла;