Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Удалить:Недопустимое значение параметра (параметр номер '1')

Удалить:Недопустимое значение параметра (параметр номер '1')
Я
   Игорь_МММ
 
19.12.20 - 15:15
Вроде все ясно как божий день, но ...

КоллекцияСтрок = СтрокаМатериал.ПолучитьЭлементы();
Для Каждого стрКоллекции Из КоллекцияСтрок Цикл
     МассивУдаляемых.Добавить(стрКоллекции);
КонецЦикла;
Для Каждого стрКоллекции Из МассивУдаляемых Цикл
      КоллекцияСтрок.Удалить(стрКоллекции);
КонецЦикла;
    
на  КоллекцияСтрок.Удалить(стрКоллекции) возникает ошибка "Ошибка при вызове метода контекста (Удалить)    ....Недопустимое значение параметра (параметр номер '1')"
вставал на этой строке, проверял входит ли она в коллекцию, сверял типы ... пробовал удалять по идентификатору .. все едино.
что за хрень, я уже теряюсь, причем раньше работало - после чего перестало уже не могу отследить. Да и как может что-то влиять когда код написан последовательно - выборка строк и следом удаление.
Есть ли какие мысли?
   Злопчинский
 
1 - 19.12.20 - 15:33
я вообще ноль в 8-ке, но мне кажется что код бредовый написан.
могу ошибаться.
   Злопчинский
 
2 - 19.12.20 - 15:39
ваще ничего не понимая.. вот так нельзя?

КоллекцияСтрок = СтрокаМатериал.ПолучитьЭлементы();
Для Каждого стрКоллекции Из КоллекцияСтрок Цикл
   КоллекцияСтрок.Удалить(стрКоллекции);
КонецЦикла;
   Игорь_МММ
 
3 - 19.12.20 - 16:02
(2) нет, конечно, нельзя. Как сработает Для Каждого , если вы в процессе строки удаляете
   Злопчинский
 
4 - 19.12.20 - 16:04
(3) с конца удалять, не?
   Игорь_МММ
 
5 - 19.12.20 - 16:06
+(0) в этом примере конечно просто выйти из положения написав  СтрокаМатериал.ПолучитьЭлементы().Очистить(). Но смысл не в этом .. Текущие строки записываются и удаляются после манипуляций с деревом.
Вообщем не понятна возникающая ошибка, прошу помощи, плиз
   Игорь_МММ
 
6 - 19.12.20 - 16:07
(4) не
   runoff_runoff
 
7 - 19.12.20 - 16:12
кстати.. падает сразу на втором круге или дальше?
   Cthulhu
 
8 - 19.12.20 - 16:16
   Игорь_МММ
 
9 - 19.12.20 - 16:16
(7) сразу, на первом же круге
   runoff_runoff
 
10 - 19.12.20 - 16:22
попробуйте заменить на КоллекцияСтрок.Удалить(0).. сработает?..
чисто из спортивного интереса
   Игорь_МММ
 
11 - 19.12.20 - 16:37
Для Каждого стрКоллекции Из КоллекцияСтрок Цикл
    МассивУдаляемых.Добавить(стрКоллекции.ПолучитьИдентификатор());
КонецЦикла;
Для Каждого ИдентификаторСтроки Из МассивУдаляемых Цикл 
    ТекущаяСтрока       = ДеталировкаФорма.НайтиПоИдентификатору(ИдентификаторСтроки);
    СтрокаРодитель      = ТекущаяСтрока.ПолучитьРодителя();
                            
    Если СтрокаРодитель = Неопределено Тогда
        ДеталировкаФорма.ПолучитьЭлементы().Удалить(ТекущаяСтрока);
    Иначе
        СтрокаРодитель.ПолучитьЭлементы().Удалить(ТекущаяСтрока);
    КонецЕсли;
КонецЦикла;

вот так прокатывает, но в чем разница с этим?:

КоллекцияСтрок = СтрокаМатериал.ПолучитьЭлементы();
Для Каждого стрКоллекции Из КоллекцияСтрок Цикл
     МассивУдаляемых.Добавить(стрКоллекции);
КонецЦикла;
Для Каждого стрКоллекции Из МассивУдаляемых Цикл
      КоллекцияСтрок.Удалить(стрКоллекции);
КонецЦикла;
   Cthulhu
 
12 - 19.12.20 - 16:40
а "спасибо" где?
   acht
 
13 - 19.12.20 - 16:40
(11) Возможно ты пытаешся удалить строку, которая уже была удалена ранее как часть поддерева
   Игорь_МММ
 
14 - 19.12.20 - 16:47
(12) спасибо, спасибо ))
(13) в группировке только одна строка - при ее попытке сразу же ошибка
я вычислял КоллекцияСтрок[0].ПолучитьИдентификатор() = стрКоллекции.ПолучитьИдентификатор() - результат Истина, так что остался в непонятках. Cthulhu, поясните в чем прикол?

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.