8.х Как сделать перемещение строк

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем burbon, 20 окт 2009.

  1. TopicStarter Overlay
    burbon
    Offline

    burbon Опытный в 1С

    Регистрация:
    5 май 2009
    Сообщения:
    228
    Симпатии:
    0
    Баллы:
    26
    Привет.
    Какой метод позволяет нам перемещать строки в табличной части документа?

    1
    2
    3
    4
    5

    К примеру, при нажатии на кнопку, строка 3 и 4 поменяются местами!

    Я пока так начал:

    Процедура Кнопка1Нажатие(Элемент)
    Если ИзменениеКнопками = Истина Тогда
    Строка = ЭлементыФормы.Данные.ТекущаяСтрока.НомерСтроки;
    Строка = Строка + 1;
    КонецЕсли;
    КонецПроцедуры
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Пример:
    Код:
    // сдвиг 2-й строки на предыдущую позицию
    Состав.Сдвинуть(1, -1);
    // сдвиг 2-й строки на следующую позицию
    Состав.Сдвинуть(1, 1);
    
  3. TopicStarter Overlay
    burbon
    Offline

    burbon Опытный в 1С

    Регистрация:
    5 май 2009
    Сообщения:
    228
    Симпатии:
    0
    Баллы:
    26

    Написал так:

    Код:
     Процедура Кнопка1Нажатие(Элемент)
    Если ИзменениеКнопками = Истина Тогда
    Данные.Сдвинуть(ЭлементыФормы.Данные.ТекущаяСтрока.НомерСтроки, 1);
    КонецЕсли;
    КонецПроцедуры
    
    
    
    Результат нажатия:
    Текущая строка стоит на месте, а нижние две меняются местами ((((. Что такое?

    Если написать так :

    Код:
     Процедура Кнопка2Нажатие(Элемент)
    Если ИзменениеКнопками = Истина Тогда
    Данные.Сдвинуть(ЭлементыФормы.Данные.ТекущаяСтрока.НомерСтроки, -1);
    КонецЕсли;
    КонецПроцедуры
    
    
    
    Результат: Перемещение строки на одну позицию вниз!!! :unsure:
    Почему со значением 1, не работает?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Нужно ЭлементыФормы.Данные.ТекущаяСтрока передавать в кач-ве параметра
  5. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    а если так:
    Код:
     Процедура Кнопка2Нажатие(Элемент)
    Если ИзменениеКнопками = Истина Тогда
    Данные.Сдвинуть(ЭлементыФормы.Данные.ТекущаяСтрока.НомерСтроки-1, 1);
    КонецЕсли;
    КонецПроцедуры
    
    
    
    итерация вроде как с 0 идёт......
  6. TopicStarter Overlay
    burbon
    Offline

    burbon Опытный в 1С

    Регистрация:
    5 май 2009
    Сообщения:
    228
    Симпатии:
    0
    Баллы:
    26
    Вот так всё работает:

    Код:
    Процедура Кнопка1Нажатие(Элемент)
    Если ИзменениеКнопками = Истина Тогда
    Данные.Сдвинуть(ЭлементыФормы.Данные.ТекущаяСтрока, 10);
    КонецЕсли;
    КонецПроцедуры
    
    Вместо:
    Код:
    ЭлементыФормы.Данные.ТекущаяСтрока.НомерСтроки
    
    Нужно написать

    Код:
     ЭлементыФормы.Данные.ТекущаяСтрока 
    
    В этом была моя ошибка!

Поделиться этой страницей