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

Ошибка при удалении строки в табличной части

Ошибка при удалении строки в табличной части
Я
   LivingStar
 
15.10.19 - 09:10
Есть форма документа. На ней выведены 3 табличные части.
При удалении строки из первой табличной части выходит ошибка. Индекс находится за границами массива.
Так как там идет программная обработка удаления, строк из третей табличной части, по данным второй.
Пытаюсь сейчас понять в чем причина ошибки, что неправильно сделано и как нужно. Подскажите пожалуйста предметно кому ясно в чем дело.

ошибка возникает на втором цикле.

&НаКлиенте
Процедура НарушенияПередУдалением(Элемент, Отказ)
    
    Если Элементы.Нарушения.ТекущаяСтрока = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Идентификатор         = Элементы.Нарушения.ТекущиеДанные.ИдентификаторНарушения;
    ПодчиненныеСтроки     = Объект.ПриостановленныеРаботы.НайтиСтроки(Новый Структура("ИдентификаторНарушения", Идентификатор));
    Для Каждого ПодчиненнаяСтрока Из ПодчиненныеСтроки Цикл
        Объект.ПриостановленныеРаботы.Удалить(ПодчиненнаяСтрока);
    КонецЦикла;
    
    ПодчиненныеСтрокиФайловНарушений = Объект.ФайлыПоНарушениям.НайтиСтроки(Новый Структура("ИдентификаторНарушения", Идентификатор));
    Для Каждого ПодчиненнаяСтрока Из ПодчиненныеСтрокиФайловНарушений Цикл
        Объект.ПриостановленныеРаботы.Удалить(ПодчиненнаяСтрока);
    КонецЦикла;
КонецПроцедуры
 
 
   vicof
 
1 - 15.10.19 - 09:15
ну а ты блеать не можешь пять строчек кода сравнить?
   vicof
 
2 - 15.10.19 - 09:16
Ошибка в том, что Приостановленные работы не то же самое, что файлы по нарушениям. Но тебе не понять.
   LivingStar
 
3 - 15.10.19 - 09:25
(2) Это понятно ФайлыПоНарушениям - одна табличная часть.
ПриостановленныеРаботы - другая табличная часть.

Что тогда тут хотели сделать, если это в принципе не возможно? Из одной табличной части пытаться удалить другую табличную часть.

И как бы это можно было бы сделать правильно?
   LivingStar
 
4 - 15.10.19 - 09:27
Я правильно понимаю, что это в принципе не будет работать, если будет выполняться цикл?

    ПодчиненныеСтрокиФайловНарушений = Объект.ФайлыПоНарушениям.НайтиСтроки(Новый Структура("ИдентификаторНарушения", Идентификатор));
    Для Каждого ПодчиненнаяСтрока Из ПодчиненныеСтрокиФайловНарушений Цикл
        Объект.ПриостановленныеРаботы.Удалить(ПодчиненнаяСтрока);
    КонецЦикла;
   dezss
 
5 - 15.10.19 - 09:29
(4) Да тупо ошиблись.

Во втором цикле поменяй Объект.ПриостановленныеРаботы на Объект.ФайлыПоНарушениям
   LivingStar
 
6 - 15.10.19 - 09:33
(5) Ок просветление пришло, вроде как.
Спасибо. Посмотрю как пойдет дальше.

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