Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 21:29

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

Автор skillful, 19 сен 2020, 20:04

0 Пользователей и 1 гость просматривают эту тему.

skillful

Нужно установить пометку на удаление для всех документов из массива документов. Делаю так:
ДокМассив = Новый Массив();
ДокМассив.Добавить("Приход");
ДокМассив.Добавить("Расход");
ДокМассив.Добавить("Доход");
ДокМассив.Добавить("Переход");
ДокМассив.Добавить("Перерасход");
ДокМассив.Добавить("Выход");

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


Ошибка: {Обработка.к.Форма.Форма.Форма(1)}: Поле объекта не обнаружено (Док)
Выбрать = Документы.Док.Выбрать();

Как победить ошибку?

IL2016

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

skillful

Цитата: IL2016 от 20 сен 2020, 16:52
в массив добавляйте нужный тип документа, а не переменную с типом строка.

Сделал так:ДокМассив = Новый Массив();
ДокМассив.Добавить(Тип("ДокументСсылка.Приход"));

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


Все равно такая же ошибка!

margo

Цитата: skillful от 20 сен 2020, 18:25
Цитата: IL2016 от 20 сен 2020, 16:52
в массив добавляйте нужный тип документа, а не переменную с типом строка.

Сделал так:ДокМассив = Новый Массив();
ДокМассив.Добавить(Тип("ДокументСсылка.Приход"));

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


Все равно такая же ошибка!

а если убрать пару строчек и оставить так?

skillful

margo,Значение не является значением объектного типа (УстановитьПометкуУдаления)
док.УстановитьПометкуУдаления(Истина);
Добавлено: 20 сен 2020, 20:14


ДокМассив = Новый Массив();
ДокМассив.Добавить("Приход");

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


Вот так правильно. Спасибо всем ответившим...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск