Вход | Регистрация
 

как удалить объект из массива

[Волшебник, 27.07.20 - 13:44]
как удалить объект из массива
Я
   Bumblebee
 
27.07.20 - 13:26
Всем привет! Подскажите как удалить документы из базы после их печати?

    ИскомыеДоки = ЗагрузкаНаСервере(ДвоичныеДанные);
                Для Каждого ЭлементДок из ИскомыеДоки Цикл
                    ПараметрыОтбора = Новый Структура("Ключ", ЭлементДок);
                    Форма = ПолучитьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаТовары",ПараметрыОтбора);
                    РеализацияТоваровУслугФормыКлиент.ВыписатьСчетФактуру(Форма, Команда);
                    УправлениеФормой(Форма);
                    МассивНаПечать = Новый Массив;
                    МассивНаПечать.Добавить(Форма.СчетФактура);
                    ПараметрыПечатиДок = Новый Структура;
                    УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Обработка.ПечатьУПД","УПДСтатус1_981",МассивНаПечать,ПараметрыПечатиДок);
                    МассивНаПечать.Очистить();
        //удалить доки
                    Если ТолькоПечать Тогда
                        ЭлементДок.Удалить();
                    КонецЕсли;
        //удалить доки конец    
                КонецЦикла;

Так не работает потому что я пытаюсь удалить элемент массива а не объект?
   acht
 
1 - 27.07.20 - 13:29
(0) > удалить документы из базы после их печати
А прикинь, у тебя порошок в картридже кончится?
   Bumblebee
 
2 - 27.07.20 - 13:33
(1) еще раз можно обработку запустить
   Ёпрст
 
3 - 27.07.20 - 13:33
(0)
ДокОбъект = ЭлементДок.ПолучитьОбъект();
ДокОбъект.Удалить(); 

(1) жалко что ле ? Пусть удаляет..)) больше работы будет потом
   acht
 
4 - 27.07.20 - 13:35
(3) А. Ну тогда УстановитьПривелигированыйРежим(Истина) еще не забудь.
   Волшебник
 
5 - 27.07.20 - 13:37
Лучше не смешивать печать и удаление.
Сделай доп.обработку по удалению, в которой пользователь будет флажками отмечать удаляемые документы, которые он видит перед собой в печатном виде.
А вообще задача бред. Из базы ничего удалять не надо. Можно пометить на удаление и скрыть.
   Bumblebee
 
6 - 27.07.20 - 13:41
(3) метод объекта не обнаружен(ПолучитьОбъект)
   Волшебник
 
7 - 27.07.20 - 13:44
(6) Посмотрите в отладчике тип переменной ЭлементДок.
Скорее всего там ЭлементСписка, а не ДокументСсылка
   Bumblebee
 
8 - 27.07.20 - 13:48
просто есть обработка которая сначала создает документы, а потом их распечатывает. А надо иногда повторно распечатать и создавать снова в базе не нужно
   Bumblebee
 
9 - 27.07.20 - 13:50
(7) ДокументСсылка.РеализацияТоваровИУслуг
   Ёпрст
 
10 - 27.07.20 - 14:06
(6) ё..
 ну так тогда

&НаСервере
Процедура УдалитьДокументКЕдрениФени(ССылка)
   ДокОбъект = ССылка.ПолучитьОбъект();
   ДокОбъект.Удалить();  
КонецПроцедуры
......
  //удалить доки

                    Если ТолькоПечать Тогда
                        УдалитьДокументКЕдрениФени(ЭлементДок);
                    КонецЕсли;
        //удалить доки конец
   Bumblebee
 
11 - 27.07.20 - 14:12
(10) Спасибо!! Точно. Пытался получить объект на клиенте поэтому не работало...
   Ц_У
 
12 - 27.07.20 - 14:14
(10) и без контекста, шоб прям ляпота была :)
   Ц_У
 
13 - 27.07.20 - 14:15
МассивНаПечать = Новый Массив;
МассивНаПечать.Добавить(Форма.СчетФактура);
ПараметрыПечатиДок = Новый Структура;
УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Обработка.ПечатьУПД","УПДСтатус1_981",МассивНаПечать,ПараметрыПечатиДок);

МассивНаПечать.Очистить(); <-- Не обязательно, т.к. каждый раз создается новый массив

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