1С отменить проведение документа программно

Как программно отменить проведение документа?

Я
   Parti На форме должна быть собственная галочка "Отмена проведения". Стандартная не устраивает. Если галочка в положении ИСТИНА, то должно отмениться проведения документа и все его движения д.б. уничтожены.

У документа:
Проведение = Разрешено Оперативное проведение = Запрещено Удаление движений = Удалять движения
КОД:
Процедура Флажок1ПриИзменении(Элемент) // Вставить содержимое обработчика.

Как в 1С 8.1 сделать документ непроведенным программно (1С: 8.1: Программисту)

Если ОтменаПроведения= Истина Тогда ДокументОбъект.Проведен=Ложь; КонецЕсли; КонецПроцедуры__
При установке флажка в ИСТИНА пропадает стандартный значок "Отмена проведения" на форме, но в регистре накоплений все равно остаются движения. Если движения отменять стандарным методом, то из регистра они пропадают.

Почему при установке флажка в ИСТИНА стандартный значок  отмены проведения становится неактивный(как происходит, когда нажимаешь на него), но движения все равно не удаляются?
 
 

   ТелепатБот

Книга знаний: Как разрешить проведение будущей датой в форме документа
Книга знаний: Допроведение документа

   Vitello

См. параметр Записать()

   hhhh

(0) "Проведен" — это просто флажок. Хоть его в Ложь устанавливай, хоть в Истину — это никому не интересно. На движения это никак не влияет.

   Parti (2)(3) спс, понял ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);

TurboConf 5 — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Особенности использования поля "ПометкаУдаления" объектов базы данных

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

С точки зрения системы, удаление без контроля ссылочной целостности (непосредственное удаление) допускается, и наличие в базе данных ссылок на отсутствующие объекты не является ошибкой. Область использования механизма удаления с контролем ссылочной целостности определяется разработчиком конфигурации и администратором.

Запись, проведение и отмена проведения документа 1С

Разработчик конфигурации может регулировать возможность вызова непосредственного удаления пользователями для конкретных типов объектов с помощью права "Интерактивное удаление". Например, возможность непосредственного удаления может быть запрещена для всех пользователей или может быть оставлена только ответственным пользователям. Данное право влияет только на интерактивные действия, вызываемые стандартными командами системы. Если удаление выполняется средствами встроенного языка, то данное право может проверяться в модуле. Разумеется, в некоторых случаях непосредственное удаление должно выполняться, если это предусмотрено логикой решаемой задачи. Например, если выполняется массированное удаление данных регламентной обработкой. Тогда проверка права может не выполняться. 

Механизм удаления с контролем ссылочной целостности предоставляет определенный сервис, но при этом не нарушает работу остальных механизмов. Пометка на удаление является только признаком того, что пользователь намеревается удалить объект. Поле ПометкаУдаления в 1С:Предприятии 8 по своему поведению, в основном, не отличается от других системных полей объекта. Оно может быть установлено присваиванием значения свойства объекта, и после выполнения записи объект будет фактически помечен на удаление. 

Кроме возможности установки пометки удаления путем непосредственного присваивания свойства и записи объекта, существует метод УстановитьПометкуУдаления(). Этот метод выполняет установку свойства в указанное в параметре значение, запись объекта, а также дополнительные действия, содержание которых зависит от типа объекта. Например, для проведенного документа выполняется отмена проведения, а для справочника выполняется пометка на удаление всех подчиненных элементов в этом справочнике и в подчиненных справочниках. При выполнении пометки на удаление стандартными командами пользовательского интерфейса выполняются действия, соответствующие этому методу. Однако следует учитывать, что эти действия являются только рекомендованным типовым способом выполнения пометки на удаление. Они не являются обязательными. При установке пометки удаления путем присвоения значения свойства и записи объекта дополнительных действий не производится. Таким образом, разработчик может при необходимости выполнить пометку удаления без дополнительных действий.

Пометка на удаление является полем, значение которого используется системой в механизме удаления с контролем ссылочной целостности, однако сам процесс пометки на удаление и снятие пометки на удаление не является, с точки зрения объекта, каким-то выделенным процессом. Поэтому специального обработчика, сопровождающего пометку и снятие пометки, не существует. Так же как и для любого другого поля объекта, значение поля ПометкаУдаления может анализироваться в обработчиках ПередЗаписью() и ПриЗаписи() для выполнения каких-либо проверок или других действий. Если необходимо анализировать только записываемое значение, то достаточно проверять собственно значение поля. Если необходимо определить факт записи измененного значения, то в обработчике ПередЗаписью() необходимо организовать считывание значения данного поля из базы данных и сравнивать полученное значение с текущим значением. 

Следует заметить, что в расширениях табличного поля существуют события ПередУстановкойПометкиУдаления. Однако эти события сопровождают только вызов пометки удаления с помощью стандартной команды. Поэтому эти события могут использоваться только для анализа интерактивного вызова пользователем пометки удаления в конкретной форме, а для решения общих задач контроля значения данного поля или выполнения связанных действий необходимо использовать события самого объекта.

Если документ помечен на удаление, то не допускается выполнение проведения этого документа. Однако допускается наличие движений у документа, помеченного на удаление, так как в 1С:Предприятии 8 понятие проведенности документа не связано жестко с наличием движений. Например, это используется для документов, предназначенных для ручного редактирования движений. В них при пометке на удаление не должно выполняться удаление движений, так как пользователь может снять пометку на удаление, и движения при этом не должны потеряться. В конфигурации средствами встроенного языка может быть реализовано снятие активности с записей регистров при установке пометки удаления такого документа. Однако это будет являться методологическим приемом, совмещающим пометку на удаление и отключение активности движений.

Программная отмена проведения

Проверка при отмене проведения 1С

Как программно удалить документ?

Я
   УПП

Как программно удалить документ?

 
 

   vvv29

Удалить()

   igork1966 ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) Удалить (Delete)Синтаксис:
Удалить()
Описание:
Удаляет документ из базы данных.
Важно! В отличие от метода УстановитьПометкуУдаления, данный производит непосредственное удаление документа без возможности восстановления и без проверки ссылочной целостности. Использовать данный метод нужно крайне осмотрительно.
Пример:
ТекстВопроса = "Удалить документ без возможности восстановления"; Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Да Тогда РасходнаяНакладная.Удалить(); КонецЕсли; ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) УстановитьПометкуУдаления (SetDeletionMark)Синтаксис:
УстановитьПометкуУдаления(<Пометка удаления>)
Параметры:
<Пометка удаления> (обязательный)
Тип: Булево. Признак установки / снятие пометки на удаление.
Истина — пометка будет установлена; Ложь — пометка будет снята.
Описание:
Устанавливает/снимет пометку на удаление документа. Документ при этом не удаляется из базы данных. Окончательное удаление помеченных документов происходит при удалении помеченных объектов с проверкой ссылочной целостности данных.
Примечание:
Применение метода влечет инициирование события ПередЗаписью, т.к. происходит сохранение измененного свойства ПометкаУдаления.
Пример:
Если РасходнаяНакладная.ПометкаУдаления Тогда Если РасходнаяНакладная.Проведен Тогда РасходнаяНакладная.Проведен = Ложь; РасходнаяНакладная.Записать(); РасходнаяНакладная.УстановитьПометкуУдаления(Ложь); РасходнаяНакладная.Проведен = Истина; Иначе РасходнаяНакладная.Записать(); РасходнаяНакладная.УстановитьПометкуУдаления(Ложь); КонецЕсли; КонецЕсли;    Lendy

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

   vasinok

v8: Обработка (как удалить в базе все документы ?)

Попробуйте новый бесплатный сервис для быстрого анализа кода типовых конфигураций 1c-api.com

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Отмена проведения документа (программно)

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *