Версия для печати темы (https://pro1c.org.ua/index.php?s=40fc6e948f5a4de9d0db63a9717a091f&showtopic=49618)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Непосредственное удаление документов за указанный интервал

Автор: KriAn 25.12.18, 23:09

Народ, подскажите фрагмент кода - как сделать непосредственное удаление всех документов за указанный период??? В семерке давно программирую, а вот до восьмерки никак руки не дойдут, времени нет....

Автор: Bernet 25.12.18, 23:24

KriAn @ Сегодня, 23:09 * ,
Такие вещи надо делать обдуманно, будучи уверенным что нигде не будет битых ссылок. Если например хотите удалить какой-то справочник или документ, а на него есть ссылка, то после удаления там будет писать "Объект не найдено" и его идентификатор. И в принципе для целостности базы такие вещи - есть нехорошо.
Но если вы уверенны что все будет ок и ссылок на объекты нигде нет, то процесс удаления выглядит так:

      УдаляемыйОбъект = ВашаСсылка.ПолучитьОбъект();
      УдаляемыйОбъект.Удалить();

Автор: KriAn 25.12.18, 23:50

Bernet @ Сегодня, 23:24 * ,

А как указать период?

Автор: Bernet 26.12.18, 1:55

KriAn @ Вчера, 23:50 * ,
Запросом выбирайте документы, пример:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|     Заказы.Ссылка КАК Док
|ИЗ
|     Документ.ЗаказыПокупателя КАК Заказы
|ГДЕ
|     Заказы.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|";

Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

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

Автор: KriAn 26.12.18, 13:29

Спасибо за помощь!!!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua