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

Создание и проведение документа

В 1С:Предприятии 8 можно программно создать, записать и провести документ. Для создания нового документа применяется метод СоздатьДокумент, который возвращает объект для записи типа ДокументОбъект. Через другие объекты и механизмы нель­зя создать, изменить или удалить документ.

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

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

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

…

НовыйДок.Записать(); //обычная запись документа

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

НовыйДок.Записать(РежимЗаписиДокумента.Проведение,

РежимПроведенияДокумента.Неоперативный);

Замечание. Программное проведение документа выполня­ется с помощью метода Записать с параметрами РежимЗаписи­Документа и РежимПроведенияДокумента.

Ниже приведены возможные значения параметров метода Записать:

Параметр «РежимЗаписиДокумента»:

• Запись (по умолчанию), /

• ОтменаПроведения,

• Проведение (в этом случае имеет смысл указывать второй параметр).

Параметр «РежимПроведенияДокумента»:

• Неоперативный (по умолчанию),

• Оперативный.

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

Поиск документа по номеру производится методом НайтиПоНомеру. Этот метод возвращает ссылку на найденный документ или пустую ссылку, если документ не найден. Проверка на пустую ссылку производится методом Пустая():

ДокСсылка = Документы.Счет.НайтиПоНомеру("Сч1001");

Если ДокСсылка.Пустая() Тогда

Сообщить("Документ с данным номером не найден!");

КонецЕсли;

Если требуется отобрать множество документов с определенным значением реквизита, то можно применить метод Выбрать с ука­занием структуры отбора и затем обойти полученную выборку. Не забудьте, что у реквизита, по которому производится отбор, должен быть установлен в Конфигураторе флажок «Индексиро­вать» (для даты документа можно считать, что он уже установ­лен).

Для выборки документов из базы данных по комбинированному условию, например, по нескольким полям, рекомендуется приме­нять запросы (см. главу «Запросы»).

Удаление документа

Удаление документа производится с помощью объекта ДокументОбъект и только так. Другим способом удалить доку­мент нельзя.

ДокСсылка = Документы.Счет.НайтиПоНомеру("Сч1001");

Если Не ДокСсылка.Пустая() Тогда

ДокОбъект = ДокСсылка.ПолучитьОбъект();

//1-й вариант пометки на удаление

//если документ был проведен, то он остается проведенным (!)

//движения документа по регистрам сохраняются (!)

ДокОбъект.ПометкаУдаления = Истина;

ДокОбъект.Записать();

//2-й вариант пометки на удаление

//если документ был проведен, то он делается непроведенным

//движения документа, по регистрам удаляются

ДокОбъект.УстановитьПометкуУдаления(Истина);

//непосредственное удаление объекта

//если документ был проведен, то движения по регистрам удаляются

ДокОбъект.Удалить();

КонецЕсли;

Замечание. При пометке на удаление методом

Установить­ПометкуУдаления проведенный документ делается непроведенным и движения документа по регистрам удаляются (если не ус­тановлено свойство документа «Удалять движения автоматиче­ски»). А при присвоении свойству ПометкаУдаления значения Истина для проведенного документа возникает ошибка «Прове­денный документ не может быть помечен на удаление».

При непосредственном удалении документа контроль за удалени­ем движений документа возлагается на разработчика.