![]() |
|
V8: Удаление строки из документа | ☑ | ||
---|---|---|---|---|
0
Лирик
23.03.12
✎
08:21
|
Народ, это как?
Код следующий: В форме: &НаСервере Процедура УдалитьСтрокуНаСервере(ЗначениеКолонки) ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.УдалитьСтрокуИзДокумента(ЗначениеКолонки); ЗначениеВРеквизитФормы(ДокументОбъект, "Объект"); КонецПроцедуры На сервере: Процедура УдалитьСтрокуИзДокумента(ЗначениеКолонки) Экспорт МассивСтрок = МояТабличнаяЧасть.НайтиСтроки(Новый Структура("КолонкаИмя", ЗначениеКолонки)); Для каждого СтрокаМассива Из МассивСтрок Цикл МояТабличнаяЧасть.Удалить(СтрокаМассива); КонецЦикла; КонецПроцедуры Строку удаляет, но в следующей строке присваивает "КолонкаИмя = ЗначениеКолонки" То есть если таб. часть была "А" 123 "Б" 258 "В" 456 И удалим "А" То стала "А" 258 "В" 456 |
|||
1
fantomask
23.03.12
✎
08:24
|
ну попробуй обнулить А
|
|||
2
Лирик
23.03.12
✎
08:29
|
(1) Я мож не довел до сообщества:
В следующей строке таб части колонке по которой ищем присваивается искомое значение которое должно быть удалено вместе со строкой. |
|||
3
Мимохожий Однако
23.03.12
✎
08:44
|
Как только ты удаляешь строку, надо заново начинать обход по массиву,т.к. он перестает соответствовать получившейся табличной части. Поменяй алгоритм удаления в процедуре УдалитьСтрокуДокумента
|
|||
4
Лирик
23.03.12
✎
08:45
|
Разобрался, но странно - баг / не баг:
Процедура УдалитьСтрокуНаСервере(ЗначениеКолонки) вызывеется из команды. Дак вот это косячит: &НаКлиенте Процедура КомандаУдалитьСтрокуТЧ(Команда) ТекущиеДанныеТЧ = Элементы.МояТабличнаяЧасть.ТекущиеДанные; Если ТекущиеДанныеТЧ = Неопределено Тогда Возврат; КонецЕсли; // Удалить строку УдалитьСтрокуНаСервере(ТекущиеДанныеТЧ.МоеИмяКолонки); КонецПроцедуры А это отрабатывает нормально: Процедура КомандаУдалитьСтрокуТЧ(Команда) ТекущиеДанныеТЧ = Элементы.МояТабличнаяЧасть.ТекущиеДанные; Если ТекущиеДанныеТЧ = Неопределено Тогда Возврат; КонецЕсли; // Удалить строку ЗначениеКолонки = ТекущиеДанныеТЧ.МоеИмяКолонки; УдалитьСтрокуНаСервере(ЗначениеКолонки); КонецПроцедуры |
|||
5
Лирик
23.03.12
✎
08:54
|
(3) Не скажи кому - засмеют.
|
|||
6
Лирик
23.03.12
✎
09:04
|
В общем, по значению надо передавать в серверную процедуру. Спасибо всем кто попытался помочь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |