Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Номер строки в элементе формы всегда = номер строки в табличной части прикл. объекта ???

Номер строки в элементе формы всегда = номер строки в табличной части прикл. объекта ???
Я
   LUN2
 
18.09.18 - 22:20
Добрый вечер!
У справочника есть табличная часть. Я пишу процедуру удаления строки табличной части на УФ.
Получаю поле ДанныеСтроки, а через него - НомерСтроки(1).
Далее этот номер строки (назовем параметр НомерСтроки2) передается в серверную процедуру, она получает табличную часть через этот номер и делает удаление.

Вопрос - всегда ли НомерСтроки1 (т.е. на форме) будет НомерСтроки2 (т.е. уже в ТЧ прикладного объекта) будет относиться к одной строке ? Т.е. нет ли каких фокусов с различной нумерацией в элементе и в реальной ТЧ, которые могут привести к тому, что пользователь выберет одну строку, а удаляться будет другая ?
 
 
   Mort
 
1 - 18.09.18 - 22:29
Если ты за каким-то хреном хочешь строку удалить из объекта сразу в БД (почему из объекта на форме-то не удалить?), то такая строка может быть на форму добавлена, например, и в записанном объекте её нет. Для остальных случаев есть "ИсходныйНомерСтроки". Но уверен что-то ты не с того выхода заходишь.
   LUN2
 
2 - 18.09.18 - 22:52
Mort, тогда может подскажете - как это сделать (думал, что надо удалять в объекте на сервере...).
События - это табличная часть элемента справочника.
Пользователь выделяет строки для удаления, нажимает кнопку УДАЛИТЬ, обработчик начинает цикл по выделенным строкам:

    ТЧНаФорме = ЭтаФорма.Элементы.События;
    Строки = ТЧНаФорме.ВыделенныеСтроки;
    для каждого Строка из Строки цикл
        Элемент = ТЧНаФорме.ДанныеСтроки(Строка);

...а у кого метод нужно вызывать метод .Удалить ?
   пипец
 
3 - 19.09.18 - 01:50
Родной у тя в форме хз численнасть строк и к ссерверного
   пипец
 
4 - 19.09.18 - 01:52
Если ты к объекту то...
   Fram
 
5 - 19.09.18 - 04:31
(2) а чем штатные средства удаления строк не угодили?
   PowerBoy
 
6 - 19.09.18 - 06:53
Масс = Новый Массив();

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

Для каждого Строка Из Масс Цикл
        объект.Задачи.Удалить(объект.Задачи.НайтиПоИдентификатору(Строка));
КонецЦикла;
   LUN2
 
7 - 19.09.18 - 21:02
(3) и (4)
Пипец, что означали эти фразы ?
Если много строк - много вызовов сервера ? Если да, согласен, но если их много, то можно собрать их в массив и за одну передачу удалить на сервере. Ведь в любом случае удаление дойдет до сервера.
Т.е. мне казалось, что нет особой разницы - удалять на форме и удаления будут скинуты на сервер автоматом, либо это сделает мой код...
Если я не прав, если можно - поясните в чем...
   LUN2
 
8 - 19.09.18 - 21:07
(5) Fram, не то, чтобы не угодили, а кругозор у меня не тот, чтобы сразу представлять все множество вариантов. Беру то, что кажется реалистичным исходя из текущих знаний.

Но сразу скажу (хотя это не было предметом вопроса), что у меня есть варианты действий, когда:
1) удаляется только строка ТЧ, тогда (6) должно подходить - попробую сейчас,
2) удаляется и _1_ строка ТЧ и _2_ те объекты, на которые указывает эта ТЧ (это элементы другого справочника) - в таком случае для реализации _2_ все равно надо вынимать ссылки и удалять на сервере, поэтому я сразу и решил залезть  туда..
   LUN2
 
9 - 19.09.18 - 22:11
(6) PowerBoy, спасибо за пример!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует