Имя: Пароль:
1C
1С v8
Перемещение строк в списке значений
0 Stasya02
 
28.08.19
12:01
Всем привет. Я только начала познавать азы в программировании и прошу небольшой помощи.
Задача: нужно в форму добавить две кнопки, которые будут перемещать выделенную строку в списке значений вверх или вниз. Вот что я делаю:

&НаКлиенте
Процедура Вверх(Команда)
    
    ВыбрЭлемент = Элементы.СписокЗначений.ТекущаяСтрока;
    
    Если ВыбрЭлемент <> Неопределено Тогда
        Если ВыбрЭлемент > 0 Тогда
            СписокЗначений.Сдвинуть(ВыбрЭлемент, -1);
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Но в результате, при повторном нажатии на кнопку, элемент не снова перемещается вверх, а обратно. Пожалуйста, подскажите, что делаю не так и как решить?
1 Злопчинский
 
28.08.19
12:08
ну ыозможно что второй раз текущей является другая строка и она двигается верх и получается что "первая строка" вниз снова.
сделай первый сдвиг, явным образом на форме обозначь текущую строку и снова сделай сдвиг следя за тем к какой строке применяешь сдвиг.
я не спец, так что может это все бред
2 Вафель
 
28.08.19
12:12
текущая строка сбивается скорее всего
3 aleks_default
 
28.08.19
12:13
А что мешает использовать стандартные команды?
4 Stasya02
 
28.08.19
12:17
(1), (2) Нет, строка на том же элементе, даже повторно ее выбираю - элемент двигается назад.
Обратила внимание, что индекс элемента остается прежним (в отладке), хотя в той же отладке в списке значений, он уже изменился.
5 Stasya02
 
28.08.19
12:18
(3), задание.
6 aleks_default
 
28.08.19
12:22
Текущая строка определяется по индексу, соответсвенно когда меняешь индекс у данной строки, текущей становится та у которой такая же цифра индекса
7 Stasya02
 
28.08.19
12:29
(6), подскажите, пожалуйста, как можно решить задачу?