|   |   | 
| 
 | Сортировка на форме списка | ☑ | ||
|---|---|---|---|---|
| 0
    
        bcosta 16.11.14✎ 22:34 | 
        Вечер добрый!
 Подскажите, кто знает. Обычное приложение. Самописная конфа. На форме списка документа сортировка по дате. Если в документе изменить дату, то после проведения он убегает в другое место из-за своей новой даты. Как сделать так, чтобы при изменении даты, документ убегал в другое место, а выбор оставался на строке, на которой был этот документ. Например, я открыл документ в строке 5, после изменения даты документ переместился на строку 15, а выбор остался на другом документе на строке 5. | |||
| 1
    
        bcosta 16.11.14✎ 23:02 | 
        Никто не поможет?     | |||
| 2
    
        vicof 17.11.14✎ 00:09 | 
        запомнинать номер строки перед редактированием даты и делать текущей строку с этим номером после редактирования. Вроде бы все логично.     | |||
| 3
    
        bcosta 17.11.14✎ 00:23 | 
        (2) Логика очень даже понятна. Но вот как запомнить номер строки перед редактированием даты и как делать текущей строку с этим номером после редактирования?     | |||
| 4
    
        Reaper_1c 17.11.14✎ 00:29 | 
        Зачем?     | |||
| 5
    
        vicof 17.11.14✎ 00:30 | 
        Про номер я немного загнул. Но текущая строка вполне подойдет.
 ТабличноеПоле.ТекущаяСтрока (TableBox.CurrentRow) ТабличноеПоле (TableBox) ТекущаяСтрока (CurrentRow) Использование: Чтение и запись. Описание: Содержит текущую строку табличного поля. Доступность: Толстый клиент. Примечание: Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов. См. также: ТабличноеПоле, свойство ТекущаяКолонка | |||
| 6
    
        vicof 17.11.14✎ 00:31 | 
        (4) Ну как, какой-нить оператор правит даты заказов ручками, а потом даты при смене уезжают, и бедный юзер забывает, где он находился.     | |||
| 7
    
        Reaper_1c 17.11.14✎ 00:45 | 
        (6) Оператор находится здесь и сейчас, это конец списка. Зачем он правит даты заказов? Амнезия? Болезнь Паркинсона?     | |||
| 8
    
        bcosta 17.11.14✎ 00:50 | 
        (5) ТабличноеПоле.ТекущаяСтрока пробовал уже. И как я понял, текущая строка содержит данные строки и независимо от номера тоже уедет. Или может не так чего делал.     | |||
| 9
    
        bcosta 17.11.14✎ 00:51 | 
        (5) Попробую еще покрутить.     | |||
| 10
    
        bcosta 17.11.14✎ 03:04 | 
        Ап     | |||
| 11
    
        bcosta 17.11.14✎ 09:06 | 
        Ап     | |||
| 12
    
        Cube 17.11.14✎ 09:10 | 
        Чё "ап"? Ответ в (5).     | |||
| 13
    
        bcosta 17.11.14✎ 09:15 | 
        (12) Не работает ответ в (5).
 Запоминается вся строка и при изменении даты остается старая строка и "убегает" все равно. Нужно именно номер строки выцепить из ТекущаяСтрока, а как не знаю. | |||
| 14
    
        bcosta 17.11.14✎ 09:37 | 
        Напишите хоть еще одну версию. Вдруг кто знает решение. Или укажите, где я могу тупить, когда на самом деле все просто.     | |||
| 15
    
        Cube 17.11.14✎ 09:41 | 
        (13) Потому что не надо тупо копипастить, а покумекать... До записи документа надо запомнить ПРЕДЫДУЩУЮ СТРОКУ, прикинь, да? А после записи документа, надо спозиционироваться на запомненную ранее предыдущую строку...     | |||
| 16
    
        bcosta 17.11.14✎ 09:47 | 
        (15) На словах все очень просто, но на деле как запомнить предыдущую строку?
 ТекущаяСтрока = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока - так? А предыдущую строку как получить? | |||
| 17
    
        DmitrO 17.11.14✎ 09:47 | 
        Перед редактированием сохранять дату документа в текущей строке в данных формы, после редактирования, запросом получать ссылку документа у которого дата >= ранее сохраненной и на нее позиционировать текущую строку. Что сложного то?     | |||
| 18
    
        bcosta 17.11.14✎ 09:50 | 
        (17) Хорошая идея, только вот не обязательно сортировка может быть по дате. При другой сортировке все так же будет прыгать.
 Да все просто, сам это понимаю, но вот нужная мысль никак в голову не приходит. Всю ночь не спал, ничего не соображаю. | |||
| 19
    
        DmitrO 17.11.14✎ 09:54 | 
        (18)можно конечно написать и универсальный алгоритм который будет работать при любой сортировке, в этом случае он должен работать не по дате а по полю (полям) текущей сортировки списка, но в общем случае он будет в несколько сложнее чем описанный выше.
 Может для начала по дате напишите и этого будет достаточно? :) Ну или хотя бы всего пару вариантов реализовать, а если текущая сортировка не предусмотрена алгоритмом, то просто ничего не делать. | |||
| 20
    
        bcosta 17.11.14✎ 09:58 | 
        (19) Если ничего другое не получится, то придется так сделать. Спасибо за совет.     | |||
| 21
    
        Kamas 17.11.14✎ 10:01 | 
        Блин а почему бы не запоминать просто ссылку, а потом искать ссылку и позиционироваться на ней и пливать какая сортировка.     | |||
| 22
    
        DmitrO 17.11.14✎ 10:05 | 
        (21)вылазь из танка, как раз такого штатного поведения требуется избежать.     | |||
| 23
    
        bcosta 17.11.14✎ 10:06 | 
        Ссылку на что? На документ в текущей строке или в предыдущей?     | |||
| 24
    
        Kamas 17.11.14✎ 10:06 | 
        (22) Запоминай на строчку выше     | |||
| 25
    
        Cube 17.11.14✎ 10:09 | 
        (16) А ты думал, что в сказку попал?     | |||
| 26
    
        bcosta 17.11.14✎ 10:10 | 
        (24) Ок, только вот как?     | |||
| 27
    
        bcosta 17.11.14✎ 10:10 | 
        (25) Нет, это суровая жизнь, но сказки иногда хочется.     | |||
| 28
    
        Cube 17.11.14✎ 10:12 | 
        (26) Читай (18).     | |||
| 29
    
        bcosta 17.11.14✎ 10:14 | 
        (28) Что я там увидеть должен?     | |||
| 30
    
        del123 17.11.14✎ 10:28 | 
        Если на форме таблица по табличной части документа, то можно воспользоваться этим:
 ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.НомерСтроки | |||
| 31
    
        Cube 17.11.14✎ 10:29 | 
        (29) Может, за тебя код написать, а ты за него лавандосы сострегешь и ЧСВ повысишь?     | |||
| 32
    
        bcosta 17.11.14✎ 10:30 | 
        (30) Нет, не табличная часть документа.     | |||
| 33
    
        bcosta 17.11.14✎ 10:31 | 
        (31) Конечно же нет, что ты. Нужна подсказка, куда копать. Больше ничего не прошу.     | |||
| 34
    
        Cube 17.11.14✎ 10:32 | 
        (33) Я в (28) ошибся. Хотель написать про (19) пост. Там и есть подсказка, куда копать.     | |||
| 35
    
        Cube 17.11.14✎ 10:34 | 
        Короче, делаешь запрос, который выдает тебе предыдущий документ. Конечно, при смене сортировки, придется и запрос изменять...     | |||
| 36
    
        Cube 17.11.14✎ 10:36 | 
        (33) Посмотри ещё тут v8: Как получить данные динамического списка? 11 пост     | |||
| 37
    
        bcosta 17.11.14✎ 10:59 | 
        (34)(35) Смысл из (19) понятен. Это будет работать. Но уж слишком громоздко. Хотелось бы, что-то стандартное типа НомерСтроки, Индекс и т.п. Но, что бы я не пробовал, найденное в интернете, ничего не подходит.
 (36) Щас гляну, что там советуют. | |||
| 38
    
        bcosta 17.11.14✎ 11:11 | 
        А если добавить колонку НомерСтоки и при изменении сортировки перезаполнять ее во всех строках по порядку, через ТекущуюСтроку получать НомерСтроки и переключаться на предыдущий НомерСтроки при изменении документа?
 Через одно место конечно, но вроде должно сработать. | |||
| 39
    
        Kamas 17.11.14✎ 11:13 | 
        (38) Долго     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |