![]() |
![]() |
![]() |
|
Удаление строки ТЧ документа | ☑ | ||
---|---|---|---|---|
0
comp2006
20.11.08
✎
09:17
|
Как обойти эту ошибку?
МассивСтрокДляУдаление= Новый Массив; Для Каждого СтрокаТЧ Из ДокументСсылка.ТабЧасть Цикл Если СтрокаТЧ.Контрагент.Родитель =СсылкаНаНужнуюГруппу Тогда МассивСтрокДляУдаление.Добавить(СтрокаТЧ); КонецЕсли; КонецЦикла; ДокументСсылкаОбъект=ДокументСсылка.ПолучитьОбъект(); Для Каждого ОчереднаяСтрока Из МассивСтрокДляУдаление Цикл ДокументСсылкаОбъект.ТабЧасть.Удалить(ОчереднаяСтрока); //Здесь ошибка КонецЦикла; В справке по методу Удалить() Примечание: Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения. |
|||
1
DayDreamer
20.11.08
✎
09:21
|
если табличная часть получена из свойства объекта
Для Каждого СтрокаТЧ Из ДокументСсылка.ТабЧасть Цикл |
|||
2
comp2006
20.11.08
✎
09:23
|
Пробовал и так:
МассивСтрокДляУдаление= Новый Массив; ДокументСсылкаОбъект=ДокументСсылка.ПолучитьОбъект(); Для Каждого СтрокаТЧ Из ДокументСсылкаОбъект.ТабЧасть Цикл Если СтрокаТЧ.Контрагент.Родитель =СсылкаНаНужнуюГруппу Тогда МассивСтрокДляУдаление.Добавить(СтрокаТЧ); КонецЕсли; КонецЦикла; Для Каждого ОчереднаяСтрока Из МассивСтрокДляУдаление Цикл ДокументСсылкаОбъект.ТабЧасть.Удалить(ОчереднаяСтрока); //Здесь ошибка КонецЦикла; |
|||
3
Defender aka LINN
20.11.08
✎
09:32
|
(2) Звиздежь
|
|||
4
akiDemon666
20.11.08
✎
09:33
|
Ошибка какая ? Строки та сдвигаются...
|
|||
5
Рэйв
20.11.08
✎
09:35
|
Об=Ссылка.ПолучитьОбъект();
МассивСтрокДляУдаление= Новый Массив; Для Каждого СтрокаТЧ Из Об.ТабЧасть Цикл Если СтрокаТЧ.Контрагент.Родитель =СсылкаНаНужнуюГруппу Тогда МассивСтрокДляУдаление.Добавить(СтрокаТЧ); КонецЕсли; КонецЦикла; ... дальше по тексту.. |
|||
6
comp2006
20.11.08
✎
09:38
|
(4) Это же работает (ТабДок - это ТЗ)
СтруктураОтбора = Новый Структура("Количество", 0); ПодходящиеСтроки = ТабДок.НайтиСтроки(СтруктураОтбора); Для Каждого ОчереднаяСтрока Из ПодходящиеСтроки Цикл ТабДок.Удалить(ОчереднаяСтрока); КонецЦикла; |
|||
7
comp2006
20.11.08
✎
09:39
|
(5) У меня в (2) то же самое
|
|||
8
zbv
20.11.08
✎
09:40
|
(6) ошибку можешь озвучить?
|
|||
9
comp2006
20.11.08
✎
09:45
|
{Форма.Форма(44)}: Ошибка при вызове метода контекста (Удалить): Недопустимое значение параметра (параметр номер '1') (Колонка не принадлежит коллекции)
ДокументСсылкаОбъект.ТабЧасть.Удалить(ОчереднаяСтрока); по причине: Недопустимое значение параметра (параметр номер '1') (Колонка не принадлежит коллекции) |
|||
10
Cheater
20.11.08
✎
09:48
|
(9) "(Колонка не принадлежит коллекции)"?
|
|||
11
ZanderZ
20.11.08
✎
09:49
|
ДокументСсылкаОбъект.ПолучитьОбъект().ТабЧасть.Удалить(ОчереднаяСтрока)
|
|||
12
Serg_1960
20.11.08
✎
09:53
|
Простые примеры разработки http://t-prog.narod.ru/page1.html
*** Как в табличной части документа удалить строки с нулевым значением реквизита "Количество"? ОбъектДок = СсылкаДок.ПолучитьОбъект(); СтруктураДляПоиска = Новый Структура("Количество", 0); ТабличнаяЧастьДок = ОбъектДок.Товары; МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска); Для каждого Строка Из МассивПустыхСтрок Цикл ТабличнаяЧастьДок.Удалить(Строка); КонецЦикла; ОбъектДок.Записать(); СтруктураДляПоиска = Новый Структура("Количество", 0); МассивПустыхСтрок = Товары.НайтиСтроки(СтруктураДляПоиска); Для каждого Строка Из МассивПустыхСтрок Цикл Товары.Удалить(Строка); КонецЦикла; *** Как удалить строки (колонки) таблицы значений? ТаблицаЗначений.Удалить(УдаляемаяСтрока); ТаблицаЗначений.Удалить(0); ТаблицаЗначений.Колонки.Удалить(УдаляемаяКолонка); ТаблицаЗначений.Колонки.Удалить(0); СтаршийИндексКолонок = ТаблицаЗначений.Колонки.Количество() - 1; Индекс = ТаблицаЗначений.Количество() - 1; Пока Индекс > = 0 Цикл Для Сч = 0 По СтаршийИндексКолонок Цикл Если ТипЗнч(ТаблицаЗначений[Индекс][Сч]) = Тип("Число") Тогда ТаблицаЗначений.Удалить(Индекс); Прервать; КонецЕсли; КонецЦикла; Индекс = Индекс - 1; КонецЦикла; |
|||
13
comp2006
20.11.08
✎
10:23
|
Всем спасибо! Придётся:
i=ДокументСсылкаОбъект.ТабЧасть.Количество() Пока i>0 Цикл ...... Похоже мой массив МассивСтрокДляУдаление.Добавить(СтрокаТЧ); и массив, который возвращает метод НайтиСтроки(СтруктураДляПоиска); отрабатывается по разному, хотя в отладчике идентичны. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |