Имя: Пароль:
1C
1С v8
Номер строки в элементе формы всегда = номер строки в табличной части прикл. объекта ???
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, спасибо за пример!