Удалить движения документа по регистру

Для того что бы удалить движения документа по какому либо регистру, достаточно создать набор записей регистра с отбором по документу и записать его не прочитав. Таким образом набор записей запишется пустым.


Пример, удалить движения документа по регистру бухгалтерии Хозрасчетному.
Регистратор - ссылка на документ.

попытка
     НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
     НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);

     НаборЗаписей.Записать();
     Сообщить("Проводки успешно удалены");
Исключение
     Сообщить("Не удалось удалить проводки");
КонецПопытки;

Данная запись эквивалентна более длинной:

попытка
     НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
     НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);

     НаборЗаписей.Прочитать();
     НаборЗаписей.Очистить();

     НаборЗаписей.Записать();
     Сообщить("Проводки успешно удалены");
Исключение
     Сообщить("Не удалось удалить проводки");
КонецПопытки;

Процедуру установки отбора по регистратору

НаборЗаписей.Отбор.Регистратор.Установить(Регистратор);

Можно представить в виде:

НаборЗаписей.Отбор.Регистратор.Значение      = Регистратор;
НаборЗаписей.Отбор.Регистратор.Использование = Истина;
НаборЗаписей.Отбор.Регистратор.ВидСравнения  = ВидСравнения.Равно;

Следует заметить, что отбор в наборах записей регистров подчиненных регистратору можно делать только по нему, по измерениям и ресурсам вы отобрать ничего не сможете, к тому же, в данном случае, можно использовать только вид сравнения Равно.

Все про 1C и автоматизацию бизнеса

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

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>