|
Номер строки в элементе формы всегда = номер строки в табличной части прикл. объекта ??? |
☑ |
0
LUN2
18.09.18
✎
22:20
|
Добрый вечер!
У справочника есть табличная часть. Я пишу процедуру удаления строки табличной части на УФ.
Получаю поле ДанныеСтроки, а через него - НомерСтроки(1).
Далее этот номер строки (назовем параметр НомерСтроки2) передается в серверную процедуру, она получает табличную часть через этот номер и делает удаление.
Вопрос - всегда ли НомерСтроки1 (т.е. на форме) будет НомерСтроки2 (т.е. уже в ТЧ прикладного объекта) будет относиться к одной строке ? Т.е. нет ли каких фокусов с различной нумерацией в элементе и в реальной ТЧ, которые могут привести к тому, что пользователь выберет одну строку, а удаляться будет другая ?
|
|
1
Mort
18.09.18
✎
22:29
|
Если ты за каким-то хреном хочешь строку удалить из объекта сразу в БД (почему из объекта на форме-то не удалить?), то такая строка может быть на форму добавлена, например, и в записанном объекте её нет. Для остальных случаев есть "ИсходныйНомерСтроки". Но уверен что-то ты не с того выхода заходишь.
|
|
2
LUN2
18.09.18
✎
22:52
|
Mort, тогда может подскажете - как это сделать (думал, что надо удалять в объекте на сервере...).
События - это табличная часть элемента справочника.
Пользователь выделяет строки для удаления, нажимает кнопку УДАЛИТЬ, обработчик начинает цикл по выделенным строкам:
ТЧНаФорме = ЭтаФорма.Элементы.События;
Строки = ТЧНаФорме.ВыделенныеСтроки;
для каждого Строка из Строки цикл
Элемент = ТЧНаФорме.ДанныеСтроки(Строка);
...а у кого метод нужно вызывать метод .Удалить ?
|
|
3
пипец
19.09.18
✎
01:50
|
Родной у тя в форме хз численнасть строк и к ссерверного
|
|
4
пипец
19.09.18
✎
01:52
|
Если ты к объекту то...
|
|
5
Fram
19.09.18
✎
04:31
|
(2) а чем штатные средства удаления строк не угодили?
|
|
6
PowerBoy
19.09.18
✎
06:53
|
Масс = Новый Массив();
Для Каждого Стро Из Элементы.Задачи.ВыделенныеСтроки Цикл
Масс.Добавить(Стро);
КонецЦикла;
Для каждого Строка Из Масс Цикл
объект.Задачи.Удалить(объект.Задачи.НайтиПоИдентификатору(Строка));
КонецЦикла;
|
|
7
LUN2
19.09.18
✎
21:02
|
(3) и (4)
Пипец, что означали эти фразы ?
Если много строк - много вызовов сервера ? Если да, согласен, но если их много, то можно собрать их в массив и за одну передачу удалить на сервере. Ведь в любом случае удаление дойдет до сервера.
Т.е. мне казалось, что нет особой разницы - удалять на форме и удаления будут скинуты на сервер автоматом, либо это сделает мой код...
Если я не прав, если можно - поясните в чем...
|
|
8
LUN2
19.09.18
✎
21:07
|
(5) Fram, не то, чтобы не угодили, а кругозор у меня не тот, чтобы сразу представлять все множество вариантов. Беру то, что кажется реалистичным исходя из текущих знаний.
Но сразу скажу (хотя это не было предметом вопроса), что у меня есть варианты действий, когда:
1) удаляется только строка ТЧ, тогда (6) должно подходить - попробую сейчас,
2) удаляется и _1_ строка ТЧ и _2_ те объекты, на которые указывает эта ТЧ (это элементы другого справочника) - в таком случае для реализации _2_ все равно надо вынимать ссылки и удалять на сервере, поэтому я сразу и решил залезть туда..
|
|
9
LUN2
19.09.18
✎
22:11
|
(6) PowerBoy, спасибо за пример!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший