Табличная часть. Переместить две строки одновременно вниз или вверх.

1. Marina__ 31.05.17 17:04 Сейчас в теме
Добрый день.

В табличной части выделяю две строки и нажимаю стрелочку переместить вверх, перемещается только одна текущая строка, а как сделать, чтобы переместились две выделенные строки.

Спасибо.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 31.05.17 17:21 Сейчас в теме
(1) ну если только попробовать программно сделать такую функцию, и на отдельные кнопки повесить.
Штатно платформа так не умеет
3. lefthander 31.05.17 17:23 Сейчас в теме
(1)Если выбираете все строки, куда и как их перемещать? Вопрос чисто риторический. :)
4. Boneman 298 31.05.17 17:25 Сейчас в теме
(1) кстати, я был не прав,
выделенные строки спокойно перемещаются по табличной части, по две - вверх вниз.
И мышкой перетаскиваются тоже.

Значит у вас в конкретном объекте ограничения стоят.
5. Marina__ 31.05.17 17:47 Сейчас в теме
(4) А какие могут быть ограничения?
8. Altez 256 03.08.21 17:02 Сейчас в теме
(1) Добавить 2 кнопки, двигающие вверх и вниз выделенный массив строк табличной части (на 1 шаг)

&НаСервере
Процедура Доп1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	ДобавитьКомандыНаФорму()

КонецПроцедуры

&НаСервере
Процедура ДобавитьКомандыНаФорму()
    // Создадим команду
    Команда		= ЭтаФорма.Команды.Добавить("ПереместитьВверх1");
    Команда.Действие	= "ПереместитьВверх1";
	Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша._1,,,Истина); 

    // Создадим кнопку и привяжем к ней команду
    Кнопка		= ЭтаФорма.Элементы.Вставить("ПереместитьВверх1", Тип("КнопкаФормы"), 
		ЭтаФорма.Элементы.КоманднаяПанельТовары,ЭтаФорма.Элементы.ГруппаТорговоеОборудование);
    Кнопка.Заголовок	= "[^]";
	Кнопка.Картинка = БиблиотекаКартинок.ПереместитьВверх;
    Кнопка.ИмяКоманды	= "ПереместитьВверх1";
	Кнопка.ПоложениеВКоманднойПанели=ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели;
	
    Команда		= ЭтаФорма.Команды.Добавить("ПереместитьВниз1");
    Команда.Действие	= "ПереместитьВниз1";
	Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша._2,,,Истина);
	
	Кнопка		= ЭтаФорма.Элементы.Вставить("ПереместитьВниз1", Тип("КнопкаФормы"), 
		ЭтаФорма.Элементы.КоманднаяПанельТовары,ЭтаФорма.Элементы.ГруппаТорговоеОборудование);
    Кнопка.Заголовок	= "[v]";
	Кнопка.Картинка = БиблиотекаКартинок.ПереместитьВниз;
    Кнопка.ИмяКоманды	= "ПереместитьВниз1";
	Кнопка.ПоложениеВКоманднойПанели=ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели;
	
КонецПроцедуры	

&НаКлиенте
Процедура ПереместитьВверх1(Команда)
	
	ВыделенныеСтроки=Элементы.Товары.ВыделенныеСтроки;
	Сортировать(ВыделенныеСтроки,"ВОЗР");
	
	Для каждого Строка Из ВыделенныеСтроки Цикл
		текСтрока=Объект.Товары.НайтиПоИдентификатору(Строка);
	    Если текСтрока.НомерСтроки >1 Тогда 
	        Объект.Товары.Сдвинуть(текСтрока.НомерСтроки-1,-1);
		КонецЕсли;   
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура ПереместитьВниз1(Команда)
	ВыделенныеСтроки=Элементы.Товары.ВыделенныеСтроки;
	Сортировать(ВыделенныеСтроки,"УБЫВ");
	
	Для каждого Строка Из ВыделенныеСтроки Цикл
		текСтрока=Объект.Товары.НайтиПоИдентификатору(Строка);
		Если текСтрока.НомерСтроки < Объект.Товары.Количество() Тогда 
			Объект.Товары.Сдвинуть(текСтрока.НомерСтроки-1,1);
		КонецЕсли;  	    
	КонецЦикла;
	
КонецПроцедуры

Процедура Сортировать(Массив,НаправлениеСортировкиСтрока="ВОЗР")

Показать
6. Marina__ 31.05.17 18:29 Сейчас в теме
Да на управляемых формах работает. А кто знает как сделать на обычных формах?
7. Dream_kz 129 31.05.17 20:46 Сейчас в теме
(6) Штатно никак, кнопки смотрят последнюю выбранную строку. Только программно, как говорили в (2)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот