Имя: Пароль:
1C
1С v8
Не могу удалить строку из таблицы значений
,
0 Мурочка
 
24.01.12
17:52
Народ. Помогите... Что-то я уже плохо соображаю, а сделать надо... Такая обработка: Из таблицы значений мне нужно удалить строку... пишу:

Пока Ном <= ВедомостьТЧ.Количество() Цикл //выбираю по очереди строки из таблицы значений - ВедомостьТЧ
                     
Строка = ВедомостьТЧ.Получить(Ном); // получаю значение
НайденнаяСтрока = ТЗ.Найти(СокрЛП(Строка.Физлицо));//пытаюсь найти значение в другой таблице значений
                             
Если НайденнаяСтрока = Неопределено Тогда
Ном = Ном + 1;//перехожу на следующую строку
Иначе                           ВедомостьТЧ.Удалить(Ном); //если есть такое значение в ТЗ, то пытаюсь его удалить.
КонецЕсли;

Но нифига не делает!!!!
Смотрю в отладчике... отладчик пишет: "Обращение к процедуре объекта как к функции Удалить()"
что за....?
                  КонецЦикла;
1 GenV
 
24.01.12
17:54
(0) Правильно пишет. С чего вдруг в табло в отладчике процедура будет возвращать значение?
2 Chehante
 
24.01.12
17:55
Синтаксис:

Удалить(<Строка>)
Параметры:

<Строка> (обязательный)

Тип: СтрокаТаблицыЗначений. Удаляемая строка таблицы значений.
3 GenV
 
24.01.12
17:58
(2) Не там ты смотришь ...
4 Мурочка
 
24.01.12
18:01
Через Удалить(Строка) - тоже пробовала - тоже самое, что через индекс
5 DrShad
 
24.01.12
18:02
вобще-то весь код в топку
6 Мурочка
 
24.01.12
18:02
что такое?!....с 7.7 всё нормально удаляется... работало по тому же принципу обработка
7 Мурочка
 
24.01.12
18:10
кто-нибудь, направьте на путь истинный...
8 Шапокляк
 
24.01.12
18:28
Направляю.
1. Язык несколько другой в 8-ке, чем в 7-ке.
2. Что такое ВедомостьТЧ (ну мы-то не в курсе)?
3. Зачем так извратно и неправильно получать строки? Если ВедомостьТЧ таблица значений, то там нумерация с нуля начинается.
9 J_B
 
24.01.12
18:38
Добавлю:
4. Если надо удалять строки из таблицы, то ее лучше перебирать с конца
10 DrShad
 
24.01.12
18:40
(9) я обычно формирую список удаляемых строк, а потом по списку с какого хочешь конца строки легко убиваются
11 DrShad
 
24.01.12
18:43
+(10) либо если ищется одно значение, то найтиСтроки() и по массиву обходом удаление
12 Дейл
 
24.01.12
18:51
Что бы что то удалить надо что то получить.Удалять таб часть собираешься? ищи нормально строку и удаляй правильно
13 Дейл
 
24.01.12
18:52
(5) согласен
14 echo77
 
24.01.12
19:04
(9)(10) Дельные замечания
15 n koretsky
 
24.01.12
20:15
как вариант:

МассивСтрок = Новый Массив;
Для Каждого ТекСтрока Из ТвояТаблица Цикл
   Если КакоетоТамУсловие Тогда
       Массив.Добавить(ТекСтрока);
   КонецЕсли;
КонецЦикла;
Для Каждого ТекЗнач Из МассивСтрок Цикл
   ТвояТаблица.Удалить(ТекЗнач);
КонецЦикла;

или

Структура = Новый Структура;
Структура.Вставить("КолонкаФизлоцо", Нашефизлицо);
МассивСтрок = ТвояТаблица.НайтиСтроки(Структура);
Для Каждого ТекЗнач Из МассивСтрок Цикл
   ТвояТаблица.Удалить(ТекЗнач);
КонецЦикла;
16 Мурочка
 
25.01.12
08:24
Спасибо всем!
Я осознала, что пыталась изобрести велосипед.
Сейчас разберусь и всё получится
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.