среда, 30 апреля 2014 г.

Документы

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


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

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

// Пример: вывести все типы ссылок на элементы документов, существующие в конфигурации.
Массив = Документы.ТипВсеСсылки().Типы();
Для Каждого
ОчереднойТип из Массив Цикл
   
Сообщить(ОчереднойТип);
КонецЦикла;

// 2. объект ДокументМенедежер
//    .<имя документа>
//    [<имя документа>]
//    Для Каждого ... Из ... Цикл ... КонецЦикла;

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

// Пример: получить ссылку на каждый из документов, существующих в конфигурации.
Для Каждого ОчереднойДокумент Из Документы Цикл
   
Ссылка = ОчереднойДокумент.ПолучитьСсылку();

    ...
КонецЦикла;

// 3. объект ДокументМенеджер.<Имя документа>
//    НайтиПоНомеру()
//    НайтиПоРеквизиту()
//    ПустаяСсылка()

// Пример: проверить, проведен ли документ ПриходнаяНакладная с номером 3.
Если Документы.ПриходнаяНакладная.НайтиПоНомеру(3).Проведен Тогда
   
Сообщить("Документ с номером 3 проведен");
КонецЕсли;

// Пример: проверить, что во всех документах ПриходнаяНакладная заполнен реквизит Склад.
ПустаяСсылкаСклада = Справочники.Склады.ПустаяСсылка();
Если Не
Документы.ПриходнаяНакладная.НайтиПоРеквизиту("Склад", ПустаяСсылкаСклада).Пустая() Тогда
   
Сообщить("Есть документы, у которых не заполнен реквизит Склад");
КонецЕсли;

// 4. объект ДокументыМенедежер.<Имя документа>
//    Выбрать()

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

// 5. объект ДокументМенеджер.<Имя документа>
//    СоздатьДокумент()

// Пример: создать новый документ ПриходнаяНакладная.
НовыйДокумент = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Склад = Справочники.Склады.Основной;
// заполнить табличную часть Материалы
НоваяСтрокаТабличнойЧасти = НовыйДокумент.Материалы.Добавить();
НоваяСтрокаТабличнойЧасти.Материал = Справочники.Номенклатура.НайтиПоКоду(6);
НоваяСтрокаТабличнойЧасти.Количество = 10;
НоваяСтрокаТабличнойЧасти.Цена = 22.5;
НоваяСтрокаТабличнойЧасти.Сумма = 225;
НовыйДокумент.Записать();

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

// Пример: в модуле объекта вызвать процедуру проверки заполнения реквизитов документа.
Если Не ПроверитьЗаполнениеРеквизитов(ЭтотОбъект.Ссылка) Тогда
   
Сообщить("Реквизиты документа не заполнены!");
КонецЕсли;

// 7. объект ДокументСсылка.<Имя документа>, объект ДокументОбъект.<Имя документа>
//    ПолучитьОбъект()
//    Скопировать()

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

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

// Пример: сформировать список документов ПриходнаяНакладная за текущий месяц.
СписокНакладных = Новый СписокЗначений;
Выборка = Документы.ПриходнаяНакладная.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
Пока
Выборка.Следующий() Цикл
   
СписокНакладных.Добавить(Выборка.Ссылка);
КонецЦикла;

// 9. объект ДокументВыборка.<Имя документа>
//    ПолучитьОбъект()

// Пример: удалить все документы ПриходнаяНакладная.
Выборка = Документы.ПриходнаяНакладная.Выбрать();
Пока
Выборка.Следующий() Цикл
   
Выборка.ПолучитьОбъект().Удалить();
КонецЦикла;




ПРИМЕЧАНИЕ. Заливкой выделены события, выполняющиеся в транзакции записи.


Добавить комментарий

Комментариев нет :

Отправить комментарий