Запись, проведение и отмена проведения документа 1С
Программная запись/проведение/отмена проведения документа осуществляется при помощи методаЗаписать(<РежимЗаписи>, <РежимПроведения>) ДокументаОбъекта.
В параметр РежимЗаписи передается одно из значений системного перечисления РежимЗаписиДокумента :
- Запись (Write)
- ОтменаПроведения (UndoPosting)
- Проведение (Posting)
Переданное значение и определяет какое действие производить с выбранным документом. Также при помощи параметра РежимПроведения можно указать оперативное или неоперативное проведение мы используем.
Пример №1. Программная запись документа
СсылкаНаДокумент = Документы.АвансовыйОтчет.НайтиПоНомеру("00000000001");
Если НЕ СсылкаНаДокумент = Неопределено Тогда
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокументОбъект.Дата = ТекущаяДата();
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
Пример №2 Программное проведение документа
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода" , КонецМесяца(ТекущаяДата()));
Запрос.Текст = "ВЫБРАТЬ
| ВозвратТоваровОтПокупателя.Ссылка
|ИЗ
| Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
|ГДЕ
| ВозвратТоваровОтПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
Результат = Запрос.Выполнить().Выгрузить();
Для Каждого ЭлементРезультата из Результат Цикл
ДокументОбъект = ЭлементРезультата.Ссылка.ПолучитьОбъект();
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
Пример №3 Программная отмена проведения документа
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода" , КонецМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("Счет90" , ПланыСчетов.Хозрасчетный.НайтиПоКоду("90"));
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ХозрасчетныйОбороты.Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Счет90), , , , ) КАК ХозрасчетныйОбороты";
Результат = Запрос.Выполнить().Выгрузить();
Для Каждого ЭлементРезультата из Результат Цикл
ДокументОбъект = ЭлементРезультата.Регистратор.ПолучитьОбъект();
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЦикла;